Commit Graph

1762 Commits

Author SHA1 Message Date
Robert Longson
6ae02084b0 Bug 1156581 - Add null check to nsSVGEffects::InvalidateRenderingObservers to prevent crashes r=dholbert 2015-12-30 20:19:33 +00:00
Nicholas Nethercote
7ef94539a6 Bug 1231303 - Moz2Dify nsFilterInstance. r=roc. 2015-12-13 14:02:34 -08:00
Chris Peterson
7f4c4d76a4 Bug 1228947 - Replace mfbt/Constants.h with math.h. r=roc 2015-11-27 20:49:55 -08:00
Nicholas Nethercote
5169a5a9d8 Bug 1229202 (part 3) - Make gfxContextAutoDisableSubpixelAntialiasing take a DrawTarget instead of a gfxContext. r=mattwoodrow. 2015-12-02 15:32:16 -08:00
Robert Longson
3581ca2975 Bug 1145195 part 1 - Create a helper function for PrependLocalTransformsTo in SVGContentUtils r=dholbert 2015-12-02 22:36:23 +00:00
Bobby Holley
478a54a686 Bug 773429 - Remove dom.disable_image_src_set. r=khuey 2015-11-23 14:08:34 -08:00
Bas Schouten
b8b0368a41 Bug 1224798: Do not produce a clip mask if our context is entirely clipped out anyway. r=jrmuizel 2015-11-17 16:27:17 +01:00
Nicholas Nethercote
4ce3d974a8 Bug 1223690 - Remove implicit Rect conversions. r=jrmuizel.
gfxRect can be implicitly constructed from IntRect, which hides a number of
implicit conversion points, makes Moz2Dification harder, and has some
surprising effects.

This patch removes the implicit constructor and replaces it with an explicit
conversion function:

  gfxRect ThebesRect(const IntRect&)

This is the obvious outcome of removing the constructor.

But there is also a second, less obvious outcome: currently we do a number of
IntRect-to-Rect conversions using ToRect(), which (surprisingly) works because
it turns into an implicit IntRect-to-gfxRect conversion (via the implicit
constructor) combined with an explicit gfxRect-to-Rect conversion (via
ToRect()). I.e. we do two conversions, going from a Moz2D type to a Thebes
type and back to a Moz2D type!

So this patch also changes these conversion. It moves this existing function:

  Rect ToRect(const IntRect&)

from gfx2DGlue.h -- where it doesn't really belong because it doesn't involve
any Thebes types -- to gfx/2d/Rect.h, templatifying and renaming it as
IntRectToRect() in the process.

The rest of the patch deals with fall-out from these changes. The call sites
change as follows:

- IntRect-to-gfxRect conversions:
  - old: implicit
  - new: ThebesRect()

- IntRect-to-Rect conversions:
  - old: ToRect()
  - new: IntRectToRect()
2015-11-11 14:23:14 -08:00
Robert Longson
a50d1bc2f4 Bug 1222812 - add a null check in case there is no old style. r=dholbert 2015-11-11 21:31:32 +00:00
Bas Schouten
f83e6fd87c Bug 1210560 - Part 3: Convert more complex SVG usecases to PushGroupForBlendBack. r=jwatt r=jrmuizel 2015-11-11 16:15:39 +01:00
Bas Schouten
74b3ef74ce Bug 1210560 - Part 2: Convert some simple users to use PushGroupForBlendBack. r=jrmuizel 2015-11-11 16:15:39 +01:00
Nicholas Nethercote
28fa108b82 Bug 1223215 (part 2) - Remove a ToSize() call. r=jwatt. 2015-11-08 20:23:54 -08:00
Botond Ballo
420f16d0d5 Bug 1220923 - Make nsIntRegion a typedef for IntRegionTyped<UnknownUnits>. r=nical 2015-11-04 11:49:49 -05:00
Xidorn Quan
e7d93c6479 Bug 1216332 - Remove framearena helpers from abstract frame classes and stop them from being instantiated. r=dbaron 2015-11-04 20:57:35 +11:00
Robert Longson
28319186f5 Bug 803562 - force -moz-appearance: none on foreignObject elements. r=dbaron 2015-11-02 19:17:48 +00:00
Ryan VanderMeulen
a46beb2ec9 No bug - Various crashtest manifest cleanups. 2015-10-31 19:35:27 -04:00
Kyle Huey
fffe5cc829 Bug 1216401: Eviscerate nsIDOMWindow, move still needed methods to nsPIDOMWindow. r=bz 2015-10-26 14:37:32 -07:00
Ryan VanderMeulen
792058f8f9 Bug 950324 - Add crashtest. 2015-10-25 16:20:16 -04:00
Ryan VanderMeulen
106693ab41 Bug 325427 - Add crashtest. 2015-10-24 15:03:19 -04:00
Nathan Froyd
e4e2da55c9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Nathan Froyd
5254890206 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Nicholas Nethercote
0c9936d9d3 Bug 1211324 (part 5) - Remove GraphicsFilter and gfxGraphicsFilter. r=mattwoodrow. 2015-10-05 17:18:10 -07:00
Nicholas Nethercote
7393d982fb Bug 1208365 (part 3) - Change gfxPattern::mExtend from a GraphicsExtend to a gfx::ExtendMode. r=bas.
At this point, the relationship between GraphicsExtend and gfx::ExtendMode is
as follows.

- EXTEND_REPEAT matches up with REPEAT.
- EXTEND_REFLECT matches up with REFLECT.
- EXTEND_PAD matches up with CLAMP.
- EXTEND_NONE has no matching value in gfx::ExtendMode.

The only use of EXTEND_NONE is with nsSVGGradientFrame::mExtend. That field
gets assigned EXTEND_NONE in the various constructors, and other values via
SetExtend(). And all uses of that field go immediately into ToExtend() calls,
which convert EXTEND_NONE to CLAMP. So it's safe to change this field to
gfx::ExtendMode and initialize it to CLAMP.
2015-09-25 00:58:23 -07:00
Tom Klein
4a3e289dd0 Bug 1209525 - Protect GetGeometryBounds from a singular non-scaling-stroke transform. r=longsonr 2015-09-30 08:05:00 +02:00
Nicholas Nethercote
7700404de3 Bug 1208300 (part 4) - Remove gfxRGBA and some related things. r=jwatt.
Hooray!
2015-09-24 19:24:16 -07:00
Nicholas Nethercote
323718acf6 Bug 1208283 (part 1) - Change gfxPattern's single-arg constructor to take a gfx::Color& instead of a gfxRGBA&. r=jwatt. 2015-09-24 17:50:46 -07:00
Nicholas Nethercote
bcd2fb7111 Bug 1208345 - Remove gfxContext::GraphicsOperator. r=jwatt.
Also...

- Rename various "operator" identifiers as "op" to match |CompositionOp|.

- Rename |nsBackgroundLayerState::mCompositingOp| as |mCompositionOp| to match
  |CompositionOp|.

- Remove some deprecated functions that are no longer needed.
2015-09-24 22:38:58 -07:00
Matt Woodrow
eba3e78ca6 Bug 1205087 - Make nsSVGIntegrationUtils paint frame continuations manually since combining them meant that our reference frame wasn't an ancestor of all painted frames. r=roc 2015-09-24 18:26:34 -04:00
Nicholas Nethercote
f7e8a9e813 Bug 1207741 - Remove gfxIntSize. r=nical.
gfxIntSize is just a typedef of gfx::IntSize, so this is very mechanical. The
only tricky part is deciding for each occurrence whether to replace it with
IntSize, gfx::IntSize or mozilla::gfx::IntSize; in all cases I went with the
shortest one that worked given the existing "using namespace" declarations.
2015-09-23 11:49:05 -07:00
Tom Klein
a63bf75a9c Bug 958160 - Compute bounds in transformed space instead of user space in GetCoveredRegion. r=longsonr 2015-09-22 10:31:00 +02:00
Michael Layzell
f20336e5e1 Bug 1201190 - Part 3: Mark every consumer of GUARD_OBJECT as MOZ_RAII, r=ehsan 2015-09-12 16:53:33 -04:00
Tom Klein
7579b60c17 Bug 1092125 - part 2 - add non-scaling-stroke support to SVGLineElement::GetGeometryBounds. r=jwatt 2015-09-02 20:10:00 +02:00
Tom Klein
67a6154671 Bug 1092125 - Part 1 - Add non-scaling-stroke support to nsSVGPathGeometryElement::GetGeometryBounds (except line). r=jwatt 2015-09-01 06:17:00 +02:00
Jonathan Kew
c4a4cb2b0d Bug 1162418 - Try to find a suitable non-zero dimension to use when containing block's inline-size depends on an SVG element which is specified as a percentage of its container. r=jwatt 2015-08-31 16:22:20 +01:00
Nicholas Nethercote
69d088e45f Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
2015-08-27 20:44:53 -07:00
Cameron McCormack
984598f6e7 Bug 1149542 - Part 3: Crashtest. r=dholbert 2015-08-08 11:40:04 +10:00
Robert O'Callahan
d67ff5c3b6 Bug 1184842. Pass aOldValue to all mutation observers. r=peterv 2015-07-25 18:01:19 +12:00
Cameron McCormack
21c5dfed1e Bug 1185266 - Look up painting properties on the SVGTextFrame when painting text frames that are direct children of <text>. r=jwatt 2015-07-24 09:22:01 +10:00
Cameron McCormack
ecccc94108 Bug 1182496 - Don't create frames for SVG <text> descendants with failing conditional processing attributes. r=dholbert 2015-07-17 11:29:22 +10:00
Cameron McCormack
c6f672c972 Bug 1182964 - Replace use of nsTHashtable::EnumerateEntries with nsTHashtable::Iterator in layout/{style,svg}/. r=njn 2015-07-14 10:13:32 +10:00
Birunthan Mohanathas
47ed3a3675 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Michael Layzell
7ad1a4131b Bug 1181323 - Move nsSVGRenderingObserver's isupports/refcounting decl to subclasses, since one subclass (nsSVGFilterReference) already has its own redundant copy of the decl. r=dholbert 2015-07-09 20:32:00 +02:00
Nathan Froyd
8780083336 Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Tom Klein
b677572bb9 Bug 1178159 - Ignore stroke-linecap:"square" on circle and ellipse. r=longsonr 2015-06-29 20:19:00 +02:00
Markus Stange
7638aa8728 Bug 1153845 - For CSS filters, make the primitive subregions big enough to contain the whole pre-filter visual overflow rect. r=roc
The BBox of the SVG element only includes its contents, not the SVG element's background color.
2015-05-28 15:51:58 -04:00
Jonathan Watt
e218dd339f Bug 923193, part 4 - Implement support for the 'transform-origin' property in SVG. r=heycam 2015-05-24 22:40:37 +01:00
Nathan Froyd
bb51644dac Bug 1160485 - remove implicit conversion from RefPtr<T> to TemporaryRef<T>; r=ehsan
Having this implicit conversion means that we can silently do extra
refcounting when it's completely unnecessary.  It's also an obstacle to
making RefPtr more nsRefPtr-like, so let's get rid of it.
2015-05-01 09:14:16 -04:00
Birunthan Mohanathas
63dbcb194c Bug 968520 - Add mozilla::fallible to Fallible{Auto,}TArray::SetLength calls. r=froydnj 2015-05-18 13:50:35 -07:00
Jonathan Watt
9922d273d9 Bug 1159053 - Cache SVG getBBox and objectBoundingBox calculations for better performance. r=heycam 2015-04-27 11:15:36 +01:00
Jonathan Kew
90fb081923 Bug 1157951 patch 1 - Rename fields and variables in nsCharClipDisplayItem etc using VisIStart/End instead of left/right. r=roc 2015-04-29 08:18:53 +01:00