Index: Source/WebCore/dom/Element.h |
diff --git a/Source/WebCore/dom/Element.h b/Source/WebCore/dom/Element.h |
index b782db287fdcd76baa3116aaff71b7f98e3bbb96..8680943abf76f337426b69222ede1c211d1bcff2 100644 |
--- a/Source/WebCore/dom/Element.h |
+++ b/Source/WebCore/dom/Element.h |
@@ -56,6 +56,11 @@ class RenderTreePosition; |
class WebAnimation; |
struct ElementStyle; |
+#if ENABLE(INTERSECTION_OBSERVER) |
+class IntersectionObserver; |
+struct IntersectionObserverRegistration; |
+#endif |
+ |
enum SpellcheckAttributeState { |
SpellcheckAttributeTrue, |
SpellcheckAttributeFalse, |
@@ -173,15 +178,19 @@ public: |
virtual int scrollWidth(); |
virtual int scrollHeight(); |
- WEBCORE_EXPORT IntRect boundsInRootViewSpace(); |
- |
- WEBCORE_EXPORT FloatRect boundingClientRect(); |
- |
WEBCORE_EXPORT Ref<DOMRectList> getClientRects(); |
Ref<DOMRect> getBoundingClientRect(); |
- // Returns the absolute bounding box translated into client coordinates. |
+ // Same web-exposed client coordinate system as getBoundingClientRect, but does not update layout. |
+ FloatRect boundingRectInClientCoordinates(); |
+ WEBCORE_EXPORT FloatRect boundingClientRect(); // FIXME |
+ |
+ // Returns the absolute bounding box translated into root view coordinates. Result affected by top content inset. |
+ // Does not update layout. |
WEBCORE_EXPORT IntRect clientRect() const; |
+ // Similar (idential?) behavior to clientRect(), but updates layout. |
+ WEBCORE_EXPORT IntRect boundsInRootViewSpace(); |
+ |
// Returns the absolute bounding box translated into screen coordinates. |
WEBCORE_EXPORT IntRect screenRect() const; |
@@ -565,6 +574,13 @@ public: |
using ContainerNode::setAttributeEventListener; |
void setAttributeEventListener(const AtomicString& eventType, const QualifiedName& attributeName, const AtomicString& value); |
+#if ENABLE(INTERSECTION_OBSERVER) |
+ void startObservingIntersections(IntersectionObserver&); |
+ void endObservingIntersections(IntersectionObserver&); |
+ |
+ Vector<IntersectionObserverRegistration>* intersectionObserverRegistrations(); |
+#endif |
+ |
Element* findAnchorElementForLink(String& outAnchorName); |
ExceptionOr<Ref<WebAnimation>> animate(JSC::ExecState&, JSC::Strong<JSC::JSObject>&&, std::optional<Variant<double, KeyframeAnimationOptions>>&&); |
@@ -644,6 +660,10 @@ private: |
void formatForDebugger(char* buffer, unsigned length) const override; |
#endif |
+#if ENABLE(INTERSECTION_OBSERVER) |
+ void disconnectFromIntersectionObservers(); |
+#endif |
+ |
// The cloneNode function is private so that non-virtual cloneElementWith/WithoutChildren are used instead. |
Ref<Node> cloneNodeInternal(Document&, CloningOperation) override; |
virtual Ref<Element> cloneElementWithoutAttributesAndChildren(Document&); |