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

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

Issue 2399933003: Revert of Mojoify FetchEvent of Service Worker. (Closed)
Patch Set: Created 4 years, 2 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/embedded_worker_test_helper.h" 5 #include "content/browser/service_worker/embedded_worker_test_helper.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
11 #include "base/atomic_sequence_num.h" 11 #include "base/atomic_sequence_num.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/memory/scoped_vector.h" 13 #include "base/memory/scoped_vector.h"
14 #include "base/threading/thread_task_runner_handle.h" 14 #include "base/threading/thread_task_runner_handle.h"
15 #include "base/time/time.h" 15 #include "base/time/time.h"
16 #include "content/browser/message_port_message_filter.h" 16 #include "content/browser/message_port_message_filter.h"
17 #include "content/browser/service_worker/embedded_worker_instance.h" 17 #include "content/browser/service_worker/embedded_worker_instance.h"
18 #include "content/browser/service_worker/embedded_worker_registry.h" 18 #include "content/browser/service_worker/embedded_worker_registry.h"
19 #include "content/browser/service_worker/embedded_worker_status.h" 19 #include "content/browser/service_worker/embedded_worker_status.h"
20 #include "content/browser/service_worker/service_worker_context_core.h" 20 #include "content/browser/service_worker/service_worker_context_core.h"
21 #include "content/browser/service_worker/service_worker_context_wrapper.h" 21 #include "content/browser/service_worker/service_worker_context_wrapper.h"
22 #include "content/common/service_worker/embedded_worker_messages.h" 22 #include "content/common/service_worker/embedded_worker_messages.h"
23 #include "content/common/service_worker/embedded_worker_setup.mojom.h" 23 #include "content/common/service_worker/embedded_worker_setup.mojom.h"
24 #include "content/common/service_worker/embedded_worker_start_params.h" 24 #include "content/common/service_worker/embedded_worker_start_params.h"
25 #include "content/common/service_worker/fetch_event_dispatcher.mojom.h"
26 #include "content/common/service_worker/service_worker_messages.h" 25 #include "content/common/service_worker/service_worker_messages.h"
27 #include "content/common/service_worker/service_worker_status_code.h"
28 #include "content/public/common/push_event_payload.h" 26 #include "content/public/common/push_event_payload.h"
29 #include "content/public/test/mock_render_process_host.h" 27 #include "content/public/test/mock_render_process_host.h"
30 #include "content/public/test/test_browser_context.h" 28 #include "content/public/test/test_browser_context.h"
31 #include "mojo/public/cpp/bindings/interface_request.h" 29 #include "mojo/public/cpp/bindings/interface_request.h"
32 #include "mojo/public/cpp/bindings/strong_binding.h" 30 #include "mojo/public/cpp/bindings/strong_binding.h"
33 #include "services/shell/public/cpp/interface_provider.h" 31 #include "services/shell/public/cpp/interface_provider.h"
34 #include "services/shell/public/cpp/interface_registry.h" 32 #include "services/shell/public/cpp/interface_registry.h"
35 #include "testing/gtest/include/gtest/gtest.h" 33 #include "testing/gtest/include/gtest/gtest.h"
36 34
37 namespace content { 35 namespace content {
(...skipping 16 matching lines...) Expand all
54 ~MockMessagePortMessageFilter() override {} 52 ~MockMessagePortMessageFilter() override {}
55 base::AtomicSequenceNumber next_routing_id_; 53 base::AtomicSequenceNumber next_routing_id_;
56 ScopedVector<IPC::Message> message_queue_; 54 ScopedVector<IPC::Message> message_queue_;
57 }; 55 };
58 56
59 } // namespace 57 } // namespace
60 58
61 class EmbeddedWorkerTestHelper::MockEmbeddedWorkerSetup 59 class EmbeddedWorkerTestHelper::MockEmbeddedWorkerSetup
62 : public mojom::EmbeddedWorkerSetup { 60 : public mojom::EmbeddedWorkerSetup {
63 public: 61 public:
62 explicit MockEmbeddedWorkerSetup(
63 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper)
64 : helper_(helper) {}
65
64 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, 66 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper,
65 mojom::EmbeddedWorkerSetupRequest request) { 67 mojom::EmbeddedWorkerSetupRequest request) {
66 mojo::MakeStrongBinding(base::MakeUnique<MockEmbeddedWorkerSetup>(helper), 68 mojo::MakeStrongBinding(base::MakeUnique<MockEmbeddedWorkerSetup>(helper),
67 std::move(request)); 69 std::move(request));
68 } 70 }
69 71
70 explicit MockEmbeddedWorkerSetup(
71 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper)
72 : helper_(helper) {}
73
74 ~MockEmbeddedWorkerSetup() override {}
75
76 void ExchangeInterfaceProviders( 72 void ExchangeInterfaceProviders(
77 int32_t thread_id, 73 int32_t thread_id,
78 shell::mojom::InterfaceProviderRequest request, 74 shell::mojom::InterfaceProviderRequest request,
79 shell::mojom::InterfaceProviderPtr remote_interfaces) override { 75 shell::mojom::InterfaceProviderPtr remote_interfaces) override {
80 if (!helper_) 76 if (!helper_)
81 return; 77 return;
82 helper_->OnSetupMojoStub(thread_id, std::move(request), 78 helper_->OnSetupMojoStub(thread_id, std::move(request),
83 std::move(remote_interfaces)); 79 std::move(remote_interfaces));
84 } 80 }
85 81
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 base::MakeUnique<MockEmbeddedWorkerInstanceClient>(helper)); 125 base::MakeUnique<MockEmbeddedWorkerInstanceClient>(helper));
130 } 126 }
131 127
132 std::unique_ptr<MockEmbeddedWorkerInstanceClient>& client = 128 std::unique_ptr<MockEmbeddedWorkerInstanceClient>& client =
133 clients->at(next_client_index); 129 clients->at(next_client_index);
134 helper->mock_instance_clients_next_index_ = next_client_index + 1; 130 helper->mock_instance_clients_next_index_ = next_client_index + 1;
135 if (client) 131 if (client)
136 client->binding_.Bind(std::move(request)); 132 client->binding_.Bind(std::move(request));
137 } 133 }
138 134
139 class EmbeddedWorkerTestHelper::MockFetchEventDispatcher
140 : public NON_EXPORTED_BASE(mojom::FetchEventDispatcher) {
141 public:
142 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper,
143 int thread_id,
144 mojom::FetchEventDispatcherRequest request) {
145 mojo::MakeStrongBinding(
146 base::MakeUnique<MockFetchEventDispatcher>(helper, thread_id),
147 std::move(request));
148 }
149
150 MockFetchEventDispatcher(
151 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper,
152 int thread_id)
153 : helper_(helper), thread_id_(thread_id) {}
154
155 ~MockFetchEventDispatcher() override {}
156
157 void DispatchFetchEvent(int response_id,
158 const ServiceWorkerFetchRequest& request,
159 const DispatchFetchEventCallback& callback) override {
160 if (!helper_)
161 return;
162 helper_->OnFetchEventStub(thread_id_, response_id, request, callback);
163 }
164
165 private:
166 base::WeakPtr<EmbeddedWorkerTestHelper> helper_;
167 const int thread_id_;
168 };
169
170 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( 135 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper(
171 const base::FilePath& user_data_directory) 136 const base::FilePath& user_data_directory)
172 : browser_context_(new TestBrowserContext), 137 : browser_context_(new TestBrowserContext),
173 render_process_host_(new MockRenderProcessHost(browser_context_.get())), 138 render_process_host_(new MockRenderProcessHost(browser_context_.get())),
174 new_render_process_host_( 139 new_render_process_host_(
175 new MockRenderProcessHost(browser_context_.get())), 140 new MockRenderProcessHost(browser_context_.get())),
176 wrapper_(new ServiceWorkerContextWrapper(browser_context_.get())), 141 wrapper_(new ServiceWorkerContextWrapper(browser_context_.get())),
177 mock_instance_clients_next_index_(0), 142 mock_instance_clients_next_index_(0),
178 next_thread_id_(0), 143 next_thread_id_(0),
179 mock_render_process_id_(render_process_host_->GetID()), 144 mock_render_process_id_(render_process_host_->GetID()),
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, 236 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id,
272 int embedded_worker_id, 237 int embedded_worker_id,
273 const IPC::Message& message) { 238 const IPC::Message& message) {
274 bool handled = true; 239 bool handled = true;
275 current_embedded_worker_id_ = embedded_worker_id; 240 current_embedded_worker_id_ = embedded_worker_id;
276 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) 241 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message)
277 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub) 242 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub)
278 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ExtendableMessageEvent, 243 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ExtendableMessageEvent,
279 OnExtendableMessageEventStub) 244 OnExtendableMessageEventStub)
280 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) 245 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub)
246 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEventStub)
281 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) 247 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub)
282 IPC_MESSAGE_UNHANDLED(handled = false) 248 IPC_MESSAGE_UNHANDLED(handled = false)
283 IPC_END_MESSAGE_MAP() 249 IPC_END_MESSAGE_MAP()
284 // Record all messages directed to inner script context. 250 // Record all messages directed to inner script context.
285 inner_sink_.OnMessageReceived(message); 251 inner_sink_.OnMessageReceived(message);
286 return handled; 252 return handled;
287 } 253 }
288 254
289 void EmbeddedWorkerTestHelper::OnSetupMojo( 255 void EmbeddedWorkerTestHelper::OnSetupMojo(
290 int thread_id, 256 shell::InterfaceRegistry* interface_registry) {}
291 shell::InterfaceRegistry* interface_registry) {
292 interface_registry->AddInterface(base::Bind(&MockFetchEventDispatcher::Create,
293 weak_factory_.GetWeakPtr(),
294 thread_id));
295 }
296 257
297 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, 258 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id,
298 int request_id) { 259 int request_id) {
299 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( 260 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished(
300 embedded_worker_id, request_id, 261 embedded_worker_id, request_id,
301 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); 262 blink::WebServiceWorkerEventResultCompleted, base::Time::Now()));
302 } 263 }
303 264
304 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(int embedded_worker_id, 265 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(int embedded_worker_id,
305 int request_id) { 266 int request_id) {
306 SimulateSend(new ServiceWorkerHostMsg_ExtendableMessageEventFinished( 267 SimulateSend(new ServiceWorkerHostMsg_ExtendableMessageEventFinished(
307 embedded_worker_id, request_id, 268 embedded_worker_id, request_id,
308 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); 269 blink::WebServiceWorkerEventResultCompleted, base::Time::Now()));
309 } 270 }
310 271
311 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, 272 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id,
312 int request_id) { 273 int request_id) {
313 // The installing worker may have been doomed and terminated. 274 // The installing worker may have been doomed and terminated.
314 if (!registry()->GetWorker(embedded_worker_id)) 275 if (!registry()->GetWorker(embedded_worker_id))
315 return; 276 return;
316 SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished( 277 SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished(
317 embedded_worker_id, request_id, 278 embedded_worker_id, request_id,
318 blink::WebServiceWorkerEventResultCompleted, true, base::Time::Now())); 279 blink::WebServiceWorkerEventResultCompleted, true, base::Time::Now()));
319 } 280 }
320 281
321 void EmbeddedWorkerTestHelper::OnFetchEvent( 282 void EmbeddedWorkerTestHelper::OnFetchEvent(
322 int embedded_worker_id, 283 int embedded_worker_id,
323 int response_id, 284 int response_id,
324 const ServiceWorkerFetchRequest& request, 285 int event_finish_id,
325 const FetchCallback& callback) { 286 const ServiceWorkerFetchRequest& request) {
326 SimulateSend(new ServiceWorkerHostMsg_FetchEventResponse( 287 SimulateSend(new ServiceWorkerHostMsg_FetchEventResponse(
327 embedded_worker_id, response_id, 288 embedded_worker_id, response_id,
328 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, 289 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE,
329 ServiceWorkerResponse( 290 ServiceWorkerResponse(
330 GURL(), 200, "OK", blink::WebServiceWorkerResponseTypeDefault, 291 GURL(), 200, "OK", blink::WebServiceWorkerResponseTypeDefault,
331 ServiceWorkerHeaderMap(), std::string(), 0, GURL(), 292 ServiceWorkerHeaderMap(), std::string(), 0, GURL(),
332 blink::WebServiceWorkerResponseErrorUnknown, base::Time(), 293 blink::WebServiceWorkerResponseErrorUnknown, base::Time(),
333 false /* is_in_cache_storage */, 294 false /* is_in_cache_storage */,
334 std::string() /* cache_storage_cache_name */, 295 std::string() /* cache_storage_cache_name */,
335 ServiceWorkerHeaderList() /* cors_exposed_header_names */), 296 ServiceWorkerHeaderList() /* cors_exposed_header_names */),
336 base::Time::Now())); 297 base::Time::Now()));
337 callback.Run(SERVICE_WORKER_OK, base::Time::Now()); 298 SimulateSend(new ServiceWorkerHostMsg_FetchEventFinished(
299 embedded_worker_id, event_finish_id,
300 blink::WebServiceWorkerEventResultCompleted, base::Time::Now()));
338 } 301 }
339 302
340 void EmbeddedWorkerTestHelper::OnPushEvent(int embedded_worker_id, 303 void EmbeddedWorkerTestHelper::OnPushEvent(int embedded_worker_id,
341 int request_id, 304 int request_id,
342 const PushEventPayload& payload) { 305 const PushEventPayload& payload) {
343 SimulateSend(new ServiceWorkerHostMsg_PushEventFinished( 306 SimulateSend(new ServiceWorkerHostMsg_PushEventFinished(
344 embedded_worker_id, request_id, 307 embedded_worker_id, request_id,
345 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); 308 blink::WebServiceWorkerEventResultCompleted, base::Time::Now()));
346 } 309 }
347 310
(...skipping 24 matching lines...) Expand all
372 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded( 335 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded(
373 int embedded_worker_id) { 336 int embedded_worker_id) {
374 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 337 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
375 ASSERT_TRUE(worker != NULL); 338 ASSERT_TRUE(worker != NULL);
376 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id); 339 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id);
377 } 340 }
378 341
379 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted( 342 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted(
380 int thread_id, 343 int thread_id,
381 int embedded_worker_id) { 344 int embedded_worker_id) {
382 thread_id_embedded_worker_id_map_[thread_id] = embedded_worker_id;
383 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 345 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
384 ASSERT_TRUE(worker != NULL); 346 ASSERT_TRUE(worker != NULL);
385 registry()->OnWorkerThreadStarted(worker->process_id(), thread_id, 347 registry()->OnWorkerThreadStarted(worker->process_id(), thread_id,
386 embedded_worker_id); 348 embedded_worker_id);
387 } 349 }
388 350
389 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated( 351 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated(
390 int embedded_worker_id, 352 int embedded_worker_id,
391 bool success) { 353 bool success) {
392 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); 354 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 } 436 }
475 437
476 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { 438 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) {
477 base::ThreadTaskRunnerHandle::Get()->PostTask( 439 base::ThreadTaskRunnerHandle::Get()->PostTask(
478 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, 440 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent,
479 weak_factory_.GetWeakPtr(), 441 weak_factory_.GetWeakPtr(),
480 current_embedded_worker_id_, request_id)); 442 current_embedded_worker_id_, request_id));
481 } 443 }
482 444
483 void EmbeddedWorkerTestHelper::OnFetchEventStub( 445 void EmbeddedWorkerTestHelper::OnFetchEventStub(
484 int thread_id,
485 int response_id, 446 int response_id,
486 const ServiceWorkerFetchRequest& request, 447 int event_finish_id,
487 const FetchCallback& callback) { 448 const ServiceWorkerFetchRequest& request) {
488 base::ThreadTaskRunnerHandle::Get()->PostTask( 449 base::ThreadTaskRunnerHandle::Get()->PostTask(
489 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, 450 FROM_HERE,
490 weak_factory_.GetWeakPtr(), 451 base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent,
491 thread_id_embedded_worker_id_map_[thread_id], 452 weak_factory_.GetWeakPtr(), current_embedded_worker_id_,
492 response_id, request, callback)); 453 response_id, event_finish_id, request));
493 } 454 }
494 455
495 void EmbeddedWorkerTestHelper::OnPushEventStub( 456 void EmbeddedWorkerTestHelper::OnPushEventStub(
496 int request_id, 457 int request_id,
497 const PushEventPayload& payload) { 458 const PushEventPayload& payload) {
498 base::ThreadTaskRunnerHandle::Get()->PostTask( 459 base::ThreadTaskRunnerHandle::Get()->PostTask(
499 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, 460 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent,
500 weak_factory_.GetWeakPtr(), 461 weak_factory_.GetWeakPtr(),
501 current_embedded_worker_id_, request_id, payload)); 462 current_embedded_worker_id_, request_id, payload));
502 } 463 }
503 464
504 void EmbeddedWorkerTestHelper::OnSetupMojoStub( 465 void EmbeddedWorkerTestHelper::OnSetupMojoStub(
505 int thread_id, 466 int thread_id,
506 shell::mojom::InterfaceProviderRequest request, 467 shell::mojom::InterfaceProviderRequest request,
507 shell::mojom::InterfaceProviderPtr remote_interfaces) { 468 shell::mojom::InterfaceProviderPtr remote_interfaces) {
508 std::unique_ptr<shell::InterfaceRegistry> local( 469 std::unique_ptr<shell::InterfaceRegistry> local(
509 new shell::InterfaceRegistry); 470 new shell::InterfaceRegistry);
510 local->Bind(std::move(request)); 471 local->Bind(std::move(request));
511 472
512 std::unique_ptr<shell::InterfaceProvider> remote( 473 std::unique_ptr<shell::InterfaceProvider> remote(
513 new shell::InterfaceProvider); 474 new shell::InterfaceProvider);
514 remote->Bind(std::move(remote_interfaces)); 475 remote->Bind(std::move(remote_interfaces));
515 476
516 OnSetupMojo(thread_id, local.get()); 477 OnSetupMojo(local.get());
517 InterfaceRegistryAndProvider pair(std::move(local), std::move(remote)); 478 InterfaceRegistryAndProvider pair(std::move(local), std::move(remote));
518 thread_id_service_registry_map_[thread_id] = std::move(pair); 479 thread_id_service_registry_map_[thread_id] = std::move(pair);
519 } 480 }
520 481
521 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { 482 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() {
522 DCHECK(context()); 483 DCHECK(context());
523 return context()->embedded_worker_registry(); 484 return context()->embedded_worker_registry();
524 } 485 }
525 486
526 MessagePortMessageFilter* 487 MessagePortMessageFilter*
(...skipping 17 matching lines...) Expand all
544 registry->Bind(mojo::GetProxy(&interfaces)); 505 registry->Bind(mojo::GetProxy(&interfaces));
545 506
546 std::unique_ptr<shell::InterfaceProvider> remote_interfaces( 507 std::unique_ptr<shell::InterfaceProvider> remote_interfaces(
547 new shell::InterfaceProvider); 508 new shell::InterfaceProvider);
548 remote_interfaces->Bind(std::move(interfaces)); 509 remote_interfaces->Bind(std::move(interfaces));
549 rph->SetRemoteInterfaces(std::move(remote_interfaces)); 510 rph->SetRemoteInterfaces(std::move(remote_interfaces));
550 return registry; 511 return registry;
551 } 512 }
552 513
553 } // namespace content 514 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698