Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1232)

Unified Diff: content/browser/indexed_db/indexed_db_callbacks.cc

Issue 2601983002: [IndexedDB] Adding transaction and value support to observers (Closed)
Patch Set: added comments and bug link Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/indexed_db/indexed_db_callbacks.cc
diff --git a/content/browser/indexed_db/indexed_db_callbacks.cc b/content/browser/indexed_db/indexed_db_callbacks.cc
index f7268195d8bc7cb6a66a80bb53277bd16644327c..a3a707d788ca8fd6a3bb45ad653d0ed758a41086 100644
--- a/content/browser/indexed_db/indexed_db_callbacks.cc
+++ b/content/browser/indexed_db/indexed_db_callbacks.cc
@@ -76,15 +76,6 @@ void ConvertBlobInfo(
return mojo_value;
}
-// Destructively converts an IndexedDBValue to a Mojo Value.
-::indexed_db::mojom::ValuePtr ConvertValue(IndexedDBValue* value) {
- auto mojo_value = ::indexed_db::mojom::Value::New();
- if (!value->empty())
- swap(mojo_value->bits, value->bits);
- ConvertBlobInfo(value->blob_info, &mojo_value->blob_or_file_info);
- return mojo_value;
-}
-
} // namespace
class IndexedDBCallbacks::IOThreadHelper {
@@ -140,6 +131,16 @@ class IndexedDBCallbacks::IOThreadHelper {
DISALLOW_COPY_AND_ASSIGN(IOThreadHelper);
};
+// static
+::indexed_db::mojom::ValuePtr IndexedDBCallbacks::ConvertAndEraseValue(
+ IndexedDBValue* value) {
+ auto mojo_value = ::indexed_db::mojom::Value::New();
+ if (!value->empty())
+ swap(mojo_value->bits, value->bits);
+ ConvertBlobInfo(value->blob_info, &mojo_value->blob_or_file_info);
+ return mojo_value;
+}
+
IndexedDBCallbacks::IndexedDBCallbacks(
scoped_refptr<IndexedDBDispatcherHost> dispatcher_host,
const url::Origin& origin,
@@ -291,7 +292,7 @@ void IndexedDBCallbacks::OnSuccess(std::unique_ptr<IndexedDBCursor> cursor,
::indexed_db::mojom::ValuePtr mojo_value;
std::vector<IndexedDBBlobInfo> blob_info;
if (value) {
- mojo_value = ConvertValue(value);
+ mojo_value = ConvertAndEraseValue(value);
blob_info.swap(value->blob_info);
}
@@ -316,7 +317,7 @@ void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& key,
::indexed_db::mojom::ValuePtr mojo_value;
std::vector<IndexedDBBlobInfo> blob_info;
if (value) {
- mojo_value = ConvertValue(value);
+ mojo_value = ConvertAndEraseValue(value);
blob_info.swap(value->blob_info);
}
@@ -343,7 +344,7 @@ void IndexedDBCallbacks::OnSuccessWithPrefetch(
std::vector<::indexed_db::mojom::ValuePtr> mojo_values;
mojo_values.reserve(values->size());
for (size_t i = 0; i < values->size(); ++i)
- mojo_values.push_back(ConvertValue(&(*values)[i]));
+ mojo_values.push_back(ConvertAndEraseValue(&(*values)[i]));
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
« no previous file with comments | « content/browser/indexed_db/indexed_db_callbacks.h ('k') | content/browser/indexed_db/indexed_db_connection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698