Index: Source/core/dom/FullscreenElementStack.h |
diff --git a/Source/core/dom/FullscreenElementStack.h b/Source/core/dom/FullscreenElementStack.h |
index 9fd69454726e606b04240c87a9e97add06ab51f0..964787ceecf244872a0e074e44807dae60c49aba 100644 |
--- a/Source/core/dom/FullscreenElementStack.h |
+++ b/Source/core/dom/FullscreenElementStack.h |
@@ -41,10 +41,11 @@ namespace WebCore { |
class Document; |
class Element; |
+class ExecutionContext; |
+class FullscreenObserver; |
class Node; |
class RenderFullScreen; |
class RenderStyle; |
-class ExecutionContext; |
class FullscreenElementStack FINAL |
: public NoBaseWillBeGarbageCollectedFinalized<FullscreenElementStack> |
@@ -101,6 +102,9 @@ public: |
virtual void trace(Visitor*) OVERRIDE; |
+ void addObserver(FullscreenObserver*); |
+ void removeObserver(FullscreenObserver*); |
+ |
private: |
static FullscreenElementStack* fromIfExistsSlow(Document&); |
@@ -109,6 +113,8 @@ private: |
Document* document(); |
void fullScreenChangeDelayTimerFired(Timer<FullscreenElementStack>*); |
+ void notifyObserversDidFullyExitFullScreen(); |
+ |
bool m_areKeysEnabledInFullScreen; |
RefPtrWillBeMember<Element> m_fullScreenElement; |
WillBeHeapVector<RefPtrWillBeMember<Element> > m_fullScreenElementStack; |
@@ -118,6 +124,8 @@ private: |
WillBeHeapDeque<RefPtrWillBeMember<Node> > m_fullScreenErrorEventTargetQueue; |
LayoutRect m_savedPlaceholderFrameRect; |
RefPtr<RenderStyle> m_savedPlaceholderRenderStyle; |
+ typedef HashSet<FullscreenObserver*> FullscreenObserverSet; |
+ FullscreenObserverSet m_fullscreenObservers; |
}; |
inline bool FullscreenElementStack::isActiveFullScreenElement(const Element* element) |