Closed Bug 705206 Opened 13 years ago Closed 13 years ago

svg filter used in mask's group fails to render correctly

Categories

(Core :: SVG, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla11

People

(Reporter: eugene.chishko, Assigned: longsonr)

References

Details

Attachments

(2 files)

If a filter is applied to <g> element within a mask, firefox fails to render. But if it is applied directly to child element of <g> it renders svg. Please see the attachment for the not working svg. Here are 2 svgs to demonstrate the issue: 1)does not work on Firefox(works on chrome) <svg width="600" height="400" xmlns="http://www.w3.org/2000/svg" bbheight="210" bbwidth="250"> <!-- Created with ImageBot - http://www.imagebot.com/ --> <g> <defs> <filter y="90" width="250" height="210" x="90" filterUnits="userSpaceOnUse" id="imagebot_6"> <feGaussianBlur stdDeviation="6" result="back"/> </filter> </defs> <title>Layer 1</title> <g id="imagebot_1"> <mask id="imagebot_5" x="0" y="0" width="1" height="1"> <g id="imagebot_7" filter="url(#imagebot_6)"> <rect x="100" y="100" width="250" height="210" fill="grey" id="imagebot_2" /> </g> </mask> <g id="imagebot_3" mask="url(#imagebot_5)"> <rect x="100" y="100" width="250" height="210" fill="red" id="imagebot_4"/> </g> </g> </g> </svg> 2)works on Firefox(works on chrome) <svg width="600" height="400" xmlns="http://www.w3.org/2000/svg" bbheight="210" bbwidth="250"> <!-- Created with ImageBot - http://www.imagebot.com/ --> <g> <defs> <filter y="90" width="250" height="210" x="90" filterUnits="userSpaceOnUse" id="imagebot_6"> <feGaussianBlur stdDeviation="6" result="back"/> </filter> </defs> <title>Layer 1</title> <g id="imagebot_1"> <mask id="imagebot_5" x="0" y="0" width="1" height="1"> <g id="imagebot_7" > <rect x="100" y="100" width="250" height="210" fill="grey" id="imagebot_2" filter="url(#imagebot_6)"/> </g> </mask> <g id="imagebot_3" mask="url(#imagebot_5)"> <rect x="100" y="100" width="250" height="210" fill="red" id="imagebot_4"/> </g> </g> </g> </svg> The only difference is that filter reference is moved from <g> element directly to the child in this case <rect>.
Assignee: nobody → longsonr
Status: UNCONFIRMED → NEW
Ever confirmed: true
Attached patch patchSplinter Review
children of masks have no valid covered rect as masks are not directly displayable so we skip drawing them when there's a filter present as filters calculate their own dirty rects.
Attachment #582694 - Flags: review?(dholbert)
Blocks: 697904
OS: Windows 7 → All
Hardware: x86_64 → All
Version: unspecified → Trunk
Attachment #582694 - Flags: review?(dholbert) → review+
Flags: in-testsuite+
Target Milestone: --- → mozilla11
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: