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

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: WIP: Getting IDBRequestTest.EventsAfterStopping to pass. 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 3b475585a73a4a5f235d7465dca1624352b2292e..b48dfadfb33f63baecfd387aead1972a4907f037 100644
--- a/third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp
+++ b/third_party/WebKit/Source/modules/indexeddb/WebIDBCallbacksImpl.cpp
@@ -78,8 +78,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(
@@ -91,6 +90,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);
}
@@ -102,8 +104,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,
@@ -112,6 +114,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();
@@ -123,7 +128,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) {
@@ -131,7 +136,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) {
@@ -142,7 +147,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) {
@@ -150,7 +155,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() {
@@ -158,7 +163,7 @@ void WebIDBCallbacksImpl::OnSuccess() {
return;
probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success");
- request_->EnqueueResponse();
+ request_->HandleResponse();
}
void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key,
@@ -168,8 +173,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) {
@@ -177,6 +182,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);
}
@@ -189,6 +197,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