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 <map> | 5 #include <map> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/atomic_sequence_num.h" | 8 #include "base/atomic_sequence_num.h" |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "base/memory/scoped_vector.h" | 11 #include "base/memory/scoped_vector.h" |
12 #include "base/strings/string16.h" | 12 #include "base/strings/string16.h" |
13 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
14 #include "content/browser/message_port_message_filter.h" | 14 #include "content/browser/message_port_message_filter.h" |
15 #include "content/browser/shared_worker/shared_worker_message_filter.h" | 15 #include "content/browser/shared_worker/shared_worker_message_filter.h" |
16 #include "content/browser/shared_worker/shared_worker_service_impl.h" | 16 #include "content/browser/shared_worker/shared_worker_service_impl.h" |
17 #include "content/browser/worker_host/worker_storage_partition.h" | 17 #include "content/browser/worker_host/worker_storage_partition.h" |
18 #include "content/common/message_port_messages.h" | 18 #include "content/common/message_port_messages.h" |
19 #include "content/common/view_messages.h" | 19 #include "content/common/view_messages.h" |
20 #include "content/common/worker_messages.h" | 20 #include "content/common/worker_messages.h" |
21 #include "content/public/test/test_browser_context.h" | 21 #include "content/public/test/test_browser_context.h" |
22 #include "content/public/test/test_browser_thread_bundle.h" | 22 #include "content/public/test/test_browser_thread_bundle.h" |
23 #include "content/public/test/test_utils.h" | |
24 #include "ipc/ipc_sync_message.h" | 23 #include "ipc/ipc_sync_message.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
26 | 25 |
27 namespace content { | 26 namespace content { |
28 namespace { | 27 namespace { |
29 | 28 |
30 class MockMessagePortMessageFilter : public MessagePortMessageFilter { | 29 class MockMessagePortMessageFilter : public MessagePortMessageFilter { |
31 public: | 30 public: |
32 MockMessagePortMessageFilter(const NextRoutingIDCallback& callback, | 31 MockMessagePortMessageFilter(const NextRoutingIDCallback& callback, |
33 ScopedVector<IPC::Message>* message_queue) | 32 ScopedVector<IPC::Message>* message_queue) |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 scoped_ptr<MockRendererProcessHost> renderer_host(new MockRendererProcessHost( | 349 scoped_ptr<MockRendererProcessHost> renderer_host(new MockRendererProcessHost( |
351 100, browser_context_->GetResourceContext(), *partition_.get())); | 350 100, browser_context_->GetResourceContext(), *partition_.get())); |
352 scoped_ptr<MockSharedWorkerConnector> connector( | 351 scoped_ptr<MockSharedWorkerConnector> connector( |
353 new MockSharedWorkerConnector(renderer_host.get())); | 352 new MockSharedWorkerConnector(renderer_host.get())); |
354 int worker_route_id; | 353 int worker_route_id; |
355 int worker_msg_port_route_id; | 354 int worker_msg_port_route_id; |
356 | 355 |
357 // SharedWorkerConnector creates two message ports and sends | 356 // SharedWorkerConnector creates two message ports and sends |
358 // ViewHostMsg_CreateWorker. | 357 // ViewHostMsg_CreateWorker. |
359 connector->Create("http://example.com/w.js", "name", 200, 300); | 358 connector->Create("http://example.com/w.js", "name", 200, 300); |
360 // We need to go to UI thread to call | |
361 // SharedWorkerDevToolsManager::WorkerCreated(). | |
362 RunAllPendingInMessageLoop(); | |
363 EXPECT_EQ(2U, renderer_host->QueuedMessageCount()); | 359 EXPECT_EQ(2U, renderer_host->QueuedMessageCount()); |
364 // WorkerProcessMsg_CreateWorker should be sent to the renderer in which | 360 // WorkerProcessMsg_CreateWorker should be sent to the renderer in which |
365 // SharedWorker will be created. | 361 // SharedWorker will be created. |
366 CheckWorkerProcessMsgCreateWorker(renderer_host.get(), | 362 CheckWorkerProcessMsgCreateWorker(renderer_host.get(), |
367 "http://example.com/w.js", | 363 "http://example.com/w.js", |
368 "name", | 364 "name", |
369 blink::WebContentSecurityPolicyTypeReport, | 365 blink::WebContentSecurityPolicyTypeReport, |
370 &worker_route_id); | 366 &worker_route_id); |
371 // ViewMsg_WorkerCreated(1) should be sent back to SharedWorkerConnector side. | 367 // ViewMsg_WorkerCreated(1) should be sent back to SharedWorkerConnector side. |
372 CheckViewMsgWorkerCreated(renderer_host.get(), connector.get()); | 368 CheckViewMsgWorkerCreated(renderer_host.get(), connector.get()); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 new MockRendererProcessHost( | 434 new MockRendererProcessHost( |
439 100, browser_context_->GetResourceContext(), *partition_.get())); | 435 100, browser_context_->GetResourceContext(), *partition_.get())); |
440 scoped_ptr<MockSharedWorkerConnector> connector1( | 436 scoped_ptr<MockSharedWorkerConnector> connector1( |
441 new MockSharedWorkerConnector(renderer_host1.get())); | 437 new MockSharedWorkerConnector(renderer_host1.get())); |
442 int worker_route_id; | 438 int worker_route_id; |
443 int worker_msg_port_route_id1; | 439 int worker_msg_port_route_id1; |
444 | 440 |
445 // SharedWorkerConnector creates two message ports and sends | 441 // SharedWorkerConnector creates two message ports and sends |
446 // ViewHostMsg_CreateWorker. | 442 // ViewHostMsg_CreateWorker. |
447 connector1->Create("http://example.com/w.js", "name", 200, 300); | 443 connector1->Create("http://example.com/w.js", "name", 200, 300); |
448 // We need to go to UI thread to call | |
449 // SharedWorkerDevToolsManager::WorkerCreated(). | |
450 RunAllPendingInMessageLoop(); | |
451 EXPECT_EQ(2U, renderer_host1->QueuedMessageCount()); | 444 EXPECT_EQ(2U, renderer_host1->QueuedMessageCount()); |
452 // WorkerProcessMsg_CreateWorker should be sent to the renderer in which | 445 // WorkerProcessMsg_CreateWorker should be sent to the renderer in which |
453 // SharedWorker will be created. | 446 // SharedWorker will be created. |
454 CheckWorkerProcessMsgCreateWorker(renderer_host1.get(), | 447 CheckWorkerProcessMsgCreateWorker(renderer_host1.get(), |
455 "http://example.com/w.js", | 448 "http://example.com/w.js", |
456 "name", | 449 "name", |
457 blink::WebContentSecurityPolicyTypeReport, | 450 blink::WebContentSecurityPolicyTypeReport, |
458 &worker_route_id); | 451 &worker_route_id); |
459 // ViewMsg_WorkerCreated(1) should be sent back to SharedWorkerConnector side. | 452 // ViewMsg_WorkerCreated(1) should be sent back to SharedWorkerConnector side. |
460 CheckViewMsgWorkerCreated(renderer_host1.get(), connector1.get()); | 453 CheckViewMsgWorkerCreated(renderer_host1.get(), connector1.get()); |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 EXPECT_EQ(1, s_update_worker_dependency_call_count_); | 585 EXPECT_EQ(1, s_update_worker_dependency_call_count_); |
593 renderer_host2.reset(); | 586 renderer_host2.reset(); |
594 // UpdateWorkerDependency should be called. | 587 // UpdateWorkerDependency should be called. |
595 EXPECT_EQ(2, s_update_worker_dependency_call_count_); | 588 EXPECT_EQ(2, s_update_worker_dependency_call_count_); |
596 EXPECT_EQ(0U, s_worker_dependency_added_ids_.size()); | 589 EXPECT_EQ(0U, s_worker_dependency_added_ids_.size()); |
597 EXPECT_EQ(1U, s_worker_dependency_removed_ids_.size()); | 590 EXPECT_EQ(1U, s_worker_dependency_removed_ids_.size()); |
598 EXPECT_EQ(100, s_worker_dependency_removed_ids_[0]); | 591 EXPECT_EQ(100, s_worker_dependency_removed_ids_[0]); |
599 } | 592 } |
600 | 593 |
601 } // namespace content | 594 } // namespace content |
OLD | NEW |