diff options
author | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-26 12:17:42 +0000 |
---|---|---|
committer | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-26 12:17:42 +0000 |
commit | 44ee70397b32c21a4efdb64bf030b5c5b4bab102 (patch) | |
tree | 82bd705d91b7e7d3d198e4613c97a7d6ed83cab6 /chrome/renderer | |
parent | 17b9c1e027193799d193ff0c2a7698c195a4f4bb (diff) | |
download | chromium_src-44ee70397b32c21a4efdb64bf030b5c5b4bab102.zip chromium_src-44ee70397b32c21a4efdb64bf030b5c5b4bab102.tar.gz chromium_src-44ee70397b32c21a4efdb64bf030b5c5b4bab102.tar.bz2 |
Plumb exception code for transactions.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/5256006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67449 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/renderer_webidbdatabase_impl.cc | 8 | ||||
-rw-r--r-- | chrome/renderer/renderer_webidbtransaction_impl.cc | 5 | ||||
-rw-r--r-- | chrome/renderer/renderer_webidbtransaction_impl.h | 3 |
3 files changed, 10 insertions, 6 deletions
diff --git a/chrome/renderer/renderer_webidbdatabase_impl.cc b/chrome/renderer/renderer_webidbdatabase_impl.cc index 874342f..25137da 100644 --- a/chrome/renderer/renderer_webidbdatabase_impl.cc +++ b/chrome/renderer/renderer_webidbdatabase_impl.cc @@ -110,15 +110,17 @@ WebKit::WebIDBTransaction* RendererWebIDBDatabaseImpl::transaction( unsigned short mode, unsigned long timeout, WebExceptionCode& ec) { - std::vector<string16> object_stores(names.length()); - for (unsigned int i = 0; i < names.length(); ++i) { + std::vector<string16> object_stores; + object_stores.reserve(names.length()); + for (unsigned int i = 0; i < names.length(); ++i) object_stores.push_back(names.item(i)); - } int transaction_id; RenderThread::current()->Send( new ViewHostMsg_IDBDatabaseTransaction( idb_database_id_, object_stores, mode, timeout, &transaction_id, &ec)); + if (!transaction_id) + return NULL; return new RendererWebIDBTransactionImpl(transaction_id); } diff --git a/chrome/renderer/renderer_webidbtransaction_impl.cc b/chrome/renderer/renderer_webidbtransaction_impl.cc index f918275..b1b024e 100644 --- a/chrome/renderer/renderer_webidbtransaction_impl.cc +++ b/chrome/renderer/renderer_webidbtransaction_impl.cc @@ -35,12 +35,13 @@ int RendererWebIDBTransactionImpl::mode() const } WebIDBObjectStore* RendererWebIDBTransactionImpl::objectStore( - const WebString& name) + const WebString& name, + WebKit::WebExceptionCode& ec) { int object_store_id; RenderThread::current()->Send( new ViewHostMsg_IDBTransactionObjectStore( - idb_transaction_id_, name, &object_store_id)); + idb_transaction_id_, name, &object_store_id, &ec)); if (!object_store_id) return NULL; return new RendererWebIDBObjectStoreImpl(object_store_id); diff --git a/chrome/renderer/renderer_webidbtransaction_impl.h b/chrome/renderer/renderer_webidbtransaction_impl.h index 728bafe..282dd63 100644 --- a/chrome/renderer/renderer_webidbtransaction_impl.h +++ b/chrome/renderer/renderer_webidbtransaction_impl.h @@ -21,7 +21,8 @@ class RendererWebIDBTransactionImpl : public WebKit::WebIDBTransaction { virtual ~RendererWebIDBTransactionImpl(); virtual int mode() const; - virtual WebKit::WebIDBObjectStore* objectStore(const WebKit::WebString& name); + virtual WebKit::WebIDBObjectStore* objectStore(const WebKit::WebString& name, + WebKit::WebExceptionCode&); virtual void abort(); virtual void didCompleteTaskEvents(); virtual void setCallbacks(WebKit::WebIDBTransactionCallbacks*); |