Commit e29875ce authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert prerender.mojom to new Mojo types

This CL converts PrerenderDispatcherAssociatedPtr,
PrerenderCancelerRequest, and PrerenderCancelerPtr
to new mojo types using Remote, AssociatedRemote,
PendingReceiver, and Receiver.

Bug: 955171
Change-Id: I75a60af8e0477726ce4f19aa0017eb97aea65cd2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1828781Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarLei Zhang <thestig@chromium.org>
Commit-Queue: Julie Kim <jkim@igalia.com>
Cr-Commit-Position: refs/heads/master@{#701398}
parent 1dde58f1
......@@ -42,6 +42,7 @@
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_delegate.h"
#include "content/public/common/frame_navigate_params.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "net/http/http_response_headers.h"
#include "services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h"
#include "services/service_manager/public/cpp/binder_registry.h"
......@@ -179,7 +180,6 @@ PrerenderContents::PrerenderContents(
Origin origin)
: prerender_mode_(DEPRECATED_FULL_PRERENDER),
prerendering_has_started_(false),
prerender_canceler_binding_(this),
prerender_manager_(prerender_manager),
prerender_url_(url),
referrer_(referrer),
......@@ -214,7 +214,7 @@ PrerenderContents::PrerenderContents(
DCHECK(prerender_manager);
registry_.AddInterface(base::Bind(
&PrerenderContents::OnPrerenderCancelerRequest, base::Unretained(this)));
&PrerenderContents::OnPrerenderCancelerReceiver, base::Unretained(this)));
}
bool PrerenderContents::Init() {
......@@ -361,7 +361,8 @@ PrerenderContents::~PrerenderContents() {
IPC::ChannelProxy* channel = host->GetChannel();
// |channel| might be NULL in tests.
if (host->IsInitializedAndNotDead() && channel) {
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher;
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher;
channel->GetRemoteAssociatedInterface(&prerender_dispatcher);
prerender_dispatcher->PrerenderRemoveAliases(alias_urls_);
}
......@@ -484,7 +485,8 @@ bool PrerenderContents::AddAliasURL(const GURL& url) {
IPC::ChannelProxy* channel = host->GetChannel();
// |channel| might be NULL in tests.
if (host->IsInitializedAndNotDead() && channel) {
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher;
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher;
channel->GetRemoteAssociatedInterface(&prerender_dispatcher);
prerender_dispatcher->PrerenderAddAlias(url);
}
......@@ -763,10 +765,10 @@ void PrerenderContents::CancelPrerenderForSyncDeferredRedirect() {
Destroy(FINAL_STATUS_BAD_DEFERRED_REDIRECT);
}
void PrerenderContents::OnPrerenderCancelerRequest(
chrome::mojom::PrerenderCancelerRequest request) {
if (!prerender_canceler_binding_.is_bound())
prerender_canceler_binding_.Bind(std::move(request));
void PrerenderContents::OnPrerenderCancelerReceiver(
mojo::PendingReceiver<chrome::mojom::PrerenderCanceler> receiver) {
if (!prerender_canceler_receiver_.is_bound())
prerender_canceler_receiver_.Bind(std::move(receiver));
}
void PrerenderContents::AddNetworkBytes(int64_t bytes) {
......
......@@ -26,7 +26,8 @@
#include "content/public/browser/notification_registrar.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/common/referrer.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "ui/gfx/geometry/rect.h"
#include "url/origin.h"
......@@ -298,10 +299,11 @@ class PrerenderContents : public content::NotificationObserver,
void CancelPrerenderForUnsupportedScheme(const GURL& url) override;
void CancelPrerenderForSyncDeferredRedirect() override;
void OnPrerenderCancelerRequest(
chrome::mojom::PrerenderCancelerRequest request);
void OnPrerenderCancelerReceiver(
mojo::PendingReceiver<chrome::mojom::PrerenderCanceler> receiver);
mojo::Binding<chrome::mojom::PrerenderCanceler> prerender_canceler_binding_;
mojo::Receiver<chrome::mojom::PrerenderCanceler> prerender_canceler_receiver_{
this};
base::ObserverList<Observer>::Unchecked observer_list_;
......
......@@ -24,6 +24,7 @@
#include "content/public/browser/session_storage_namespace.h"
#include "content/public/common/referrer.h"
#include "extensions/buildflags/buildflags.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/blink/public/common/prerender/prerender_rel_type.h"
#include "ui/gfx/geometry/size.h"
......@@ -58,9 +59,10 @@ void RecordLinkManagerStarting(const uint32_t rel_types) {
kRelTypeHistogramEnumMax);
}
chrome::mojom::PrerenderDispatcherAssociatedPtr GetPrerenderDispatcher(
int child_id) {
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher;
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
GetPrerenderDispatcher(int child_id) {
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher;
content::RenderProcessHost* render_process_host =
content::RenderProcessHost::FromID(child_id);
if (render_process_host) {
......@@ -384,7 +386,8 @@ void PrerenderLinkManager::StartPrerenders() {
IPC::ChannelProxy* channel = render_process_host->GetChannel();
// |channel| might be NULL in tests.
if (channel) {
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher;
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher;
channel->GetRemoteAssociatedInterface(&prerender_dispatcher);
prerender_dispatcher->PrerenderStop(it->prerender_id);
}
......@@ -476,8 +479,9 @@ void PrerenderLinkManager::OnPrerenderStart(
if (!prerender)
return;
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
if (prerender_dispatcher)
prerender_dispatcher->PrerenderStart(prerender->prerender_id);
}
......@@ -488,8 +492,9 @@ void PrerenderLinkManager::OnPrerenderStopLoading(
if (!prerender)
return;
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
if (prerender_dispatcher)
prerender_dispatcher->PrerenderStopLoading(prerender->prerender_id);
}
......@@ -500,8 +505,9 @@ void PrerenderLinkManager::OnPrerenderDomContentLoaded(
if (!prerender)
return;
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
if (prerender_dispatcher)
prerender_dispatcher->PrerenderDomContentLoaded(prerender->prerender_id);
}
......@@ -512,8 +518,9 @@ void PrerenderLinkManager::OnPrerenderStop(
if (!prerender)
return;
chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
mojo::AssociatedRemote<chrome::mojom::PrerenderDispatcher>
prerender_dispatcher =
GetPrerenderDispatcher(prerender->launcher_child_id);
if (prerender_dispatcher)
prerender_dispatcher->PrerenderStop(prerender->prerender_id);
......
......@@ -14,6 +14,7 @@
#include "chrome/renderer/prerender/prerender_helper.h"
#include "content/public/renderer/render_frame.h"
#include "extensions/buildflags/buildflags.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "third_party/blink/public/web/web_document.h"
#include "third_party/blink/public/web/web_element.h"
......@@ -36,8 +37,9 @@ bool ChromePrintRenderFrameHelperDelegate::CancelPrerender(
if (!prerender::PrerenderHelper::IsPrerendering(render_frame))
return false;
chrome::mojom::PrerenderCancelerPtr canceler;
render_frame->GetRemoteInterfaces()->GetInterface(&canceler);
mojo::Remote<chrome::mojom::PrerenderCanceler> canceler;
render_frame->GetRemoteInterfaces()->GetInterface(
canceler.BindNewPipeAndPassReceiver());
canceler->CancelPrerenderForPrinting();
return true;
}
......
......@@ -54,8 +54,9 @@ chrome::mojom::PrerenderCanceler* GetPrerenderCanceller(int render_frame_id) {
if (!helper)
return nullptr;
auto* canceler = new chrome::mojom::PrerenderCancelerPtr;
render_frame->GetRemoteInterfaces()->GetInterface(canceler);
auto* canceler = new mojo::Remote<chrome::mojom::PrerenderCanceler>;
render_frame->GetRemoteInterfaces()->GetInterface(
canceler->BindNewPipeAndPassReceiver());
base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, canceler);
return canceler->get();
}
......
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