Migrate all old uses of InterfaceProvider to new Mojo types

This CL converts InterfaceProviderPtr|Request to the new Mojo
types. Major changes are as below,

  - Convert mojom::InterfaceProviderPtr to
    mojo::PendingRemote|Remote<mojom::InterfaceProvider>
  - Convert mojo::InterfaceProviderRequest to
    mojo::PendingReceiver<mojom::InterfaceProvider>
  - Convert mojo::Binding to mojo::Receiver
  - Convert mojom::InterfaceProviderPtrInfo to
    mojo::PendingRemote<mojom::InterfaceProvider>

Bug: 955171, 978694
Change-Id: I94b956bb60e20810a84f7714e23c4da836bfd8c6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1928429
Reviewed-by: Wei Li <[email protected]>
Reviewed-by: Frank Liberato <[email protected]>
Reviewed-by: Matt Falkenhagen <[email protected]>
Reviewed-by: Ken Rockot <[email protected]>
Reviewed-by: Sam McNally <[email protected]>
Reviewed-by: Hiroki Nakagawa <[email protected]>
Commit-Queue: Gyuyoung Kim <[email protected]>
Cr-Commit-Position: refs/heads/master@{#719007}
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 8171c74..e245b5a 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -63,11 +63,11 @@
 #include "mojo/public/cpp/bindings/associated_binding.h"
 #include "mojo/public/cpp/bindings/associated_receiver.h"
 #include "mojo/public/cpp/bindings/associated_remote.h"
-#include "mojo/public/cpp/bindings/binding_set.h"
 #include "mojo/public/cpp/bindings/pending_associated_receiver.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
 #include "mojo/public/cpp/bindings/receiver.h"
+#include "mojo/public/cpp/bindings/receiver_set.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "ppapi/buildflags/buildflags.h"
@@ -217,7 +217,8 @@
   // through Blink and Create.
   static void CreateFrame(
       int routing_id,
-      service_manager::mojom::InterfaceProviderPtr interface_provider,
+      mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
+          interface_provider,
       mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker>
           browser_interface_broker,
       int previous_routing_id,
@@ -239,13 +240,13 @@
 
   // Constructor parameters are bundled into a struct.
   struct CONTENT_EXPORT CreateParams {
-    CreateParams(
-        RenderViewImpl* render_view,
-        int32_t routing_id,
-        service_manager::mojom::InterfaceProviderPtr interface_provider,
-        mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker>
-            browser_interface_broker,
-        const base::UnguessableToken& devtools_frame_token);
+    CreateParams(RenderViewImpl* render_view,
+                 int32_t routing_id,
+                 mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
+                     interface_provider,
+                 mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker>
+                     browser_interface_broker,
+                 const base::UnguessableToken& devtools_frame_token);
     ~CreateParams();
 
     CreateParams(CreateParams&&);
@@ -253,7 +254,8 @@
 
     RenderViewImpl* render_view;
     int32_t routing_id;
-    service_manager::mojom::InterfaceProviderPtr interface_provider;
+    mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
+        interface_provider;
     mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker>
         browser_interface_broker;
     base::UnguessableToken devtools_frame_token;
@@ -501,7 +503,8 @@
 
   // mojom::Frame implementation:
   void GetInterfaceProvider(
-      service_manager::mojom::InterfaceProviderRequest request) override;
+      mojo::PendingReceiver<service_manager::mojom::InterfaceProvider> receiver)
+      override;
   void GetCanonicalUrlForSharing(
       GetCanonicalUrlForSharingCallback callback) override;
   void BlockRequests() override;
@@ -1039,7 +1042,8 @@
   static RenderFrameImpl* Create(
       RenderViewImpl* render_view,
       int32_t routing_id,
-      service_manager::mojom::InterfaceProviderPtr interface_provider,
+      mojo::PendingRemote<service_manager::mojom::InterfaceProvider>
+          interface_provider,
       mojo::PendingRemote<blink::mojom::BrowserInterfaceBroker>
           browser_interface_broker,
       const base::UnguessableToken& devtools_frame_token);
@@ -1601,8 +1605,8 @@
   bool enable_mojo_js_bindings_ = false;
 
   mojo::AssociatedRemote<mojom::FrameHost> frame_host_remote_;
-  mojo::BindingSet<service_manager::mojom::InterfaceProvider>
-      interface_provider_bindings_;
+  mojo::ReceiverSet<service_manager::mojom::InterfaceProvider>
+      interface_provider_receivers_;
 
   // URLLoaderFactory instances used for subresource loading.
   // Depending on how the frame was created, |loader_factories_| could be: