| 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 |