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

Side by Side Diff: content/renderer/indexed_db_dispatcher.cc

Issue 7889024: Implementation of IDBFactory::getDatabaseNames (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Remove unnecessary #includes Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/indexed_db_dispatcher.h" 5 #include "content/renderer/indexed_db_dispatcher.h"
6 6
7 #include "content/common/indexed_db_messages.h" 7 #include "content/common/indexed_db_messages.h"
8 #include "content/renderer/render_thread.h" 8 #include "content/renderer/render_thread.h"
9 #include "content/renderer/render_view.h" 9 #include "content/renderer/render_view.h"
10 #include "content/renderer/renderer_webidbcursor_impl.h" 10 #include "content/renderer/renderer_webidbcursor_impl.h"
11 #include "content/renderer/renderer_webidbdatabase_impl.h" 11 #include "content/renderer/renderer_webidbdatabase_impl.h"
12 #include "content/renderer/renderer_webidbindex_impl.h" 12 #include "content/renderer/renderer_webidbindex_impl.h"
13 #include "content/renderer/renderer_webidbobjectstore_impl.h" 13 #include "content/renderer/renderer_webidbobjectstore_impl.h"
14 #include "content/renderer/renderer_webidbtransaction_impl.h" 14 #include "content/renderer/renderer_webidbtransaction_impl.h"
15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 15 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabaseCallbac ks.h" 16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabaseCallbac ks.h"
17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabaseError.h " 17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBDatabaseError.h "
18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/WebIDBKeyRange.h"
19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" 19 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSerializedScriptVa lue.h" 20 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSerializedScriptVa lue.h"
21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" 21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
22 22
23 using WebKit::WebDOMStringList;
23 using WebKit::WebExceptionCode; 24 using WebKit::WebExceptionCode;
24 using WebKit::WebFrame; 25 using WebKit::WebFrame;
25 using WebKit::WebIDBCallbacks; 26 using WebKit::WebIDBCallbacks;
26 using WebKit::WebIDBKeyRange; 27 using WebKit::WebIDBKeyRange;
27 using WebKit::WebIDBDatabase; 28 using WebKit::WebIDBDatabase;
28 using WebKit::WebIDBDatabaseCallbacks; 29 using WebKit::WebIDBDatabaseCallbacks;
29 using WebKit::WebIDBDatabaseError; 30 using WebKit::WebIDBDatabaseError;
30 using WebKit::WebIDBTransaction; 31 using WebKit::WebIDBTransaction;
31 using WebKit::WebIDBTransactionCallbacks; 32 using WebKit::WebIDBTransactionCallbacks;
32 33
33 IndexedDBDispatcher::IndexedDBDispatcher() { 34 IndexedDBDispatcher::IndexedDBDispatcher() {
34 } 35 }
35 36
36 IndexedDBDispatcher::~IndexedDBDispatcher() { 37 IndexedDBDispatcher::~IndexedDBDispatcher() {
37 } 38 }
38 39
39 bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) { 40 bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) {
40 bool handled = true; 41 bool handled = true;
41 IPC_BEGIN_MESSAGE_MAP(IndexedDBDispatcher, msg) 42 IPC_BEGIN_MESSAGE_MAP(IndexedDBDispatcher, msg)
42 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBCursor, 43 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBCursor,
43 OnSuccessOpenCursor) 44 OnSuccessOpenCursor)
44 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBDatabase, 45 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBDatabase,
45 OnSuccessIDBDatabase) 46 OnSuccessIDBDatabase)
46 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIndexedDBKey, 47 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIndexedDBKey,
47 OnSuccessIndexedDBKey) 48 OnSuccessIndexedDBKey)
48 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBTransaction, 49 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBTransaction,
49 OnSuccessIDBTransaction) 50 OnSuccessIDBTransaction)
51 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessStringList,
52 OnSuccessStringList)
50 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessSerializedScriptValue, 53 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessSerializedScriptValue,
51 OnSuccessSerializedScriptValue) 54 OnSuccessSerializedScriptValue)
52 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksError, OnError) 55 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksError, OnError)
53 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksBlocked, OnBlocked) 56 IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksBlocked, OnBlocked)
54 IPC_MESSAGE_HANDLER(IndexedDBMsg_TransactionCallbacksAbort, OnAbort) 57 IPC_MESSAGE_HANDLER(IndexedDBMsg_TransactionCallbacksAbort, OnAbort)
55 IPC_MESSAGE_HANDLER(IndexedDBMsg_TransactionCallbacksComplete, OnComplete) 58 IPC_MESSAGE_HANDLER(IndexedDBMsg_TransactionCallbacksComplete, OnComplete)
56 IPC_MESSAGE_HANDLER(IndexedDBMsg_DatabaseCallbacksVersionChange, 59 IPC_MESSAGE_HANDLER(IndexedDBMsg_DatabaseCallbacksVersionChange,
57 OnVersionChange) 60 OnVersionChange)
58 IPC_MESSAGE_UNHANDLED(handled = false) 61 IPC_MESSAGE_UNHANDLED(handled = false)
59 IPC_END_MESSAGE_MAP() 62 IPC_END_MESSAGE_MAP()
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 return; // We must be shutting down. 118 return; // We must be shutting down.
116 119
117 IndexedDBHostMsg_FactoryOpen_Params params; 120 IndexedDBHostMsg_FactoryOpen_Params params;
118 params.routing_id = render_view->routing_id(); 121 params.routing_id = render_view->routing_id();
119 params.response_id = pending_callbacks_.Add(callbacks.release()); 122 params.response_id = pending_callbacks_.Add(callbacks.release());
120 params.origin = origin; 123 params.origin = origin;
121 params.name = name; 124 params.name = name;
122 RenderThread::current()->Send(new IndexedDBHostMsg_FactoryOpen(params)); 125 RenderThread::current()->Send(new IndexedDBHostMsg_FactoryOpen(params));
123 } 126 }
124 127
128 void IndexedDBDispatcher::RequestIDBFactoryGetDatabaseNames(
129 WebIDBCallbacks* callbacks_ptr,
130 const string16& origin,
131 WebFrame* web_frame) {
132 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
133
134 if (!web_frame)
135 return; // We must be shutting down.
136 RenderView* render_view = RenderView::FromWebView(web_frame->view());
137 if (!render_view)
138 return; // We must be shutting down.
139
140 IndexedDBHostMsg_FactoryGetDatabaseNames_Params params;
141 params.routing_id = render_view->routing_id();
142 params.response_id = pending_callbacks_.Add(callbacks.release());
143 params.origin = origin;
144 RenderThread::current()->Send(
145 new IndexedDBHostMsg_FactoryGetDatabaseNames(params));
146 }
147
125 void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase( 148 void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase(
126 const string16& name, 149 const string16& name,
127 WebIDBCallbacks* callbacks_ptr, 150 WebIDBCallbacks* callbacks_ptr,
128 const string16& origin, 151 const string16& origin,
129 WebFrame* web_frame) { 152 WebFrame* web_frame) {
130 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); 153 scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
131 154
132 if (!web_frame) 155 if (!web_frame)
133 return; // We must be shutting down. 156 return; // We must be shutting down.
134 RenderView* render_view = RenderView::FromWebView(web_frame->view()); 157 RenderView* render_view = RenderView::FromWebView(web_frame->view());
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 pending_callbacks_.Remove(response_id); 400 pending_callbacks_.Remove(response_id);
378 } 401 }
379 402
380 void IndexedDBDispatcher::OnSuccessIDBTransaction(int32 response_id, 403 void IndexedDBDispatcher::OnSuccessIDBTransaction(int32 response_id,
381 int32 object_id) { 404 int32 object_id) {
382 WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id); 405 WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
383 callbacks->onSuccess(new RendererWebIDBTransactionImpl(object_id)); 406 callbacks->onSuccess(new RendererWebIDBTransactionImpl(object_id));
384 pending_callbacks_.Remove(response_id); 407 pending_callbacks_.Remove(response_id);
385 } 408 }
386 409
410 void IndexedDBDispatcher::OnSuccessStringList(
411 int32 response_id, const std::vector<string16>& value) {
412 WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
413 WebDOMStringList string_list;
414 for (std::vector<string16>::const_iterator it = value.begin();
415 it != value.end(); ++it)
416 string_list.append(*it);
417 callbacks->onSuccess(string_list);
418 pending_callbacks_.Remove(response_id);
419 }
420
387 void IndexedDBDispatcher::OnSuccessSerializedScriptValue( 421 void IndexedDBDispatcher::OnSuccessSerializedScriptValue(
388 int32 response_id, const SerializedScriptValue& value) { 422 int32 response_id, const SerializedScriptValue& value) {
389 WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id); 423 WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
390 callbacks->onSuccess(value); 424 callbacks->onSuccess(value);
391 pending_callbacks_.Remove(response_id); 425 pending_callbacks_.Remove(response_id);
392 } 426 }
393 427
394 void IndexedDBDispatcher::OnSuccessOpenCursor(int32 repsonse_id, 428 void IndexedDBDispatcher::OnSuccessOpenCursor(int32 repsonse_id,
395 int32 object_id) { 429 int32 object_id) {
396 WebIDBCallbacks* callbacks = 430 WebIDBCallbacks* callbacks =
(...skipping 30 matching lines...) Expand all
427 461
428 void IndexedDBDispatcher::OnVersionChange(int32 database_id, 462 void IndexedDBDispatcher::OnVersionChange(int32 database_id,
429 const string16& newVersion) { 463 const string16& newVersion) {
430 WebIDBDatabaseCallbacks* callbacks = 464 WebIDBDatabaseCallbacks* callbacks =
431 pending_database_callbacks_.Lookup(database_id); 465 pending_database_callbacks_.Lookup(database_id);
432 // callbacks would be NULL if a versionchange event is received after close 466 // callbacks would be NULL if a versionchange event is received after close
433 // has been called. 467 // has been called.
434 if (callbacks) 468 if (callbacks)
435 callbacks->onVersionChange(newVersion); 469 callbacks->onVersionChange(newVersion);
436 } 470 }
OLDNEW
« no previous file with comments | « content/renderer/indexed_db_dispatcher.h ('k') | content/renderer/renderer_webidbfactory_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698