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

Unified Diff: content/browser/service_worker/service_worker_database.cc

Issue 1656933003: Add origins argument to registerForeignFetchScopes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add url::Origin::operator== to make tests simpler Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_database.cc
diff --git a/content/browser/service_worker/service_worker_database.cc b/content/browser/service_worker/service_worker_database.cc
index c4c3a8b952bb88d0a631fb9c470487d26651a35e..e45dabbcd736c7ec5a51ffe3959385d5cba9b182 100644
--- a/content/browser/service_worker/service_worker_database.cc
+++ b/content/browser/service_worker/service_worker_database.cc
@@ -25,6 +25,7 @@
#include "third_party/leveldatabase/src/include/leveldb/db.h"
#include "third_party/leveldatabase/src/include/leveldb/env.h"
#include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
+#include "url/origin.h"
// LevelDB database schema
// =======================
@@ -1193,6 +1194,15 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::ParseRegistrationData(
}
out->foreign_fetch_scopes.push_back(sub_scope_url);
}
+ for (int i = 0; i < data.foreign_fetch_origin_size(); ++i) {
+ url::Origin parsed_origin(GURL(data.foreign_fetch_origin(i)));
+ if (parsed_origin.unique()) {
+ DLOG(ERROR) << "Foreign fetch origin '" << data.foreign_fetch_origin(i)
+ << "' is not valid.";
+ return ServiceWorkerDatabase::STATUS_ERROR_CORRUPTED;
+ }
+ out->foreign_fetch_origins.push_back(parsed_origin);
+ }
return ServiceWorkerDatabase::STATUS_OK;
}
@@ -1224,6 +1234,8 @@ void ServiceWorkerDatabase::WriteRegistrationDataInBatch(
<< "'.";
data.add_foreign_fetch_scope(url.spec());
}
+ for (const url::Origin& origin : registration.foreign_fetch_origins)
+ data.add_foreign_fetch_origin(origin.Serialize());
std::string value;
bool success = data.SerializeToString(&value);
« no previous file with comments | « content/browser/service_worker/service_worker_database.h ('k') | content/browser/service_worker/service_worker_database.proto » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698