Implement IndexedDatabase::open up until re-entrance into WebKit. That (and the
rest of IndexedDB) will be done in subsequent patches. Included in this patch
is a lot of other infrastructure for making IndexedDB work. Included is a
conversion from the DOMStorageDispatcherHost into a dispatcher host for all APIs
that have a backend in WebKit.
I named it WebKitAPIDispatcherHost. Since it's in browser/in_process_webkit and
it is for APIs that connect up to the WebKit API and it's used for APIs whose
backend is implemented in WebKit I thought the name was decent and not _too_
confusing, but if you have better ideas, please let me know.
This includes some code that you've already reviewed (darin), but a lot has
changed so please take a look at all of it.
TEST=Not much to test yet + behind a flag.
BUG=none
Review URL: http://codereview.chromium.org/1599009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47268 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc
index bccacf6..92b4b80c 100644
--- a/chrome/renderer/render_thread.cc
+++ b/chrome/renderer/render_thread.cc
@@ -50,12 +50,14 @@
#include "chrome/renderer/extensions/js_only_v8_extensions.h"
#include "chrome/renderer/extensions/renderer_extension_bindings.h"
#include "chrome/renderer/external_extension.h"
+#include "chrome/renderer/indexed_db_dispatcher.h"
#include "chrome/renderer/loadtimes_extension_bindings.h"
#include "chrome/renderer/net/render_dns_master.h"
#include "chrome/renderer/plugin_channel_host.h"
#include "chrome/renderer/render_process_impl.h"
#include "chrome/renderer/render_view.h"
#include "chrome/renderer/render_view_visitor.h"
+#include "chrome/renderer/renderer_webindexeddatabase_impl.h"
#include "chrome/renderer/renderer_webkitclient_impl.h"
#include "chrome/renderer/spellchecker/spellcheck.h"
#include "chrome/renderer/user_script_slave.h"
@@ -234,6 +236,7 @@
dns_master_.reset(new RenderDnsMaster());
histogram_snapshots_.reset(new RendererHistogramSnapshots());
appcache_dispatcher_.reset(new AppCacheDispatcher(this));
+ indexed_db_dispatcher_.reset(new IndexedDBDispatcher());
spellchecker_.reset(new SpellCheck());
devtools_agent_filter_ = new DevToolsAgentFilter();
@@ -522,9 +525,11 @@
}
void RenderThread::OnControlMessageReceived(const IPC::Message& msg) {
- // App cache messages are handled by a delegate.
+ // Some messages are handled by delegates.
if (appcache_dispatcher_->OnMessageReceived(msg))
return;
+ if (indexed_db_dispatcher_->OnMessageReceived(msg))
+ return;
IPC_BEGIN_MESSAGE_MAP(RenderThread, msg)
IPC_MESSAGE_HANDLER(ViewMsg_VisitedLink_NewTable, OnUpdateVisitedLinks)