Bug 236344

Summary: SVG getEnclosureList is effected by page zoom.
Product: WebKit Reporter: halifirien
Component: SVGAssignee: 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:
Description Flags
demo of issue none

halifirien
Reported 2022-02-08 18:48:17 PST
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.
Attachments
demo of issue (1.13 KB, text/html)
2022-02-08 18:48 PST, halifirien
no flags
halifirien
Comment 1 2022-02-09 06:54:23 PST
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.
halifirien
Comment 2 2022-02-09 08:08:52 PST
getEnclosureList (from svg/SVGSVGElement.cpp) appears to route to LegacyRenderSVGModelObject::checkEnclosure, even though a (modern?) RenderSVGModelObject::checkEnclosure exists.
halifirien
Comment 3 2022-02-09 09:09:55 PST
ah, I see that RenderSVGModelObject::checkEnclosure is very new (https://trac.webkit.org/changeset/287538/webkit) - and not even used anywhere yet
halifirien
Comment 4 2022-02-09 12:11:21 PST
Radar WebKit Bug Importer
Comment 5 2022-02-14 19:58:23 PST
Note You need to log in before you can comment on or make changes to this bug.