Commit 5be96a85 authored by Tal Pressman's avatar Tal Pressman Committed by Commit Bot

Migrate AxObjectCacheImpl to use GC mojo wrappers.

Bug: 1049056
Change-Id: I52a862b6d5999203cff4ad92b9d1d63eff811ae4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2078518Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Commit-Queue: Tal Pressman <talp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#746663}
parent 092b00db
...@@ -112,7 +112,9 @@ AXObjectCacheImpl::AXObjectCacheImpl(Document& document) ...@@ -112,7 +112,9 @@ AXObjectCacheImpl::AXObjectCacheImpl(Document& document)
modification_count_(0), modification_count_(0),
validation_message_axid_(0), validation_message_axid_(0),
relation_cache_(std::make_unique<AXRelationCache>(this)), relation_cache_(std::make_unique<AXRelationCache>(this)),
accessibility_event_permission_(mojom::PermissionStatus::ASK) { accessibility_event_permission_(mojom::blink::PermissionStatus::ASK),
permission_service_(document.ToExecutionContext()),
permission_observer_receiver_(this, document.ToExecutionContext()) {
if (document_->LoadEventFinished()) if (document_->LoadEventFinished())
AddPermissionStatusListener(); AddPermissionStatusListener();
documents_.insert(&document); documents_.insert(&document);
...@@ -1839,14 +1841,18 @@ void AXObjectCacheImpl::AddPermissionStatusListener() { ...@@ -1839,14 +1841,18 @@ void AXObjectCacheImpl::AddPermissionStatusListener() {
if (permission_service_.is_bound()) if (permission_service_.is_bound())
permission_service_.reset(); permission_service_.reset();
ConnectToPermissionService(document_->GetExecutionContext(), ConnectToPermissionService(
permission_service_.BindNewPipeAndPassReceiver()); document_->GetExecutionContext(),
permission_service_.BindNewPipeAndPassReceiver(
document_->GetTaskRunner(TaskType::kUserInteraction)));
if (permission_observer_receiver_.is_bound()) if (permission_observer_receiver_.is_bound())
permission_observer_receiver_.reset(); permission_observer_receiver_.reset();
mojo::PendingRemote<mojom::blink::PermissionObserver> observer; mojo::PendingRemote<mojom::blink::PermissionObserver> observer;
permission_observer_receiver_.Bind(observer.InitWithNewPipeAndPassReceiver()); permission_observer_receiver_.Bind(
observer.InitWithNewPipeAndPassReceiver(),
document_->GetTaskRunner(TaskType::kUserInteraction));
permission_service_->AddPermissionObserver( permission_service_->AddPermissionObserver(
CreatePermissionDescriptor( CreatePermissionDescriptor(
mojom::blink::PermissionName::ACCESSIBILITY_EVENTS), mojom::blink::PermissionName::ACCESSIBILITY_EVENTS),
...@@ -1866,7 +1872,7 @@ void AXObjectCacheImpl::RequestAOMEventListenerPermission() { ...@@ -1866,7 +1872,7 @@ void AXObjectCacheImpl::RequestAOMEventListenerPermission() {
if (accessibility_event_permission_ != mojom::PermissionStatus::ASK) if (accessibility_event_permission_ != mojom::PermissionStatus::ASK)
return; return;
if (!permission_service_) if (!permission_service_.is_bound())
return; return;
permission_service_->RequestPermission( permission_service_->RequestPermission(
...@@ -1887,10 +1893,7 @@ void AXObjectCacheImpl::DidFinishLifecycleUpdate(const LocalFrameView& view) { ...@@ -1887,10 +1893,7 @@ void AXObjectCacheImpl::DidFinishLifecycleUpdate(const LocalFrameView& view) {
} }
} }
void AXObjectCacheImpl::ContextDestroyed() { void AXObjectCacheImpl::ContextDestroyed() {}
permission_service_.reset();
permission_observer_receiver_.reset();
}
void AXObjectCacheImpl::Trace(Visitor* visitor) { void AXObjectCacheImpl::Trace(Visitor* visitor) {
visitor->Trace(document_); visitor->Trace(document_);
...@@ -1899,6 +1902,8 @@ void AXObjectCacheImpl::Trace(Visitor* visitor) { ...@@ -1899,6 +1902,8 @@ void AXObjectCacheImpl::Trace(Visitor* visitor) {
visitor->Trace(objects_); visitor->Trace(objects_);
visitor->Trace(notifications_to_post_); visitor->Trace(notifications_to_post_);
visitor->Trace(permission_service_);
visitor->Trace(permission_observer_receiver_);
visitor->Trace(documents_); visitor->Trace(documents_);
visitor->Trace(tree_update_callback_queue_); visitor->Trace(tree_update_callback_queue_);
AXObjectCache::Trace(visitor); AXObjectCache::Trace(visitor);
......
...@@ -33,8 +33,6 @@ ...@@ -33,8 +33,6 @@
#include <utility> #include <utility>
#include "base/macros.h" #include "base/macros.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h" #include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h"
#include "third_party/blink/public/mojom/permissions/permission_status.mojom-blink-forward.h" #include "third_party/blink/public/mojom/permissions/permission_status.mojom-blink-forward.h"
#include "third_party/blink/public/mojom/permissions/permission_status.mojom-blink.h" #include "third_party/blink/public/mojom/permissions/permission_status.mojom-blink.h"
...@@ -44,6 +42,8 @@ ...@@ -44,6 +42,8 @@
#include "third_party/blink/renderer/core/frame/local_frame_view.h" #include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/modules/accessibility/ax_object.h" #include "third_party/blink/renderer/modules/accessibility/ax_object.h"
#include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
#include "third_party/blink/renderer/platform/wtf/hash_map.h" #include "third_party/blink/renderer/platform/wtf/hash_map.h"
#include "third_party/blink/renderer/platform/wtf/hash_set.h" #include "third_party/blink/renderer/platform/wtf/hash_set.h"
#include "third_party/blink/renderer/platform/wtf/vector.h" #include "third_party/blink/renderer/platform/wtf/vector.h"
...@@ -401,9 +401,9 @@ class MODULES_EXPORT AXObjectCacheImpl ...@@ -401,9 +401,9 @@ class MODULES_EXPORT AXObjectCacheImpl
mojom::PermissionStatus accessibility_event_permission_; mojom::PermissionStatus accessibility_event_permission_;
// The permission service, enabling us to check for event listener // The permission service, enabling us to check for event listener
// permission. // permission.
mojo::Remote<mojom::blink::PermissionService> permission_service_; HeapMojoRemote<mojom::blink::PermissionService> permission_service_;
mojo::Receiver<mojom::blink::PermissionObserver> HeapMojoReceiver<mojom::blink::PermissionObserver>
permission_observer_receiver_{this}; permission_observer_receiver_;
// The main document, plus any page popups. // The main document, plus any page popups.
HeapHashSet<WeakMember<Document>> documents_; HeapHashSet<WeakMember<Document>> documents_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment