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

Unified Diff: net/extras/sqlite/sqlite_channel_id_store.cc

Issue 2874973002: Flush Channel IDs when Cookies get saved to a persistent backend (Closed)
Patch Set: clean up a few things Created 3 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 side-by-side diff with in-line comments
Download patch
Index: net/extras/sqlite/sqlite_channel_id_store.cc
diff --git a/net/extras/sqlite/sqlite_channel_id_store.cc b/net/extras/sqlite/sqlite_channel_id_store.cc
index 56c6f6b9c03c52e8ffc08da9e5f8d8864d2c9cef..580b309c576330ac1909fb5251f91352082a85ba 100644
--- a/net/extras/sqlite/sqlite_channel_id_store.cc
+++ b/net/extras/sqlite/sqlite_channel_id_store.cc
@@ -100,6 +100,9 @@ class SQLiteChannelIDStore::Backend
void SetForceKeepSessionState();
+ // Commit our pending operations to the database.
+ void Commit();
+
private:
friend class base::RefCountedThreadSafe<SQLiteChannelIDStore::Backend>;
@@ -143,8 +146,6 @@ class SQLiteChannelIDStore::Backend
// identifier in |server_identifiers|.
void PrunePendingOperationsForDeletes(
const std::list<std::string>& server_identifiers);
- // Commit our pending operations to the database.
- void Commit();
// Close() executed on the background task runner.
void InternalBackgroundClose();
@@ -481,17 +482,10 @@ void SQLiteChannelIDStore::Backend::DeleteAllInList(
void SQLiteChannelIDStore::Backend::BatchOperation(
PendingOperation::OperationType op,
const DefaultChannelIDStore::ChannelID& channel_id) {
- // These thresholds used to be 30 seconds or 512 outstanding operations (the
- // same values used in CookieMonster). Since cookies can be bound to Channel
- // IDs, it's possible for a cookie to get committed to the cookie database
- // before the Channel ID it is bound to gets committed. Decreasing these
- // thresholds increases the chance that the Channel ID will be committed
- // before or at the same time as the cookie.
-
- // Commit every 2 seconds.
- static const int kCommitIntervalMs = 2 * 1000;
- // Commit right away if we have more than 3 outstanding operations.
- static const size_t kCommitAfterBatchSize = 3;
+ // Commit every 30 seconds.
+ static const int kCommitIntervalMs = 30 * 1000;
+ // Commit right away if we have more than 512 outstanding operations.
+ static const size_t kCommitAfterBatchSize = 512;
// We do a full copy of the cert here, and hopefully just here.
std::unique_ptr<PendingOperation> po(new PendingOperation(op, channel_id));
@@ -687,6 +681,10 @@ void SQLiteChannelIDStore::SetForceKeepSessionState() {
backend_->SetForceKeepSessionState();
}
+void SQLiteChannelIDStore::Flush() {
+ backend_->Commit();
+}
+
SQLiteChannelIDStore::~SQLiteChannelIDStore() {
backend_->Close();
// We release our reference to the Backend, though it will probably still have

Powered by Google App Engine
This is Rietveld 408576698