Index: content/browser/service_worker/service_worker_test_utils.cc |
diff --git a/content/browser/service_worker/service_worker_test_utils.cc b/content/browser/service_worker/service_worker_test_utils.cc |
index 4c8f7390b91924cba6bc779d126ad9be89b5cfe6..5f29a3067d53934de6dc3d9719fdc20c98a24d72 100644 |
--- a/content/browser/service_worker/service_worker_test_utils.cc |
+++ b/content/browser/service_worker/service_worker_test_utils.cc |
@@ -7,6 +7,8 @@ |
#include <utility> |
#include "content/browser/service_worker/service_worker_provider_host.h" |
+#include "content/common/service_worker/service_worker_provider.mojom.h" |
+#include "content/public/common/child_process_host.h" |
namespace content { |
@@ -26,6 +28,12 @@ void ServiceWorkerRemoteProviderEndpoint::BindWithProviderHostInfo( |
info->host_request = mojo::MakeIsolatedRequest(&host_ptr_); |
} |
+void ServiceWorkerRemoteProviderEndpoint::BindWithProviderClientInfo( |
+ mojom::ServiceWorkerProviderClientInfo* info) { |
dcheng
2017/06/20 21:09:47
FWIW, I think it's a little surprising that this i
shimazu
2017/06/21 03:11:26
Thanks. I agree that passing move-only object by v
dcheng
2017/06/21 05:45:06
I guess it's a matter of semantics. With MakeReque
shimazu
2017/06/21 06:27:14
I see, unless the ProviderClientInfo is used on th
|
+ client_request_ = std::move(info->client_request); |
+ host_ptr_.Bind(std::move(info->host_ptr_info)); |
+} |
+ |
std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostForWindow( |
int process_id, |
int provider_id, |
@@ -43,16 +51,19 @@ std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostForWindow( |
std::unique_ptr<ServiceWorkerProviderHost> |
CreateProviderHostForServiceWorkerContext( |
int process_id, |
- int provider_id, |
bool is_parent_frame_secure, |
+ ServiceWorkerVersion* hosted_version, |
base::WeakPtr<ServiceWorkerContextCore> context, |
ServiceWorkerRemoteProviderEndpoint* output_endpoint) { |
- ServiceWorkerProviderHostInfo info(provider_id, MSG_ROUTING_NONE, |
- SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, |
- is_parent_frame_secure); |
- output_endpoint->BindWithProviderHostInfo(&info); |
- return ServiceWorkerProviderHost::Create(process_id, std::move(info), |
- std::move(context), nullptr); |
+ ServiceWorkerProviderHostInfo info( |
+ kInvalidServiceWorkerProviderId, MSG_ROUTING_NONE, |
+ SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, is_parent_frame_secure); |
+ std::unique_ptr<ServiceWorkerProviderHost> host = |
+ ServiceWorkerProviderHost::PreCreateForController(std::move(context)); |
+ mojom::ServiceWorkerProviderClientInfoPtr provider_client_info = |
+ host->CompleteStartWorkerPreparation(process_id, hosted_version); |
+ output_endpoint->BindWithProviderClientInfo(provider_client_info.get()); |
+ return host; |
} |
std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostWithDispatcherHost( |