Commit Graph

907 Commits

Author SHA1 Message Date
Birunthan Mohanathas
ac37dec517 Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Markus Stange
03fb517e45 Bug 1216580 - Make background-position:fixed clip stealing work with display items that create their own layer. r=mattwoodrow 2015-10-28 18:46:40 +01:00
Milan Sreckovic
8feec0d950 Bug 1214802 - gfxEnv - consolidate environment variables used by the graphics code in one place. r=botond 2015-10-28 14:31:00 +01:00
Victor Porof
c069753edc Bug 1202657 - Add markers for workers' message passing and serialization/deserialization, r=smaug, jsantell, tromey, ejpbruel 2015-10-21 23:10:05 +02:00
Nathan Froyd
c4e1d071a7 Bug 1217662 - part 6 - remove Layers.h #include from FrameListBuilder.h; r=mattwoodrow
This change necessitates a few other header changes around the tree:
either places that we relying on FrameLayerBuilder.h to #include
ImageLayers.h for them, or places that were bootlegging headers from
ImageLayers.h.
2015-10-22 17:02:14 -04:00
Nathan Froyd
2ba93e5499 Bug 1217662 - part 5 - move FrameLayerBuilder and helper classes's ctors/dtors out-of-line; r=mattwoodrow
This change means that we don't have to have the definition of
LayerManager visible when FrameLayerBuilder is declared (which would be
necessary for, e.g. the ctor/dtor of ClippedDisplayItem), which means we
can get rid of the Layers.h include here in a subsequent patch.
2015-10-22 17:00:16 -04:00
Nathan Froyd
ac8d913f89 Bug 1217662 - part 2 - move mozilla::layers::LayerUserData to a separate header; r=mattwoodrow
Having to include all of Layers.h just to get at the definition of
LayerUserData is inconvenient, especially as most of the interesting
things in Layers.h can be forward-declared.  Let's move LayerUserData to
its own header, so clients can include a small header for that,
forward-declare anything else they need from Layers.h, and reduce header
bloat.
2015-10-22 16:04:35 -04:00
Nathan Froyd
4e6d8f6705 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
bf7f6dda03 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
Botond Ballo
d34148a640 Bug 1205630 - Translate a fixed background display item's clip rect correctly when setting it on the layer. r=mstange 2015-09-25 12:55:00 -04:00
Botond Ballo
fd120310ea Bug 1208661 - Do not assume that PaintRoot()'s contributions to the HTML paint dump will all be inside a <script> tag. r=BenWa 2015-09-25 19:23:13 -04:00
Phil Ringnalda
e7cf241701 Back out 2 changesets (bug 1205630) for failing inactive-fixed-bg-bug1205630.xul on Mac and Windows
Backed out changeset 7ca5a29b914f (bug 1205630)
Backed out changeset 9db06671fc0d (bug 1205630)
2015-09-28 18:30:16 -07:00
Markus Stange
0ba0a3caa1 Bug 1105832 - Also dump inactive layer managers when display list dumping is enabled. r=mattwoodrow 2015-09-25 18:37:30 -04:00
Botond Ballo
cdc75f04b7 Bug 1205630 - Translate a fixed background display item's clip rect correctly when setting it on the layer. r=mstange 2015-09-25 12:55:00 -04:00
Kartikaya Gupta
936c7e57fc Back out the bits of bug 1205087 that cache the AnimatedGeometryRoot on DisplayItem. r=backout
The change breaks some scenarios with APZ scrolling, in particular the code
that layerizes the scroll handoff chain for deeply nested scrollable frames.
2015-09-28 15:17:34 -04:00
James Willcox
71d0f888cf Bug 1201541 - Use SingleTiledContentClient for non-scrollable layers on Android r=mattwoodrow 2015-09-28 09:36:58 -05:00
Nicholas Nethercote
c279a5c60e Bug 1208283 (part 2) - Change ColorLayer::mColor, ColorLayerProperties::mColor, ReadbackLayer::mBackgroundColor from gfxRBGA to gfx::Color. r=jwatt.
This avoids some gfxRGBA-to-Color conversions.
2015-09-24 18:16:45 -07:00
Markus Stange
70a71b657c Bug 1208438 - Don't allow layers with scrolling clips to occlusion-cull layers behind them. r=mattwoodrow 2015-09-25 15:47:41 +02:00
Wes Kocher
762631542f Backed out 2 changesets (bug 1208457, bug 1208438) for bg-fixed-child-mask.html failures
Backed out changeset 0499228f8fd1 (bug 1208438)
Backed out changeset 803a5e5c74ea (bug 1208457)
2015-09-25 13:01:33 -07:00
Matt Woodrow
d9215ce12d Bug 1205087 - Cache the AnimatedGeometryRoot on DisplayItem. r=roc 2015-09-24 18:26:36 -04:00
Matt Woodrow
b3fa553864 Bug 1205087 - Remove LayerManager parameter for ShouldFixToViewport. r=roc 2015-09-24 18:25:08 -04:00
Markus Stange
d142afdcec Bug 1208438 - Don't allow layers with scrolling clips to occlusion-cull layers behind them. r=mattwoodrow 2015-09-25 15:47:41 +02:00
Markus Stange
cd16b0be41 Bug 1203190 - Don't intersect with the visible rect for fixed background images. r=mattwoodrow 2015-09-25 14:40:52 +02:00
Nicholas Nethercote
c1b2461b9d Bug 1207944 (part 5) - Use SetColor(const Color&) when setting from a constructed gfxRGBA. r=jwatt.
In various places SetColor() gets passed a gfxRBGA that is constructed at the
call site. This patch changes these to construct a gfx::Color directly,
avoiding the subsequent conversion.
2015-09-23 23:42:58 -07:00
Markus Stange
cf52ecb3a3 Bug 1144534 - If we have tiling, don't reduce layer resolution for large transforms. r=mattwoodrow 2015-09-21 11:56:52 +02:00
Markus Stange
c8874eb88c Bug 1195400 - Check ancestor geometry roots when determining scrollability of a layer. r=mattwoodrow 2015-09-20 18:28:18 +02:00
Thinker K.F. Li
af80f65bac Bug 1097464 - Part 6: Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.
2015-09-17 03:31:00 +02:00
Thinker K.F. Li
9e548da5a7 Bug 1097464 - Part 5: Fix preserve3d wording for nsIFrame. r=roc 2015-09-17 03:31:00 +02:00
Phil Ringnalda
daf0794aae Back out 2 changesets (bug 1205087) for mass bustage
CLOSED TREE

Backed out changeset 0573cd4aed27 (bug 1205087)
Backed out changeset 11a3cb42f729 (bug 1205087)
2015-09-17 19:30:42 -07:00
Matt Woodrow
ffb53af693 Bug 1205087 - Cache AnimatedGeometryRoot on nsDisplayItem. r=roc 2015-09-17 21:05:20 -04:00
Matt Woodrow
791f58c171 Bug 1205087 - Remove LayerManager parameter for ShouldFixToViewport. r=roc 2015-09-17 21:03:42 -04:00
Carsten "Tomcat" Book
a47b1a13c4 Backed out 6 changesets (bug 1097464) for causing OS X 10.10 Reftest Errors
Backed out changeset fbf63ce1ba88 (bug 1097464)
Backed out changeset fdaf4cfa6707 (bug 1097464)
Backed out changeset 727ebd9f744a (bug 1097464)
Backed out changeset 03f03a776042 (bug 1097464)
Backed out changeset 5ec6364b87d7 (bug 1097464)
Backed out changeset 47d056b3af7f (bug 1097464)
2015-09-17 16:24:43 +02:00
Jamie Nicol
45bdc72d64 Bug 1200729 - Recompute FrameLayerBuilder item visibility if dirty region changes. r=mwoodrow
Make the FrameLayerBuilder remember for what region it has calculated
display item visibility, then recompute the visibility whenever the
dirty region it is passed to DrawPaintedLayer changes.

This means that the caller does not have to know the entire dirty region
that will be drawn for the transaction, but we can still optimise cases
where it knows some of the dirty region in advance.

This fixes a regression where MultiTiledContentClient's low-res display
port would not be painted if a smaller region of its high-res buffer had
already been painted that transaction, since the FrameLayerBuilder
had decided that most of the larger low-res region was invisible.
2015-09-15 14:41:42 +01:00
Thinker K.F. Li
4ca462453f Bug 1097464 - Part 6 - Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.
2015-09-17 03:31:00 +02:00
Thinker K.F. Li
5772ff62f8 Bug 1097464 - Part 5 - Fix preserve3d wording for nsIFrame. r=roc 2015-09-17 03:31:00 +02:00
Hiroyuki Ikezoe
c13e7b037c Bug 1151694 - Part 3: Manage mIsRunningOnCompositor flags for each properties respectively. r=bbirtles 2015-09-16 16:05:00 +02:00
Botond Ballo
e4d1f66bd9 Bug 1166301 - Store a flag on Layer to tell fixed background layers apart from fixed position layers. r=mattwoodrow 2015-09-04 17:26:33 -04:00
Botond Ballo
2632abca68 Bug 1166301 - If APZ is enabled, clip fixed background images at the layer level rather than the display item level. r=mattwoodrow
This ensures that regions beyond the clip are painted, and async scrolling can reveal them by moving the layer-level clip.

This patch also ensures that we continue creating mask layers for fixed background layers correctly, where appropriate.
2015-09-11 20:00:22 -04:00
Botond Ballo
254f373aa5 Bug 1166301 - Annotate fixed background layers with scroll metadata for the animated geometry root of the frame they're the background of. r=mattwoodrow 2015-08-26 18:16:51 -04:00
Matt Woodrow
349795e2fc Bug 1204597 - Use Move constructor for opaque region in FrameLayerBuilder instead of copying. r=jrmuizel 2015-09-14 14:18:20 -04:00
Wes Kocher
5c560941dd Backed out changeset 5b9886673514 (bug 1201541) for android reftest orange CLOSED TREE 2015-09-11 11:21:22 -07:00
James Willcox
f9ce1ed97b Bug 1201541 - Use SingleTiledContentClient for non-scrollable layers on Android r=mattwoodrow 2015-09-11 09:09:44 -05:00
Markus Stange
236500b79f Bug 1181135 - Copy DisplayItemClips in order to avoid dangling pointers. r=tn 2015-09-09 19:08:03 -04:00
Botond Ballo
bb4f2a8d79 Bug 1201548 - When testing whether the visible rect intersects event regions in FindPaintedLayerFor(), only use the bounds of the event regions. r=mstange
This is done for performance reasons, as the event regions can be complex.
2015-09-04 12:14:28 -04:00
Botond Ballo
745e873115 Bug 1200158 - Avoid expensive computations involving the maybe-hit region in hot code paths. r=mstange 2015-08-31 19:53:34 -04:00
Botond Ballo
c95ef68a5d Bug 1200158 - Define PaintedLayerData::AccumulateEventRegions() out of line. r=mstange 2015-08-31 19:59:22 -04:00
Victor Porof
535b2097d0 Bug 1195838 - Maintain all the TimelineMarker subclasses in a single place, r=tromey 2015-08-31 14:56:37 +02:00
Victor Porof
71e2411058 Bug 1194707 - Remove the docshell param from TimelineMarker constructors, r=tromey 2015-08-31 11:42:35 +02:00
Botond Ballo
85a0f85f3f Bug 1177018 - When finding a painted layer for a display item, include event regions in a layer's visible region. r=tn 2015-06-26 17:26:06 -04:00
Phil Ringnalda
502c5bc50e Back out 7 changesets (bug 1177018) for debug b2g assertion failures in test_bug982141.html
CLOSED TREE

Backed out changeset 40fdd735520d (bug 1177018)
Backed out changeset a82c39bb97ab (bug 1177018)
Backed out changeset dbb14a5cd2cd (bug 1177018)
Backed out changeset 112ec6bdaf4e (bug 1177018)
Backed out changeset 486f9a11fcbd (bug 1177018)
Backed out changeset 8e54cc5e6901 (bug 1177018)
Backed out changeset c2a30b4f3a7c (bug 1177018)
2015-08-26 21:38:05 -07:00