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