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)

35 Branch
Unspecified
Windows
defect

Tracking

()

RESOLVED INCOMPLETE
Tracking Status
firefox54 --- wontfix
firefox55 --- wontfix
firefox56 --- wontfix
firefox57 --- wontfix

People

(Reporter: vb, Unassigned)

References

Details

(Keywords: regression)

Attachments

(2 files)

90.33 KB, image/jpeg
Details
13.87 KB, image/svg+xml
Details
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.
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.
Attached image Screenshot
Attached image Actual svg file
Blocks: 1077745
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(jwatt)
Keywords: regression
Version: 54 Branch → 35 Branch
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)
Per comment #6, it's a known issue. Mark 54 won't fix.
Priority: -- → P3
(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?
Flags: needinfo?(jwatt)
Priority: P3 → P2
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)
Severity: normal → S3

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.

Attachment

General

Creator:
Created:
Updated:
Size: