{Add,Get}Interface() for PendingAssociatedReceiver/AssociatedRemote
This comes from the discussion of crrev/c/1306240. We want to migrate
- AssociatedInterfaceRequest to PendingAssociatedReceiver.
- AssociatedInterfacePtr to AssociatedRemote
However AssociatedInterfaceRegistry and AssociatedInterfaceProvider
don't have such support yet.
Bug: 955171
Change-Id: I350dba2dac66b37cfc59f08daa06b000352b0c1d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1685837
Reviewed-by: Ken Rockot <[email protected]>
Reviewed-by: Arthur Sonzogni <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Commit-Queue: Shimi Zhang <[email protected]>
Cr-Commit-Position: refs/heads/master@{#675743}
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 77dbc25..1231e88 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -56,6 +56,7 @@
#include "content/public/common/previews_state.h"
#include "content/public/common/transferrable_url_loader.mojom.h"
#include "media/mojo/interfaces/interface_factory.mojom.h"
+#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/system/data_pipe.h"
@@ -1952,7 +1953,7 @@
mojo::AssociatedBinding<mojom::FrameHost> frame_host_associated_binding_;
mojom::FramePtr frame_;
mojom::FrameBindingsControlAssociatedPtr frame_bindings_control_;
- mojom::FrameNavigationControlAssociatedPtr navigation_control_;
+ mojo::AssociatedRemote<mojom::FrameNavigationControl> navigation_control_;
// If this is true then this object was created in response to a renderer
// initiated request. Init() will be called, and until then navigation
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 84e06fc..72582cd4 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -1841,7 +1841,7 @@
frame_binding_(this),
host_zoom_binding_(this),
frame_bindings_control_binding_(this),
- frame_navigation_control_binding_(this),
+ frame_navigation_control_receiver_(this),
fullscreen_binding_(this),
mhtml_file_writer_binding_(this),
navigation_client_impl_(nullptr),
@@ -2347,9 +2347,9 @@
}
void RenderFrameImpl::BindFrameNavigationControl(
- mojom::FrameNavigationControlAssociatedRequest request) {
- frame_navigation_control_binding_.Bind(
- std::move(request), GetTaskRunner(blink::TaskType::kInternalIPC));
+ mojo::PendingAssociatedReceiver<mojom::FrameNavigationControl> receiver) {
+ frame_navigation_control_receiver_.Bind(
+ std::move(receiver), GetTaskRunner(blink::TaskType::kInternalIPC));
}
void RenderFrameImpl::BindNavigationClient(
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 3f45bcc..9fad002 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -62,6 +62,7 @@
#include "ipc/ipc_platform_file.h"
#include "media/base/routing_token_callback.h"
#include "mojo/public/cpp/bindings/associated_binding.h"
+#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/system/data_pipe.h"
@@ -904,7 +905,7 @@
void BindFrameBindingsControl(
mojom::FrameBindingsControlAssociatedRequest request);
void BindFrameNavigationControl(
- mojom::FrameNavigationControlAssociatedRequest request);
+ mojo::PendingAssociatedReceiver<mojom::FrameNavigationControl> receiver);
// Only used when PerNavigationMojoInterface is enabled.
void BindNavigationClient(mojom::NavigationClientAssociatedRequest request);
@@ -1669,8 +1670,8 @@
mojo::AssociatedBinding<mojom::HostZoom> host_zoom_binding_;
mojo::AssociatedBinding<mojom::FrameBindingsControl>
frame_bindings_control_binding_;
- mojo::AssociatedBinding<mojom::FrameNavigationControl>
- frame_navigation_control_binding_;
+ mojo::AssociatedReceiver<mojom::FrameNavigationControl>
+ frame_navigation_control_receiver_;
mojo::AssociatedBinding<mojom::FullscreenVideoElementHandler>
fullscreen_binding_;
mojo::AssociatedBinding<mojom::MhtmlFileWriter> mhtml_file_writer_binding_;