The default bug view has changed. See this FAQ.

Status

()

Core
SVG
--
enhancement
RESOLVED FIXED
12 years ago
9 years ago

People

(Reporter: Scooter Morris, Assigned: Scooter Morris)

Tracking

Trunk
Points:
---
Dependency tree / graph
Bug Flags:
blocking1.8b5 -
blocking1.8.1 -

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(4 attachments, 14 obsolete attachments)

138.54 KB, patch
Details | Diff | Splinter Review
7.00 KB, image/png
Details
109.52 KB, text/html
Details
82.36 KB, image/svg+xml
Details
(Assignee)

Description

12 years ago
See http://www.w3.org/TR/SVG11/pservers.html#Patterns for spec. details.
(Assignee)

Updated

12 years ago
Depends on: 295850
(Assignee)

Comment 1

12 years ago
Created attachment 190464 [details] [diff] [review]
Work in progress -- Pattern Content (+DOM) diffs
(Assignee)

Comment 2

12 years ago
Created attachment 190465 [details] [diff] [review]
Work in progress -- Pattern Layout (+Cairo) diffs
(Assignee)

Comment 3

12 years ago
Created attachment 190992 [details] [diff] [review]
Pattern implementation -- dom/ files
(Assignee)

Comment 4

12 years ago
Created attachment 190993 [details] [diff] [review]
Pattern implementation -- content
Attachment #190464 - Attachment is obsolete: true
(Assignee)

Comment 5

12 years ago
Created attachment 190994 [details] [diff] [review]
Pattern implementation -- layout + cairo

This is still a work in progress.  Patterns now generally work as expected, but
I'm still having problems getting the transformations right in all
circumstances.
Attachment #190465 - Attachment is obsolete: true
(Assignee)

Updated

12 years ago
Depends on: 302699
No longer depends on: 295850
(Assignee)

Updated

12 years ago
Depends on: 295850
(Assignee)

Comment 6

12 years ago
Created attachment 191255 [details] [diff] [review]
Updated diffs for layout+cairo -- fixes tranformation matrix problems
(Assignee)

Updated

12 years ago
Attachment #190994 - Attachment is obsolete: true

Updated

12 years ago
Flags: blocking1.8b4?

Comment 7

12 years ago
Created attachment 191534 [details] [diff] [review]
GDI+ code for patterns

Comment 8

12 years ago
Created attachment 191535 [details] [diff] [review]
GDI+ code for patterns (including new files)
Attachment #191534 - Attachment is obsolete: true
(Assignee)

Comment 9

12 years ago
Created attachment 191847 [details] [diff] [review]
Combined patch -- updated for getRefFrame landing
Attachment #190992 - Attachment is obsolete: true
Attachment #190993 - Attachment is obsolete: true
Attachment #191255 - Attachment is obsolete: true
Attachment #191535 - Attachment is obsolete: true
(Assignee)

Updated

12 years ago
Attachment #191847 - Flags: review?(tor)
we'll decide on taking this once this gets through reviews and security reviews
and we can assess the risk.  If it doesn't make it for beta, we're not holding
for it.
Flags: blocking1.8b4? → blocking1.8b4-

Comment 11

12 years ago
Comment on attachment 191847 [details] [diff] [review]
Combined patch -- updated for getRefFrame landing

This is going to take a bit of merging with the trunk.	Do we also need loop
detection for this, to prevent a pattern having geometry that uses the same
pattern?
(Assignee)

Comment 12

12 years ago
(In reply to comment #11)
> (From update of attachment 191847 [details] [diff] [review] [edit])
> This is going to take a bit of merging with the trunk.	Do we also need loop
> detection for this, to prevent a pattern having geometry that uses the same
> pattern?
> 
Yes, now that filters have landed, I'll get a new patch out that has merged to
the trunk and will include the loop detection stuff that I've done for gradients.
(Assignee)

Comment 13

12 years ago
Created attachment 195284 [details] [diff] [review]
Updated to current tree -- added loop detection
Attachment #191847 - Attachment is obsolete: true
Attachment #195284 - Flags: review?(tor)

Comment 14

12 years ago
Created attachment 195705 [details] [diff] [review]
fixes for gdi+

Addition patch that needs to be applied atop attachment 195284 [details] [diff] [review] to get GDI+
compiling.

The pattern tests in the w3c test suite work fine, but the example from the SVG
1.1 specification doesn't.
(Assignee)

Comment 15

12 years ago
(In reply to comment #14)
> Created an attachment (id=195705) [edit]
> fixes for gdi+
> 
> Addition patch that needs to be applied atop attachment 195284 [details] [diff] [review] [edit] to get GDI+
> compiling.
> 
> The pattern tests in the w3c test suite work fine, but the example from the SVG
> 1.1 specification doesn't.
> 

Yes, I now see that.  The transformation matrix calculations are wrong when a
viewBox is defined.
(Assignee)

Updated

12 years ago
Attachment #195284 - Flags: review?(tor)
(Assignee)

Updated

12 years ago
Attachment #191847 - Flags: review?(tor)
(Assignee)

Comment 16

12 years ago
Created attachment 195911 [details] [diff] [review]
Fix problem with pattern viewBox

This patch includes the GDI+ fixes and the fix for the viewBox problem.  I also
removed some extraneous diffs that were in my tree.
Attachment #195284 - Attachment is obsolete: true
Attachment #195705 - Attachment is obsolete: true
Attachment #195911 - Flags: review?(tor)
(Assignee)

Comment 17

12 years ago
Created attachment 195914 [details] [diff] [review]
Oops -- include *all* of the gdi+ changes
Attachment #195911 - Attachment is obsolete: true
Attachment #195914 - Flags: review?(tor)
(Assignee)

Updated

12 years ago
Attachment #195911 - Flags: review?(tor)
(Assignee)

Updated

12 years ago
Attachment #195914 - Flags: review?(tor)
(Assignee)

Comment 18

12 years ago
Created attachment 195923 [details] [diff] [review]
How embarrasing -- remove nsSVGGradientFrame diffs (should be in a different patch)
Attachment #195914 - Attachment is obsolete: true

Comment 19

12 years ago
Comment on attachment 195923 [details] [diff] [review]
How embarrasing -- remove nsSVGGradientFrame diffs (should be in a different patch)

Looks good.  A few minors nits about license blocks - nsISVGPattern.idl should
have your information; nsSVGCairoPattern.{h,cpp} say they include code from
themselves.

Fix those on checkin.  r=tor
(Assignee)

Comment 20

12 years ago
Created attachment 195958 [details] [diff] [review]
For the record -- final diffs
Attachment #195923 - Attachment is obsolete: true
(Assignee)

Comment 21

12 years ago
Checked in:
Checking in content/svg/content/src/Makefile.in;
/cvsroot/mozilla/content/svg/content/src/Makefile.in,v  <--  Makefile.in
new revision: 1.40; previous revision: 1.39
done
Checking in content/svg/content/src/nsSVGAtomList.h;
/cvsroot/mozilla/content/svg/content/src/nsSVGAtomList.h,v  <--  nsSVGAtomList.h
new revision: 1.26; previous revision: 1.25
done
Checking in content/svg/content/src/nsSVGElementFactory.cpp;
/cvsroot/mozilla/content/svg/content/src/nsSVGElementFactory.cpp,v  <-- 
nsSVGElementFactory.cpp
new revision: 1.29; previous revision: 1.28
done
Checking in content/svg/content/src/nsSVGFeaturesList.h;
/cvsroot/mozilla/content/svg/content/src/nsSVGFeaturesList.h,v  <-- 
nsSVGFeaturesList.h
new revision: 1.4; previous revision: 1.3
done
RCS file: /cvsroot/mozilla/content/svg/content/src/nsSVGPatternElement.cpp,v
done
Checking in content/svg/content/src/nsSVGPatternElement.cpp;
/cvsroot/mozilla/content/svg/content/src/nsSVGPatternElement.cpp,v  <-- 
nsSVGPatternElement.cpp
initial revision: 1.1
done
Checking in dom/public/nsIDOMClassInfo.h;
/cvsroot/mozilla/dom/public/nsIDOMClassInfo.h,v  <--  nsIDOMClassInfo.h
new revision: 1.72; previous revision: 1.71
done
Checking in dom/public/idl/svg/Makefile.in;
/cvsroot/mozilla/dom/public/idl/svg/Makefile.in,v  <--  Makefile.in
new revision: 1.22; previous revision: 1.21
done
RCS file: /cvsroot/mozilla/dom/public/idl/svg/nsIDOMSVGPatternElement.idl,v
done
Checking in dom/public/idl/svg/nsIDOMSVGPatternElement.idl;
/cvsroot/mozilla/dom/public/idl/svg/nsIDOMSVGPatternElement.idl,v  <-- 
nsIDOMSVGPatternElement.idl
initial revision: 1.1
done
Checking in dom/src/base/nsDOMClassInfo.cpp;
/cvsroot/mozilla/dom/src/base/nsDOMClassInfo.cpp,v  <--  nsDOMClassInfo.cpp
new revision: 1.313; previous revision: 1.312
done
Checking in layout/base/nsCSSFrameConstructor.cpp;
/cvsroot/mozilla/layout/base/nsCSSFrameConstructor.cpp,v  <-- 
nsCSSFrameConstructor.cpp
new revision: 1.1126; previous revision: 1.1125
done
Checking in layout/svg/base/src/Makefile.in;
/cvsroot/mozilla/layout/svg/base/src/Makefile.in,v  <--  Makefile.in
new revision: 1.50; previous revision: 1.49
done
Checking in layout/svg/base/src/nsSVGGlyphFrame.cpp;
/cvsroot/mozilla/layout/svg/base/src/nsSVGGlyphFrame.cpp,v  <--  nsSVGGlyphFrame.cpp
new revision: 1.35; previous revision: 1.34
done
Checking in layout/svg/base/src/nsSVGPathGeometryFrame.cpp;
/cvsroot/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.cpp,v  <-- 
nsSVGPathGeometryFrame.cpp
new revision: 1.30; previous revision: 1.29
done
Checking in layout/svg/base/src/nsSVGPathGeometryFrame.h;
/cvsroot/mozilla/layout/svg/base/src/nsSVGPathGeometryFrame.h,v  <-- 
nsSVGPathGeometryFrame.h
new revision: 1.16; previous revision: 1.15
done
RCS file: /cvsroot/mozilla/layout/svg/base/src/nsSVGPattern.h,v
done
Checking in layout/svg/base/src/nsSVGPattern.h;
/cvsroot/mozilla/layout/svg/base/src/nsSVGPattern.h,v  <--  nsSVGPattern.h
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/layout/svg/base/src/nsSVGPatternFrame.cpp,v
done
Checking in layout/svg/base/src/nsSVGPatternFrame.cpp;
/cvsroot/mozilla/layout/svg/base/src/nsSVGPatternFrame.cpp,v  <-- 
nsSVGPatternFrame.cpp
initial revision: 1.1
done
Checking in layout/svg/renderer/public/Makefile.in;
/cvsroot/mozilla/layout/svg/renderer/public/Makefile.in,v  <--  Makefile.in
new revision: 1.5; previous revision: 1.4
done
Checking in layout/svg/renderer/public/nsISVGGeometrySource.idl;
/cvsroot/mozilla/layout/svg/renderer/public/nsISVGGeometrySource.idl,v  <-- 
nsISVGGeometrySource.idl
new revision: 1.10; previous revision: 1.9
done
RCS file: /cvsroot/mozilla/layout/svg/renderer/public/nsISVGPattern.idl,v
done
Checking in layout/svg/renderer/public/nsISVGPattern.idl;
/cvsroot/mozilla/layout/svg/renderer/public/nsISVGPattern.idl,v  <-- 
nsISVGPattern.idl
initial revision: 1.1
done
Checking in layout/svg/renderer/src/cairo/Makefile.in;
/cvsroot/mozilla/layout/svg/renderer/src/cairo/Makefile.in,v  <--  Makefile.in
new revision: 1.20; previous revision: 1.19
done
Checking in layout/svg/renderer/src/cairo/nsSVGCairoCanvas.cpp;
/cvsroot/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoCanvas.cpp,v  <-- 
nsSVGCairoCanvas.cpp
new revision: 1.24; previous revision: 1.23
done
Checking in layout/svg/renderer/src/cairo/nsSVGCairoGlyphGeometry.cpp;
/cvsroot/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoGlyphGeometry.cpp,v 
<--  nsSVGCairoGlyphGeometry.cpp
new revision: 1.22; previous revision: 1.21
done
Checking in layout/svg/renderer/src/cairo/nsSVGCairoPathGeometry.cpp;
/cvsroot/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoPathGeometry.cpp,v  <--
 nsSVGCairoPathGeometry.cpp
new revision: 1.26; previous revision: 1.25
done
RCS file: /cvsroot/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoPattern.cpp,v
done
Checking in layout/svg/renderer/src/cairo/nsSVGCairoPattern.cpp;
/cvsroot/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoPattern.cpp,v  <-- 
nsSVGCairoPattern.cpp
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoPattern.h,v
done
Checking in layout/svg/renderer/src/cairo/nsSVGCairoPattern.h;
/cvsroot/mozilla/layout/svg/renderer/src/cairo/nsSVGCairoPattern.h,v  <-- 
nsSVGCairoPattern.h
initial revision: 1.1
done
Checking in layout/svg/renderer/src/gdiplus/Makefile.in;
/cvsroot/mozilla/layout/svg/renderer/src/gdiplus/Makefile.in,v  <--  Makefile.in
new revision: 1.10; previous revision: 1.9
done
Checking in layout/svg/renderer/src/gdiplus/nsSVGGDIPlusGlyphGeometry.cpp;
/cvsroot/mozilla/layout/svg/renderer/src/gdiplus/nsSVGGDIPlusGlyphGeometry.cpp,v
 <--  nsSVGGDIPlusGlyphGeometry.cpp
new revision: 1.13; previous revision: 1.12
done
Checking in layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPathGeometry.cpp;
/cvsroot/mozilla/layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPathGeometry.cpp,v
 <--  nsSVGGDIPlusPathGeometry.cpp
new revision: 1.14; previous revision: 1.13
done
RCS file: /cvsroot/mozilla/layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPattern.cpp,v
done
Checking in layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPattern.cpp;
/cvsroot/mozilla/layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPattern.cpp,v  <--
 nsSVGGDIPlusPattern.cpp
initial revision: 1.1
done
RCS file: /cvsroot/mozilla/layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPattern.h,v
done
Checking in layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPattern.h;
/cvsroot/mozilla/layout/svg/renderer/src/gdiplus/nsSVGGDIPlusPattern.h,v  <-- 
nsSVGGDIPlusPattern.h
initial revision: 1.1
done


dom/public/idl/svg/nsIDOMSVGPatternElement.idl

Could you put the /** */ comment for an interface directly in front of it,
instead of in front of the interface forward-declarations? reason: doxygen
assumes such comments refer to the thing they are directly in front of, so
automated documentation generation would not show this comment where it should.
(Assignee)

Updated

12 years ago
Status: NEW → RESOLVED
Last Resolved: 12 years ago
Resolution: --- → FIXED

Updated

12 years ago
Flags: blocking1.8.1?

Comment 23

11 years ago
Not going to block 1.8.1 for this bug.
Flags: blocking1.8.1? → blocking1.8.1-

Comment 24

10 years ago
Created attachment 279105 [details]
Does'nt display pattern as seen in this screen capture

Please re-open this bug.
Firefox 2.0.0.6 still can't display SVG patterns.
Tested with:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)
Refernce SVG: http://www.w3.org/TR/SVG11/images/pservers/pattern01.svg
It should display as: http://www.w3.org/TR/SVG11/images/pservers/pattern01.png
(Assignee)

Comment 25

10 years ago
(In reply to comment #24)
> Created an attachment (id=279105) [details]
> Does'nt display pattern as seen in this screen capture
> 
> Please re-open this bug.
> Firefox 2.0.0.6 still can't display SVG patterns.
> Tested with:
> Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201
> Firefox/2.0.0.6 (Ubuntu-feisty)
> Refernce SVG: http://www.w3.org/TR/SVG11/images/pservers/pattern01.svg
> It should display as: http://www.w3.org/TR/SVG11/images/pservers/pattern01.png
> 

This was not implemented until after Firefox 2 was released.  If you want pattern support, feel free to download one of the latest alpha releases, or a nightly from the trunk.

Comment 26

9 years ago
Please reopen this bug. This bug is still not resolved in Firefox 2.0.0.11 on mac or windows. The simple pattern links in the previous post still don't work.

Tried on : Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11

Comment 27

9 years ago
The reference SVG pattern test render fine in firefox 3b2:

Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9b2) Gecko/2007121016 Firefox/3.0b2
It looks like early on this patch was mismerged or something and as a result it turned off the generic "svg" 1.1 feature strings.  See bug 426447.
Depends on: 426447

Comment 29

9 years ago
Created attachment 334783 [details]
HTML document incorporating SVG in an iframe using an RFC 2397 data:URI

Pattern support is broken if the SVG is embedded in an <iframe> or <object> using an RFC 2397 data:URI. All patterns appear solid black.

Comment 30

9 years ago
Created attachment 334784 [details]
The source SVG which firefox renders correctly standalone.

Comment 31

9 years ago
I think this bug should be reopened. Patterns don't work when the SVG is embedded in a data:URI, as demonstrated in the attachments I posted. All patterns appear as solid black. Firefox renders the original SVG, not in a data:URI with the patterns intact. In addition to <iframe> and <object>, pasting the data:URI into the address bar of the browser produces the same result. 

Comment 32

9 years ago
That's bug 308590. Leave this one alone.
You need to log in before you can comment on or make changes to this bug.