Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: content/browser/shared_worker/shared_worker_service_impl_unittest.cc

Issue 2586863002: Worker: Enable UseCounter for SharedWorkerGlobalScope (Closed)
Patch Set: ready to review Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/shared_worker/shared_worker_service_impl.h" 5 #include "content/browser/shared_worker/shared_worker_service_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 #include <tuple> 13 #include <tuple>
14 14
15 #include "base/atomic_sequence_num.h" 15 #include "base/atomic_sequence_num.h"
16 #include "base/macros.h" 16 #include "base/macros.h"
17 #include "base/memory/ptr_util.h" 17 #include "base/memory/ptr_util.h"
18 #include "base/strings/string16.h" 18 #include "base/strings/string16.h"
19 #include "base/strings/utf_string_conversions.h" 19 #include "base/strings/utf_string_conversions.h"
20 #include "base/synchronization/lock.h" 20 #include "base/synchronization/lock.h"
21 #include "content/browser/message_port_message_filter.h" 21 #include "content/browser/message_port_message_filter.h"
22 #include "content/browser/shared_worker/shared_worker_message_filter.h" 22 #include "content/browser/shared_worker/shared_worker_message_filter.h"
23 #include "content/browser/shared_worker/worker_storage_partition.h" 23 #include "content/browser/shared_worker/worker_storage_partition.h"
24 #include "content/common/message_port_messages.h" 24 #include "content/common/message_port_messages.h"
25 #include "content/common/view_messages.h" 25 #include "content/common/view_messages.h"
26 #include "content/common/worker_messages.h" 26 #include "content/common/worker_messages.h"
27 #include "content/common/worker_use_counter.h"
27 #include "content/public/browser/storage_partition.h" 28 #include "content/public/browser/storage_partition.h"
28 #include "content/public/test/test_browser_context.h" 29 #include "content/public/test/test_browser_context.h"
29 #include "content/public/test/test_browser_thread_bundle.h" 30 #include "content/public/test/test_browser_thread_bundle.h"
30 #include "content/public/test/test_utils.h" 31 #include "content/public/test/test_utils.h"
31 #include "ipc/ipc_sync_message.h" 32 #include "ipc/ipc_sync_message.h"
32 #include "testing/gtest/include/gtest/gtest.h" 33 #include "testing/gtest/include/gtest/gtest.h"
33 34
34 namespace content { 35 namespace content {
35 36
36 class SharedWorkerServiceImplTest : public testing::Test { 37 class SharedWorkerServiceImplTest : public testing::Test {
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 *route_id = std::get<0>(param).route_id; 345 *route_id = std::get<0>(param).route_id;
345 } 346 }
346 347
347 void CheckViewMsgWorkerCreated(MockRendererProcessHost* renderer_host, 348 void CheckViewMsgWorkerCreated(MockRendererProcessHost* renderer_host,
348 MockSharedWorkerConnector* connector) { 349 MockSharedWorkerConnector* connector) {
349 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage()); 350 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage());
350 EXPECT_EQ(ViewMsg_WorkerCreated::ID, msg->type()); 351 EXPECT_EQ(ViewMsg_WorkerCreated::ID, msg->type());
351 EXPECT_EQ(connector->route_id(), msg->routing_id()); 352 EXPECT_EQ(connector->route_id(), msg->routing_id());
352 } 353 }
353 354
355 void CheckViewMsgCountFeature(MockRendererProcessHost* renderer_host,
356 MockSharedWorkerConnector* connector,
357 uint32_t expected_feature) {
358 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage());
359 EXPECT_EQ(ViewMsg_CountFeatureOnSharedWorker::ID, msg->type());
360 EXPECT_EQ(connector->route_id(), msg->routing_id());
361 ViewMsg_CountFeatureOnSharedWorker::Param params;
362 EXPECT_TRUE(ViewMsg_CountFeatureOnSharedWorker::Read(msg.get(), &params));
363 uint32_t feature = std::get<0>(params);
364 EXPECT_EQ(expected_feature, feature);
365 }
366
354 void CheckMessagePortMsgMessagesQueued(MockRendererProcessHost* renderer_host, 367 void CheckMessagePortMsgMessagesQueued(MockRendererProcessHost* renderer_host,
355 MockSharedWorkerConnector* connector) { 368 MockSharedWorkerConnector* connector) {
356 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage()); 369 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage());
357 EXPECT_EQ(MessagePortMsg_MessagesQueued::ID, msg->type()); 370 EXPECT_EQ(MessagePortMsg_MessagesQueued::ID, msg->type());
358 EXPECT_EQ(connector->temporary_remote_port_route_id(), msg->routing_id()); 371 EXPECT_EQ(connector->temporary_remote_port_route_id(), msg->routing_id());
359 } 372 }
360 373
361 void CheckWorkerMsgConnect(MockRendererProcessHost* renderer_host, 374 void CheckWorkerMsgConnect(MockRendererProcessHost* renderer_host,
362 int expected_msg_route_id, 375 int expected_msg_route_id,
363 int expected_sent_message_port_id, 376 int expected_sent_message_port_id,
(...skipping 14 matching lines...) Expand all
378 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage()); 391 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage());
379 EXPECT_EQ(MessagePortMsg_Message::ID, msg->type()); 392 EXPECT_EQ(MessagePortMsg_Message::ID, msg->type());
380 EXPECT_EQ(expected_msg_route_id, msg->routing_id()); 393 EXPECT_EQ(expected_msg_route_id, msg->routing_id());
381 MessagePortMsg_Message::Param params; 394 MessagePortMsg_Message::Param params;
382 EXPECT_TRUE(MessagePortMsg_Message::Read(msg.get(), &params)); 395 EXPECT_TRUE(MessagePortMsg_Message::Read(msg.get(), &params));
383 base::string16 data = std::get<0>(params); 396 base::string16 data = std::get<0>(params);
384 EXPECT_EQ(base::ASCIIToUTF16(expected_data), data); 397 EXPECT_EQ(base::ASCIIToUTF16(expected_data), data);
385 } 398 }
386 399
387 void CheckViewMsgWorkerConnected(MockRendererProcessHost* renderer_host, 400 void CheckViewMsgWorkerConnected(MockRendererProcessHost* renderer_host,
388 MockSharedWorkerConnector* connector) { 401 MockSharedWorkerConnector* connector,
402 std::vector<uint32_t> expected_features) {
389 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage()); 403 std::unique_ptr<IPC::Message> msg(renderer_host->PopMessage());
390 EXPECT_EQ(ViewMsg_WorkerConnected::ID, msg->type()); 404 EXPECT_EQ(ViewMsg_WorkerConnected::ID, msg->type());
391 EXPECT_EQ(connector->route_id(), msg->routing_id()); 405 EXPECT_EQ(connector->route_id(), msg->routing_id());
406 ViewMsg_WorkerConnected::Param params;
407 EXPECT_TRUE(ViewMsg_WorkerConnected::Read(msg.get(), &params));
408 std::vector<char> dumped = std::get<0>(params);
409 WorkerUseCounter counter(dumped);
410 for (uint32_t feature : expected_features)
411 EXPECT_TRUE(counter.IsCounted(feature));
392 } 412 }
393 413
394 } // namespace 414 } // namespace
395 415
396 TEST_F(SharedWorkerServiceImplTest, BasicTest) { 416 TEST_F(SharedWorkerServiceImplTest, BasicTest) {
397 std::unique_ptr<MockRendererProcessHost> renderer_host( 417 std::unique_ptr<MockRendererProcessHost> renderer_host(
398 new MockRendererProcessHost(kProcessIDs[0], 418 new MockRendererProcessHost(kProcessIDs[0],
399 browser_context_->GetResourceContext(), 419 browser_context_->GetResourceContext(),
400 *partition_.get())); 420 *partition_.get()));
401 std::unique_ptr<MockSharedWorkerConnector> connector( 421 std::unique_ptr<MockSharedWorkerConnector> connector(
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 new WorkerHostMsg_WorkerScriptLoaded(worker_route_id))); 478 new WorkerHostMsg_WorkerScriptLoaded(worker_route_id)));
459 EXPECT_EQ(0U, renderer_host->QueuedMessageCount()); 479 EXPECT_EQ(0U, renderer_host->QueuedMessageCount());
460 480
461 // SharedWorker sends WorkerHostMsg_WorkerConnected in 481 // SharedWorker sends WorkerHostMsg_WorkerConnected in
462 // EmbeddedSharedWorkerStub::workerScriptLoaded(). 482 // EmbeddedSharedWorkerStub::workerScriptLoaded().
463 EXPECT_TRUE( 483 EXPECT_TRUE(
464 renderer_host->OnMessageReceived(new WorkerHostMsg_WorkerConnected( 484 renderer_host->OnMessageReceived(new WorkerHostMsg_WorkerConnected(
465 connector->remote_port_id(), worker_route_id))); 485 connector->remote_port_id(), worker_route_id)));
466 EXPECT_EQ(1U, renderer_host->QueuedMessageCount()); 486 EXPECT_EQ(1U, renderer_host->QueuedMessageCount());
467 // ViewMsg_WorkerConnected should be sent to SharedWorkerConnector side. 487 // ViewMsg_WorkerConnected should be sent to SharedWorkerConnector side.
468 CheckViewMsgWorkerConnected(renderer_host.get(), connector.get()); 488 CheckViewMsgWorkerConnected(renderer_host.get(), connector.get(),
489 std::vector<uint32_t>());
469 490
470 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, 491 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage,
471 // SharedWorker side shuold receive MessagePortMsg_Message. 492 // SharedWorker side shuold receive MessagePortMsg_Message.
472 connector->SendPostMessage("test1"); 493 connector->SendPostMessage("test1");
473 EXPECT_EQ(1U, renderer_host->QueuedMessageCount()); 494 EXPECT_EQ(1U, renderer_host->QueuedMessageCount());
474 CheckMessagePortMsgMessage( 495 CheckMessagePortMsgMessage(
475 renderer_host.get(), worker_msg_port_route_id, "test1"); 496 renderer_host.get(), worker_msg_port_route_id, "test1");
476 497
477 // When SharedWorker side sends MessagePortHostMsg_PostMessage, 498 // When SharedWorker side sends MessagePortHostMsg_PostMessage,
478 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. 499 // SharedWorkerConnector side shuold receive MessagePortMsg_Message.
479 const std::vector<int> empty_ports; 500 const std::vector<int> empty_ports;
480 EXPECT_TRUE( 501 EXPECT_TRUE(
481 renderer_host->OnMessageReceived(new MessagePortHostMsg_PostMessage( 502 renderer_host->OnMessageReceived(new MessagePortHostMsg_PostMessage(
482 connector->remote_port_id(), 503 connector->remote_port_id(),
483 base::ASCIIToUTF16("test2"), empty_ports))); 504 base::ASCIIToUTF16("test2"), empty_ports)));
484 EXPECT_EQ(1U, renderer_host->QueuedMessageCount()); 505 EXPECT_EQ(1U, renderer_host->QueuedMessageCount());
485 CheckMessagePortMsgMessage( 506 CheckMessagePortMsgMessage(
486 renderer_host.get(), connector->local_port_route_id(), "test2"); 507 renderer_host.get(), connector->local_port_route_id(), "test2");
487 508
509 // SharedWorker sends WorkerHostMsg_CountFeature in
510 // EmbeddedSharedWorkerStub::CountFeature().
511 uint32_t feature1 = 124;
512 EXPECT_TRUE(renderer_host->OnMessageReceived(
513 new WorkerHostMsg_CountFeature(worker_route_id, feature1)));
514 EXPECT_EQ(1U, renderer_host->QueuedMessageCount());
515 // ViewMsg_CountFeature should be sent to SharedWorkerConnector side.
516 CheckViewMsgCountFeature(renderer_host.get(), connector.get(), feature1);
517 // A message should be sent only one time per feature.
518 EXPECT_TRUE(renderer_host->OnMessageReceived(
519 new WorkerHostMsg_CountFeature(worker_route_id, feature1)));
520 EXPECT_EQ(0U, renderer_host->QueuedMessageCount());
521
522 // SharedWorker sends WorkerHostMsg_CountFeature in
523 // EmbeddedSharedWorkerStub::CountFeature() for another feature use.
524 uint32_t feature2 = 901;
525 EXPECT_TRUE(renderer_host->OnMessageReceived(
526 new WorkerHostMsg_CountFeature(worker_route_id, feature2)));
527 EXPECT_EQ(1U, renderer_host->QueuedMessageCount());
528 // ViewMsg_CountFeature should be sent to SharedWorkerConnector side.
529 CheckViewMsgCountFeature(renderer_host.get(), connector.get(), feature2);
530
488 // UpdateWorkerDependency should not be called. 531 // UpdateWorkerDependency should not be called.
489 EXPECT_EQ(0, s_update_worker_dependency_call_count_); 532 EXPECT_EQ(0, s_update_worker_dependency_call_count_);
490 } 533 }
491 534
492 TEST_F(SharedWorkerServiceImplTest, TwoRendererTest) { 535 TEST_F(SharedWorkerServiceImplTest, TwoRendererTest) {
493 // The first renderer host. 536 // The first renderer host.
494 std::unique_ptr<MockRendererProcessHost> renderer_host0( 537 std::unique_ptr<MockRendererProcessHost> renderer_host0(
495 new MockRendererProcessHost(kProcessIDs[0], 538 new MockRendererProcessHost(kProcessIDs[0],
496 browser_context_->GetResourceContext(), 539 browser_context_->GetResourceContext(),
497 *partition_.get())); 540 *partition_.get()));
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 new WorkerHostMsg_WorkerScriptLoaded(worker_route_id))); 598 new WorkerHostMsg_WorkerScriptLoaded(worker_route_id)));
556 EXPECT_EQ(0U, renderer_host0->QueuedMessageCount()); 599 EXPECT_EQ(0U, renderer_host0->QueuedMessageCount());
557 600
558 // SharedWorker sends WorkerHostMsg_WorkerConnected in 601 // SharedWorker sends WorkerHostMsg_WorkerConnected in
559 // EmbeddedSharedWorkerStub::workerScriptLoaded(). 602 // EmbeddedSharedWorkerStub::workerScriptLoaded().
560 EXPECT_TRUE( 603 EXPECT_TRUE(
561 renderer_host0->OnMessageReceived(new WorkerHostMsg_WorkerConnected( 604 renderer_host0->OnMessageReceived(new WorkerHostMsg_WorkerConnected(
562 connector0->remote_port_id(), worker_route_id))); 605 connector0->remote_port_id(), worker_route_id)));
563 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); 606 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount());
564 // ViewMsg_WorkerConnected should be sent to SharedWorkerConnector side. 607 // ViewMsg_WorkerConnected should be sent to SharedWorkerConnector side.
565 CheckViewMsgWorkerConnected(renderer_host0.get(), connector0.get()); 608 CheckViewMsgWorkerConnected(renderer_host0.get(), connector0.get(),
609 std::vector<uint32_t>());
566 610
567 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, 611 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage,
568 // SharedWorker side shuold receive MessagePortMsg_Message. 612 // SharedWorker side shuold receive MessagePortMsg_Message.
569 connector0->SendPostMessage("test1"); 613 connector0->SendPostMessage("test1");
570 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); 614 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount());
571 CheckMessagePortMsgMessage( 615 CheckMessagePortMsgMessage(
572 renderer_host0.get(), worker_msg_port_route_id1, "test1"); 616 renderer_host0.get(), worker_msg_port_route_id1, "test1");
573 617
574 // When SharedWorker side sends MessagePortHostMsg_PostMessage, 618 // When SharedWorker side sends MessagePortHostMsg_PostMessage,
575 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. 619 // SharedWorkerConnector side shuold receive MessagePortMsg_Message.
576 const std::vector<int> empty_ports; 620 const std::vector<int> empty_ports;
577 EXPECT_TRUE( 621 EXPECT_TRUE(
578 renderer_host0->OnMessageReceived(new MessagePortHostMsg_PostMessage( 622 renderer_host0->OnMessageReceived(new MessagePortHostMsg_PostMessage(
579 connector0->remote_port_id(), 623 connector0->remote_port_id(),
580 base::ASCIIToUTF16("test2"), empty_ports))); 624 base::ASCIIToUTF16("test2"), empty_ports)));
581 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); 625 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount());
582 CheckMessagePortMsgMessage( 626 CheckMessagePortMsgMessage(
583 renderer_host0.get(), connector0->local_port_route_id(), "test2"); 627 renderer_host0.get(), connector0->local_port_route_id(), "test2");
584 628
629 // SharedWorker sends WorkerHostMsg_CountFeature in
630 // EmbeddedSharedWorkerStub::CountFeature().
631 uint32_t feature1 = 124;
632 EXPECT_TRUE(renderer_host0->OnMessageReceived(
633 new WorkerHostMsg_CountFeature(worker_route_id, feature1)));
634 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount());
635 // ViewMsg_CountFeature should be sent to SharedWorkerConnector side.
636 CheckViewMsgCountFeature(renderer_host0.get(), connector0.get(), feature1);
637 uint32_t feature2 = 901;
638 EXPECT_TRUE(renderer_host0->OnMessageReceived(
639 new WorkerHostMsg_CountFeature(worker_route_id, feature2)));
640 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount());
641 // ViewMsg_CountFeature should be sent to SharedWorkerConnector side.
642 CheckViewMsgCountFeature(renderer_host0.get(), connector0.get(), feature2);
643
585 // The second renderer host. 644 // The second renderer host.
586 std::unique_ptr<MockRendererProcessHost> renderer_host1( 645 std::unique_ptr<MockRendererProcessHost> renderer_host1(
587 new MockRendererProcessHost(kProcessIDs[1], 646 new MockRendererProcessHost(kProcessIDs[1],
588 browser_context_->GetResourceContext(), 647 browser_context_->GetResourceContext(),
589 *partition_.get())); 648 *partition_.get()));
590 std::unique_ptr<MockSharedWorkerConnector> connector1( 649 std::unique_ptr<MockSharedWorkerConnector> connector1(
591 new MockSharedWorkerConnector(renderer_host1.get())); 650 new MockSharedWorkerConnector(renderer_host1.get()));
592 int worker_msg_port_route_id2; 651 int worker_msg_port_route_id2;
593 652
594 // UpdateWorkerDependency should not be called yet. 653 // UpdateWorkerDependency should not be called yet.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 connector1->SendSendQueuedMessages(empty_messages); 694 connector1->SendSendQueuedMessages(empty_messages);
636 EXPECT_EQ(0U, renderer_host1->QueuedMessageCount()); 695 EXPECT_EQ(0U, renderer_host1->QueuedMessageCount());
637 696
638 // SharedWorker sends WorkerHostMsg_WorkerConnected in 697 // SharedWorker sends WorkerHostMsg_WorkerConnected in
639 // EmbeddedSharedWorkerStub::OnConnect(). 698 // EmbeddedSharedWorkerStub::OnConnect().
640 EXPECT_TRUE( 699 EXPECT_TRUE(
641 renderer_host0->OnMessageReceived(new WorkerHostMsg_WorkerConnected( 700 renderer_host0->OnMessageReceived(new WorkerHostMsg_WorkerConnected(
642 connector1->remote_port_id(), worker_route_id))); 701 connector1->remote_port_id(), worker_route_id)));
643 EXPECT_EQ(1U, renderer_host1->QueuedMessageCount()); 702 EXPECT_EQ(1U, renderer_host1->QueuedMessageCount());
644 // ViewMsg_WorkerConnected should be sent to SharedWorkerConnector side. 703 // ViewMsg_WorkerConnected should be sent to SharedWorkerConnector side.
645 CheckViewMsgWorkerConnected(renderer_host1.get(), connector1.get()); 704 CheckViewMsgWorkerConnected(renderer_host1.get(), connector1.get(),
705 {feature1, feature2});
646 706
647 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage, 707 // When SharedWorkerConnector side sends MessagePortHostMsg_PostMessage,
648 // SharedWorker side shuold receive MessagePortMsg_Message. 708 // SharedWorker side shuold receive MessagePortMsg_Message.
649 connector1->SendPostMessage("test3"); 709 connector1->SendPostMessage("test3");
650 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount()); 710 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount());
651 CheckMessagePortMsgMessage( 711 CheckMessagePortMsgMessage(
652 renderer_host0.get(), worker_msg_port_route_id2, "test3"); 712 renderer_host0.get(), worker_msg_port_route_id2, "test3");
653 713
654 // When SharedWorker side sends MessagePortHostMsg_PostMessage, 714 // When SharedWorker side sends MessagePortHostMsg_PostMessage,
655 // SharedWorkerConnector side shuold receive MessagePortMsg_Message. 715 // SharedWorkerConnector side shuold receive MessagePortMsg_Message.
656 EXPECT_TRUE( 716 EXPECT_TRUE(
657 renderer_host0->OnMessageReceived(new MessagePortHostMsg_PostMessage( 717 renderer_host0->OnMessageReceived(new MessagePortHostMsg_PostMessage(
658 connector1->remote_port_id(), 718 connector1->remote_port_id(),
659 base::ASCIIToUTF16("test4"), empty_ports))); 719 base::ASCIIToUTF16("test4"), empty_ports)));
660 EXPECT_EQ(1U, renderer_host1->QueuedMessageCount()); 720 EXPECT_EQ(1U, renderer_host1->QueuedMessageCount());
661 CheckMessagePortMsgMessage( 721 CheckMessagePortMsgMessage(
662 renderer_host1.get(), connector1->local_port_route_id(), "test4"); 722 renderer_host1.get(), connector1->local_port_route_id(), "test4");
663 723
724 // SharedWorker sends WorkerHostMsg_CountFeature in
725 // EmbeddedSharedWorkerStub::CountFeature(). These features are already
726 // counted in the browser-side, so messages should not be sent to
727 // SharedWorkerConnectors.
728 EXPECT_TRUE(renderer_host0->OnMessageReceived(
729 new WorkerHostMsg_CountFeature(worker_route_id, feature1)));
730 EXPECT_EQ(0U, renderer_host0->QueuedMessageCount());
731 EXPECT_EQ(0U, renderer_host1->QueuedMessageCount());
732
733 // SharedWorker sends WorkerHostMsg_CountFeature in
734 // EmbeddedSharedWorkerStub::CountFeature() for another feature use.
735 uint32_t feature3 = 1019;
736 EXPECT_TRUE(renderer_host0->OnMessageReceived(
737 new WorkerHostMsg_CountFeature(worker_route_id, feature3)));
738 // ViewMsg_CountFeature should be sent to all SharedWorkerConnectors
739 // connecting to this worker.
740 EXPECT_EQ(1U, renderer_host0->QueuedMessageCount());
741 CheckViewMsgCountFeature(renderer_host0.get(), connector0.get(), feature3);
742 EXPECT_EQ(1U, renderer_host1->QueuedMessageCount());
743 CheckViewMsgCountFeature(renderer_host1.get(), connector1.get(), feature3);
744
664 EXPECT_EQ(1, s_update_worker_dependency_call_count_); 745 EXPECT_EQ(1, s_update_worker_dependency_call_count_);
665 renderer_host1.reset(); 746 renderer_host1.reset();
666 // UpdateWorkerDependency should be called. 747 // UpdateWorkerDependency should be called.
667 EXPECT_EQ(2, s_update_worker_dependency_call_count_); 748 EXPECT_EQ(2, s_update_worker_dependency_call_count_);
668 EXPECT_EQ(0U, s_worker_dependency_added_ids_.size()); 749 EXPECT_EQ(0U, s_worker_dependency_added_ids_.size());
669 EXPECT_EQ(1U, s_worker_dependency_removed_ids_.size()); 750 EXPECT_EQ(1U, s_worker_dependency_removed_ids_.size());
670 EXPECT_EQ(kProcessIDs[0], s_worker_dependency_removed_ids_[0]); 751 EXPECT_EQ(kProcessIDs[0], s_worker_dependency_removed_ids_[0]);
671 } 752 }
672 753
673 TEST_F(SharedWorkerServiceImplTest, CreateWorkerTest) { 754 TEST_F(SharedWorkerServiceImplTest, CreateWorkerTest) {
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 kDocumentIDs[2], 1058 kDocumentIDs[2],
978 kRenderFrameRouteIDs[2]); 1059 kRenderFrameRouteIDs[2]);
979 EXPECT_NE(MSG_ROUTING_NONE, connector2->route_id()); 1060 EXPECT_NE(MSG_ROUTING_NONE, connector2->route_id());
980 EXPECT_EQ(0U, renderer_host2->QueuedMessageCount()); 1061 EXPECT_EQ(0U, renderer_host2->QueuedMessageCount());
981 RunAllPendingInMessageLoop(); 1062 RunAllPendingInMessageLoop();
982 EXPECT_EQ(1U, renderer_host2->QueuedMessageCount()); 1063 EXPECT_EQ(1U, renderer_host2->QueuedMessageCount());
983 CheckViewMsgWorkerCreated(renderer_host2.get(), connector2.get()); 1064 CheckViewMsgWorkerCreated(renderer_host2.get(), connector2.get());
984 } 1065 }
985 1066
986 } // namespace content 1067 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698