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 @@
namespace blink {
NavigationInitiatorImpl::NavigationInitiatorImpl(Document& document)
: document_(document) {}
: navigation_initiator_receivers_(document.GetExecutionContext()),
document_(document) {
DCHECK(document.GetExecutionContext());
}
void NavigationInitiatorImpl::Trace(Visitor* visitor) {
visitor->Trace(document_);
visitor->Trace(navigation_initiator_receivers_);
}
void NavigationInitiatorImpl::SendViolationReport(
......@@ -43,8 +47,11 @@ void NavigationInitiatorImpl::SendViolationReport(
nullptr /* Element */);
}
void NavigationInitiatorImpl::Dispose() {
navigation_initiator_receivers_.Clear();
void NavigationInitiatorImpl::BindReceiver(
mojo::PendingReceiver<mojom::blink::NavigationInitiator> receiver) {
navigation_initiator_receivers_.Add(
this, std::move(receiver),
document_->GetTaskRunner(TaskType::kNetworking));
}
} // namespace blink
......@@ -9,6 +9,8 @@
#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/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 {
......@@ -17,8 +19,6 @@ class Document;
class NavigationInitiatorImpl
: public GarbageCollected<NavigationInitiatorImpl>,
public mojom::blink::NavigationInitiator {
USING_PRE_FINALIZER(NavigationInitiatorImpl, Dispose);
public:
explicit NavigationInitiatorImpl(Document& document);
void Trace(Visitor* visitor);
......@@ -28,17 +28,14 @@ class NavigationInitiatorImpl
network::mojom::blink::CSPViolationPtr violation_params) override;
void BindReceiver(
mojo::PendingReceiver<mojom::blink::NavigationInitiator> receiver) {
navigation_initiator_receivers_.Add(this, std::move(receiver));
}
mojo::PendingReceiver<mojom::blink::NavigationInitiator> receiver);
private:
void Dispose();
// A list of all the navigation_initiator receivers owned by the owner
// document. Used to report CSP violations that result from CSP blocking
// navigation requests that were initiated by the owner document.
mojo::ReceiverSet<mojom::blink::NavigationInitiator>
HeapMojoReceiverSet<mojom::blink::NavigationInitiator,
HeapMojoWrapperMode::kWithoutContextObserver>
navigation_initiator_receivers_;
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