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

Unified Diff: chrome/renderer/indexed_db_dispatcher.cc

Issue 2740003: Implement IDBDatabase::createObjectStore. Also refactor IndexedDBCallbacks. (Closed)
Patch Set: Make sure indexed_db_context.cc is in the gypi file. Created 10 years, 6 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
« no previous file with comments | « chrome/renderer/indexed_db_dispatcher.h ('k') | chrome/renderer/renderer_webidbdatabase_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/indexed_db_dispatcher.cc
diff --git a/chrome/renderer/indexed_db_dispatcher.cc b/chrome/renderer/indexed_db_dispatcher.cc
index 64c0ec102a6f4d8251b994e4c8b3d5833ceb9fa2..fcb5b684569e5003f3784e46c314395f91c9a5d8 100644
--- a/chrome/renderer/indexed_db_dispatcher.cc
+++ b/chrome/renderer/indexed_db_dispatcher.cc
@@ -8,6 +8,7 @@
#include "chrome/renderer/render_thread.h"
#include "chrome/renderer/render_view.h"
#include "chrome/renderer/renderer_webidbdatabase_impl.h"
+#include "chrome/renderer/renderer_webidbobjectstore_impl.h"
#include "third_party/WebKit/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabaseError.h"
#include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h"
@@ -31,6 +32,8 @@ bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) {
OnIndexedDatabaseOpenSuccess)
IPC_MESSAGE_HANDLER(ViewMsg_IndexedDatabaseOpenError,
OnIndexedDatabaseOpenError)
+ IPC_MESSAGE_HANDLER(ViewMsg_IDBDatabaseCreateObjectStoreSuccess,
+ OnIDBDatabaseCreateObjectStoreSuccess)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
@@ -58,6 +61,22 @@ void IndexedDBDispatcher::RequestIndexedDatabaseOpen(
RenderThread::current()->Send(new ViewHostMsg_IndexedDatabaseOpen(params));
}
+void IndexedDBDispatcher::RequestIDBDatabaseCreateObjectStore(
+ const string16& name, const string16& keypath, bool auto_increment,
+ WebIDBCallbacks* callbacks_ptr, int32 idb_database_id) {
+ scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
+
+ ViewHostMsg_IDBDatabaseCreateObjectStore_Params params;
+ params.response_id_ = idb_database_create_object_store_callbacks_.Add(
+ callbacks.release());
+ params.name_ = name;
+ params.keypath_ = keypath;
+ params.auto_increment_ = auto_increment;
+ params.idb_database_id_ = idb_database_id;
+ RenderThread::current()->Send(
+ new ViewHostMsg_IDBDatabaseCreateObjectStore(params));
+}
+
void IndexedDBDispatcher::OnIndexedDatabaseOpenSuccess(
int32 response_id, int32 idb_database_id) {
WebKit::WebIDBCallbacks* callbacks =
@@ -73,3 +92,19 @@ void IndexedDBDispatcher::OnIndexedDatabaseOpenError(
callbacks->onError(WebIDBDatabaseError(code, message));
indexed_database_open_callbacks_.Remove(response_id);
}
+
+void IndexedDBDispatcher::OnIDBDatabaseCreateObjectStoreSuccess(
+ int32 response_id, int32 idb_object_store_id) {
+ WebKit::WebIDBCallbacks* callbacks =
+ idb_database_create_object_store_callbacks_.Lookup(response_id);
+ callbacks->onSuccess(new RendererWebIDBObjectStoreImpl(idb_object_store_id));
+ idb_database_create_object_store_callbacks_.Remove(response_id);
+}
+
+void IndexedDBDispatcher::OnIDBDatabaseCreateObjectStoreError(
+ int32 response_id, int code, const string16& message) {
+ WebKit::WebIDBCallbacks* callbacks =
+ idb_database_create_object_store_callbacks_.Lookup(response_id);
+ callbacks->onError(WebIDBDatabaseError(code, message));
+ idb_database_create_object_store_callbacks_.Remove(response_id);
+}
« no previous file with comments | « chrome/renderer/indexed_db_dispatcher.h ('k') | chrome/renderer/renderer_webidbdatabase_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698