| Index: content/browser/background_sync/background_sync_manager_unittest.cc
|
| diff --git a/content/browser/background_sync/background_sync_manager_unittest.cc b/content/browser/background_sync/background_sync_manager_unittest.cc
|
| index 138f205b404d27c2232d52bd085e3fc99f8c3cff..63d4d3b0a3c026537524cc72ea82767d861e3f0a 100644
|
| --- a/content/browser/background_sync/background_sync_manager_unittest.cc
|
| +++ b/content/browser/background_sync/background_sync_manager_unittest.cc
|
| @@ -39,8 +39,6 @@ const char kPattern1[] = "https://example.com/a";
|
| const char kPattern2[] = "https://example.com/b";
|
| const char kScript1[] = "https://example.com/a/script.js";
|
| const char kScript2[] = "https://example.com/b/script.js";
|
| -const int kProviderId1 = 1;
|
| -const int kProviderId2 = 2;
|
|
|
| void RegisterServiceWorkerCallback(bool* called,
|
| int64* store_registration_id,
|
| @@ -201,6 +199,10 @@ class TestBackgroundSyncManager : public BackgroundSyncManager {
|
|
|
| BackgroundSyncEventLastChance last_chance() const { return last_chance_; }
|
|
|
| + void set_has_main_frame_provider_host(bool value) {
|
| + has_main_frame_provider_host_ = value;
|
| + }
|
| +
|
| protected:
|
| void StoreDataInBackend(
|
| int64 sw_registration_id,
|
| @@ -261,9 +263,15 @@ class TestBackgroundSyncManager : public BackgroundSyncManager {
|
| delayed_task_delta_ = delay;
|
| }
|
|
|
| + void HasMainFrameProviderHost(const GURL& origin,
|
| + const BoolCallback& callback) override {
|
| + callback.Run(has_main_frame_provider_host_);
|
| + }
|
| +
|
| private:
|
| bool corrupt_backend_ = false;
|
| bool delay_backend_ = false;
|
| + bool has_main_frame_provider_host_ = true;
|
| BackgroundSyncEventLastChance last_chance_ =
|
| BACKGROUND_SYNC_EVENT_LAST_CHANCE_IS_NOT_LAST_CHANCE;
|
| base::Closure continuation_;
|
| @@ -348,24 +356,6 @@ class BackgroundSyncManagerTest : public testing::Test {
|
| EXPECT_TRUE(called_1);
|
| EXPECT_TRUE(called_2);
|
|
|
| - // Register window clients for the service workers
|
| - ServiceWorkerProviderHost* host_1 = new ServiceWorkerProviderHost(
|
| - helper_->mock_render_process_id(),
|
| - MSG_ROUTING_NONE /* render_frame_id */, kProviderId1,
|
| - SERVICE_WORKER_PROVIDER_FOR_WINDOW, helper_->context()->AsWeakPtr(),
|
| - nullptr);
|
| - host_1->SetDocumentUrl(GURL(kPattern1));
|
| -
|
| - ServiceWorkerProviderHost* host_2 = new ServiceWorkerProviderHost(
|
| - helper_->mock_render_process_id(),
|
| - MSG_ROUTING_NONE /* render_frame_id */, kProviderId2,
|
| - SERVICE_WORKER_PROVIDER_FOR_WINDOW, helper_->context()->AsWeakPtr(),
|
| - nullptr);
|
| - host_2->SetDocumentUrl(GURL(kPattern2));
|
| -
|
| - helper_->context()->AddProviderHost(make_scoped_ptr(host_1));
|
| - helper_->context()->AddProviderHost(make_scoped_ptr(host_2));
|
| -
|
| // Hang onto the registrations as they need to be "live" when
|
| // calling BackgroundSyncManager::Register.
|
| helper_->context_wrapper()->FindReadyRegistrationForId(
|
| @@ -380,11 +370,6 @@ class BackgroundSyncManagerTest : public testing::Test {
|
| EXPECT_TRUE(sw_registration_2_);
|
| }
|
|
|
| - void RemoveWindowClients() {
|
| - helper_->context()->RemoveAllProviderHostsForProcess(
|
| - helper_->mock_render_process_id());
|
| - }
|
| -
|
| void SetNetwork(net::NetworkChangeNotifier::ConnectionType connection_type) {
|
| net::NetworkChangeNotifier::NotifyObserversOfNetworkChangeForTests(
|
| connection_type);
|
| @@ -472,7 +457,6 @@ class BackgroundSyncManagerTest : public testing::Test {
|
|
|
| void DeleteBackgroundSyncManager() {
|
| ClearRegistrationHandles();
|
| - RemoveWindowClients();
|
| background_sync_manager_.reset();
|
| test_background_sync_manager_ = nullptr;
|
| test_clock_ = nullptr;
|
| @@ -646,7 +630,6 @@ class BackgroundSyncManagerTest : public testing::Test {
|
|
|
| void DeleteServiceWorkerAndStartOver() {
|
| helper_->context()->ScheduleDeleteAndStartOver();
|
| - RemoveWindowClients();
|
| base::RunLoop().RunUntilIdle();
|
| }
|
|
|
| @@ -1703,37 +1686,28 @@ TEST_F(BackgroundSyncManagerTest, KillManagerMidSync) {
|
| EXPECT_EQ(2, sync_events_called_);
|
| }
|
|
|
| -TEST_F(BackgroundSyncManagerTest, RegisterWithClientWindowForWrongOrigin) {
|
| - RemoveWindowClients();
|
| - ServiceWorkerProviderHost* host = new ServiceWorkerProviderHost(
|
| - helper_->mock_render_process_id(), MSG_ROUTING_NONE /* render_frame_id */,
|
| - kProviderId1, SERVICE_WORKER_PROVIDER_FOR_WINDOW,
|
| - helper_->context()->AsWeakPtr(), nullptr);
|
| - host->SetDocumentUrl(GURL("http://example.com:9999"));
|
| - helper_->context()->AddProviderHost(make_scoped_ptr(host));
|
| +TEST_F(BackgroundSyncManagerTest, RegisterFromServiceWorkerWithoutMainFrame) {
|
| + test_background_sync_manager_->set_has_main_frame_provider_host(false);
|
| EXPECT_FALSE(Register(sync_options_1_));
|
| - EXPECT_TRUE(RegisterFromDocumentWithServiceWorkerId(sw_registration_id_1_,
|
| - sync_options_1_));
|
| }
|
|
|
| -TEST_F(BackgroundSyncManagerTest, RegisterWithNoClientWindows) {
|
| - RemoveWindowClients();
|
| - EXPECT_FALSE(Register(sync_options_1_));
|
| +TEST_F(BackgroundSyncManagerTest,
|
| + RegisterFromDocumentWithoutMainFrameProviderHost) {
|
| + test_background_sync_manager_->set_has_main_frame_provider_host(false);
|
| EXPECT_TRUE(RegisterFromDocumentWithServiceWorkerId(sw_registration_id_1_,
|
| sync_options_1_));
|
| }
|
|
|
| -TEST_F(BackgroundSyncManagerTest, RegisterExistingWithNoClientWindows) {
|
| +TEST_F(BackgroundSyncManagerTest,
|
| + RegisterExistingFromServiceWorkerWithoutMainFrame) {
|
| EXPECT_TRUE(Register(sync_options_1_));
|
| - RemoveWindowClients();
|
| + test_background_sync_manager_->set_has_main_frame_provider_host(false);
|
| EXPECT_FALSE(Register(sync_options_1_));
|
| - EXPECT_TRUE(RegisterFromDocumentWithServiceWorkerId(sw_registration_id_1_,
|
| - sync_options_1_));
|
| }
|
|
|
| -TEST_F(BackgroundSyncManagerTest, UnregisterSucceedsWithoutWindow) {
|
| +TEST_F(BackgroundSyncManagerTest, UnregisterSucceedsWithoutMainFrame) {
|
| EXPECT_TRUE(Register(sync_options_1_));
|
| - RemoveWindowClients();
|
| + test_background_sync_manager_->set_has_main_frame_provider_host(false);
|
| EXPECT_TRUE(Unregister(callback_registration_handle_.get()));
|
| EXPECT_FALSE(GetRegistration(sync_options_1_));
|
| }
|
|
|