summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/page/page_visibility_observer.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/page/page_visibility_observer.h')
-rw-r--r--chromium/third_party/blink/renderer/core/page/page_visibility_observer.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/chromium/third_party/blink/renderer/core/page/page_visibility_observer.h b/chromium/third_party/blink/renderer/core/page/page_visibility_observer.h
index 2c57411b245..29e0b32773e 100644
--- a/chromium/third_party/blink/renderer/core/page/page_visibility_observer.h
+++ b/chromium/third_party/blink/renderer/core/page/page_visibility_observer.h
@@ -28,20 +28,29 @@
#define THIRD_PARTY_BLINK_RENDERER_CORE_PAGE_PAGE_VISIBILITY_OBSERVER_H_
#include "third_party/blink/renderer/core/core_export.h"
-#include "third_party/blink/renderer/core/page/page.h"
-#include "third_party/blink/renderer/platform/lifecycle_observer.h"
+#include "third_party/blink/renderer/platform/heap/handle.h"
namespace blink {
-class CORE_EXPORT PageVisibilityObserver
- : public LifecycleObserver<Page, PageVisibilityObserver> {
+class Page;
+
+class CORE_EXPORT PageVisibilityObserver : public GarbageCollectedMixin {
public:
- virtual void PageVisibilityChanged() {}
+ virtual void PageVisibilityChanged() = 0;
+
+ // Call before clearing an observer list.
+ void ObserverListWillBeCleared();
- Page* GetPage() const { return LifecycleContext(); }
+ Page* GetPage() const { return page_; }
+ void SetPage(Page*);
+
+ void Trace(Visitor* visitor) override;
protected:
- explicit PageVisibilityObserver(Page* page) : LifecycleObserver(page) {}
+ explicit PageVisibilityObserver(Page*);
+
+ private:
+ WeakMember<Page> page_;
};
} // namespace blink