| 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 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 : public mojom::EmbeddedWorkerSetup { | 58 : public mojom::EmbeddedWorkerSetup { |
| 59 public: | 59 public: |
| 60 static void Create( | 60 static void Create( |
| 61 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, | 61 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 62 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) { | 62 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) { |
| 63 new MockEmbeddedWorkerSetup(helper, std::move(request)); | 63 new MockEmbeddedWorkerSetup(helper, std::move(request)); |
| 64 } | 64 } |
| 65 | 65 |
| 66 void ExchangeInterfaceProviders( | 66 void ExchangeInterfaceProviders( |
| 67 int32_t thread_id, | 67 int32_t thread_id, |
| 68 shell::mojom::InterfaceProviderRequest services, | 68 shell::mojom::InterfaceProviderRequest request, |
| 69 shell::mojom::InterfaceProviderPtr exposed_services) override { | 69 shell::mojom::InterfaceProviderPtr remote_interfaces) override { |
| 70 if (!helper_) | 70 if (!helper_) |
| 71 return; | 71 return; |
| 72 helper_->OnSetupMojoStub(thread_id, std::move(services), | 72 helper_->OnSetupMojoStub(thread_id, std::move(request), |
| 73 std::move(exposed_services)); | 73 std::move(remote_interfaces)); |
| 74 } | 74 } |
| 75 | 75 |
| 76 private: | 76 private: |
| 77 MockEmbeddedWorkerSetup( | 77 MockEmbeddedWorkerSetup( |
| 78 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, | 78 const base::WeakPtr<EmbeddedWorkerTestHelper>& helper, |
| 79 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) | 79 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) |
| 80 : helper_(helper), binding_(this, std::move(request)) {} | 80 : helper_(helper), binding_(this, std::move(request)) {} |
| 81 | 81 |
| 82 base::WeakPtr<EmbeddedWorkerTestHelper> helper_; | 82 base::WeakPtr<EmbeddedWorkerTestHelper> helper_; |
| 83 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_; | 83 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_; |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) | 202 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_InstallEvent, OnInstallEventStub) |
| 203 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEventStub) | 203 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_FetchEvent, OnFetchEventStub) |
| 204 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) | 204 IPC_MESSAGE_HANDLER(ServiceWorkerMsg_PushEvent, OnPushEventStub) |
| 205 IPC_MESSAGE_UNHANDLED(handled = false) | 205 IPC_MESSAGE_UNHANDLED(handled = false) |
| 206 IPC_END_MESSAGE_MAP() | 206 IPC_END_MESSAGE_MAP() |
| 207 // Record all messages directed to inner script context. | 207 // Record all messages directed to inner script context. |
| 208 inner_sink_.OnMessageReceived(message); | 208 inner_sink_.OnMessageReceived(message); |
| 209 return handled; | 209 return handled; |
| 210 } | 210 } |
| 211 | 211 |
| 212 void EmbeddedWorkerTestHelper::OnSetupMojo(ServiceRegistry* service_registry) {} | 212 void EmbeddedWorkerTestHelper::OnSetupMojo( |
| 213 shell::InterfaceRegistry* interface_registry) {} |
| 213 | 214 |
| 214 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, | 215 void EmbeddedWorkerTestHelper::OnActivateEvent(int embedded_worker_id, |
| 215 int request_id) { | 216 int request_id) { |
| 216 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( | 217 SimulateSend(new ServiceWorkerHostMsg_ActivateEventFinished( |
| 217 embedded_worker_id, request_id, | 218 embedded_worker_id, request_id, |
| 218 blink::WebServiceWorkerEventResultCompleted)); | 219 blink::WebServiceWorkerEventResultCompleted)); |
| 219 } | 220 } |
| 220 | 221 |
| 221 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(int embedded_worker_id, | 222 void EmbeddedWorkerTestHelper::OnExtendableMessageEvent(int embedded_worker_id, |
| 222 int request_id) { | 223 int request_id) { |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 int request_id, | 407 int request_id, |
| 407 const PushEventPayload& payload) { | 408 const PushEventPayload& payload) { |
| 408 base::ThreadTaskRunnerHandle::Get()->PostTask( | 409 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 409 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, | 410 FROM_HERE, base::Bind(&EmbeddedWorkerTestHelper::OnPushEvent, |
| 410 weak_factory_.GetWeakPtr(), | 411 weak_factory_.GetWeakPtr(), |
| 411 current_embedded_worker_id_, request_id, payload)); | 412 current_embedded_worker_id_, request_id, payload)); |
| 412 } | 413 } |
| 413 | 414 |
| 414 void EmbeddedWorkerTestHelper::OnSetupMojoStub( | 415 void EmbeddedWorkerTestHelper::OnSetupMojoStub( |
| 415 int thread_id, | 416 int thread_id, |
| 416 shell::mojom::InterfaceProviderRequest services, | 417 shell::mojom::InterfaceProviderRequest request, |
| 417 shell::mojom::InterfaceProviderPtr exposed_services) { | 418 shell::mojom::InterfaceProviderPtr remote_interfaces) { |
| 418 std::unique_ptr<ServiceRegistryImpl> new_registry(new ServiceRegistryImpl); | 419 std::unique_ptr<shell::InterfaceRegistry> local( |
| 419 new_registry->Bind(std::move(services)); | 420 new shell::InterfaceRegistry(nullptr)); |
| 420 // TODO(beng): this shouldn't be necessary once we adjust this API to look | 421 local->Bind(std::move(request)); |
| 421 // more like the one we've created for Frame. | 422 |
| 422 // http://crbug.com/621187 | 423 std::unique_ptr<shell::InterfaceProvider> remote( |
| 423 mojo::FuseInterface(new_registry->TakeRemoteRequest(), | 424 new shell::InterfaceProvider); |
| 424 exposed_services.PassInterface()); | 425 remote->Bind(std::move(remote_interfaces)); |
| 425 OnSetupMojo(new_registry.get()); | 426 |
| 426 thread_id_service_registry_map_.add(thread_id, std::move(new_registry)); | 427 OnSetupMojo(local.get()); |
| 428 InterfaceRegistryAndProvider pair(std::move(local), std::move(remote)); |
| 429 thread_id_service_registry_map_[thread_id] = std::move(pair); |
| 427 } | 430 } |
| 428 | 431 |
| 429 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { | 432 EmbeddedWorkerRegistry* EmbeddedWorkerTestHelper::registry() { |
| 430 DCHECK(context()); | 433 DCHECK(context()); |
| 431 return context()->embedded_worker_registry(); | 434 return context()->embedded_worker_registry(); |
| 432 } | 435 } |
| 433 | 436 |
| 434 MessagePortMessageFilter* | 437 MessagePortMessageFilter* |
| 435 EmbeddedWorkerTestHelper::NewMessagePortMessageFilter() { | 438 EmbeddedWorkerTestHelper::NewMessagePortMessageFilter() { |
| 436 scoped_refptr<MessagePortMessageFilter> filter( | 439 scoped_refptr<MessagePortMessageFilter> filter( |
| 437 new MockMessagePortMessageFilter); | 440 new MockMessagePortMessageFilter); |
| 438 message_port_message_filters_.push_back(filter); | 441 message_port_message_filters_.push_back(filter); |
| 439 return filter.get(); | 442 return filter.get(); |
| 440 } | 443 } |
| 441 | 444 |
| 442 } // namespace content | 445 } // namespace content |
| OLD | NEW |