diff options
author | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-27 14:41:27 +0000 |
---|---|---|
committer | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-27 14:41:27 +0000 |
commit | 4b66898e0f7fc5864af489676cea60a9bf3e6e7f (patch) | |
tree | 40a8a7d439c9126f1bcfaefbd27ef6593f5ffb84 | |
parent | 476c6d05c1abc015ff3b479f8f2132a0fc604b9e (diff) | |
download | chromium_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
-rw-r--r-- | chrome/browser/in_process_webkit/indexed_db_dispatcher_host.cc | 121 | ||||
-rw-r--r-- | chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h | 18 | ||||
-rw-r--r-- | chrome/browser/in_process_webkit/webkit_context.cc | 6 | ||||
-rw-r--r-- | chrome/common/render_messages.h | 9 | ||||
-rw-r--r-- | chrome/common/render_messages_internal.h | 20 | ||||
-rw-r--r-- | chrome/renderer/indexed_db_dispatcher.cc | 3 | ||||
-rw-r--r-- | chrome/renderer/indexed_db_dispatcher.h | 2 | ||||
-rw-r--r-- | chrome/renderer/renderer_webidbdatabase_impl.cc | 38 | ||||
-rw-r--r-- | chrome/renderer/renderer_webidbdatabase_impl.h | 12 | ||||
-rw-r--r-- | chrome/renderer/renderer_webindexeddatabase_impl.cc | 4 | ||||
-rw-r--r-- | chrome/renderer/renderer_webindexeddatabase_impl.h | 8 |
11 files changed, 209 insertions, 32 deletions
diff --git a/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.cc b/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.cc index 2e32dfb..e478219 100644 --- a/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.cc +++ b/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.cc @@ -4,24 +4,30 @@ #include "chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h" +#include "base/command_line.h" #include "chrome/browser/chrome_thread.h" #include "chrome/browser/in_process_webkit/indexed_db_callbacks.h" +#include "chrome/browser/renderer_host/browser_render_process_host.h" #include "chrome/browser/renderer_host/resource_message_filter.h" +#include "chrome/common/chrome_switches.h" #include "chrome/common/render_messages.h" #include "third_party/WebKit/WebKit/chromium/public/WebIDBCallbacks.h" #include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabase.h" #include "third_party/WebKit/WebKit/chromium/public/WebIDBDatabaseError.h" #include "third_party/WebKit/WebKit/chromium/public/WebIndexedDatabase.h" #include "third_party/WebKit/WebKit/chromium/public/WebSecurityOrigin.h" +#include "third_party/WebKit/WebKit/chromium/public/WebDOMStringList.h" using WebKit::WebIDBDatabase; using WebKit::WebIDBDatabaseError; using WebKit::WebSecurityOrigin; +using WebKit::WebDOMStringList; IndexedDBDispatcherHost::IndexedDBDispatcherHost( IPC::Message::Sender* sender, WebKitContext* webkit_context) : sender_(sender), webkit_context_(webkit_context), + idb_database_map_(new IDMap<WebKit::WebIDBDatabase, IDMapOwnPointer>()), process_handle_(0) { DCHECK(sender_); DCHECK(webkit_context_.get()); @@ -47,14 +53,15 @@ void IndexedDBDispatcherHost::Shutdown() { bool success = ChromeThread::PostTask( ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod(this, &IndexedDBDispatcherHost::Shutdown)); - DCHECK(success); // The WebKit thread is always shutdown after the IO. - return; + if (success) + return; } - DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); + DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT) || + CommandLine::ForCurrentProcess()->HasSwitch(switches::kSingleProcess)); DCHECK(!sender_); - // TODO(jorlow): Do we still need this? + idb_database_map_.reset(); } bool IndexedDBDispatcherHost::OnMessageReceived(const IPC::Message& message, @@ -65,6 +72,14 @@ bool IndexedDBDispatcherHost::OnMessageReceived(const IPC::Message& message, bool handled = true; IPC_BEGIN_MESSAGE_MAP_EX(IndexedDBDispatcherHost, message, *msg_is_ok) IPC_MESSAGE_HANDLER(ViewHostMsg_IndexedDatabaseOpen, OnIndexedDatabaseOpen) + IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseName, + OnIDBDatabaseName) + IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseDescription, + OnIDBDatabaseDescription) + IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseVersion, + OnIDBDatabaseVersion) + IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_IDBDatabaseObjectStores, + OnIDBDatabaseObjectStores) IPC_MESSAGE_HANDLER(ViewHostMsg_IDBDatabaseDestroyed, OnIDBDatabaseDestroyed) IPC_MESSAGE_UNHANDLED(handled = false) @@ -95,7 +110,7 @@ void IndexedDBDispatcherHost::Send(IPC::Message* message) { } int32 IndexedDBDispatcherHost::AddIDBDatabase(WebIDBDatabase* idb_database) { - return idb_database_map_.Add(idb_database); + return idb_database_map_->Add(idb_database); } class IndexedDatabaseOpenCallbacks : public IndexedDBCallbacks { @@ -131,7 +146,7 @@ void IndexedDBDispatcherHost::OnIndexedDatabaseOpen( DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); int exception_code = 0; Context()->GetIndexedDatabase()->open( - params.name_, params.description_, params.modify_database_, + params.name_, params.description_, new IndexedDatabaseOpenCallbacks(this, params.response_id_), WebSecurityOrigin::createFromDatabaseIdentifier(params.origin_), NULL, exception_code); @@ -140,6 +155,86 @@ void IndexedDBDispatcherHost::OnIndexedDatabaseOpen( DCHECK(exception_code == 0); } +void IndexedDBDispatcherHost::OnIDBDatabaseName( + int32 idb_database_id, IPC::Message* reply_msg) { + if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { + ChromeThread::PostTask(ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod( + this, &IndexedDBDispatcherHost::OnIDBDatabaseName, + idb_database_id, reply_msg)); + return; + } + + WebIDBDatabase* idb_database = GetDatabaseOrTerminateProcess( + idb_database_id, reply_msg); + if (!idb_database) + return; + + const string16& name = idb_database->name(); + ViewHostMsg_IDBDatabaseName::WriteReplyParams(reply_msg, name); + Send(reply_msg); +} + +void IndexedDBDispatcherHost::OnIDBDatabaseDescription( + int32 idb_database_id, IPC::Message* reply_msg) { + if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { + ChromeThread::PostTask(ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod( + this, &IndexedDBDispatcherHost::OnIDBDatabaseDescription, + idb_database_id, reply_msg)); + return; + } + + WebIDBDatabase* idb_database = GetDatabaseOrTerminateProcess( + idb_database_id, reply_msg); + if (!idb_database) + return; + + const string16& description = idb_database->description(); + ViewHostMsg_IDBDatabaseDescription::WriteReplyParams(reply_msg, description); + Send(reply_msg); +} + +void IndexedDBDispatcherHost::OnIDBDatabaseVersion( + int32 idb_database_id, IPC::Message* reply_msg) { + if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { + ChromeThread::PostTask(ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod( + this, &IndexedDBDispatcherHost::OnIDBDatabaseVersion, + idb_database_id, reply_msg)); + return; + } + + WebIDBDatabase* idb_database = GetDatabaseOrTerminateProcess( + idb_database_id, reply_msg); + if (!idb_database) + return; + + const string16& version = idb_database->version(); + ViewHostMsg_IDBDatabaseVersion::WriteReplyParams(reply_msg, version); + Send(reply_msg); +} + +void IndexedDBDispatcherHost::OnIDBDatabaseObjectStores( + int32 idb_database_id, IPC::Message* reply_msg) { + if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { + ChromeThread::PostTask(ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod( + this, &IndexedDBDispatcherHost::OnIDBDatabaseObjectStores, + idb_database_id, reply_msg)); + return; + } + + WebIDBDatabase* idb_database = GetDatabaseOrTerminateProcess( + idb_database_id, reply_msg); + if (!idb_database) + return; + + WebDOMStringList web_object_stores = idb_database->objectStores(); + std::vector<string16> object_stores; + for (unsigned i = 0; i < web_object_stores.length(); ++i) + object_stores[i] = web_object_stores.item(i); + ViewHostMsg_IDBDatabaseObjectStores::WriteReplyParams(reply_msg, + object_stores); + Send(reply_msg); +} + void IndexedDBDispatcherHost::OnIDBDatabaseDestroyed(int32 idb_database_id) { if (ChromeThread::CurrentlyOn(ChromeThread::IO)) { ChromeThread::PostTask(ChromeThread::WEBKIT, FROM_HERE, NewRunnableMethod( @@ -149,5 +244,17 @@ void IndexedDBDispatcherHost::OnIDBDatabaseDestroyed(int32 idb_database_id) { } DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); - idb_database_map_.Remove(idb_database_id); + idb_database_map_->Remove(idb_database_id); +} + +WebIDBDatabase* IndexedDBDispatcherHost::GetDatabaseOrTerminateProcess( + int32 idb_database_id, IPC::Message* reply_msg) { + DCHECK(ChromeThread::CurrentlyOn(ChromeThread::WEBKIT)); + WebIDBDatabase* idb_database = idb_database_map_->Lookup(idb_database_id); + if (!idb_database) { + BrowserRenderProcessHost::BadMessageTerminateProcess( + ViewHostMsg_DOMStorageGetItem::ID, process_handle_); + delete reply_msg; + } + return idb_database; } diff --git a/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h b/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h index 2a70748..68e8141 100644 --- a/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h +++ b/chrome/browser/in_process_webkit/indexed_db_dispatcher_host.h @@ -1,6 +1,6 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. Use of this -// source code is governed by a BSD-style license that can be found in the -// LICENSE file. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef CHROME_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_ #define CHROME_BROWSER_IN_PROCESS_WEBKIT_INDEXED_DB_DISPATCHER_HOST_H_ @@ -58,6 +58,14 @@ class IndexedDBDispatcherHost void OnIndexedDatabaseOpen( const ViewHostMsg_IndexedDatabaseOpen_Params& params); void OnIDBDatabaseDestroyed(int32 idb_database_id); + void OnIDBDatabaseName(int32 idb_database_id, IPC::Message* reply_msg); + void OnIDBDatabaseDescription(int32 idb_database_id, IPC::Message* reply_msg); + void OnIDBDatabaseVersion(int32 idb_database_id, IPC::Message* reply_msg); + void OnIDBDatabaseObjectStores(int32 idb_database_id, + IPC::Message* reply_msg); + + WebKit::WebIDBDatabase* GetDatabaseOrTerminateProcess( + int32 idb_database_id, IPC::Message* reply_msg); // Only use on the IO thread. IPC::Message::Sender* sender_; @@ -67,8 +75,8 @@ class IndexedDBDispatcherHost // Maps from IDs we pass to the renderer and the actual WebKit objects. // The map takes ownership and returns an ID. That ID is passed to the - // renderer and used to reference it. - IDMap<WebKit::WebIDBDatabase, IDMapOwnPointer> + // renderer and used to reference it. All access must be on WebKit thread. + scoped_ptr<IDMap<WebKit::WebIDBDatabase, IDMapOwnPointer> > idb_database_map_; // TODO(andreip/jorlow): Add other maps here. diff --git a/chrome/browser/in_process_webkit/webkit_context.cc b/chrome/browser/in_process_webkit/webkit_context.cc index b9cf36f..a5db03f 100644 --- a/chrome/browser/in_process_webkit/webkit_context.cc +++ b/chrome/browser/in_process_webkit/webkit_context.cc @@ -26,6 +26,12 @@ WebKitContext::~WebKitContext() { // freeing the DOMStorageContext, so delete it manually. delete dom_storage_context; } + + IndexedDBContext* indexed_db_context = indexed_db_context_.release(); + if (!ChromeThread::DeleteSoon( + ChromeThread::WEBKIT, FROM_HERE, indexed_db_context)) { + delete indexed_db_context; + } } void WebKitContext::PurgeMemory() { diff --git a/chrome/common/render_messages.h b/chrome/common/render_messages.h index 74c2f165..3a224e0 100644 --- a/chrome/common/render_messages.h +++ b/chrome/common/render_messages.h @@ -543,9 +543,6 @@ struct ViewHostMsg_IndexedDatabaseOpen_Params { // The description of the database. string16 description_; - - // Should the database be modified if it doesn't match the above params. - bool modify_database_; }; // Allows an extension to execute code in a tab. @@ -2338,7 +2335,6 @@ struct ParamTraits<ViewHostMsg_IndexedDatabaseOpen_Params> { WriteParam(m, p.origin_); WriteParam(m, p.name_); WriteParam(m, p.description_); - WriteParam(m, p.modify_database_); } static bool Read(const Message* m, void** iter, param_type* p) { return @@ -2346,8 +2342,7 @@ struct ParamTraits<ViewHostMsg_IndexedDatabaseOpen_Params> { ReadParam(m, iter, &p->response_id_) && ReadParam(m, iter, &p->origin_) && ReadParam(m, iter, &p->name_) && - ReadParam(m, iter, &p->description_) && - ReadParam(m, iter, &p->modify_database_); + ReadParam(m, iter, &p->description_); } static void Log(const param_type& p, std::wstring* l) { l->append(L"("); @@ -2360,8 +2355,6 @@ struct ParamTraits<ViewHostMsg_IndexedDatabaseOpen_Params> { LogParam(p.name_, l); l->append(L", "); LogParam(p.description_, l); - l->append(L", "); - LogParam(p.modify_database_, l); l->append(L")"); } }; diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h index 48d198e..5cf4697 100644 --- a/chrome/common/render_messages_internal.h +++ b/chrome/common/render_messages_internal.h @@ -2176,6 +2176,26 @@ IPC_BEGIN_MESSAGES(ViewHost) IPC_MESSAGE_CONTROL1(ViewHostMsg_IndexedDatabaseOpen, ViewHostMsg_IndexedDatabaseOpen_Params) + // IDBDatabase::name() message. + IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_IDBDatabaseName, + int32, /* idb_database_id */ + string16 /* vesion */) + + // IDBDatabase::description() message. + IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_IDBDatabaseDescription, + int32, /* idb_database_id */ + string16 /* description */) + + // IDBDatabase::version() message. + IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_IDBDatabaseVersion, + int32, /* idb_database_id */ + string16 /* vesion */) + + // IDBDatabase::objectStores() message. + IPC_SYNC_MESSAGE_CONTROL1_1(ViewHostMsg_IDBDatabaseObjectStores, + int32, /* idb_database_id */ + std::vector<string16> /* objectStores */) + // IDBDatabase::~IDBDatabase() message. IPC_MESSAGE_CONTROL1(ViewHostMsg_IDBDatabaseDestroyed, int32 /* idb_database_id */) diff --git a/chrome/renderer/indexed_db_dispatcher.cc b/chrome/renderer/indexed_db_dispatcher.cc index 3dbaf0b..cee495a 100644 --- a/chrome/renderer/indexed_db_dispatcher.cc +++ b/chrome/renderer/indexed_db_dispatcher.cc @@ -37,7 +37,7 @@ bool IndexedDBDispatcher::OnMessageReceived(const IPC::Message& msg) { } void IndexedDBDispatcher::RequestIndexedDatabaseOpen( - const string16& name, const string16& description, bool modify_database, + const string16& name, const string16& description, WebIDBCallbacks* callbacks_ptr, const string16& origin, WebFrame* web_frame, int* exception_code) { scoped_ptr<WebIDBCallbacks> callbacks(callbacks_ptr); @@ -56,7 +56,6 @@ void IndexedDBDispatcher::RequestIndexedDatabaseOpen( params.origin_ = origin; params.name_ = name; params.description_ = description; - params.modify_database_ = modify_database; RenderThread::current()->Send(new ViewHostMsg_IndexedDatabaseOpen(params)); } diff --git a/chrome/renderer/indexed_db_dispatcher.h b/chrome/renderer/indexed_db_dispatcher.h index 78bb80b..6243075 100644 --- a/chrome/renderer/indexed_db_dispatcher.h +++ b/chrome/renderer/indexed_db_dispatcher.h @@ -26,7 +26,7 @@ class IndexedDBDispatcher { bool OnMessageReceived(const IPC::Message& msg); void RequestIndexedDatabaseOpen( - const string16& name, const string16& description, bool modify_database, + const string16& name, const string16& description, WebKit::WebIDBCallbacks* callbacks, const string16& origin, WebKit::WebFrame* web_frame, int* exception_code); 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; +} diff --git a/chrome/renderer/renderer_webidbdatabase_impl.h b/chrome/renderer/renderer_webidbdatabase_impl.h index f4fe7fc..b0dfa9a 100644 --- a/chrome/renderer/renderer_webidbdatabase_impl.h +++ b/chrome/renderer/renderer_webidbdatabase_impl.h @@ -1,6 +1,6 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. Use of this -// source code is governed by a BSD-style license that can be found in the -// LICENSE file. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef CHROME_RENDERER_RENDERER_WEBIDBDATABASE_IMPL_H_ #define CHROME_RENDERER_RENDERER_WEBIDBDATABASE_IMPL_H_ @@ -14,6 +14,12 @@ class RendererWebIDBDatabaseImpl : public WebKit::WebIDBDatabase { explicit RendererWebIDBDatabaseImpl(int32 idb_database_id); virtual ~RendererWebIDBDatabaseImpl(); + // WebKit::WebIDBDatabase + virtual WebKit::WebString name(); + virtual WebKit::WebString description(); + virtual WebKit::WebString version(); + virtual WebKit::WebDOMStringList objectStores(); + private: int32 idb_database_id_; }; diff --git a/chrome/renderer/renderer_webindexeddatabase_impl.cc b/chrome/renderer/renderer_webindexeddatabase_impl.cc index 668823f..ea56e6e 100644 --- a/chrome/renderer/renderer_webindexeddatabase_impl.cc +++ b/chrome/renderer/renderer_webindexeddatabase_impl.cc @@ -21,12 +21,12 @@ RendererWebIndexedDatabaseImpl::~RendererWebIndexedDatabaseImpl() { } void RendererWebIndexedDatabaseImpl::open( - const WebString& name, const WebString& description, bool modify_database, + const WebString& name, const WebString& description, WebIDBCallbacks* callbacks, const WebSecurityOrigin& origin, WebFrame* web_frame, int& exception_code) { IndexedDBDispatcher* dispatcher = RenderThread::current()->indexed_db_dispatcher(); dispatcher->RequestIndexedDatabaseOpen( - name, description, modify_database, callbacks, + name, description, callbacks, origin.databaseIdentifier(), web_frame, &exception_code); } diff --git a/chrome/renderer/renderer_webindexeddatabase_impl.h b/chrome/renderer/renderer_webindexeddatabase_impl.h index 06a6ee0..97c1010 100644 --- a/chrome/renderer/renderer_webindexeddatabase_impl.h +++ b/chrome/renderer/renderer_webindexeddatabase_impl.h @@ -1,6 +1,6 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. Use of this -// source code is governed by a BSD-style license that can be found in the -// LICENSE file. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef CHROME_RENDERER_RENDERER_WEBINDEXEDDATABASE_IMPL_H_ #define CHROME_RENDERER_RENDERER_WEBINDEXEDDATABASE_IMPL_H_ @@ -23,7 +23,7 @@ class RendererWebIndexedDatabaseImpl : public WebKit::WebIndexedDatabase { // See WebIndexedDatabase.h for documentation on these functions. virtual void open( const WebKit::WebString& name, const WebKit::WebString& description, - bool modify_database, WebKit::WebIDBCallbacks* callbacks, + WebKit::WebIDBCallbacks* callbacks, const WebKit::WebSecurityOrigin& origin, WebKit::WebFrame* web_frame, int& exception_code); }; |