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

Unified Diff: content/common/indexed_db/indexed_db_dispatcher.cc

Issue 10917099: Chromium side of "consolidate two-phase connection to avoid race conditions". (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Backwards compatible with current WK API Created 8 years, 3 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/common/indexed_db/indexed_db_dispatcher.cc
diff --git a/content/common/indexed_db/indexed_db_dispatcher.cc b/content/common/indexed_db/indexed_db_dispatcher.cc
index 8981c2c9a45462ffd18b45f92715394062c1e047..c904db56cc3be536253d70c7dcb7308a17171b39 100644
--- a/content/common/indexed_db/indexed_db_dispatcher.cc
+++ b/content/common/indexed_db/indexed_db_dispatcher.cc
@@ -198,6 +198,7 @@ void IndexedDBDispatcher::RequestIDBCursorDelete(
pending_callbacks_.Remove(response_id);
}
+// TODO(jsbell): Remove this overload once WK90411 rolls.
void IndexedDBDispatcher::RequestIDBFactoryOpen(
const string16& name,
int64 version,
@@ -214,6 +215,34 @@ void IndexedDBDispatcher::RequestIDBFactoryOpen(
IndexedDBHostMsg_FactoryOpen_Params params;
params.thread_id = CurrentWorkerId();
params.response_id = pending_callbacks_.Add(callbacks.release());
+ params.database_response_id = 0; // Unused in this message.
+ params.origin = origin;
+ params.name = name;
+ params.version = version;
+ Send(new IndexedDBHostMsg_FactoryOpenLegacy(params));
+}
+
+void IndexedDBDispatcher::RequestIDBFactoryOpen(
+ const string16& name,
+ int64 version,
+ WebIDBCallbacks* callbacks_ptr,
+ WebIDBDatabaseCallbacks* database_callbacks_ptr,
+ const string16& origin,
+ WebFrame* web_frame) {
+ ResetCursorPrefetchCaches();
+ scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
+ scoped_ptr<WebIDBDatabaseCallbacks>
+ database_callbacks(database_callbacks_ptr);
+
+ if (!CurrentWorkerId() &&
+ !ChildThread::current()->IsWebFrameValid(web_frame))
+ return;
+
+ IndexedDBHostMsg_FactoryOpen_Params params;
+ params.thread_id = CurrentWorkerId();
+ params.response_id = pending_callbacks_.Add(callbacks.release());
+ params.database_response_id = pending_database_callbacks_.Add(
+ database_callbacks.release());
params.origin = origin;
params.name = name;
params.version = version;
@@ -267,9 +296,10 @@ void IndexedDBDispatcher::RequestIDBDatabaseClose(int32 idb_database_id) {
pending_database_callbacks_.Remove(idb_database_id);
}
+// TODO(jsbell): Remove once WK90411 has rolled.
void IndexedDBDispatcher::RequestIDBDatabaseOpen(
- WebIDBDatabaseCallbacks* callbacks_ptr,
- int32 idb_database_id) {
+ WebIDBDatabaseCallbacks* callbacks_ptr,
+ int32 idb_database_id) {
ResetCursorPrefetchCaches();
scoped_ptr<WebIDBDatabaseCallbacks> callbacks(callbacks_ptr);

Powered by Google App Engine
This is Rietveld 408576698