| OLD | NEW |
| 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/fetch_event_dispatcher.mojom.h" |
| 24 #include "content/common/service_worker/service_worker_messages.h" | 25 #include "content/common/service_worker/service_worker_messages.h" |
| 25 #include "content/public/common/push_event_payload.h" | 26 #include "content/public/common/push_event_payload.h" |
| 26 #include "content/public/test/mock_render_process_host.h" | 27 #include "content/public/test/mock_render_process_host.h" |
| 27 #include "content/public/test/test_browser_context.h" | 28 #include "content/public/test/test_browser_context.h" |
| 28 #include "mojo/public/cpp/bindings/interface_request.h" | 29 #include "mojo/public/cpp/bindings/interface_request.h" |
| 29 #include "mojo/public/cpp/bindings/strong_binding.h" | 30 #include "mojo/public/cpp/bindings/strong_binding.h" |
| 30 #include "services/shell/public/cpp/interface_provider.h" | 31 #include "services/shell/public/cpp/interface_provider.h" |
| 31 #include "services/shell/public/cpp/interface_registry.h" | 32 #include "services/shell/public/cpp/interface_registry.h" |
| 32 #include "testing/gtest/include/gtest/gtest.h" | 33 #include "testing/gtest/include/gtest/gtest.h" |
| 33 | 34 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 51 ~MockMessagePortMessageFilter() override {} | 52 ~MockMessagePortMessageFilter() override {} |
| 52 base::AtomicSequenceNumber next_routing_id_; | 53 base::AtomicSequenceNumber next_routing_id_; |
| 53 ScopedVector<IPC::Message> message_queue_; | 54 ScopedVector<IPC::Message> message_queue_; |
| 54 }; | 55 }; |
| 55 | 56 |
| 56 } // namespace | 57 } // namespace |
| 57 | 58 |
| 58 class EmbeddedWorkerTestHelper::MockEmbeddedWorkerSetup | 59 class EmbeddedWorkerTestHelper::MockEmbeddedWorkerSetup |
| 59 : public mojom::EmbeddedWorkerSetup { | 60 : public mojom::EmbeddedWorkerSetup { |
| 60 public: | 61 public: |
| 61 explicit MockEmbeddedWorkerSetup( | |
| 62 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper) | |
| 63 : helper_(helper) {} | |
| 64 | |
| 65 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, | 62 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 66 mojom::EmbeddedWorkerSetupRequest request) { | 63 mojom::EmbeddedWorkerSetupRequest request) { |
| 67 mojo::MakeStrongBinding(base::MakeUnique<MockEmbeddedWorkerSetup>(helper), | 64 mojo::MakeStrongBinding(base::MakeUnique<MockEmbeddedWorkerSetup>(helper), |
| 68 std::move(request)); | 65 std::move(request)); |
| 69 } | 66 } |
| 70 | 67 |
| 68 explicit MockEmbeddedWorkerSetup( |
| 69 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper) |
| 70 : helper_(helper) {} |
| 71 |
| 72 ~MockEmbeddedWorkerSetup() override {} |
| 73 |
| 71 void ExchangeInterfaceProviders( | 74 void ExchangeInterfaceProviders( |
| 72 int32_t thread_id, | 75 int32_t thread_id, |
| 73 shell::mojom::InterfaceProviderRequest request, | 76 shell::mojom::InterfaceProviderRequest request, |
| 74 shell::mojom::InterfaceProviderPtr remote_interfaces) override { | 77 shell::mojom::InterfaceProviderPtr remote_interfaces) override { |
| 75 if (!helper_) | 78 if (!helper_) |
| 76 return; | 79 return; |
| 77 helper_->OnSetupMojoStub(thread_id, std::move(request), | 80 helper_->OnSetupMojoStub(thread_id, std::move(request), |
| 78 std::move(remote_interfaces)); | 81 std::move(remote_interfaces)); |
| 79 } | 82 } |
| 80 | 83 |
| 81 private: | 84 private: |
| 82 base::WeakPtr<EmbeddedWorkerTestHelper> helper_; | 85 base::WeakPtr<EmbeddedWorkerTestHelper> helper_; |
| 83 }; | 86 }; |
| 84 | 87 |
| 88 class EmbeddedWorkerTestHelper::MockFetchEventDispatcher |
| 89 : public NON_EXPORTED_BASE(mojom::FetchEventDispatcher) { |
| 90 public: |
| 91 static void Create(const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 92 int thread_id, |
| 93 mojom::FetchEventDispatcherRequest request) { |
| 94 mojo::MakeStrongBinding( |
| 95 base::MakeUnique<MockFetchEventDispatcher>(helper, thread_id), |
| 96 std::move(request)); |
| 97 } |
| 98 |
| 99 MockFetchEventDispatcher( |
| 100 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 101 int thread_id) |
| 102 : helper_(helper), thread_id_(thread_id) {} |
| 103 |
| 104 ~MockFetchEventDispatcher() override {} |
| 105 |
| 106 void DispatchFetchEvent(int response_id, |
| 107 const ServiceWorkerFetchRequest& request, |
| 108 const DispatchFetchEventCallback& callback) override { |
| 109 if (!helper_) |
| 110 return; |
| 111 helper_->OnFetchEventStub(thread_id_, response_id, request, callback); |
| 112 } |
| 113 |
| 114 private: |
| 115 base::WeakPtr<EmbeddedWorkerTestHelper> helper_; |
| 116 const int thread_id_; |
| 117 }; |
| 118 |
| 85 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( | 119 EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( |
| 86 const base::FilePath& user_data_directory) | 120 const base::FilePath& user_data_directory) |
| 87 : browser_context_(new TestBrowserContext), | 121 : browser_context_(new TestBrowserContext), |
| 88 render_process_host_(new MockRenderProcessHost(browser_context_.get())), | 122 render_process_host_(new MockRenderProcessHost(browser_context_.get())), |
| 89 wrapper_(new ServiceWorkerContextWrapper(browser_context_.get())), | 123 wrapper_(new ServiceWorkerContextWrapper(browser_context_.get())), |
| 90 next_thread_id_(0), | 124 next_thread_id_(0), |
| 91 mock_render_process_id_(render_process_host_->GetID()), | 125 mock_render_process_id_(render_process_host_->GetID()), |
| 92 weak_factory_(this) { | 126 weak_factory_(this) { |
| 93 std::unique_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager( | 127 std::unique_ptr<MockServiceWorkerDatabaseTaskManager> database_task_manager( |
| 94 new MockServiceWorkerDatabaseTaskManager( | 128 new MockServiceWorkerDatabaseTaskManager( |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, | 222 bool EmbeddedWorkerTestHelper::OnMessageToWorker(int thread_id, |
| 189 int embedded_worker_id, | 223 int embedded_worker_id, |
| 190 const IPC::Message& message) { | 224 const IPC::Message& message) { |
| 191 bool handled = true; | 225 bool handled = true; |
| 192 current_embedded_worker_id_ = embedded_worker_id; | 226 current_embedded_worker_id_ = embedded_worker_id; |
| 193 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) | 227 IPC_BEGIN_MESSAGE_MAP(EmbeddedWorkerTestHelper, message) |
| 194 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub) | 228 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ActivateEvent, OnActivateEventStub) |
| 195 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ExtendableMessageEvent, | 229 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_ExtendableMessageEvent, |
| 196 OnExtendableMessageEventStub) | 230 OnExtendableMessageEventStub) |
| 197 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) | 231 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) |
| 198 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEventStub) | |
| 199 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) | 232 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) |
| 200 IPC_MESSAGE_UNHANDLED(handled = false) | 233 IPC_MESSAGE_UNHANDLED(handled = false) |
| 201 IPC_END_MESSAGE_MAP() | 234 IPC_END_MESSAGE_MAP() |
| 202 // Record all messages directed to inner script context. | 235 // Record all messages directed to inner script context. |
| 203 inner_sink_.OnMessageReceived(message); | 236 inner_sink_.OnMessageReceived(message); |
| 204 return handled; | 237 return handled; |
| 205 } | 238 } |
| 206 | 239 |
| 207 void EmbeddedWorkerTestHelper::OnSetupMojo( | 240 void EmbeddedWorkerTestHelper::OnSetupMojo( |
| 208 shell::InterfaceRegistry* interface_registry) {} | 241 int thread_id, |
| 242 shell::InterfaceRegistry* interface_registry) { |
| 243 interface_registry->AddInterface(base::Bind(&MockFetchEventDispatcher::Create, |
| 244 weak_factory_.GetWeakPtr(), |
| 245 thread_id)); |
| 246 } |
| 209 | 247 |
| 210 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, | 248 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, |
| 211 int request_id) { | 249 int request_id) { |
| 212 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( | 250 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( |
| 213 embedded_worker_id, request_id, | 251 embedded_worker_id, request_id, |
| 214 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); | 252 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); |
| 215 } | 253 } |
| 216 | 254 |
| 217 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(int embedded_worker_id, | 255 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(int embedded_worker_id, |
| 218 int request_id) { | 256 int request_id) { |
| 219 SimulateSend(new ServiceWorkerHostMsg_ExtendableMessageEventFinished( | 257 SimulateSend(new ServiceWorkerHostMsg_ExtendableMessageEventFinished( |
| 220 embedded_worker_id, request_id, | 258 embedded_worker_id, request_id, |
| 221 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); | 259 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); |
| 222 } | 260 } |
| 223 | 261 |
| 224 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, | 262 void EmbeddedWorkerTestHelper::OnInstallEvent(int embedded_worker_id, |
| 225 int request_id) { | 263 int request_id) { |
| 226 // The installing worker may have been doomed and terminated. | 264 // The installing worker may have been doomed and terminated. |
| 227 if (!registry()->GetWorker(embedded_worker_id)) | 265 if (!registry()->GetWorker(embedded_worker_id)) |
| 228 return; | 266 return; |
| 229 SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished( | 267 SimulateSend(new ServiceWorkerHostMsg_InstallEventFinished( |
| 230 embedded_worker_id, request_id, | 268 embedded_worker_id, request_id, |
| 231 blink::WebServiceWorkerEventResultCompleted, true, base::Time::Now())); | 269 blink::WebServiceWorkerEventResultCompleted, true, base::Time::Now())); |
| 232 } | 270 } |
| 233 | 271 |
| 234 void EmbeddedWorkerTestHelper::OnFetchEvent( | 272 void EmbeddedWorkerTestHelper::OnFetchEvent( |
| 235 int embedded_worker_id, | 273 int embedded_worker_id, |
| 236 int response_id, | 274 int response_id, |
| 237 int event_finish_id, | 275 const ServiceWorkerFetchRequest& request, |
| 238 const ServiceWorkerFetchRequest& request) { | 276 const FetchCallback& callback) { |
| 239 SimulateSend(new ServiceWorkerHostMsg_FetchEventResponse( | 277 SimulateSend(new ServiceWorkerHostMsg_FetchEventResponse( |
| 240 embedded_worker_id, response_id, | 278 embedded_worker_id, response_id, |
| 241 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, | 279 SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE, |
| 242 ServiceWorkerResponse( | 280 ServiceWorkerResponse( |
| 243 GURL(), 200, "OK", blink::WebServiceWorkerResponseTypeDefault, | 281 GURL(), 200, "OK", blink::WebServiceWorkerResponseTypeDefault, |
| 244 ServiceWorkerHeaderMap(), std::string(), 0, GURL(), | 282 ServiceWorkerHeaderMap(), std::string(), 0, GURL(), |
| 245 blink::WebServiceWorkerResponseErrorUnknown, base::Time(), | 283 blink::WebServiceWorkerResponseErrorUnknown, base::Time(), |
| 246 false /* is_in_cache_storage */, | 284 false /* is_in_cache_storage */, |
| 247 std::string() /* cache_storage_cache_name */, | 285 std::string() /* cache_storage_cache_name */, |
| 248 ServiceWorkerHeaderList() /* cors_exposed_header_names */), | 286 ServiceWorkerHeaderList() /* cors_exposed_header_names */), |
| 249 base::Time::Now())); | 287 base::Time::Now())); |
| 250 SimulateSend(new ServiceWorkerHostMsg_FetchEventFinished( | 288 callback.Run(blink::mojom::ServiceWorkerEventStatus::COMPLETED, |
| 251 embedded_worker_id, event_finish_id, | 289 base::Time::Now()); |
| 252 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); | |
| 253 } | 290 } |
| 254 | 291 |
| 255 void EmbeddedWorkerTestHelper::OnPushEvent(int embedded_worker_id, | 292 void EmbeddedWorkerTestHelper::OnPushEvent(int embedded_worker_id, |
| 256 int request_id, | 293 int request_id, |
| 257 const PushEventPayload& payload) { | 294 const PushEventPayload& payload) { |
| 258 SimulateSend(new ServiceWorkerHostMsg_PushEventFinished( | 295 SimulateSend(new ServiceWorkerHostMsg_PushEventFinished( |
| 259 embedded_worker_id, request_id, | 296 embedded_worker_id, request_id, |
| 260 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); | 297 blink::WebServiceWorkerEventResultCompleted, base::Time::Now())); |
| 261 } | 298 } |
| 262 | 299 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 287 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded( | 324 void EmbeddedWorkerTestHelper::SimulateWorkerScriptLoaded( |
| 288 int embedded_worker_id) { | 325 int embedded_worker_id) { |
| 289 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 326 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| 290 ASSERT_TRUE(worker != NULL); | 327 ASSERT_TRUE(worker != NULL); |
| 291 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id); | 328 registry()->OnWorkerScriptLoaded(worker->process_id(), embedded_worker_id); |
| 292 } | 329 } |
| 293 | 330 |
| 294 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted( | 331 void EmbeddedWorkerTestHelper::SimulateWorkerThreadStarted( |
| 295 int thread_id, | 332 int thread_id, |
| 296 int embedded_worker_id) { | 333 int embedded_worker_id) { |
| 334 thread_id_embedded_worker_id_map_[thread_id] = embedded_worker_id; |
| 297 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 335 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| 298 ASSERT_TRUE(worker != NULL); | 336 ASSERT_TRUE(worker != NULL); |
| 299 registry()->OnWorkerThreadStarted(worker->process_id(), thread_id, | 337 registry()->OnWorkerThreadStarted(worker->process_id(), thread_id, |
| 300 embedded_worker_id); | 338 embedded_worker_id); |
| 301 } | 339 } |
| 302 | 340 |
| 303 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated( | 341 void EmbeddedWorkerTestHelper::SimulateWorkerScriptEvaluated( |
| 304 int embedded_worker_id, | 342 int embedded_worker_id, |
| 305 bool success) { | 343 bool success) { |
| 306 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); | 344 EmbeddedWorkerInstance* worker = registry()->GetWorker(embedded_worker_id); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 388 } | 426 } |
| 389 | 427 |
| 390 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { | 428 void EmbeddedWorkerTestHelper::OnInstallEventStub(int request_id) { |
| 391 base::ThreadTaskRunnerHandle::Get()->PostTask( | 429 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 392 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, | 430 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnInstallEvent, |
| 393 weak_factory_.GetWeakPtr(), | 431 weak_factory_.GetWeakPtr(), |
| 394 current_embedded_worker_id_, request_id)); | 432 current_embedded_worker_id_, request_id)); |
| 395 } | 433 } |
| 396 | 434 |
| 397 void EmbeddedWorkerTestHelper::OnFetchEventStub( | 435 void EmbeddedWorkerTestHelper::OnFetchEventStub( |
| 436 int thread_id, |
| 398 int response_id, | 437 int response_id, |
| 399 int event_finish_id, | 438 const ServiceWorkerFetchRequest& request, |
| 400 const ServiceWorkerFetchRequest& request) { | 439 const FetchCallback& callback) { |
| 401 base::ThreadTaskRunnerHandle::Get()->PostTask( | 440 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 402 FROM_HERE, | 441 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, |
| 403 base::Bind(&EmbeddedWorkerTestHelper::OnFetchEvent, | 442 weak_factory_.GetWeakPtr(), |
| 404 weak_factory_.GetWeakPtr(), current_embedded_worker_id_, | 443 thread_id_embedded_worker_id_map_[thread_id], |
| 405 response_id, event_finish_id, request)); | 444 response_id, request, callback)); |
| 406 } | 445 } |
| 407 | 446 |
| 408 void EmbeddedWorkerTestHelper::OnPushEventStub( | 447 void EmbeddedWorkerTestHelper::OnPushEventStub( |
| 409 int request_id, | 448 int request_id, |
| 410 const PushEventPayload& payload) { | 449 const PushEventPayload& payload) { |
| 411 base::ThreadTaskRunnerHandle::Get()->PostTask( | 450 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 412 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, | 451 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, |
| 413 weak_factory_.GetWeakPtr(), | 452 weak_factory_.GetWeakPtr(), |
| 414 current_embedded_worker_id_, request_id, payload)); | 453 current_embedded_worker_id_, request_id, payload)); |
| 415 } | 454 } |
| 416 | 455 |
| 417 void EmbeddedWorkerTestHelper::OnSetupMojoStub( | 456 void EmbeddedWorkerTestHelper::OnSetupMojoStub( |
| 418 int thread_id, | 457 int thread_id, |
| 419 shell::mojom::InterfaceProviderRequest request, | 458 shell::mojom::InterfaceProviderRequest request, |
| 420 shell::mojom::InterfaceProviderPtr remote_interfaces) { | 459 shell::mojom::InterfaceProviderPtr remote_interfaces) { |
| 421 std::unique_ptr<shell::InterfaceRegistry> local( | 460 std::unique_ptr<shell::InterfaceRegistry> local( |
| 422 new shell::InterfaceRegistry); | 461 new shell::InterfaceRegistry); |
| 423 local->Bind(std::move(request)); | 462 local->Bind(std::move(request)); |
| 424 | 463 |
| 425 std::unique_ptr<shell::InterfaceProvider> remote( | 464 std::unique_ptr<shell::InterfaceProvider> remote( |
| 426 new shell::InterfaceProvider); | 465 new shell::InterfaceProvider); |
| 427 remote->Bind(std::move(remote_interfaces)); | 466 remote->Bind(std::move(remote_interfaces)); |
| 428 | 467 |
| 429 OnSetupMojo(local.get()); | 468 OnSetupMojo(thread_id, local.get()); |
| 430 InterfaceRegistryAndProvider pair(std::move(local), std::move(remote)); | 469 InterfaceRegistryAndProvider pair(std::move(local), std::move(remote)); |
| 431 thread_id_service_registry_map_[thread_id] = std::move(pair); | 470 thread_id_service_registry_map_[thread_id] = std::move(pair); |
| 432 } | 471 } |
| 433 | 472 |
| 434 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { | 473 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { |
| 435 DCHECK(context()); | 474 DCHECK(context()); |
| 436 return context()->embedded_worker_registry(); | 475 return context()->embedded_worker_registry(); |
| 437 } | 476 } |
| 438 | 477 |
| 439 MessagePortMessageFilter* | 478 MessagePortMessageFilter* |
| 440 EmbeddedWorkerTestHelper::NewMessagePortMessageFilter() { | 479 EmbeddedWorkerTestHelper::NewMessagePortMessageFilter() { |
| 441 scoped_refptr<MessagePortMessageFilter> filter( | 480 scoped_refptr<MessagePortMessageFilter> filter( |
| 442 new MockMessagePortMessageFilter); | 481 new MockMessagePortMessageFilter); |
| 443 message_port_message_filters_.push_back(filter); | 482 message_port_message_filters_.push_back(filter); |
| 444 return filter.get(); | 483 return filter.get(); |
| 445 } | 484 } |
| 446 | 485 |
| 447 } // namespace content | 486 } // namespace content |
| OLD | NEW |