summaryrefslogtreecommitdiffstats
path: root/content/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer')
-rw-r--r--content/renderer/indexed_db_dispatcher.cc34
-rw-r--r--content/renderer/indexed_db_dispatcher.h8
-rw-r--r--content/renderer/renderer_webidbfactory_impl.cc13
-rw-r--r--content/renderer/renderer_webidbfactory_impl.h9
4 files changed, 64 insertions, 0 deletions
diff --git a/content/renderer/indexed_db_dispatcher.cc b/content/renderer/indexed_db_dispatcher.cc
index eb00ac3..3e57137 100644
--- a/content/renderer/indexed_db_dispatcher.cc
+++ b/content/renderer/indexed_db_dispatcher.cc
@@ -20,6 +20,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebSerializedScriptValue.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
+using WebKit::WebDOMStringList;
using WebKit::WebExceptionCode;
using WebKit::WebFrame;
using WebKit::WebIDBCallbacks;
@@ -47,6 +48,8 @@ bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) {
OnSuccessIndexedDBKey)
IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessIDBTransaction,
OnSuccessIDBTransaction)
+ IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessStringList,
+ OnSuccessStringList)
IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksSuccessSerializedScriptValue,
OnSuccessSerializedScriptValue)
IPC_MESSAGE_HANDLER(IndexedDBMsg_CallbacksError, OnError)
@@ -122,6 +125,26 @@ void IndexedDBDispatcher::RequestIDBFactoryOpen(
RenderThread::current()->Send(new IndexedDBHostMsg_FactoryOpen(params));
}
+void IndexedDBDispatcher::RequestIDBFactoryGetDatabaseNames(
+ WebIDBCallbacks* callbacks_ptr,
+ const string16& origin,
+ WebFrame* web_frame) {
+ scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr);
+
+ if (!web_frame)
+ return; // We must be shutting down.
+ RenderView* render_view = RenderView::FromWebView(web_frame->view());
+ if (!render_view)
+ return; // We must be shutting down.
+
+ IndexedDBHostMsg_FactoryGetDatabaseNames_Params params;
+ params.routing_id = render_view->routing_id();
+ params.response_id = pending_callbacks_.Add(callbacks.release());
+ params.origin = origin;
+ RenderThread::current()->Send(
+ new IndexedDBHostMsg_FactoryGetDatabaseNames(params));
+}
+
void IndexedDBDispatcher::RequestIDBFactoryDeleteDatabase(
const string16& name,
WebIDBCallbacks* callbacks_ptr,
@@ -384,6 +407,17 @@ void IndexedDBDispatcher::OnSuccessIDBTransaction(int32 response_id,
pending_callbacks_.Remove(response_id);
}
+void IndexedDBDispatcher::OnSuccessStringList(
+ int32 response_id, const std::vector<string16>& value) {
+ WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
+ WebDOMStringList string_list;
+ for (std::vector<string16>::const_iterator it = value.begin();
+ it != value.end(); ++it)
+ string_list.append(*it);
+ callbacks->onSuccess(string_list);
+ pending_callbacks_.Remove(response_id);
+}
+
void IndexedDBDispatcher::OnSuccessSerializedScriptValue(
int32 response_id, const SerializedScriptValue& value) {
WebIDBCallbacks* callbacks = pending_callbacks_.Lookup(response_id);
diff --git a/content/renderer/indexed_db_dispatcher.h b/content/renderer/indexed_db_dispatcher.h
index edfd9a7..1e0a404 100644
--- a/content/renderer/indexed_db_dispatcher.h
+++ b/content/renderer/indexed_db_dispatcher.h
@@ -19,6 +19,7 @@ class IndexedDBKey;
class SerializedScriptValue;
namespace WebKit {
+class WebDOMStringList;
class WebFrame;
class WebIDBKeyRange;
class WebIDBTransaction;
@@ -33,6 +34,11 @@ class IndexedDBDispatcher : public IPC::Channel::Listener {
// IPC::Channel::Listener implementation.
virtual bool OnMessageReceived(const IPC::Message& msg);
+ void RequestIDBFactoryGetDatabaseNames(
+ WebKit::WebIDBCallbacks* callbacks,
+ const string16& origin,
+ WebKit::WebFrame* web_frame);
+
void RequestIDBFactoryOpen(
const string16& name,
WebKit::WebIDBCallbacks* callbacks,
@@ -151,6 +157,8 @@ class IndexedDBDispatcher : public IPC::Channel::Listener {
void OnSuccessIndexedDBKey(int32 response_id, const IndexedDBKey& key);
void OnSuccessIDBTransaction(int32 response_id, int32 object_id);
void OnSuccessOpenCursor(int32 response_id, int32 object_id);
+ void OnSuccessStringList(int32 response_id,
+ const std::vector<string16>& value);
void OnSuccessSerializedScriptValue(int32 response_id,
const SerializedScriptValue& value);
void OnError(int32 response_id, int code, const string16& message);
diff --git a/content/renderer/renderer_webidbfactory_impl.cc b/content/renderer/renderer_webidbfactory_impl.cc
index 98102d6..f52be45 100644
--- a/content/renderer/renderer_webidbfactory_impl.cc
+++ b/content/renderer/renderer_webidbfactory_impl.cc
@@ -22,6 +22,19 @@ RendererWebIDBFactoryImpl::RendererWebIDBFactoryImpl() {
RendererWebIDBFactoryImpl::~RendererWebIDBFactoryImpl() {
}
+void RendererWebIDBFactoryImpl::getDatabaseNames(
+ WebIDBCallbacks* callbacks,
+ const WebSecurityOrigin& origin,
+ WebFrame* web_frame,
+ const WebString& data_dir_unused,
+ unsigned long long maximum_size_unused,
+ WebKit::WebIDBFactory::BackingStoreType) {
+ IndexedDBDispatcher* dispatcher =
+ RenderThread::current()->indexed_db_dispatcher();
+ dispatcher->RequestIDBFactoryGetDatabaseNames(
+ callbacks, origin.databaseIdentifier(), web_frame);
+}
+
void RendererWebIDBFactoryImpl::open(
const WebString& name,
WebIDBCallbacks* callbacks,
diff --git a/content/renderer/renderer_webidbfactory_impl.h b/content/renderer/renderer_webidbfactory_impl.h
index 2837911..a04f2da 100644
--- a/content/renderer/renderer_webidbfactory_impl.h
+++ b/content/renderer/renderer_webidbfactory_impl.h
@@ -24,6 +24,15 @@ class RendererWebIDBFactoryImpl : public WebKit::WebIDBFactory {
virtual ~RendererWebIDBFactoryImpl();
// See WebIDBFactory.h for documentation on these functions.
+ virtual void getDatabaseNames(
+ WebKit::WebIDBCallbacks* callbacks,
+ const WebKit::WebSecurityOrigin& origin,
+ WebKit::WebFrame* web_frame,
+ const WebKit::WebString& data_dir,
+ // TODO(dgrogan): Remove maximum_size after it's out of the webkit api.
+ unsigned long long maximum_size,
+ WebKit::WebIDBFactory::BackingStoreType);
+
virtual void open(
const WebKit::WebString& name,
WebKit::WebIDBCallbacks* callbacks,