diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/modules/indexeddb/IDBPendingTransactionMonitor.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/modules/indexeddb/IDBPendingTransactionMonitor.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/chromium/third_party/WebKit/Source/modules/indexeddb/IDBPendingTransactionMonitor.h b/chromium/third_party/WebKit/Source/modules/indexeddb/IDBPendingTransactionMonitor.h index a197fcb67fd..5ed0ffb450f 100644 --- a/chromium/third_party/WebKit/Source/modules/indexeddb/IDBPendingTransactionMonitor.h +++ b/chromium/third_party/WebKit/Source/modules/indexeddb/IDBPendingTransactionMonitor.h @@ -26,11 +26,14 @@ #ifndef IDBPendingTransactionMonitor_h #define IDBPendingTransactionMonitor_h +#include "platform/Supplementable.h" #include "wtf/Noncopyable.h" +#include "wtf/PassOwnPtr.h" #include "wtf/Vector.h" namespace WebCore { +class ExecutionContext; class IDBTransaction; // This class keeps track of the transactions created during the current @@ -38,15 +41,24 @@ class IDBTransaction; // which is set to true on creation, but must be set to false when control // returns to the event loop. -class IDBPendingTransactionMonitor { +class IDBPendingTransactionMonitor : public Supplement<ExecutionContext> { WTF_MAKE_NONCOPYABLE(IDBPendingTransactionMonitor); public: - static void addNewTransaction(PassRefPtr<IDBTransaction>); - static void deactivateNewTransactions(); + static IDBPendingTransactionMonitor& from(Supplementable<ExecutionContext>&); + virtual ~IDBPendingTransactionMonitor(); + // The trace functino doesn't work until ExecutionContext is moved to Oilpan + // heap. + virtual void trace(Visitor* visitor) OVERRIDE { Supplement<ExecutionContext>::trace(visitor); } + void addNewTransaction(IDBTransaction&); + void deactivateNewTransactions(); private: IDBPendingTransactionMonitor(); + static const char* supplementName(); + + typedef PersistentHeapVector<Member<IDBTransaction> > TransactionList; + TransactionList m_transactions; }; } // namespace WebCore |