Chromium Code Reviews| 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 |