| Summary: | SVG getEnclosureList is effected by page zoom. | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | halifirien | ||||
| Component: | SVG | Assignee: | Nobody <webkit-unassigned> | ||||
| Status: | NEW --- | ||||||
| Severity: | Normal | CC: | halifirien, sabouhallawa, simon.fraser, webkit-bug-importer, wenson_hsieh, zalan, zimmermann | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | Safari 15 | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=224795 | ||||||
| Attachments: |
|
||||||
chromium keeps svg.currentScale at 1; even at different page zoom levels. While webkits svg.currentScale tracks the page zoom. however, you can manually set svg.currentScale - and adjusting it has no effect on svg.getEnclosureList on chromium. getEnclosureList (from svg/SVGSVGElement.cpp) appears to route to LegacyRenderSVGModelObject::checkEnclosure, even though a (modern?) RenderSVGModelObject::checkEnclosure exists. ah, I see that RenderSVGModelObject::checkEnclosure is very new (https://trac.webkit.org/changeset/287538/webkit) - and not even used anywhere yet maybe related to https://bugs.webkit.org/show_bug.cgi?id=194903 |
Created attachment 451334 [details] demo of issue SVG getEnclosureList is effected by page zoom. Attached is an html file with an svg element with 2 rectangles. The large rectangle entirely encloses a small rectangle. Calling `getBBox` on the large rectangle returns an SVGRect (box). Calling svg.getEnclosureList(box, svg) correctly returns the smaller rect. Now when you use ⌘+ to Page zoom, getEnclosureList no longer returns any elements. this effects safari 15, but I can confirm it also effect safari 13 (could not test 14) thank you.