diff --git a/Userland/Libraries/LibWeb/DOM/Range.cpp b/Userland/Libraries/LibWeb/DOM/Range.cpp index c8af80e6af..9b7907949d 100644 --- a/Userland/Libraries/LibWeb/DOM/Range.cpp +++ b/Userland/Libraries/LibWeb/DOM/Range.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include namespace Web::DOM { @@ -1102,4 +1103,11 @@ WebIDL::ExceptionOr Range::delete_contents() return {}; } +// https://w3c.github.io/csswg-drafts/cssom-view/#dom-range-getboundingclientrect +JS::NonnullGCPtr Range::get_bounding_client_rect() const +{ + dbgln("(STUBBED) Range::get_bounding_client_rect()"); + return Geometry::DOMRect::construct_impl(realm(), 0, 0, 0, 0); +} + } diff --git a/Userland/Libraries/LibWeb/DOM/Range.h b/Userland/Libraries/LibWeb/DOM/Range.h index 21f7b89be1..12b293f96e 100644 --- a/Userland/Libraries/LibWeb/DOM/Range.h +++ b/Userland/Libraries/LibWeb/DOM/Range.h @@ -82,6 +82,8 @@ public: static HashTable& live_ranges(); + JS::NonnullGCPtr get_bounding_client_rect() const; + private: explicit Range(Document&); Range(Node& start_container, u32 start_offset, Node& end_container, u32 end_offset); diff --git a/Userland/Libraries/LibWeb/DOM/Range.idl b/Userland/Libraries/LibWeb/DOM/Range.idl index 677954eae0..9f58372356 100644 --- a/Userland/Libraries/LibWeb/DOM/Range.idl +++ b/Userland/Libraries/LibWeb/DOM/Range.idl @@ -1,5 +1,6 @@ #import #import +#import [Exposed=Window] interface Range : AbstractRange { @@ -38,6 +39,8 @@ interface Range : AbstractRange { boolean intersectsNode(Node node); + DOMRect getBoundingClientRect(); + stringifier; };