| Index: Source/core/dom/Document.h
|
| diff --git a/Source/core/dom/Document.h b/Source/core/dom/Document.h
|
| index 5d063b74b7593c229deedb96f961dd8a19d267dc..0e3545235216a61736ae9c723000288867d656f9 100644
|
| --- a/Source/core/dom/Document.h
|
| +++ b/Source/core/dom/Document.h
|
| @@ -211,6 +211,26 @@ enum DocumentClass {
|
|
|
| typedef unsigned char DocumentClassFlags;
|
|
|
| +class Document;
|
| +
|
| +class DocumentVisibilityObserver {
|
| +public:
|
| + DocumentVisibilityObserver(Document&);
|
| + virtual ~DocumentVisibilityObserver();
|
| +
|
| + virtual void didChangeVisibilityState(PageVisibilityState) = 0;
|
| +
|
| + // Classes that inherit Node and DocumentVisibilityObserver must have a
|
| + // virtual override of Node::didMoveToNewDocument that calls
|
| + // DocumentVisibilityObserver::setDocument
|
| + void setObservedDocument(Document&);
|
| +
|
| +private:
|
| + void registerObserver(Document&);
|
| + void unregisterObserver();
|
| + Document* m_document;
|
| +};
|
| +
|
| class Document : public ContainerNode, public TreeScope, public SecurityContext, public ExecutionContext, public ExecutionContextClient
|
| , public DocumentSupplementable, public LifecycleContext<Document> {
|
| public:
|
| @@ -361,7 +381,7 @@ public:
|
|
|
| String visibilityState() const;
|
| bool hidden() const;
|
| - void dispatchVisibilityStateChangeEvent();
|
| + void didChangeVisibilityState();
|
|
|
| PassRefPtr<Node> adoptNode(PassRefPtr<Node> source, ExceptionState&);
|
|
|
| @@ -1015,6 +1035,9 @@ public:
|
| bool hasViewportUnits() const { return m_hasViewportUnits; }
|
| void notifyResizeForViewportUnits();
|
|
|
| + void registerVisibilityObserver(DocumentVisibilityObserver*);
|
| + void unregisterVisibilityObserver(DocumentVisibilityObserver*);
|
| +
|
| protected:
|
| Document(const DocumentInit&, DocumentClassFlags = DefaultDocumentClass);
|
|
|
| @@ -1307,6 +1330,8 @@ private:
|
| HashSet<SVGUseElement*> m_useElementsNeedingUpdate;
|
|
|
| bool m_hasViewportUnits;
|
| +
|
| + HashSet<DocumentVisibilityObserver*> m_visibilityObservers;
|
| };
|
|
|
| inline void Document::notifyRemovePendingSheetIfNeeded()
|
|
|