Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(125)

Side by Side Diff: content/browser/service_worker/service_worker_test_utils.cc

Issue 2958753003: Revert "Create ServiceWorkerProviderHost before starting worker" (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/service_worker_test_utils.h" 5 #include "content/browser/service_worker/service_worker_test_utils.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "content/browser/service_worker/service_worker_provider_host.h" 9 #include "content/browser/service_worker/service_worker_provider_host.h"
10 #include "content/common/service_worker/service_worker_provider.mojom.h"
11 #include "content/public/common/child_process_host.h"
12 10
13 namespace content { 11 namespace content {
14 12
15 ServiceWorkerRemoteProviderEndpoint::ServiceWorkerRemoteProviderEndpoint() {} 13 ServiceWorkerRemoteProviderEndpoint::ServiceWorkerRemoteProviderEndpoint() {}
16 ServiceWorkerRemoteProviderEndpoint::ServiceWorkerRemoteProviderEndpoint( 14 ServiceWorkerRemoteProviderEndpoint::ServiceWorkerRemoteProviderEndpoint(
17 ServiceWorkerRemoteProviderEndpoint&& other) 15 ServiceWorkerRemoteProviderEndpoint&& other)
18 : host_ptr_(std::move(other.host_ptr_)), 16 : host_ptr_(std::move(other.host_ptr_)),
19 client_request_(std::move(other.client_request_)) {} 17 client_request_(std::move(other.client_request_)) {}
20 18
21 ServiceWorkerRemoteProviderEndpoint::~ServiceWorkerRemoteProviderEndpoint() {} 19 ServiceWorkerRemoteProviderEndpoint::~ServiceWorkerRemoteProviderEndpoint() {}
22 20
23 void ServiceWorkerRemoteProviderEndpoint::BindWithProviderHostInfo( 21 void ServiceWorkerRemoteProviderEndpoint::BindWithProviderHostInfo(
24 content::ServiceWorkerProviderHostInfo* info) { 22 content::ServiceWorkerProviderHostInfo* info) {
25 mojom::ServiceWorkerProviderAssociatedPtr client_ptr; 23 mojom::ServiceWorkerProviderAssociatedPtr client_ptr;
26 client_request_ = mojo::MakeIsolatedRequest(&client_ptr); 24 client_request_ = mojo::MakeIsolatedRequest(&client_ptr);
27 info->client_ptr_info = client_ptr.PassInterface(); 25 info->client_ptr_info = client_ptr.PassInterface();
28 info->host_request = mojo::MakeIsolatedRequest(&host_ptr_); 26 info->host_request = mojo::MakeIsolatedRequest(&host_ptr_);
29 } 27 }
30 28
31 void ServiceWorkerRemoteProviderEndpoint::BindWithProviderInfo(
32 mojom::ServiceWorkerProviderInfoForStartWorkerPtr info) {
33 client_request_ = std::move(info->client_request);
34 host_ptr_.Bind(std::move(info->host_ptr_info));
35 }
36
37 std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostForWindow( 29 std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostForWindow(
38 int process_id, 30 int process_id,
39 int provider_id, 31 int provider_id,
40 bool is_parent_frame_secure, 32 bool is_parent_frame_secure,
41 base::WeakPtr<ServiceWorkerContextCore> context, 33 base::WeakPtr<ServiceWorkerContextCore> context,
42 ServiceWorkerRemoteProviderEndpoint* output_endpoint) { 34 ServiceWorkerRemoteProviderEndpoint* output_endpoint) {
43 ServiceWorkerProviderHostInfo info(provider_id, 1 /* route_id */, 35 ServiceWorkerProviderHostInfo info(provider_id, 1 /* route_id */,
44 SERVICE_WORKER_PROVIDER_FOR_WINDOW, 36 SERVICE_WORKER_PROVIDER_FOR_WINDOW,
45 is_parent_frame_secure); 37 is_parent_frame_secure);
46 output_endpoint->BindWithProviderHostInfo(&info); 38 output_endpoint->BindWithProviderHostInfo(&info);
47 return ServiceWorkerProviderHost::Create(process_id, std::move(info), 39 return ServiceWorkerProviderHost::Create(process_id, std::move(info),
48 std::move(context), nullptr); 40 std::move(context), nullptr);
49 } 41 }
50 42
51 std::unique_ptr<ServiceWorkerProviderHost> 43 std::unique_ptr<ServiceWorkerProviderHost>
52 CreateProviderHostForServiceWorkerContext( 44 CreateProviderHostForServiceWorkerContext(
53 int process_id, 45 int process_id,
46 int provider_id,
54 bool is_parent_frame_secure, 47 bool is_parent_frame_secure,
55 ServiceWorkerVersion* hosted_version,
56 base::WeakPtr<ServiceWorkerContextCore> context, 48 base::WeakPtr<ServiceWorkerContextCore> context,
57 ServiceWorkerRemoteProviderEndpoint* output_endpoint) { 49 ServiceWorkerRemoteProviderEndpoint* output_endpoint) {
58 ServiceWorkerProviderHostInfo info( 50 ServiceWorkerProviderHostInfo info(provider_id, MSG_ROUTING_NONE,
59 kInvalidServiceWorkerProviderId, MSG_ROUTING_NONE, 51 SERVICE_WORKER_PROVIDER_FOR_CONTROLLER,
60 SERVICE_WORKER_PROVIDER_FOR_CONTROLLER, is_parent_frame_secure); 52 is_parent_frame_secure);
61 std::unique_ptr<ServiceWorkerProviderHost> host = 53 output_endpoint->BindWithProviderHostInfo(&info);
62 ServiceWorkerProviderHost::PreCreateForController(std::move(context)); 54 return ServiceWorkerProviderHost::Create(process_id, std::move(info),
63 mojom::ServiceWorkerProviderInfoForStartWorkerPtr provider_info = 55 std::move(context), nullptr);
64 host->CompleteStartWorkerPreparation(process_id, hosted_version);
65 output_endpoint->BindWithProviderInfo(std::move(provider_info));
66 return host;
67 } 56 }
68 57
69 std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostWithDispatcherHost( 58 std::unique_ptr<ServiceWorkerProviderHost> CreateProviderHostWithDispatcherHost(
70 int process_id, 59 int process_id,
71 int provider_id, 60 int provider_id,
72 base::WeakPtr<ServiceWorkerContextCore> context, 61 base::WeakPtr<ServiceWorkerContextCore> context,
73 int route_id, 62 int route_id,
74 ServiceWorkerDispatcherHost* dispatcher_host, 63 ServiceWorkerDispatcherHost* dispatcher_host,
75 ServiceWorkerRemoteProviderEndpoint* output_endpoint) { 64 ServiceWorkerRemoteProviderEndpoint* output_endpoint) {
76 ServiceWorkerProviderHostInfo info(provider_id, route_id, 65 ServiceWorkerProviderHostInfo info(provider_id, route_id,
77 SERVICE_WORKER_PROVIDER_FOR_WINDOW, true); 66 SERVICE_WORKER_PROVIDER_FOR_WINDOW, true);
78 output_endpoint->BindWithProviderHostInfo(&info); 67 output_endpoint->BindWithProviderHostInfo(&info);
79 return ServiceWorkerProviderHost::Create(process_id, std::move(info), 68 return ServiceWorkerProviderHost::Create(process_id, std::move(info),
80 std::move(context), dispatcher_host); 69 std::move(context), dispatcher_host);
81 } 70 }
82 71
83 } // namespace content 72 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698