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

Unified Diff: Source/bindings/core/v8/V8PerIsolateData.cpp

Issue 686153003: Replace IDBPendingTransactionMonitor with end-of-recursion-scope tasks (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add explicit Created 6 years, 1 month 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
« no previous file with comments | « Source/bindings/core/v8/V8PerIsolateData.h ('k') | Source/bindings/core/v8/V8RecursionScope.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/core/v8/V8PerIsolateData.cpp
diff --git a/Source/bindings/core/v8/V8PerIsolateData.cpp b/Source/bindings/core/v8/V8PerIsolateData.cpp
index a3f14450638c3016406bdd7e73be7eb462bac67f..3f53ada38839378a72396119a5d74eb87c59f43c 100644
--- a/Source/bindings/core/v8/V8PerIsolateData.cpp
+++ b/Source/bindings/core/v8/V8PerIsolateData.cpp
@@ -133,7 +133,7 @@ void V8PerIsolateData::willBeDestroyed(v8::Isolate* isolate)
// Clear any data that may have handles into the heap,
// prior to calling ThreadState::detach().
- data->m_idbPendingTransactionMonitor.clear();
+ data->clearEndOfScopeTasks();
}
void V8PerIsolateData::destroy(v8::Isolate* isolate)
@@ -249,11 +249,23 @@ v8::Handle<v8::FunctionTemplate> V8PerIsolateData::toStringTemplate()
return m_toStringTemplate.newLocal(isolate());
}
-IDBPendingTransactionMonitor* V8PerIsolateData::ensureIDBPendingTransactionMonitor()
+void V8PerIsolateData::addEndOfScopeTask(PassOwnPtr<EndOfScopeTask> task)
{
- if (!m_idbPendingTransactionMonitor)
- m_idbPendingTransactionMonitor = adoptPtr(new IDBPendingTransactionMonitor());
- return m_idbPendingTransactionMonitor.get();
+ m_endOfScopeTasks.append(task);
+}
+
+void V8PerIsolateData::runEndOfScopeTasks()
+{
+ Vector<OwnPtr<EndOfScopeTask>> tasks;
+ tasks.swap(m_endOfScopeTasks);
+ for (const auto& task : tasks)
+ task->Run();
+ ASSERT(m_endOfScopeTasks.isEmpty());
+}
+
+void V8PerIsolateData::clearEndOfScopeTasks()
+{
+ m_endOfScopeTasks.clear();
}
} // namespace blink
« no previous file with comments | « Source/bindings/core/v8/V8PerIsolateData.h ('k') | Source/bindings/core/v8/V8RecursionScope.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698