Contact emails [email protected]
Explainer https://gist.github.com/jogibear9988/8420264d0911ce6c5aab0ac5cda0744e Specification https://drafts.csswg.org/cssom-view/#the-geometryutils-interface Summary Prototype the CSSOM View GeometryUtils API in Blink behind the existing GeometryUtils runtime flag. The API exposes getBoxQuads(), convertQuadFromNode(), convertRectFromNode(), and convertPointFromNode() on Document, Element, Text, and CSSPseudoElement so authors can obtain and convert precise DOM geometry using standard DOMPoint, DOMRect, and DOMQuad objects. The underlying DOM geometry value types, including DOMPoint, DOMRect, and DOMQuad, already exist in Chromium; this prototype adds the node-based geometry utility methods. Blink component Blink>Geometry Web Feature ID dom-geometry Goals for experimentation None Risks Interoperability and Compatibility Interoperability risk is relatively low. These APIs are defined in the CSSOM View specification and are not Chromium-specific. Firefox already implements the GeometryUtils APIs, including getBoxQuads(), convertPointFromNode(), convertRectFromNode(), and convertQuadFromNode(), providing an existing independent implementation. The main interoperability risk is differences in geometry calculations for edge cases such as CSS transforms, SVG, nested browsing contexts, and fragmented inline elements. Web Platform Tests are used to verify behavior across implementations. Gecko: Shipped/Shipping (https://bugzilla.mozilla.org/show_bug.cgi?id=1107559) WebKit: No signal https://bugs.webkit.org/show_bug.cgi?id=321597 rdar://problem/185319307 Web developers: Positive (https://github.com/web-platform-dx/developer-signals/issues/301) Other signals: Ergonomics The APIs are synchronous geometry queries and may require style and layout to be up to date, similar to existing geometry APIs such as getBoundingClientRect(). Authors should avoid excessive geometry queries that cause repeated synchronous layout. No additional ergonomics risks are known. Activation The API can be used directly without additional libraries. A polyfill is available for browsers that do not yet implement the GeometryUtils APIs: https://github.com/node-projects/get-box-quads-polyfill Security No new security risks are known. The APIs expose geometry information that is already available through existing DOM/CSSOM APIs such as getBoundingClientRect() and getClientRects(). They do not expose cross-origin document contents or bypass existing same-origin restrictions. WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? Low risk. This feature adds new APIs and does not deprecate or change the behavior of existing APIs. Existing Android WebView applications that do not use these APIs are unaffected. Debuggability The APIs are directly callable from JavaScript and the DevTools console. Returned DOMPoint, DOMRect, and DOMQuad objects can be inspected normally. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)? Yes Is this feature fully tested by web-platform-tests? Yes https://github.com/web-platform-tests/wpt/pull/61015 DevTrial instructions https://gist.github.com/jogibear9988/fab3ab3f4529874c91f07d0d3768d0b7 Flag name on about://flags No information provided Finch feature name GeometryUtils Requires code in //chrome? False Tracking bug https://issues.chromium.org/issues/427918516 Measurement No dedicated UseCounters have been added yet. Estimated milestones No milestones specified Link to entry on the Chrome Platform Status https://chromestatus.com/feature/6015941766807552 Links to previous Intent discussions Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a4d5bd1.a289f910.4de7f.0524.GAE%40google.com This intent message was generated by Chrome Platform Status. -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6a89512d.e9f9f009.2da420.0036.GAE%40google.com.
