Index: content/renderer/renderer_webidbfactory_impl.cc |
diff --git a/content/renderer/renderer_webidbfactory_impl.cc b/content/renderer/renderer_webidbfactory_impl.cc |
index 98102d6ce02c1ff36f25970450ef6da13982674c..bd67f66e6147edc90d1751bc64789b02d801a95a 100644 |
--- a/content/renderer/renderer_webidbfactory_impl.cc |
+++ b/content/renderer/renderer_webidbfactory_impl.cc |
@@ -4,9 +4,12 @@ |
#include "content/renderer/renderer_webidbfactory_impl.h" |
+#include "content/common/indexed_db_messages.h" |
#include "content/renderer/render_thread.h" |
+#include "content/renderer/render_view.h" |
#include "content/renderer/indexed_db_dispatcher.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDOMStringList.h" |
+#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" |
#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h" |
using WebKit::WebDOMStringList; |
@@ -22,6 +25,37 @@ RendererWebIDBFactoryImpl::RendererWebIDBFactoryImpl() { |
RendererWebIDBFactoryImpl::~RendererWebIDBFactoryImpl() { |
} |
+WebKit::WebDOMStringList RendererWebIDBFactoryImpl::databaseNames( |
+ const WebSecurityOrigin& origin, |
+ WebFrame* web_frame, |
+ const WebString& data_dir, |
+ unsigned long long maximum_size_unused, |
+ WebKit::WebIDBFactory::BackingStoreType) { |
+ |
+ WebDOMStringList web_result; |
+ |
+ if (!web_frame) |
+ return web_result; // We must be shutting down. |
+ RenderView* render_view = RenderView::FromWebView(web_frame->view()); |
+ if (!render_view) |
+ return web_result; // We must be shutting down. |
+ |
+ IndexedDBHostMsg_FactoryDatabaseNames_Params params; |
+ params.routing_id = render_view->routing_id(); |
+ params.origin = origin.databaseIdentifier(); |
+ |
+ std::vector<string16> result; |
+ RenderThread::current()->Send( |
+ new IndexedDBHostMsg_FactoryDatabaseNames( |
+ params, |
+ &result)); |
+ for (std::vector<string16>::const_iterator it = result.begin(); |
+ it != result.end(); ++it) { |
+ web_result.append(*it); |
+ } |
+ return web_result; |
+} |
+ |
void RendererWebIDBFactoryImpl::open( |
const WebString& name, |
WebIDBCallbacks* callbacks, |