diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-04-05 14:08:31 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-04-11 07:46:53 +0000 |
commit | 6a4cabb866f66d4128a97cdc6d9d08ce074f1247 (patch) | |
tree | ab00f70a5e89278d6a0d16ff0c42578dc4d84a2d /chromium/content/browser/service_worker/service_worker_database.cc | |
parent | e733310db58160074f574c429d48f8308c0afe17 (diff) | |
download | qtwebengine-chromium-6a4cabb866f66d4128a97cdc6d9d08ce074f1247.tar.gz |
BASELINE: Update Chromium to 57.0.2987.144
Change-Id: I29db402ff696c71a04c4dbaec822c2e53efe0267
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'chromium/content/browser/service_worker/service_worker_database.cc')
-rw-r--r-- | chromium/content/browser/service_worker/service_worker_database.cc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/chromium/content/browser/service_worker/service_worker_database.cc b/chromium/content/browser/service_worker/service_worker_database.cc index e644d7fd902..e4ba933801d 100644 --- a/chromium/content/browser/service_worker/service_worker_database.cc +++ b/chromium/content/browser/service_worker/service_worker_database.cc @@ -733,6 +733,56 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::UpdateLastCheckTime( return WriteBatch(&batch); } +ServiceWorkerDatabase::Status +ServiceWorkerDatabase::UpdateNavigationPreloadEnabled(int64_t registration_id, + const GURL& origin, + bool enable) { + DCHECK(sequence_checker_.CalledOnValidSequence()); + Status status = LazyOpen(false); + if (IsNewOrNonexistentDatabase(status)) + return STATUS_ERROR_NOT_FOUND; + if (status != STATUS_OK) + return status; + if (!origin.is_valid()) + return STATUS_ERROR_FAILED; + + RegistrationData registration; + status = ReadRegistrationData(registration_id, origin, ®istration); + if (status != STATUS_OK) + return status; + + registration.navigation_preload_state.enabled = enable; + + leveldb::WriteBatch batch; + WriteRegistrationDataInBatch(registration, &batch); + return WriteBatch(&batch); +} + +ServiceWorkerDatabase::Status +ServiceWorkerDatabase::UpdateNavigationPreloadHeader(int64_t registration_id, + const GURL& origin, + const std::string& value) { + DCHECK(sequence_checker_.CalledOnValidSequence()); + Status status = LazyOpen(false); + if (IsNewOrNonexistentDatabase(status)) + return STATUS_ERROR_NOT_FOUND; + if (status != STATUS_OK) + return status; + if (!origin.is_valid()) + return STATUS_ERROR_FAILED; + + RegistrationData registration; + status = ReadRegistrationData(registration_id, origin, ®istration); + if (status != STATUS_OK) + return status; + + registration.navigation_preload_state.header = value; + + leveldb::WriteBatch batch; + WriteRegistrationDataInBatch(registration, &batch); + return WriteBatch(&batch); +} + ServiceWorkerDatabase::Status ServiceWorkerDatabase::DeleteRegistration( int64_t registration_id, const GURL& origin, @@ -1233,6 +1283,13 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ParseRegistrationData( } out->origin_trial_tokens = origin_trial_tokens; } + if (data.has_navigation_preload_state()) { + const ServiceWorkerNavigationPreloadState& state = + data.navigation_preload_state(); + out->navigation_preload_state.enabled = state.enabled(); + if (state.has_header()) + out->navigation_preload_state.header = state.header(); + } return ServiceWorkerDatabase::STATUS_OK; } @@ -1275,6 +1332,10 @@ void ServiceWorkerDatabase::WriteRegistrationDataInBatch( feature_out->add_tokens(token); } } + ServiceWorkerNavigationPreloadState* state = + data.mutable_navigation_preload_state(); + state->set_enabled(registration.navigation_preload_state.enabled); + state->set_header(registration.navigation_preload_state.header); std::string value; bool success = data.SerializeToString(&value); |