summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/renderer_webidbdatabase_impl.cc
diff options
context:
space:
mode:
authorjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-27 14:41:27 +0000
committerjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-27 14:41:27 +0000
commit4b66898e0f7fc5864af489676cea60a9bf3e6e7f (patch)
tree40a8a7d439c9126f1bcfaefbd27ef6593f5ffb84 /chrome/renderer/renderer_webidbdatabase_impl.cc
parent476c6d05c1abc015ff3b479f8f2132a0fc604b9e (diff)
downloadchromium_src-4b66898e0f7fc5864af489676cea60a9bf3e6e7f.zip
chromium_src-4b66898e0f7fc5864af489676cea60a9bf3e6e7f.tar.gz
chromium_src-4b66898e0f7fc5864af489676cea60a9bf3e6e7f.tar.bz2
Handle IDBDatabase sync calls.
Remove modify_database flag. Make sure we delete data structures on the WebKit thread. Handle single process mode. Review URL: http://codereview.chromium.org/2125017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48387 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/renderer_webidbdatabase_impl.cc')
-rw-r--r--chrome/renderer/renderer_webidbdatabase_impl.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/chrome/renderer/renderer_webidbdatabase_impl.cc b/chrome/renderer/renderer_webidbdatabase_impl.cc
index 1c8e114..8229cef 100644
--- a/chrome/renderer/renderer_webidbdatabase_impl.cc
+++ b/chrome/renderer/renderer_webidbdatabase_impl.cc
@@ -4,9 +4,14 @@
#include "chrome/renderer/renderer_webidbdatabase_impl.h"
+#include "chrome/common/render_messages.h"
#include "chrome/renderer/render_thread.h"
#include "chrome/renderer/indexed_db_dispatcher.h"
+using WebKit::WebDOMStringList;
+using WebKit::WebString;
+using WebKit::WebVector;
+
RendererWebIDBDatabaseImpl::RendererWebIDBDatabaseImpl(int32 idb_database_id)
: idb_database_id_(idb_database_id) {
}
@@ -16,3 +21,36 @@ RendererWebIDBDatabaseImpl::~RendererWebIDBDatabaseImpl() {
RenderThread::current()->indexed_db_dispatcher();
dispatcher->SendIDBDatabaseDestroyed(idb_database_id_);
}
+
+WebString RendererWebIDBDatabaseImpl::name() {
+ string16 result;
+ RenderThread::current()->Send(
+ new ViewHostMsg_IDBDatabaseName(idb_database_id_, &result));
+ return result;
+}
+
+WebString RendererWebIDBDatabaseImpl::description() {
+ string16 result;
+ RenderThread::current()->Send(
+ new ViewHostMsg_IDBDatabaseDescription(idb_database_id_, &result));
+ return result;
+}
+
+WebString RendererWebIDBDatabaseImpl::version() {
+ string16 result;
+ RenderThread::current()->Send(
+ new ViewHostMsg_IDBDatabaseVersion(idb_database_id_, &result));
+ return result;
+}
+
+WebDOMStringList RendererWebIDBDatabaseImpl::objectStores() {
+ std::vector<string16> result;
+ RenderThread::current()->Send(
+ new ViewHostMsg_IDBDatabaseObjectStores(idb_database_id_, &result));
+ WebDOMStringList webResult;
+ for (std::vector<string16>::const_iterator it = result.begin();
+ it != result.end(); ++it) {
+ webResult.append(*it);
+ }
+ return webResult;
+}