diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h')
-rw-r--r-- | chromium/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/chromium/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h b/chromium/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h index 269bfd29d4a..015f6ecc611 100644 --- a/chromium/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h +++ b/chromium/third_party/WebKit/Source/core/dom/custom/CustomElementCallbackQueue.h @@ -32,7 +32,9 @@ #define CustomElementCallbackQueue_h #include "core/dom/Element.h" -#include "core/dom/custom/CustomElementCallbackInvocation.h" +#include "core/dom/custom/CustomElementProcessingStep.h" +#include "platform/heap/Handle.h" +#include "wtf/OwnPtr.h" #include "wtf/PassOwnPtr.h" #include "wtf/PassRefPtr.h" #include "wtf/RefPtr.h" @@ -40,14 +42,17 @@ namespace WebCore { -class CustomElementCallbackQueue { +// FIXME: Rename this because it contains resolution and upgrade as +// well as callbacks. +class CustomElementCallbackQueue : public NoBaseWillBeGarbageCollectedFinalized<CustomElementCallbackQueue> { WTF_MAKE_NONCOPYABLE(CustomElementCallbackQueue); public: - static PassOwnPtr<CustomElementCallbackQueue> create(PassRefPtr<Element>); + static PassOwnPtrWillBeRawPtr<CustomElementCallbackQueue> create(PassRefPtrWillBeRawPtr<Element>); - typedef int ElementQueue; - ElementQueue owner() { return m_owner; } - void setOwner(ElementQueue newOwner) + typedef int ElementQueueId; + ElementQueueId owner() const { return m_owner; } + + void setOwner(ElementQueueId newOwner) { // ElementCallbackQueues only migrate towards the top of the // processing stack. @@ -55,16 +60,19 @@ public: m_owner = newOwner; } - void append(PassOwnPtr<CustomElementCallbackInvocation> invocation) { m_queue.append(invocation); } - void processInElementQueue(ElementQueue); + bool processInElementQueue(ElementQueueId); + + void append(PassOwnPtr<CustomElementProcessingStep> invocation) { m_queue.append(invocation); } bool inCreatedCallback() const { return m_inCreatedCallback; } + void trace(Visitor*); + private: - CustomElementCallbackQueue(PassRefPtr<Element>); + explicit CustomElementCallbackQueue(PassRefPtrWillBeRawPtr<Element>); - RefPtr<Element> m_element; - Vector<OwnPtr<CustomElementCallbackInvocation> > m_queue; - ElementQueue m_owner; + RefPtrWillBeMember<Element> m_element; + Vector<OwnPtr<CustomElementProcessingStep> > m_queue; + ElementQueueId m_owner; size_t m_index; bool m_inCreatedCallback; }; |