Commit Graph

338 Commits

Author SHA1 Message Date
Boris Zbarsky
ea8c0a5865 Bug 473390 part 16. Move around SVG assertions so that they happen in frame init, not during frame creation. r=jwatt, sr=roc 2009-01-19 13:31:34 -05:00
Robert O'Callahan
f877eead56 Backed out changeset fb2d014e0352 2009-01-20 00:25:58 +13:00
Robert O'Callahan
9a8a9a01d5 Bug 471551. Avoid duplicate string storage for SVG string attributes; let nsSVGString get the baseval from the element. Also change mAnimVal to an nsAutoPtr to minimize storage in the non-animated common case. r=longsonr,sr=roc 2009-01-19 22:03:31 +13:00
Robert O'Callahan
00e57b8380 Backed out changeset 9246fefef1cc 2009-01-17 23:58:34 +13:00
Robert Longson
4a4ce9e387 Bug 472135. Avoid re-getting the target marker frame in nsSVGMarkerProperty::DoUpdate --- that leads to infinite loops. Update things lazily instead via fake style changes. r+sr=roc
--HG--
extra : rebase_source : f90519e06842d6301e3a27eddb0cddd300b62db2
2009-01-16 21:20:29 +13:00
Craig Topper
41cbd4c43c Bug 473511. nsSVGInnerSVGFrame does not need to implement nsISVGValueObserver. r=jwatt,sr=roc
--HG--
extra : rebase_source : 7b5b4dd1c5702498a496133c643891c337ea4a42
2009-01-16 21:14:40 +13:00
Craig Topper
fe58910902 Bug 473517. nsSVGUtils::CoordToFloat should avoid heap-allocating an nsSVGLength. r+sr=roc
--HG--
extra : rebase_source : c2cd532376da8c37ad02f834ab4e859fec61dda1
2009-01-16 21:02:40 +13:00
Jeremy Lea
1800930122 Bug 448830. Make nsIntRect/nsIntMargin/nsIntSize/nsIntPoint different types from nsRect/nsMargin/nsSize/nsPoint different types for better compile-type unit checking. r+sr=roc
--HG--
extra : rebase_source : a331a9e49fbc5931f546919281fcca7f008ab615
2009-01-15 16:27:09 +13:00
Benjamin Smedberg
24e7cb1f78 Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

nsITextControlFrame didn't have an IID the first time around, but this wasn't a compile error because nsITextControlFrame::kFrameIID inherited from nsIFormControlFrame::kFrameIID. I've added a static analysis pass to verify the correct behavior, since I can't figure out a way to make the compiler do it.

--HG--
extra : rebase_source : 4894a2ca0278e2ab92f27459db77165f8348cf41
2009-01-12 14:20:59 -05:00
Benjamin Smedberg
50621e4f9f Backed out changeset 4c4df6ed1b41 - Bug 396185 - Make nsIFrame not inherit from nsISupports due to mochitest failures... these appear to be crashes in nsGenericHTMLElement::GetEditorInternal. 2009-01-09 11:35:24 -05:00
Benjamin Smedberg
d0b948876f Bug 396185 - Make nsIFrame derivatives and helper abstract classes use a different dynamic-cast system than nsISupports:
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted

Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.

r+sr=roc

This patch locally causes two REFTEST-UNEXPECTED-PASS for Bidi stuff. It's possible that I accidentally fixed a bug, but I'm not sure, so I'm going to wait for the tinderboxes to confirm my local results.
2008-11-05 14:25:30 -05:00
Boris Zbarsky
9fcdc6e542 Adding test 2009-01-05 13:32:00 -05:00
Robert O'Callahan
f5ac70880b Bug 470911. Make the preserveAspectRatio attribute storage much simpler and make the DOM accessors use tear-offs. With help from Craig Topper. r+sr=roc
--HG--
extra : rebase_source : 1a073c76d07c0a4532b2caf9978ef5847b36dec8
2009-01-05 14:19:38 +13:00
L. David Baron
eee42cfdd7 Replace space manager with a more limited float manager. (Bug 191448) r+sr=roc
--HG--
rename : layout/generic/nsSpaceManager.cpp => layout/generic/nsFloatManager.cpp
rename : layout/generic/nsSpaceManager.h => layout/generic/nsFloatManager.h
2009-01-04 19:39:54 -05:00
Jesse Ruderman
cf4b91bb09 Add 19 crashtests 2009-01-01 14:18:58 -08:00
Robert Longson
f36ad9a78a Bug 470124 - Crash [@ nsSVGUtils::GetRelativeRect]; r+sr=roc 2008-12-21 02:16:42 +01:00
Robert Longson
37644973d1 Bug 441780. Fix radial gradient clamping to be more aggressive. r=jwatt,sr=roc
--HG--
extra : rebase_source : 477e5305530e86348a3526a8157f5f93340c644b
2008-12-17 20:28:33 +13:00
Martin Stránský
bbe42c7104 b=403513 bad kerning in print output if hinting is set to medium or full r=karlt sr=vlad 2008-12-17 16:17:50 +13:00
Karl Tomlinson
5286ba753b backout b=403513 due to compile error in gfxFontSelectionTest.cpp 2008-12-17 13:57:40 +13:00
Martin Stránský
12cfd5e1c9 b=403513 bad kerning in print output if hinting is set to medium or full r=karlt sr=vlad 2008-12-17 13:44:32 +13:00
Jesse Ruderman
41c9e25f93 Crashtest for bug 458453. 2008-12-14 00:48:51 +01:00
Robert O'Callahan
aea35dfccb Bug 455314. nsSVGRenderingObserver::GetReferencedFrame shouldn't try to look up the frame on a cache miss, if we're currently destroying frames. r+sr=mats 2008-12-12 21:25:16 +13:00
Robert O'Callahan
6dbbdf56bd Bug 448243. When nsSVGFilterInstance needs to create a dummy input image, create one of the right size. r=jwatt,sr=mats 2008-12-12 21:14:26 +13:00
Robert Longson
252da2f241 Bug 463064 - Use covered region to minimise foreignObject painting r+sr=roc 2008-12-06 15:22:01 +00:00
Robert Longson
e65daea5b3 Bug 464374 - Crash [@ nsSVGUtils::MaxExpansion] with svg filter, mathml; r+sr=roc 2008-12-04 19:17:45 +01:00
Robert Longson
2e6127ba6e Bug 437704. Always union fill extents with stroke extents instead of just relying on stroke extents, in case they turn out to be empty. r+sr=roc 2008-12-03 14:35:42 +13:00
Robert Longson
beb1a27d17 Bug 463934 - text bounds do not account for position properly
Landing this to see if it fixes bug 465222 - tsvg regression November 3 2008
r=roc, sr=roc, a1.9.1=beltzner
2008-11-29 11:23:57 -08:00
Daniel Holbert
d56b70f7b8 Bug 420697: Add svgGlyphFrame check to GetStrokeDashoffset and GetStrokeDashArray, making them match GetStrokeWidth. r+sr=roc a=beltzner 2008-11-14 10:46:56 -08:00
Robert Longson
eb5eeff1a2 Bug 460946 - getBoundingClientRect on rotated svgElement with stroke is incorrect. r+sr=roc 2008-11-03 10:04:25 +00:00
Robert Longson
febc31f5d7 Bug 461751 - zoomAndPan=disable prevents programmatic zoom. r+sr=roc 2008-11-03 10:01:28 +00:00
Benjamin Smedberg
b1918bb2c3 Bug 462381 - Build layout directories in parallel r=ted sr=roc 2008-10-31 09:07:15 -07:00
Robert Longson
aea053fb71 Bug 459883 r+sr=roc 2008-10-27 11:48:20 +00:00
Bernd
6777c42861 bug 258377, make border collapsed tables to listen for dynamic border style changes r/sr=bzbarsky 2008-10-26 11:11:34 +01:00
Robert Longson
3c95494de7 Bug 461324 - Simplify NS_STATE_SVG_NONDISPLAY_CHILD in foreignObject. r+sr=roc 2008-10-24 08:47:04 +01:00
Robert Longson
538bf394cc Bug 461131 - Remove unused mFilterRect variable from nsSVGFilterProperty. r+sr=roc 2008-10-23 10:04:34 +01:00
Robert Longson
cdab2d161e Bug 458493 - Crash calling nsSVGEffects::RemoveRenderingObserver. r+sr=roc 2008-10-22 10:09:03 +01:00
Arpad Borsos
3585c944f1 Bug 456388 - "Remove PR_STATIC_CALLBACK and PR_CALLBACK(_DECL) from the tree" (followup for mozilla-central) [r+sr=brendan] 2008-10-21 01:50:05 -05:00
Robert Longson
b2d04fc41e Bug 459758 - effects on outer svg frames only work accidentally. r+sr=roc 2008-10-20 09:42:03 +01:00
Robert Longson
2a15218653 Bug 460551 - overrideCTM is no longer necessary. r+sr=roc 2008-10-18 09:19:01 +01:00
Robert Longson
3803652e6d Bug 460210 - Various frames should call GetMatrixPropagation() instead of using mPropagateTransform. r+sr=roc 2008-10-17 20:41:35 +01:00
Robert O'Callahan
126f57733c Bug 459512. When painting an SVG source image for a filter, translate the dirty rect into device coordinates relative to the outer-SVG. Also, don't use an override-CTM to transform into filter space, just apply the transform to the gfxContext. r=longsonr,sr=mats 2008-10-16 20:55:10 +13:00
Robert Longson
1dd81c7158 Bug 459759 - Crash if markers contain paths. r+sr=roc 2008-10-16 08:48:55 +01:00
L. David Baron
9d7714304c Make sure DidSetStyleContext methods call the base class DidSetStyleContext, and change the signature to return void. (Bug 459649) r+sr=bzbarsky 2008-10-13 18:03:28 -04:00
Robert Longson
c3efd6b2ba Bug 459497 - Remove unused code following dynamic ID work. r+sr=roc 2008-10-11 13:55:11 +01:00
Robert Longson
1c4514a4aa Bug 458010 - textPath should use nsReferencedElement instead of nsSVGUtils::GetReferencedFrame. r+sr=roc 2008-10-11 12:29:35 +01:00
Arpad Borsos
8b11d938d2 Bug 456388 - Remove PR_STATIC_CALLBACK and PR_CALLBACK(_DECL) from the tree; r+sr=brendan 2008-10-10 17:04:34 +02:00
Robert Longson
13864ddc3f Bug 309220 - SVG markers should be live to id changes in document. r+sr=roc 2008-10-10 14:14:05 +01:00
Boris Zbarsky
af70b1c6a4 Bug 433616 tests. r+sr=roc 2008-09-28 15:16:34 -04:00
Boris Zbarsky
806f011a3c Bug 433616 part 3. Integration of externa resource documents into nsReferencedElement, plus some SVG fixups needed to handle nsReferencedElement returning an element from a different document, r+sr=roc 2008-09-28 15:16:15 -04:00
Robert Longson
1afc10db2a Bug 458068 - SVG fill="none" is broken, behaves like fill="black". r+sr=roc 2008-10-06 15:44:40 +02:00
John Daggett
c5d2a8ddfd Bug 441473. Implement user font set object. r+sr=roc 2008-10-01 12:01:53 +09:00
Robert O'Callahan
09cfc5fa8c Bug 455984. Rework gradient and pattern code to use nsReferencedElement and nsSVGRenderingObservers, so they observe changes to the ID-element-map properly and propagate invalidations correctly (and with simpler code too). r=longsonr,sr=mats 2008-10-01 13:51:05 +13:00
Robert O'Callahan
337c852320 Backing out bug 455984 to see if it fixed Tp crashes 2008-10-01 00:28:20 +13:00
Robert O'Callahan
0a5a34cbab Bug 455984. Rework gradient and pattern code to use nsReferencedElement and nsSVGRenderingObservers, so they observe changes to the ID-element-map properly and propagate invalidations correctly (and with simpler code too). r=longsonr,sr=mats 2008-09-30 21:47:20 +13:00
Boris Zbarsky
012ae72fd1 Backing out changesets 2ea77fa990af, 7d2d8869e73c, 93441e4f521e, 43d2ee100f3b, a2d84821ea71 to see whether they're causing the Windows Txul or Mac Tp regressions 2008-09-29 08:51:29 -04:00
Boris Zbarsky
8016ce082c Bug 433616 tests. r+sr=roc 2008-09-28 15:16:34 -04:00
Boris Zbarsky
b513c32fdf Bug 433616 part 3. Integration of externa resource documents into nsReferencedElement, plus some SVG fixups needed to handle nsReferencedElement returning an element from a different document, r+sr=roc 2008-09-28 15:16:15 -04:00
Robert O'Callahan
279af36fc7 Backing out bug 448830 2008-09-28 23:13:58 +13:00
Robert Longson
e456d12fd3 Bug 456282 - getStartPositionOfChar calculates advances in incorrect coordinate system. r+sr=roc 2008-09-28 10:05:26 +01:00
Jeremy Lea
92e7030a42 Bug 448830. Make nsIntRect/nsIntMargin/nsIntSize/nsIntPoint their own types so that we can catch errors by distinguishing pixels from appunits. r+sr=roc 2008-09-28 20:38:34 +13:00
Robert O'Callahan
6a45b282aa Backing out bug 448830 2008-09-26 13:10:26 +12:00
Jeremy Lea
67f3afd13b Bug 448830. Make nsIntRect/nsIntSize/nsIntPoint/nsIntMargin separate types so we get appunit vs pixel typechecking. r+sr=roc 2008-09-26 10:42:19 +12:00
Robert O'Callahan
41e313558f Bug 455279. Fix mask alpha computation so that it works when the incoming gfxContext has a non-identity transform. r=longsonr,sr=mats 2008-09-22 14:14:54 +12:00
Keith Schwarz
8ed70cceea Bug 455389 - SVG foreignObjects don't get NS_FRAME_MAY_BE_TRANSFORMED frame bit; r+sr=roc 2008-09-20 18:31:47 +02:00
Arpad Borsos
d0e70a51bf Bug 452797 - Clean up unused variables in layout/; v6; r+sr=roc 2008-09-20 15:42:03 +02:00
Robert O'Callahan
f79290bb0e Bug 450930. Fire a DOM event when painting so that content and chrome can track what's being repainted. r=smaug,sr=dbaron 2008-09-18 21:47:21 +12:00
Jeremy Lea
a1de6b1b1d Bug 454937 - Pixel/app unit confusion in SVG filter code; r+sr=roc 2008-09-16 13:54:30 +02:00
Frédéric WANG
72b53ae3c7 b=454085 Add text-indent:0 for -moz-svg-foreign-content to prevent unexpected spaces r+sr=roc 2008-09-16 10:41:42 +12:00
Arpad Borsos
eef0edf9d5 Bug 454766 - Add suggested parentheses to layout/; r+sr=roc; (with nits by sgautherie) 2008-09-15 17:40:25 +02:00
Keith Schwarz
dc907e1ec7 Bug 435293. Implement CSS transforms. r=dbaron,r+sr=roc 2008-09-13 21:42:11 +12:00
Robert O'Callahan
539a029252 Bug 450340. Support SVG mask/clip-path/filter CSS properties applied to non-SVG content. r=longsonr,sr=mats 2008-09-11 12:24:16 +12:00
timeless@mozdev.org
5819f54b4e merging backout part two of two
to fix Bug 454186
SM crashes when try to download file [@ nsString::ToInteger - nsTreeBodyFrame::PaintProgressMeter]
2008-09-08 16:01:00 +02:00
timeless@mozdev.org
b0c349250f Backed out changeset 54215f2cbc66
to fix Bug 454186
SM crashes when try to download file [@ nsString::ToInteger - nsTreeBodyFrame::PaintProgressMeter]
2008-09-08 16:00:32 +02:00
Graeme McCutcheon
b6ce570b3c Bug 451252 - "Highlight All" find selection not visible in elements that have -moz-user-select: none set; r+sr=roc 2008-09-07 16:12:50 +02:00
Arpad Borsos
1f62482141 Bug 452797 - Clean up unused variables in layout/; r+sr=roc 2008-09-06 20:38:31 +02:00
Jeremy Lea
a543803324 Bug 379616. The mRect for SVG frames should be in appunits. r+sr=tor 2008-08-25 21:23:54 +12:00
Benjamin Smedberg
61d23845dc Backed out changeset e92e18d52d71 due to the following test failures on Windows:
*** 31290 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgbase bounding rect width - got 45, expected 0
*** 31291 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgbase bounding rect height - got 20, expected 0
*** 31292 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgbase bounding rect right - got 45, expected 0
*** 31293 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgbase bounding rect bottom - got 20, expected 0
*** 31306 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgrect bounding rect width - got 45, expected 0
*** 31307 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgrect bounding rect height - got 20, expected 0
*** 31308 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgrect bounding rect right - got 45, expected 0
*** 31309 ERROR TEST-UNEXPECTED-FAIL | /tests/dom/tests/mochitest/general/test_offsets.xul | svgrect bounding rect bottom - got 20, expected 0
2008-08-19 12:20:16 -04:00
Jeremy Lea
9957840a6a Bug 379616 - Switch SVG's frame mRect to app units, r+sr=tor 2008-08-19 10:14:01 -04:00
Robert Longson
0f5abca8c0 Bug 450495 - Make foreignObject a mandatory part of SVG. r+sr=roc 2008-08-17 12:18:21 +01:00
Robert O'Callahan
b19aa85b24 Bug 449327. nsSVGObjectFrame::GetBBox should account for canvas TM. Also add some simple bbox tests even though they don't test this bug. r=longsonr,sr=mats 2008-08-15 22:24:01 +12:00
Robert O'Callahan
0307be506c Bug 441368 crashtest 2008-08-15 21:30:44 +12:00
Robert O'Callahan
b2b9e631e0 Bug 445079. Make nsSVGRenderState able to generate an nsIRenderingContext, so that filters and other users can host foreignObject content. r=longsonr,sr=mats 2008-08-12 20:36:51 +12:00
Robert O'Callahan
5a1d007a60 Bug 449323. Factor some code out of nsSVGUtils to nsSVGEffects. r=longsonr,sr=mats 2008-08-08 13:34:43 +12:00
Robert O'Callahan
5e1036f776 Bug 447565. Comment-only followup. 2008-08-06 16:02:16 +12:00
Robert O'Callahan
9db3555724 Bug 447567, trying to fix bustage again 2008-08-06 13:58:29 +12:00
Robert O'Callahan
1c8d82f70e Bug 447567, trying to fix bustage 2008-08-06 13:43:34 +12:00
Robert O'Callahan
aa8fb5c224 Bug 447567. Instead of brutally wiping out effects properties whenever the style context changes for an SVG frame (which wouldn't work for non-SVG frames), create a new style change hint to handle it. r=longsonr,sr=dbaron 2008-08-06 12:55:07 +12:00
Robert O'Callahan
0299f89707 Bug 447565. Make clip-path/filter/mask use nsReferencedElement to update correctly when the element referenced by an ID changes. r=longsonr,sr=mats 2008-08-06 12:25:33 +12:00
Robert Longson
991c773e4d Bug 445685 - Improve performance with large numbers of text fragments. r=jwatt,sr=roc 2008-07-30 20:28:12 +01:00
roc@localhost
2b1f9eed61 Bug 445297. Optimize filters so that changes to the source image don't have to repaint the entire filter. r=longsonr,sr=mats 2008-07-23 14:15:27 +12:00
Robert O'Callahan
36e9776d0f Bug 445268. Initialize gfxRect to empty, it doesn't do it automatically. Should fix regression from bug 416305. r=longsonr,sr=mats 2008-07-15 20:49:42 +12:00
Robert O'Callahan
bfe75b2156 Bug 445081. Refactor code to use ComputeNormalizedHypotenuse ... relanding with a fix so that we don't lose precision and break SVG text mochitests. r=longsonr,sr=mats 2008-07-15 20:46:54 +12:00
Robert O'Callahan
f90023250c Backing out changeset 4624fef36355 (bug 445081) due to test failures on Windows and Mac 2008-07-15 16:36:19 +12:00
Robert O'Callahan
e54fbdfe86 Backing out changeset 6c8c95fcaf9b (bug 445079) due to test failure on Windows 2008-07-15 16:35:37 +12:00
Robert O'Callahan
b1f4bd2080 Bug 445079. Make filters and patterns use an offscreen surface with the ability to create an nsIRenderingContext wrapper as needed, so foreignObject works in those contexts. r=longsonr,sr=mats 2008-07-15 15:16:43 +12:00
Robert O'Callahan
3f6b07d740 Bug 445081. Factor out code to create nsSVGUtils::ComputeNormalizedHypotenuse. r=longsonr,sr=mats 2008-07-15 15:12:40 +12:00
Robert O'Callahan
90e343b2fd Bug 418201. Restrict filter processing to the dirty area. r=longsonr,sr=mats 2008-07-15 15:08:47 +12:00
Robert O'Callahan
50dec1e8a5 Bug 416305. Part 2: Introduce image flag to indicate that all the color channel values are equal, set it for source-alpha images, and optimize Gaussian blur when the color channel values are known to be all-zero. r=longsonr,sr=mats 2008-07-14 14:49:07 +12:00
Robert O'Callahan
3594fc2a5e Bug 416305. Part 1, fixing missing file bustage 2008-07-14 13:31:34 +12:00
Robert O'Callahan
133e8872e2 Bug 416305. Part 1: restructure SVG filters to remove the image dictionary and pass Image objects along edges of the filter primtive graph; filter primitive analysis and coordination is moved to nsSVGFilterInstance. r=longsonr,sr=mats 2008-07-14 13:21:25 +12:00