Closed
Bug 294517
Opened 19 years ago
Closed 19 years ago
Implement SVG Patterns
Categories
(Core :: SVG, enhancement)
Core
SVG
Tracking
()
RESOLVED
FIXED
People
(Reporter: scootermorris, Assigned: scootermorris)
References
Details
Attachments
(4 files, 14 obsolete files)
See http://www.w3.org/TR/SVG11/pservers.html#Patterns for spec. details.
Assignee | ||
Comment 1•19 years ago
|
||
Assignee | ||
Comment 2•19 years ago
|
||
Assignee | ||
Comment 3•19 years ago
|
||
Assignee | ||
Comment 4•19 years ago
|
||
Attachment #190464 -
Attachment is obsolete: true
Assignee | ||
Comment 5•19 years ago
|
||
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•19 years ago
|
Assignee | ||
Comment 6•19 years ago
|
||
Assignee | ||
Updated•19 years ago
|
Attachment #190994 -
Attachment is obsolete: true
Attachment #191534 -
Attachment is obsolete: true
Assignee | ||
Comment 9•19 years ago
|
||
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•19 years ago
|
Attachment #191847 -
Flags: review?(tor)
Comment 10•19 years ago
|
||
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•19 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•19 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•19 years ago
|
||
Attachment #191847 -
Attachment is obsolete: true
Attachment #195284 -
Flags: review?(tor)
Comment 14•19 years ago
|
||
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•19 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•19 years ago
|
Attachment #195284 -
Flags: review?(tor)
Assignee | ||
Updated•19 years ago
|
Attachment #191847 -
Flags: review?(tor)
Assignee | ||
Comment 16•19 years ago
|
||
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•19 years ago
|
||
Attachment #195911 -
Attachment is obsolete: true
Attachment #195914 -
Flags: review?(tor)
Assignee | ||
Updated•19 years ago
|
Attachment #195911 -
Flags: review?(tor)
Assignee | ||
Updated•19 years ago
|
Attachment #195914 -
Flags: review?(tor)
Assignee | ||
Comment 18•19 years ago
|
||
Attachment #195914 -
Attachment is obsolete: true
Comment 19•19 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•19 years ago
|
||
Attachment #195923 -
Attachment is obsolete: true
Assignee | ||
Comment 21•19 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
Comment 22•19 years ago
|
||
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•19 years ago
|
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Updated•19 years ago
|
Flags: blocking1.8.1?
Comment 23•18 years ago
|
||
Not going to block 1.8.1 for this bug.
Flags: blocking1.8.1? → blocking1.8.1-
Comment 24•17 years ago
|
||
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•17 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•17 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•17 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
Comment 28•16 years ago
|
||
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.
Comment 29•16 years ago
|
||
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•16 years ago
|
||
Comment 31•16 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•16 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.
Description
•