summaryrefslogtreecommitdiff
path: root/chromium/content/browser/service_worker/service_worker_database.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-04-05 14:08:31 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-04-11 07:46:53 +0000
commit6a4cabb866f66d4128a97cdc6d9d08ce074f1247 (patch)
treeab00f70a5e89278d6a0d16ff0c42578dc4d84a2d /chromium/content/browser/service_worker/service_worker_database.cc
parente733310db58160074f574c429d48f8308c0afe17 (diff)
downloadqtwebengine-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.cc61
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, &registration);
+ 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, &registration);
+ 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);