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 |