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

Unified Diff: Source/modules/indexeddb/IDBPendingTransactionMonitor.cpp

Issue 429453010: Drop V8RecursionScope dependency on ExecutionContext (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Factor out microtask fix/tests Created 6 years, 3 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: Source/modules/indexeddb/IDBPendingTransactionMonitor.cpp
diff --git a/Source/modules/indexeddb/IDBPendingTransactionMonitor.cpp b/Source/modules/indexeddb/IDBPendingTransactionMonitor.cpp
index 6b1b7d1d9b949e4426c27213040f9ffaf8e1a6c4..4bb803a221a99e16987bf30da18e16b511545dfb 100644
--- a/Source/modules/indexeddb/IDBPendingTransactionMonitor.cpp
+++ b/Source/modules/indexeddb/IDBPendingTransactionMonitor.cpp
@@ -26,30 +26,30 @@
#include "config.h"
#include "modules/indexeddb/IDBPendingTransactionMonitor.h"
+#include "bindings/core/v8/V8PerIsolateData.h"
#include "core/dom/ExecutionContext.h"
#include "modules/indexeddb/IDBTransaction.h"
namespace blink {
-DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(IDBPendingTransactionMonitor)
-
-const char* IDBPendingTransactionMonitor::supplementName()
+inline IDBPendingTransactionMonitor::IDBPendingTransactionMonitor()
{
- return "IDBPendingTransactionMonitor";
}
-inline IDBPendingTransactionMonitor::IDBPendingTransactionMonitor()
+void IDBPendingTransactionMonitor::deactivateNewTransactions(v8::Isolate* isolate)
{
+ V8PerIsolateData* perIsolateData = V8PerIsolateData::from(isolate);
+ if (!perIsolateData->idbPendingTransactionMonitor())
+ return;
+ perIsolateData->idbPendingTransactionMonitor()->deactivateNewTransactions();
}
-IDBPendingTransactionMonitor& IDBPendingTransactionMonitor::from(WillBeHeapSupplementable<ExecutionContext>& context)
+void IDBPendingTransactionMonitor::addNewTransaction(v8::Isolate* isolate, IDBTransaction& transaction)
{
- IDBPendingTransactionMonitor* supplement = static_cast<IDBPendingTransactionMonitor*>(WillBeHeapSupplement<ExecutionContext>::from(context, supplementName()));
- if (!supplement) {
- supplement = new IDBPendingTransactionMonitor();
- provideTo(context, supplementName(), adoptPtrWillBeNoop(supplement));
- }
- return *supplement;
+ V8PerIsolateData* perIsolateData = V8PerIsolateData::from(isolate);
+ if (!perIsolateData->idbPendingTransactionMonitor())
+ perIsolateData->setIDBPendingTransactionMonitor(adoptPtr(new IDBPendingTransactionMonitor()));
+ perIsolateData->idbPendingTransactionMonitor()->addNewTransaction(transaction);
haraken 2014/09/11 01:18:54 Slightly better: 1) Introduce V8PerIsolateData::e
jsbell 2014/09/11 22:14:52 Done.
}
void IDBPendingTransactionMonitor::addNewTransaction(IDBTransaction& transaction)
@@ -65,12 +65,4 @@ void IDBPendingTransactionMonitor::deactivateNewTransactions()
m_transactions.clear();
}
-void IDBPendingTransactionMonitor::trace(Visitor* visitor)
-{
-#if ENABLE(OILPAN)
- visitor->trace(m_transactions);
-#endif
- WillBeHeapSupplement<ExecutionContext>::trace(visitor);
-}
-
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698