Index: third_party/WebKit/Source/core/dom/IntersectionObservation.h |
diff --git a/third_party/WebKit/Source/core/dom/IntersectionObservation.h b/third_party/WebKit/Source/core/dom/IntersectionObservation.h |
index e832c6213f2c2bae809479537a4c3a587e07aaff..702882a74411ef3e1cf1163e0f82985a87d8314a 100644 |
--- a/third_party/WebKit/Source/core/dom/IntersectionObservation.h |
+++ b/third_party/WebKit/Source/core/dom/IntersectionObservation.h |
@@ -12,6 +12,7 @@ namespace blink { |
class Element; |
class IntersectionObserver; |
+class Node; |
class IntersectionObservation : public GarbageCollectedFinalized<IntersectionObservation> { |
public: |
@@ -24,7 +25,7 @@ public: |
}; |
IntersectionObserver& observer() const { return *m_observer; } |
- Element* target() const { return m_target.get(); } |
+ Element* target() const; |
bool isActive() const { return m_active; } |
void setActive(bool active) { m_active = active; } |
unsigned lastThresholdIndex() const { return m_lastThresholdIndex; } |
@@ -43,7 +44,12 @@ private: |
bool computeGeometry(IntersectionGeometry&); |
Member<IntersectionObserver> m_observer; |
- WeakPtrWillBeWeakMember<Element> m_target; |
+ |
+ // TODO(szager): Why Node instead of Element? Because NodeIntersectionObserverData::createWeakPtr() |
+ // returns a WeakPtr<Node>, which cannot be coerced into a WeakPtr<Element>. When oilpan rolls out, |
+ // this can be changed to WeakMember<Element>. |
+ WeakPtrWillBeWeakMember<Node> m_target; |
+ |
unsigned m_active : 1; |
unsigned m_shouldReportRootBounds : 1; |
unsigned m_lastThresholdIndex : 30; |