summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-26 12:17:42 +0000
committerjorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-26 12:17:42 +0000
commit44ee70397b32c21a4efdb64bf030b5c5b4bab102 (patch)
tree82bd705d91b7e7d3d198e4613c97a7d6ed83cab6 /chrome/renderer
parent17b9c1e027193799d193ff0c2a7698c195a4f4bb (diff)
downloadchromium_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.cc8
-rw-r--r--chrome/renderer/renderer_webidbtransaction_impl.cc5
-rw-r--r--chrome/renderer/renderer_webidbtransaction_impl.h3
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*);