| Index: third_party/WebKit/Source/core/dom/ElementRareData.h
|
| diff --git a/third_party/WebKit/Source/core/dom/ElementRareData.h b/third_party/WebKit/Source/core/dom/ElementRareData.h
|
| index 5e27cfe6ef0a797ef74015199dba900aba584b20..dec5fd7f16706b30ef62d05d4aa80c1c95f3a190 100644
|
| --- a/third_party/WebKit/Source/core/dom/ElementRareData.h
|
| +++ b/third_party/WebKit/Source/core/dom/ElementRareData.h
|
| @@ -25,6 +25,8 @@
|
| #include "core/animation/ElementAnimations.h"
|
| #include "core/dom/Attr.h"
|
| #include "core/dom/DatasetDOMStringMap.h"
|
| +#include "core/dom/IntersectionObservation.h"
|
| +#include "core/dom/IntersectionObserver.h"
|
| #include "core/dom/NamedNodeMap.h"
|
| #include "core/dom/NodeRareData.h"
|
| #include "core/dom/PseudoElement.h"
|
| @@ -33,7 +35,9 @@
|
| #include "core/html/ClassList.h"
|
| #include "core/style/StyleInheritedData.h"
|
| #include "platform/heap/Handle.h"
|
| +#include "wtf/HashSet.h"
|
| #include "wtf/OwnPtr.h"
|
| +#include "wtf/WeakPtr.h"
|
|
|
| namespace blink {
|
|
|
| @@ -107,6 +111,25 @@ public:
|
| m_elementAnimations = elementAnimations;
|
| }
|
|
|
| + bool hasIntersectionObservation() const
|
| + {
|
| + return m_intersectionObservations && m_intersectionObservations->size();
|
| + }
|
| +
|
| + IntersectionObservation::HashSet& intersectionObservations()
|
| + {
|
| + if (!m_intersectionObservations)
|
| + m_intersectionObservations = adoptPtrWillBeNoop(new IntersectionObservation::HashSet());
|
| + return *m_intersectionObservations.get();
|
| + }
|
| +
|
| + WeakPtr<Element> createWeakPtr(Element* element)
|
| + {
|
| + if (!m_weakPointerFactory)
|
| + m_weakPointerFactory = adoptPtrWillBeNoop(new WeakPtrFactory<Element>(element));
|
| + return m_weakPointerFactory->createWeakPtr();
|
| + }
|
| +
|
| bool hasPseudoElements() const;
|
| void clearPseudoElements();
|
|
|
| @@ -144,6 +167,11 @@ private:
|
| PersistentWillBeMember<ElementAnimations> m_elementAnimations;
|
| OwnPtrWillBeMember<InlineCSSStyleDeclaration> m_cssomWrapper;
|
|
|
| + // Note that m_intersectionObservers will contain both observers for which this element is target,
|
| + // and observers for which this element is root. To tell them apart, check (observer->root() == element).
|
| + OwnPtrWillBeMember<IntersectionObservation::HashSet> m_intersectionObservations;
|
| + OwnPtrWillBeMember<WeakPtrFactory<Element>> m_weakPointerFactory;
|
| +
|
| RefPtr<ComputedStyle> m_computedStyle;
|
| RefPtrWillBeMember<CustomElementDefinition> m_customElementDefinition;
|
|
|
|
|