Index: third_party/WebKit/Source/core/dom/IntersectionObserver.h |
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObserver.h b/third_party/WebKit/Source/core/dom/IntersectionObserver.h |
index 85c449675b38e35c07282ee23625347baf4eb16e..3281fcea96352ef256fc00bd74383250e40b02ac 100644 |
--- a/third_party/WebKit/Source/core/dom/IntersectionObserver.h |
+++ b/third_party/WebKit/Source/core/dom/IntersectionObserver.h |
@@ -33,6 +33,15 @@ class CORE_EXPORT IntersectionObserver final |
Function<void(const HeapVector<Member<IntersectionObserverEntry>>&), |
WTF::SameThreadAffinity>; |
+ // Defines the assumed initial state of the observed element. If the actual |
+ // state is the same as the initial state, then no observation will be |
+ // delivered. kAuto means the initial observation will always get sent. |
+ enum class InitialState { |
+ // TODO(skyostil): Add support for kVisible. |
+ kAuto, |
+ kHidden, |
+ }; |
+ |
static IntersectionObserver* create(const IntersectionObserverInit&, |
IntersectionObserverCallback&, |
ExceptionState&); |
@@ -72,6 +81,12 @@ class CORE_EXPORT IntersectionObserver final |
return m_observations; |
} |
+ // Set the assumed initial state of the observed element. Note that this can |
+ // only be set before calling observe(). |
+ // TODO(skyostil): Move this setting to IntersectionObserverInit once the API |
+ // is finalized. |
+ void setInitialState(InitialState); |
+ |
DECLARE_TRACE(); |
private: |
@@ -90,6 +105,7 @@ class CORE_EXPORT IntersectionObserver final |
Length m_rightMargin; |
Length m_bottomMargin; |
Length m_leftMargin; |
+ InitialState m_initialState; |
}; |
} // namespace blink |