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 |