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

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

Issue 1135743002: Check the size of ResourceRecords in ServiceWorkerDatabase::ReadRegistration() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DCHECK in ServiceWorkerStorage::ReturnFoundRegistration() Created 5 years, 7 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/callback.h" 6 #include "base/callback.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 839
840 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, StartNotFound) { 840 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, StartNotFound) {
841 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this, 841 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this,
842 "/service_worker/nonexistent.js")); 842 "/service_worker/nonexistent.js"));
843 843
844 // Start a worker for nonexistent URL. 844 // Start a worker for nonexistent URL.
845 StartWorker(SERVICE_WORKER_ERROR_NETWORK); 845 StartWorker(SERVICE_WORKER_ERROR_NETWORK);
846 } 846 }
847 847
848 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, ReadResourceFailure) { 848 IN_PROC_BROWSER_TEST_F(ServiceWorkerVersionBrowserTest, ReadResourceFailure) {
849 // Create and store a registration. 849 // Create a registration.
850 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this, 850 RunOnIOThread(base::Bind(&self::SetUpRegistrationOnIOThread, this,
851 "/service_worker/worker.js")); 851 "/service_worker/worker.js"));
852 version_->SetStatus(ServiceWorkerVersion::ACTIVATED); 852 version_->SetStatus(ServiceWorkerVersion::ACTIVATED);
853 StoreRegistration(version_->version_id(), SERVICE_WORKER_OK);
854 853
855 // Add a non-existent resource to the version. 854 // Add a non-existent resource to the version.
856 std::vector<ServiceWorkerDatabase::ResourceRecord> records; 855 std::vector<ServiceWorkerDatabase::ResourceRecord> records;
857 records.push_back( 856 records.push_back(
858 ServiceWorkerDatabase::ResourceRecord(30, version_->script_url(), 100)); 857 ServiceWorkerDatabase::ResourceRecord(30, version_->script_url(), 100));
859 version_->script_cache_map()->SetResources(records); 858 version_->script_cache_map()->SetResources(records);
860 859
860 // Store the registration.
861 StoreRegistration(version_->version_id(), SERVICE_WORKER_OK);
862
861 // Start the worker. We'll fail to read the resource. 863 // Start the worker. We'll fail to read the resource.
862 StartWorker(SERVICE_WORKER_ERROR_DISK_CACHE); 864 StartWorker(SERVICE_WORKER_ERROR_DISK_CACHE);
863 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version_->status()); 865 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version_->status());
864 866
865 // The registration should be deleted from storage since the broken worker was 867 // The registration should be deleted from storage since the broken worker was
866 // the stored one. 868 // the stored one.
867 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread, this, 869 RunOnIOThread(base::Bind(&self::RemoveLiveRegistrationOnIOThread, this,
868 registration_->id())); 870 registration_->id()));
869 FindRegistrationForId(registration_->id(), 871 FindRegistrationForId(registration_->id(),
870 registration_->pattern().GetOrigin(), 872 registration_->pattern().GetOrigin(),
(...skipping 19 matching lines...) Expand all
890 892
891 // Add a non-existent resource to the version. 893 // Add a non-existent resource to the version.
892 std::vector<ServiceWorkerDatabase::ResourceRecord> records; 894 std::vector<ServiceWorkerDatabase::ResourceRecord> records;
893 records.push_back( 895 records.push_back(
894 ServiceWorkerDatabase::ResourceRecord(30, version_->script_url(), 100)); 896 ServiceWorkerDatabase::ResourceRecord(30, version_->script_url(), 100));
895 version_->script_cache_map()->SetResources(records); 897 version_->script_cache_map()->SetResources(records);
896 898
897 // Make a waiting version and store it. 899 // Make a waiting version and store it.
898 RunOnIOThread(base::Bind(&self::AddWaitingWorkerOnIOThread, this, 900 RunOnIOThread(base::Bind(&self::AddWaitingWorkerOnIOThread, this,
899 "/service_worker/worker.js")); 901 "/service_worker/worker.js"));
902 registration_->waiting_version()->script_cache_map()->SetResources(records);
900 StoreRegistration(registration_->waiting_version()->version_id(), 903 StoreRegistration(registration_->waiting_version()->version_id(),
901 SERVICE_WORKER_OK); 904 SERVICE_WORKER_OK);
902 905
903 // Start the broken worker. We'll fail to read from disk and the worker should 906 // Start the broken worker. We'll fail to read from disk and the worker should
904 // be doomed. 907 // be doomed.
905 StopWorker(SERVICE_WORKER_OK); // in case it's already running 908 StopWorker(SERVICE_WORKER_OK); // in case it's already running
906 StartWorker(SERVICE_WORKER_ERROR_DISK_CACHE); 909 StartWorker(SERVICE_WORKER_ERROR_DISK_CACHE);
907 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version_->status()); 910 EXPECT_EQ(ServiceWorkerVersion::REDUNDANT, version_->status());
908 911
909 // The registration should still be in storage since the waiting worker was 912 // The registration should still be in storage since the waiting worker was
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
1476 ASSERT_EQ(SERVICE_WORKER_OK, status); 1479 ASSERT_EQ(SERVICE_WORKER_OK, status);
1477 // Stop the worker. 1480 // Stop the worker.
1478 StopWorker(SERVICE_WORKER_OK); 1481 StopWorker(SERVICE_WORKER_OK);
1479 // Restart the worker. 1482 // Restart the worker.
1480 StartWorker(SERVICE_WORKER_OK); 1483 StartWorker(SERVICE_WORKER_OK);
1481 // Stop the worker. 1484 // Stop the worker.
1482 StopWorker(SERVICE_WORKER_OK); 1485 StopWorker(SERVICE_WORKER_OK);
1483 } 1486 }
1484 1487
1485 } // namespace content 1488 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698