Convert network::mojom::URLLoaderClientPtr to new Mojo types

This CL converts network::mojom::URLLoaderClientPtr to new Mojo
types using PendingRemote and Remote.
It also uses pending_remote for URLLoaderClient parameter from
mojom::URLLoaderFactory::CreateLoaderAndStart() and updates its
implementations with new Mojo types.

Bug: 955171
Change-Id: Ie93e96885628488df2d8a88929224cb43ad1ab53
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1901010
Commit-Queue: Julie Kim <[email protected]>
Reviewed-by: David Roger <[email protected]>
Reviewed-by: Ken Rockot <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Reviewed-by: Luke Halliwell (slow) <[email protected]>
Reviewed-by: Tim Volodine <[email protected]>
Reviewed-by: Sami Kyöstilä <[email protected]>
Reviewed-by: Colin Blundell <[email protected]>
Reviewed-by: Wez <[email protected]>
Reviewed-by: Matt Falkenhagen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#716076}
diff --git a/content/public/test/url_loader_interceptor.cc b/content/public/test/url_loader_interceptor.cc
index e8f62c5..eab0e5e 100644
--- a/content/public/test/url_loader_interceptor.cc
+++ b/content/public/test/url_loader_interceptor.cc
@@ -28,7 +28,6 @@
 #include "content/public/test/mock_render_process_host.h"
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/receiver_set.h"
-#include "mojo/public/cpp/bindings/remote.h"
 #include "net/http/http_util.h"
 #include "net/test/embedded_test_server/request_handler_util.h"
 #include "services/network/public/cpp/features.h"
@@ -113,7 +112,7 @@
       int32_t request_id,
       uint32_t options,
       const network::ResourceRequest& url_request,
-      network::mojom::URLLoaderClientPtr* client,
+      mojo::PendingRemote<network::mojom::URLLoaderClient>* client,
       const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) {
     RequestParams params;
     params.process_id = 0;
@@ -122,14 +121,14 @@
     params.request_id = request_id;
     params.options = options;
     params.url_request = url_request;
-    params.client = std::move(*client);
+    params.client.Bind(std::move(*client));
     params.traffic_annotation = traffic_annotation;
 
     if (Intercept(&params))
       return true;
 
     *receiver = std::move(params.receiver);
-    *client = std::move(params.client);
+    *client = params.client.Unbind();
     return false;
   }
 
@@ -190,12 +189,11 @@
       : original_client_(std::move(params.client)),
         completion_status_callback_(std::move(completion_status_callback)),
         request_url_(params.url_request.url) {
-    network::mojom::URLLoaderClientPtr delegating_client;
-    delegating_client_receiver_.Bind(mojo::MakeRequest(&delegating_client));
     factory_getter.Run()->CreateLoaderAndStart(
         std::move(params.receiver), params.routing_id, params.request_id,
         params.options, std::move(params.url_request),
-        std::move(delegating_client), params.traffic_annotation);
+        delegating_client_receiver_.BindNewPipeAndPassRemote(),
+        params.traffic_annotation);
   }
 
   void OnReceiveResponse(network::mojom::URLResponseHeadPtr head) override {
@@ -234,7 +232,7 @@
   }
 
  private:
-  network::mojom::URLLoaderClientPtr original_client_;
+  mojo::Remote<network::mojom::URLLoaderClient> original_client_;
   mojo::Receiver<network::mojom::URLLoaderClient> delegating_client_receiver_{
       this};
   URLLoaderInterceptor::URLLoaderCompletionStatusCallback
@@ -278,7 +276,7 @@
       int32_t request_id,
       uint32_t options,
       const network::ResourceRequest& url_request,
-      network::mojom::URLLoaderClientPtr client,
+      mojo::PendingRemote<network::mojom::URLLoaderClient> client,
       const net::MutableNetworkTrafficAnnotationTag& traffic_annotation)
       override {
     RequestParams params;
@@ -288,7 +286,7 @@
     params.request_id = request_id;
     params.options = options;
     params.url_request = std::move(url_request);
-    params.client = std::move(client);
+    params.client.Bind(std::move(client));
     params.traffic_annotation = traffic_annotation;
 
     if (parent_->Intercept(&params))