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

Unified Diff: third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp

Issue 2822453003: Wrap large IndexedDB values into Blobs before writing to LevelDB. (Closed)
Patch Set: Addressed last round of feedback. Created 3 years, 7 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: third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp
diff --git a/third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp b/third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp
index 691ca15c8338d2b6b5811316a50cf7304ffb6258..17efa751bd6063a1a4690f6398bf9fe0154f7b27 100644
--- a/third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp
+++ b/third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp
@@ -81,8 +81,7 @@ void WebIDBCallbacksImpl::OnError(const WebIDBDatabaseError& error) {
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "error");
- request_->EnqueueResponse(
- DOMException::Create(error.Code(), error.Message()));
+ request_->HandleResponse(DOMException::Create(error.Code(), error.Message()));
}
void WebIDBCallbacksImpl::OnSuccess(
@@ -94,6 +93,9 @@ void WebIDBCallbacksImpl::OnSuccess(
for (size_t i = 0; i < web_string_list.size(); ++i)
string_list.push_back(web_string_list[i]);
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
+#if DCHECK_IS_ON()
+ DCHECK(!request_->TransactionHasQueuedResults());
+#endif // DCHECK_IS_ON()
request_->EnqueueResponse(string_list);
}
@@ -105,8 +107,8 @@ void WebIDBCallbacksImpl::OnSuccess(WebIDBCursor* cursor,
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
- request_->EnqueueResponse(WTF::WrapUnique(cursor), key, primary_key,
- IDBValue::Create(value, request_->GetIsolate()));
+ request_->HandleResponse(WTF::WrapUnique(cursor), key, primary_key,
+ IDBValue::Create(value, request_->GetIsolate()));
}
void WebIDBCallbacksImpl::OnSuccess(WebIDBDatabase* backend,
@@ -115,6 +117,9 @@ void WebIDBCallbacksImpl::OnSuccess(WebIDBDatabase* backend,
if (request_) {
probe::AsyncTask async_task(request_->GetExecutionContext(), this,
"success");
+#if DCHECK_IS_ON()
+ DCHECK(!request_->TransactionHasQueuedResults());
+#endif // DCHECK_IS_ON()
request_->EnqueueResponse(std::move(db), IDBDatabaseMetadata(metadata));
} else if (db) {
db->Close();
@@ -126,7 +131,7 @@ void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key) {
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
- request_->EnqueueResponse(key);
+ request_->HandleResponse(key);
}
void WebIDBCallbacksImpl::OnSuccess(const WebIDBValue& value) {
@@ -134,7 +139,7 @@ void WebIDBCallbacksImpl::OnSuccess(const WebIDBValue& value) {
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
- request_->EnqueueResponse(IDBValue::Create(value, request_->GetIsolate()));
+ request_->HandleResponse(IDBValue::Create(value, request_->GetIsolate()));
}
void WebIDBCallbacksImpl::OnSuccess(const WebVector<WebIDBValue>& values) {
@@ -145,7 +150,7 @@ void WebIDBCallbacksImpl::OnSuccess(const WebVector<WebIDBValue>& values) {
Vector<RefPtr<IDBValue>> idb_values(values.size());
for (size_t i = 0; i < values.size(); ++i)
idb_values[i] = IDBValue::Create(values[i], request_->GetIsolate());
- request_->EnqueueResponse(idb_values);
+ request_->HandleResponse(idb_values);
}
void WebIDBCallbacksImpl::OnSuccess(long long value) {
@@ -153,7 +158,7 @@ void WebIDBCallbacksImpl::OnSuccess(long long value) {
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
- request_->EnqueueResponse(value);
+ request_->HandleResponse(value);
}
void WebIDBCallbacksImpl::OnSuccess() {
@@ -161,7 +166,7 @@ void WebIDBCallbacksImpl::OnSuccess() {
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
- request_->EnqueueResponse();
+ request_->HandleResponse();
}
void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key,
@@ -171,8 +176,8 @@ void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key,
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
- request_->EnqueueResponse(key, primary_key,
- IDBValue::Create(value, request_->GetIsolate()));
+ request_->HandleResponse(key, primary_key,
+ IDBValue::Create(value, request_->GetIsolate()));
}
void WebIDBCallbacksImpl::OnBlocked(long long old_version) {
@@ -180,6 +185,9 @@ void WebIDBCallbacksImpl::OnBlocked(long long old_version) {
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "blocked");
+#if DCHECK_IS_ON()
+ DCHECK(!request_->TransactionHasQueuedResults());
+#endif // DCHECK_IS_ON()
request_->EnqueueBlocked(old_version);
}
@@ -192,6 +200,9 @@ void WebIDBCallbacksImpl::OnUpgradeNeeded(long long old_version,
if (request_) {
probe::AsyncTask async_task(request_->GetExecutionContext(), this,
"upgradeNeeded");
+#if DCHECK_IS_ON()
+ DCHECK(!request_->TransactionHasQueuedResults());
+#endif // DCHECK_IS_ON()
request_->EnqueueUpgradeNeeded(
old_version, std::move(db), IDBDatabaseMetadata(metadata),
static_cast<WebIDBDataLoss>(data_loss), data_loss_message);

Powered by Google App Engine
This is Rietveld 408576698