NEW 257615
Fix getBBox() returning (0,0) bug when width or height is zero
https://bugs.webkit.org/show_bug.cgi?id=257615
Summary Fix getBBox() returning (0,0) bug when width or height is zero
Ahmad Saleem
Reported 2023-06-01 12:33:09 PDT
Hi Team, While going through Blink commit, I came across another failing test case: Test Case: https://bug-93290-attachments.webkit.org/attachment.cgi?id=156745 ^ From our own bug 93290. *** Safari Technology Preview 171 & Firefox Nightly 115 *** bbox size is: 0 by 0 *** Chrome Canary 116 *** bbox size is: 0 by 100 ___________________ Although, we fixed it in bug 93290 but the code is not today as was changed in the bug. (Might be reverted). Blink Commit: https://src.chromium.org/viewvc/blink?view=revision&revision=170097 ^ I did local testing and now we match 'Chrome'. ___________________ FAIL - https://jsfiddle.net/9wdL6xjf/show & https://jsfiddle.net/f2m7kh69/show etc. _____________________ Bounding Box Spec: https://svgwg.org/svg2-draft/coords.html#BoundingBoxes & https://svgwg.org/svg2-draft/types.html#__svg__SVGGraphicsElement__getBBox ________________________ Thanks!
Attachments
Alexey Proskuryakov
Comment 1 2023-06-02 10:54:32 PDT
git log for tests added with that fix shows an explanation from Said, see https://commits.webkit.org/217223@main: These tests were added in r169522. They succeed in Safari and Chrome but they fail in FireFox. The issue of calculating getBBox was discussed in: https://lists.w3.org/Archives/Public/www-svg/2012Aug/0014.html. But no resolution was reached. So looks like we've intentionally undone this change.
Karl Dubost
Comment 2 2023-06-04 22:16:18 PDT
In addition to what Alex mentioned there are a number of issues around https://wpt.fyi/results/svg/types/scripted?label=master&label=experimental&aligned&q=getbbox Also https://bugs.webkit.org/buglist.cgi?quicksearch=getbbox Probably it would be worth to open an issue on https://github.com/w3c/svgwg/issues?q=is%3Aissue+is%3Aopen+getbbox with a pointer to the thread Alex found. https://lists.w3.org/Archives/Public/www-svg/2012Aug/thread.html#msg14 Gecko/WebKit at the time were aligned on ignoring the shape and consider it as a display: none. The state of implementations was described in https://lists.w3.org/Archives/Public/www-svg/2012Aug/0043.html On SVG 2 current Editor Draft https://svgwg.org/svg2-draft/types.html#__svg__SVGGraphicsElement__getBBox > The getBBox method is used to compute the bounding box of > the current element. When the getBBox(options) method is > called, the bounding box algorithm is invoked for the > current element, with fill, stroke, markers and clipped > members of the options dictionary argument used to control > which parts of the element are included in the bounding > box, using the element's user coordinate system as the > coordinate system to return the bounding box in. A newly > created DOMRect object that defines the computed bounding > box is returned. And the paragraph ends with: > If getBBox gets called on a non-rendered element, and > the UA is not able to compute the geometry of the element, > then throw an InvalidStateError. So at least it should throw an InvalidStateError. (If I understood correctly.)
Radar WebKit Bug Importer
Comment 3 2023-06-08 12:34:15 PDT
Note You need to log in before you can comment on or make changes to this bug.