Closed
Bug 1378672
Opened 8 years ago
Closed 1 year ago
Specific SVG not completely rendered in firefox (at least)
Categories
(Core :: SVG, defect, P3)
Tracking
()
People
(Reporter: vb, Unassigned)
References
Details
(Keywords: regression)
Attachments
(2 files)
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
Steps to reproduce:
Just open SVG file in Firefox: http://jazzkazan.ru/wp-content/themes/uber/images/logo.svg
Actual results:
Part of it not rendered completely
Expected results:
Image should be completely rendered
Additional info:
Issue tested on different browsers and some platforms. Looks like it happens on >=54.0.1 versions on Windows platform. Some guys in IRC channel also see issue.
Updated•8 years ago
|
OS: Unspecified → Windows
I'm on windows and can see the issue on 54 and 56 Nightly, but others on other platforms reported they could not see the issue.
Comment 5•8 years ago
|
||
Regression window:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=21e9a5b9a4e3&tochange=75c93e9a7c97
Suspect: Bug 1077745
Blocks: 1077745
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(jwatt)
Keywords: regression
Version: 54 Branch → 35 Branch
Comment 6•8 years ago
|
||
The attribute viewBox="0 0 13258822 3196096" in the SVG creates a huge scale, and these are known to cause problems for us. It will be some time before we get to fixing this.
Flags: needinfo?(jwatt)
Comment 7•8 years ago
|
||
Per comment #6, it's a known issue. Mark 54 won't fix.
Updated•8 years ago
|
Priority: -- → P3
Comment 8•8 years ago
|
||
(In reply to Jonathan Watt [:jwatt] from comment #6)
> The attribute viewBox="0 0 13258822 3196096" in the SVG creates a huge
> scale, and these are known to cause problems for us. It will be some time
> before we get to fixing this.
jwatt, could you be more specific as to the problems you've been seeing on windows platform?
Comment 9•8 years ago
|
||
We store overflow regions using nscoord values, which are integers, not floating point. When we have transforms that scale up or down by a large amount (as in the testcase) we can overflow the integer limits and end up with bogus overflow regions. Overflow regions are used to determine which elements get display list items, and where the display list items are positioned. As a result of integer overflow we can get bogus values that cause the display list building code to decide that certain elements are offscreen and don't need to be painted.
These "extreme scaling" problems were the downside of switching the SVG code to use display lists, but we decided that the upsides very much outweighed breaking the relatively small number of SVGs on the Web that have such transforms.
There's not really a whole lot we can do about this without impacting on the performance of display list building, and it already has perf issues. We don't really want to slow down the common case for a small number of SVGs with "extreme" scales.
An alternative would be to move nsIFrame's mRect and visual/overflow regions to floating point, but I don't see us doing that any time soon.
Flags: needinfo?(jwatt)
Updated•8 years ago
|
Updated•3 years ago
|
Severity: normal → S3
Comment 10•1 year ago
|
||
The testcase has gone.
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•