Remove the WorkerThread InterfaceProvider.

Migrate the remaining interfaces accessed via
WorkerThread::GetInterfaceProvider() to use
ExecutionContext::GetInterfaceProvider():
- PaymentManager
- PermissionService
- WebSocket

Bug: 734210
Change-Id: Ib33c8783bbb490bd4bda5dd31da2a72ab218d03b
Reviewed-on: https://chromium-review.googlesource.com/743102
Commit-Queue: Sam McNally <[email protected]>
Reviewed-by: Kentaro Hara <[email protected]>
Reviewed-by: Daniel Cheng <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Cr-Commit-Position: refs/heads/master@{#513053}
diff --git a/content/browser/worker_interface_binders.cc b/content/browser/worker_interface_binders.cc
index f6338ae..5485a55 100644
--- a/content/browser/worker_interface_binders.cc
+++ b/content/browser/worker_interface_binders.cc
@@ -6,6 +6,12 @@
 
 #include <utility>
 
+#include "base/bind.h"
+#include "content/browser/payments/payment_manager.h"
+#include "content/browser/permissions/permission_service_context.h"
+#include "content/browser/renderer_host/render_process_host_impl.h"
+#include "content/browser/storage_partition_impl.h"
+#include "content/browser/websockets/websocket_manager.h"
 #include "content/public/browser/browser_context.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/content_browser_client.h"
@@ -71,6 +77,26 @@
   parameterized_binder_registry_.AddInterface(
       base::Bind(&ForwardRequest<shape_detection::mojom::TextDetection>,
                  shape_detection::mojom::kServiceName));
+  parameterized_binder_registry_.AddInterface(
+      base::Bind([](blink::mojom::WebSocketRequest request,
+                    RenderProcessHost* host, const url::Origin& origin) {
+        WebSocketManager::CreateWebSocket(host->GetID(), MSG_ROUTING_NONE,
+                                          std::move(request));
+      }));
+  parameterized_binder_registry_.AddInterface(
+      base::Bind([](payments::mojom::PaymentManagerRequest request,
+                    RenderProcessHost* host, const url::Origin& origin) {
+        static_cast<StoragePartitionImpl*>(host->GetStoragePartition())
+            ->GetPaymentAppContext()
+            ->CreatePaymentManager(std::move(request));
+      }));
+  parameterized_binder_registry_.AddInterface(
+      base::Bind([](blink::mojom::PermissionServiceRequest request,
+                    RenderProcessHost* host, const url::Origin& origin) {
+        static_cast<RenderProcessHostImpl*>(host)
+            ->permission_service_context()
+            .CreateService(std::move(request));
+      }));
 }
 
 }  // namespace