Chromium Code Reviews| Index: content/browser/service_worker/embedded_worker_test_helper.cc |
| diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc |
| index 65c2a713473178fe3f0f057112667fedd405735e..bab73c2cb40ec8ec7658e56516db9ad9261d98ca 100644 |
| --- a/content/browser/service_worker/embedded_worker_test_helper.cc |
| +++ b/content/browser/service_worker/embedded_worker_test_helper.cc |
| @@ -21,6 +21,7 @@ |
| #include "content/browser/service_worker/embedded_worker_status.h" |
| #include "content/browser/service_worker/service_worker_context_core.h" |
| #include "content/browser/service_worker/service_worker_context_wrapper.h" |
| +#include "content/browser/service_worker/service_worker_dispatcher_host.h" |
| #include "content/common/service_worker/embedded_worker_messages.h" |
| #include "content/common/service_worker/embedded_worker_start_params.h" |
| #include "content/common/service_worker/service_worker_messages.h" |
| @@ -57,6 +58,27 @@ class MockMessagePortMessageFilter : public MessagePortMessageFilter { |
| std::vector<std::unique_ptr<IPC::Message>> message_queue_; |
| }; |
| +class MockServiceWorkerDispatcherHost : public ServiceWorkerDispatcherHost { |
| + public: |
| + MockServiceWorkerDispatcherHost( |
| + int process_id, |
| + MessagePortMessageFilter* message_port_message_filter, |
| + ResourceContext* resource_context, |
| + IPC::Sender* sender) |
| + : ServiceWorkerDispatcherHost(process_id, |
| + message_port_message_filter, |
| + resource_context), |
| + sender_(sender) {} |
| + |
| + bool Send(IPC::Message* message) override { return sender_->Send(message); } |
| + |
| + protected: |
| + ~MockServiceWorkerDispatcherHost() override {} |
| + |
| + private: |
| + IPC::Sender* sender_; |
| +}; |
|
horo
2017/02/08 02:14:11
nit:
DISALLOW_COPY_AND_ASSIGN(MockServiceWorker
shimazu
2017/02/13 03:25:56
Done.
|
| + |
| } // namespace |
| EmbeddedWorkerTestHelper::MockEmbeddedWorkerInstanceClient:: |
| @@ -213,8 +235,14 @@ EmbeddedWorkerTestHelper::EmbeddedWorkerTestHelper( |
| base::ThreadTaskRunnerHandle::Get(), nullptr, nullptr); |
| wrapper_->process_manager()->SetProcessIdForTest(mock_render_process_id()); |
| wrapper_->process_manager()->SetNewProcessIdForTest(new_render_process_id()); |
| - registry()->AddChildProcessSender(mock_render_process_id_, this, |
| - NewMessagePortMessageFilter()); |
| + |
| + scoped_refptr<ServiceWorkerDispatcherHost> dispatcher_host( |
| + new MockServiceWorkerDispatcherHost( |
| + mock_render_process_id_, NewMessagePortMessageFilter(), |
| + browser_context_->GetResourceContext(), this)); |
| + wrapper_->context()->AddDispatcherHost(mock_render_process_id_, |
| + dispatcher_host.get()); |
| + dispatcher_hosts_[mock_render_process_id_] = std::move(dispatcher_host); |
| // Setup process level interface registry. |
| render_process_interface_registry_ = |
| @@ -230,8 +258,14 @@ EmbeddedWorkerTestHelper::~EmbeddedWorkerTestHelper() { |
| void EmbeddedWorkerTestHelper::SimulateAddProcessToPattern(const GURL& pattern, |
| int process_id) { |
| - registry()->AddChildProcessSender(process_id, this, |
| - NewMessagePortMessageFilter()); |
| + if (!context()->GetDispatcherHost(process_id)) { |
| + scoped_refptr<ServiceWorkerDispatcherHost> dispatcher_host( |
| + new MockServiceWorkerDispatcherHost( |
| + process_id, NewMessagePortMessageFilter(), |
| + browser_context_->GetResourceContext(), this)); |
| + wrapper_->context()->AddDispatcherHost(process_id, dispatcher_host.get()); |
| + dispatcher_hosts_[process_id] = std::move(dispatcher_host); |
| + } |
| wrapper_->process_manager()->AddProcessReferenceToPattern(pattern, |
| process_id); |
| } |