| 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);
|
| +}
|
|
|