Commit 847c5b77 authored by Minoru Chikamune's avatar Minoru Chikamune Committed by Commit Bot

Migrate NavigationInitiator to use GC mojo wrappers.

Bug: 1049056
Change-Id: Ic6736fa67155b432a4dca4725be254fc316d037a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2105681Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarKeishi Hattori <keishi@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Reviewed-by: default avatarKouhei Ueno <kouhei@chromium.org>
Commit-Queue: Minoru Chikamune <chikamune@chromium.org>
Cr-Commit-Position: refs/heads/master@{#755266}
parent bb804c69
...@@ -14,10 +14,14 @@ ...@@ -14,10 +14,14 @@
namespace blink { namespace blink {
NavigationInitiatorImpl::NavigationInitiatorImpl(Document& document) NavigationInitiatorImpl::NavigationInitiatorImpl(Document& document)
: document_(document) {} : navigation_initiator_receivers_(document.GetExecutionContext()),
document_(document) {
DCHECK(document.GetExecutionContext());
}
void NavigationInitiatorImpl::Trace(Visitor* visitor) { void NavigationInitiatorImpl::Trace(Visitor* visitor) {
visitor->Trace(document_); visitor->Trace(document_);
visitor->Trace(navigation_initiator_receivers_);
} }
void NavigationInitiatorImpl::SendViolationReport( void NavigationInitiatorImpl::SendViolationReport(
...@@ -43,8 +47,11 @@ void NavigationInitiatorImpl::SendViolationReport( ...@@ -43,8 +47,11 @@ void NavigationInitiatorImpl::SendViolationReport(
nullptr /* Element */); nullptr /* Element */);
} }
void NavigationInitiatorImpl::Dispose() { void NavigationInitiatorImpl::BindReceiver(
navigation_initiator_receivers_.Clear(); mojo::PendingReceiver<mojom::blink::NavigationInitiator> receiver) {
navigation_initiator_receivers_.Add(
this, std::move(receiver),
document_->GetTaskRunner(TaskType::kNetworking));
} }
} // namespace blink } // namespace blink
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#include "services/network/public/mojom/content_security_policy.mojom-forward.h" #include "services/network/public/mojom/content_security_policy.mojom-forward.h"
#include "third_party/blink/public/mojom/frame/navigation_initiator.mojom-blink.h" #include "third_party/blink/public/mojom/frame/navigation_initiator.mojom-blink.h"
#include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/heap/handle.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_receiver_set.h"
#include "third_party/blink/renderer/platform/mojo/heap_mojo_wrapper_mode.h"
namespace blink { namespace blink {
...@@ -17,8 +19,6 @@ class Document; ...@@ -17,8 +19,6 @@ class Document;
class NavigationInitiatorImpl class NavigationInitiatorImpl
: public GarbageCollected<NavigationInitiatorImpl>, : public GarbageCollected<NavigationInitiatorImpl>,
public mojom::blink::NavigationInitiator { public mojom::blink::NavigationInitiator {
USING_PRE_FINALIZER(NavigationInitiatorImpl, Dispose);
public: public:
explicit NavigationInitiatorImpl(Document& document); explicit NavigationInitiatorImpl(Document& document);
void Trace(Visitor* visitor); void Trace(Visitor* visitor);
...@@ -28,17 +28,14 @@ class NavigationInitiatorImpl ...@@ -28,17 +28,14 @@ class NavigationInitiatorImpl
network::mojom::blink::CSPViolationPtr violation_params) override; network::mojom::blink::CSPViolationPtr violation_params) override;
void BindReceiver( void BindReceiver(
mojo::PendingReceiver<mojom::blink::NavigationInitiator> receiver) { mojo::PendingReceiver<mojom::blink::NavigationInitiator> receiver);
navigation_initiator_receivers_.Add(this, std::move(receiver));
}
private: private:
void Dispose();
// A list of all the navigation_initiator receivers owned by the owner // A list of all the navigation_initiator receivers owned by the owner
// document. Used to report CSP violations that result from CSP blocking // document. Used to report CSP violations that result from CSP blocking
// navigation requests that were initiated by the owner document. // navigation requests that were initiated by the owner document.
mojo::ReceiverSet<mojom::blink::NavigationInitiator> HeapMojoReceiverSet<mojom::blink::NavigationInitiator,
HeapMojoWrapperMode::kWithoutContextObserver>
navigation_initiator_receivers_; navigation_initiator_receivers_;
Member<Document> document_; Member<Document> document_;
......
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