| 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..5dc80468be6485b01a45842036b9050e463371a1 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,33 @@ public:
|
| m_elementAnimations = elementAnimations;
|
| }
|
|
|
| + bool hasIntersectionObservation() const
|
| + {
|
| + return m_intersectionObservations && m_intersectionObservations->size();
|
| + }
|
| +
|
| + IntersectionObservation::HashSet& intersectionObservations()
|
| + {
|
| + if (!m_intersectionObservations)
|
| + m_intersectionObservations = new IntersectionObservation::HashSet();
|
| + return *m_intersectionObservations;
|
| + }
|
| +
|
| + void deactivateAllIntersectionObservations()
|
| + {
|
| + if (!m_intersectionObservations)
|
| + return;
|
| + for (auto& observation: *m_intersectionObservations)
|
| + observation->setActive(false);
|
| + }
|
| +
|
| + WeakPtr<Element> createWeakPtr(Element* element)
|
| + {
|
| + if (!m_weakPointerFactory)
|
| + m_weakPointerFactory = adoptPtrWillBeNoop(new WeakPtrFactory<Element>(element));
|
| + return m_weakPointerFactory->createWeakPtr();
|
| + }
|
| +
|
| bool hasPseudoElements() const;
|
| void clearPseudoElements();
|
|
|
| @@ -141,8 +172,13 @@ private:
|
| OwnPtrWillBeMember<ElementShadow> m_shadow;
|
| OwnPtrWillBeMember<NamedNodeMap> m_attributeMap;
|
| OwnPtrWillBeMember<AttrNodeList> m_attrNodeList;
|
| - PersistentWillBeMember<ElementAnimations> m_elementAnimations;
|
| OwnPtrWillBeMember<InlineCSSStyleDeclaration> m_cssomWrapper;
|
| + OwnPtrWillBeMember<WeakPtrFactory<Element>> m_weakPointerFactory;
|
| +
|
| + PersistentWillBeMember<ElementAnimations> m_elementAnimations;
|
| + // 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).
|
| + PersistentWillBeMember<IntersectionObservation::HashSet> m_intersectionObservations;
|
|
|
| RefPtr<ComputedStyle> m_computedStyle;
|
| RefPtrWillBeMember<CustomElementDefinition> m_customElementDefinition;
|
|
|