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 |