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

Side by Side Diff: content/browser/service_worker/service_worker_dispatcher_host_unittest.cc

Issue 1149383004: [3/5 chromium] Shows the clients which are controlled by ServiceWorker in DevTools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/service_worker/service_worker_dispatcher_host.h" 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "content/browser/browser_thread_impl.h" 10 #include "content/browser/browser_thread_impl.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 GURL document_url, 124 GURL document_url,
125 uint32 expected_message) { 125 uint32 expected_message) {
126 SendGetRegistration(provider_id, document_url); 126 SendGetRegistration(provider_id, document_url);
127 EXPECT_TRUE(dispatcher_host_->ipc_sink()->GetUniqueMessageMatching( 127 EXPECT_TRUE(dispatcher_host_->ipc_sink()->GetUniqueMessageMatching(
128 expected_message)); 128 expected_message));
129 dispatcher_host_->ipc_sink()->ClearMessages(); 129 dispatcher_host_->ipc_sink()->ClearMessages();
130 } 130 }
131 131
132 ServiceWorkerProviderHost* CreateServiceWorkerProviderHost(int provider_id) { 132 ServiceWorkerProviderHost* CreateServiceWorkerProviderHost(int provider_id) {
133 return new ServiceWorkerProviderHost( 133 return new ServiceWorkerProviderHost(
134 kRenderProcessId, kRenderFrameId, provider_id, 134 kRenderProcessId, kRenderFrameId,
135 SERVICE_WORKER_PROVIDER_FOR_WINDOW, context()->AsWeakPtr(), 135 MSG_ROUTING_NONE /* shared_worker_route_id */, provider_id,
136 dispatcher_host_.get()); 136 context()->AsWeakPtr(), dispatcher_host_.get());
137 } 137 }
138 138
139 139
140 TestBrowserThreadBundle browser_thread_bundle_; 140 TestBrowserThreadBundle browser_thread_bundle_;
141 content::MockResourceContext resource_context_; 141 content::MockResourceContext resource_context_;
142 scoped_ptr<EmbeddedWorkerTestHelper> helper_; 142 scoped_ptr<EmbeddedWorkerTestHelper> helper_;
143 scoped_refptr<TestingServiceWorkerDispatcherHost> dispatcher_host_; 143 scoped_refptr<TestingServiceWorkerDispatcherHost> dispatcher_host_;
144 }; 144 };
145 145
146 class ServiceWorkerTestContentBrowserClient : public TestContentBrowserClient { 146 class ServiceWorkerTestContentBrowserClient : public TestContentBrowserClient {
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 base::RunLoop().RunUntilIdle(); 400 base::RunLoop().RunUntilIdle();
401 401
402 Register(-1, 402 Register(-1,
403 GURL(), 403 GURL(),
404 GURL(), 404 GURL(),
405 ServiceWorkerMsg_ServiceWorkerRegistrationError::ID); 405 ServiceWorkerMsg_ServiceWorkerRegistrationError::ID);
406 } 406 }
407 407
408 TEST_F(ServiceWorkerDispatcherHostTest, ProviderCreatedAndDestroyed) { 408 TEST_F(ServiceWorkerDispatcherHostTest, ProviderCreatedAndDestroyed) {
409 const int kProviderId = 1001; // Test with a value != kRenderProcessId. 409 const int kProviderId = 1001; // Test with a value != kRenderProcessId.
410 const int kRenderFrameId = 1;
410 411
411 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated( 412 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated(
412 kProviderId, MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_WINDOW)); 413 kProviderId, kRenderFrameId, MSG_ROUTING_NONE));
413 EXPECT_TRUE(context()->GetProviderHost(kRenderProcessId, kProviderId)); 414 EXPECT_TRUE(context()->GetProviderHost(kRenderProcessId, kProviderId));
414 415
415 // Two with the same ID should be seen as a bad message. 416 // Two with the same ID should be seen as a bad message.
416 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated( 417 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated(
417 kProviderId, MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_WINDOW)); 418 kProviderId, kRenderFrameId, MSG_ROUTING_NONE));
418 EXPECT_EQ(1, dispatcher_host_->bad_messages_received_count_); 419 EXPECT_EQ(1, dispatcher_host_->bad_messages_received_count_);
419 420
420 dispatcher_host_->OnMessageReceived( 421 dispatcher_host_->OnMessageReceived(
421 ServiceWorkerHostMsg_ProviderDestroyed(kProviderId)); 422 ServiceWorkerHostMsg_ProviderDestroyed(kProviderId));
422 EXPECT_FALSE(context()->GetProviderHost(kRenderProcessId, kProviderId)); 423 EXPECT_FALSE(context()->GetProviderHost(kRenderProcessId, kProviderId));
423 424
424 // Destroying an ID that does not exist warrants a bad message. 425 // Destroying an ID that does not exist warrants a bad message.
425 dispatcher_host_->OnMessageReceived( 426 dispatcher_host_->OnMessageReceived(
426 ServiceWorkerHostMsg_ProviderDestroyed(kProviderId)); 427 ServiceWorkerHostMsg_ProviderDestroyed(kProviderId));
427 EXPECT_EQ(2, dispatcher_host_->bad_messages_received_count_); 428 EXPECT_EQ(2, dispatcher_host_->bad_messages_received_count_);
428 429
429 // Deletion of the dispatcher_host should cause providers for that 430 // Deletion of the dispatcher_host should cause providers for that
430 // process to get deleted as well. 431 // process to get deleted as well.
431 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated( 432 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated(
432 kProviderId, MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_WINDOW)); 433 kProviderId, kRenderFrameId, MSG_ROUTING_NONE));
433 EXPECT_TRUE(context()->GetProviderHost(kRenderProcessId, kProviderId)); 434 EXPECT_TRUE(context()->GetProviderHost(kRenderProcessId, kProviderId));
434 EXPECT_TRUE(dispatcher_host_->HasOneRef()); 435 EXPECT_TRUE(dispatcher_host_->HasOneRef());
435 dispatcher_host_ = NULL; 436 dispatcher_host_ = NULL;
436 EXPECT_FALSE(context()->GetProviderHost(kRenderProcessId, kProviderId)); 437 EXPECT_FALSE(context()->GetProviderHost(kRenderProcessId, kProviderId));
437 } 438 }
438 439
439 TEST_F(ServiceWorkerDispatcherHostTest, GetRegistration_SameOrigin) { 440 TEST_F(ServiceWorkerDispatcherHostTest, GetRegistration_SameOrigin) {
440 const int64 kProviderId = 99; // Dummy value 441 const int64 kProviderId = 99; // Dummy value
441 scoped_ptr<ServiceWorkerProviderHost> host( 442 scoped_ptr<ServiceWorkerProviderHost> host(
442 CreateServiceWorkerProviderHost(kProviderId)); 443 CreateServiceWorkerProviderHost(kProviderId));
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 base::RunLoop().RunUntilIdle(); 491 base::RunLoop().RunUntilIdle();
491 492
492 GetRegistration(-1, 493 GetRegistration(-1,
493 GURL(), 494 GURL(),
494 ServiceWorkerMsg_ServiceWorkerGetRegistrationError::ID); 495 ServiceWorkerMsg_ServiceWorkerGetRegistrationError::ID);
495 } 496 }
496 497
497 TEST_F(ServiceWorkerDispatcherHostTest, CleanupOnRendererCrash) { 498 TEST_F(ServiceWorkerDispatcherHostTest, CleanupOnRendererCrash) {
498 // Add a provider and worker. 499 // Add a provider and worker.
499 const int64 kProviderId = 99; // Dummy value 500 const int64 kProviderId = 99; // Dummy value
501 const int64 kRenderFrameId = 1; // Dummy value
500 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated( 502 dispatcher_host_->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated(
501 kProviderId, MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_WINDOW)); 503 kProviderId, kRenderFrameId, MSG_ROUTING_NONE));
502 504
503 GURL pattern = GURL("http://www.example.com/"); 505 GURL pattern = GURL("http://www.example.com/");
504 scoped_refptr<ServiceWorkerRegistration> registration( 506 scoped_refptr<ServiceWorkerRegistration> registration(
505 new ServiceWorkerRegistration(pattern, 507 new ServiceWorkerRegistration(pattern,
506 1L, 508 1L,
507 helper_->context()->AsWeakPtr())); 509 helper_->context()->AsWeakPtr()));
508 scoped_refptr<ServiceWorkerVersion> version( 510 scoped_refptr<ServiceWorkerVersion> version(
509 new ServiceWorkerVersion(registration.get(), 511 new ServiceWorkerVersion(registration.get(),
510 GURL("http://www.example.com/service_worker.js"), 512 GURL("http://www.example.com/service_worker.js"),
511 1L, 513 1L,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 scoped_refptr<TestingServiceWorkerDispatcherHost> new_dispatcher_host( 556 scoped_refptr<TestingServiceWorkerDispatcherHost> new_dispatcher_host(
555 new TestingServiceWorkerDispatcherHost(kRenderProcessId, 557 new TestingServiceWorkerDispatcherHost(kRenderProcessId,
556 context_wrapper(), 558 context_wrapper(),
557 &resource_context_, 559 &resource_context_,
558 helper_.get())); 560 helper_.get()));
559 561
560 // To show the new dispatcher can operate, simulate provider creation. Since 562 // To show the new dispatcher can operate, simulate provider creation. Since
561 // the old dispatcher cleaned up the old provider host, the new one won't 563 // the old dispatcher cleaned up the old provider host, the new one won't
562 // complain. 564 // complain.
563 new_dispatcher_host->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated( 565 new_dispatcher_host->OnMessageReceived(ServiceWorkerHostMsg_ProviderCreated(
564 kProviderId, MSG_ROUTING_NONE, SERVICE_WORKER_PROVIDER_FOR_WINDOW)); 566 kProviderId, kRenderFrameId, MSG_ROUTING_NONE));
565 EXPECT_EQ(0, new_dispatcher_host->bad_messages_received_count_); 567 EXPECT_EQ(0, new_dispatcher_host->bad_messages_received_count_);
566 } 568 }
567 569
568 } // namespace content 570 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698