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 |