Commit Graph

394 Commits

Author SHA1 Message Date
Matt Woodrow
e638200a0e Bug 940455 - Add LayerManager functonality to clear out a portion of the window for the OS to paint. r=roc,Bas 2014-02-13 13:20:41 +13:00
Mike Conley
4611b5bdb4 Backing out bug 940455 (36e45a68452b) for numerous regressions. r=bustage-fix. 2014-03-07 16:50:30 -05:00
Matt Woodrow
cf2d089996 Bug 940455 - Add LayerManager functonality to clear out a portion of the window for the OS to paint. r=roc,Bas 2014-02-13 13:20:41 +13:00
L. David Baron
6a0c7b3f88 Bug 828173 patch 4: Expose AddAnimationsAndTransitionsToLayer and allow it to be called from style change handling. r=mattwoodrow 2014-03-04 20:13:21 -08:00
James Kitchener
ed09b3f79b Bug 975935 - nsDisplaymtdBorder needs to override GetBounds. r=bz 2014-03-03 10:37:08 -05:00
Timothy Nikkel
6bbec0c664 Bug 978542. If paint dumping is enabled at build time also enable frame dumping so we can get frame names in display list dumps. r=mattwoodrow
Also makes DidComputeVisibility available during non-debug painting so we can use it.
2014-03-02 16:22:29 -06:00
Timothy Nikkel
c98b478ef2 Bug 959847. Part 10. Implement GetBounds, GetOpaqueRegion, and ShouldBuildLayerEvenIfInvisible for nsDisplaySubDocument items that are being used as scrollable layers like scroll layer items. r=roc 2014-02-27 16:01:54 -06:00
Timothy Nikkel
7c6fe99703 Bug 959847. Part 9. Subdocument items for subdocuments that have displayports need to expand the visibility region. r=roc 2014-02-27 16:01:54 -06:00
Timothy Nikkel
5d30b2243f Bug 959847. Part 8. Don't let ProcessDisplayItems set the clip on subdocument items when they are being used to draw the display port content. r=roc 2014-02-27 16:01:54 -06:00
Timothy Nikkel
b2fdd6bcf1 Bug 959847. Part 4. Call RecordFrameMetrics for subdocument layers. r=roc
We do this by creating a new display item type: nsDisplaySubDocument.

Original patch by Kartikaya Gupta <kgupta@mozilla.com>.
2014-02-27 16:01:53 -06:00
Matt Woodrow
5c0203ae3f Bug 968555 - Don't create a stacking context for backface-visibility:hidden. r=dbaron 2014-02-27 15:57:45 +13:00
Timothy Nikkel
26cf62ec1a Bug 976370. Move overlay scrollbar display items above scroll layer items for the same scroll frame. r=roc
This has two desirable side effects. The first and more important is that it prevents a scrollbar item from sitting between scroll layer items and preventing them from merging into one and thus preventing the creation of an async scrollable layer. The second is that scrollbars should be on top of the content they are scrolling in general, and this will make that happen in more cases.
2014-02-24 23:42:11 -06:00
Arnaud Sourioux
1d21dd1816 Bug 974687 - Part 2: Fix more than 80cols issues caused by MOZ_OVERRIDE annotation. r=dholbert 2014-02-24 09:41:56 -05:00
Arnaud Sourioux
bea44014b1 Bug 974687 - Part 1: Add about 300 MOZ_OVERRIDE in layout/. r=dholbert 2014-02-24 09:41:56 -05:00
Robert O'Callahan
cdf3eb974c Bug 969354. Track which ThebesLayers contain items which returned true from ShouldFixToViewport, and make sure each such item gets its own ThebesLayer. r=mattwoodrow
--HG--
extra : rebase_source : 629f91869bd4c4ad2e4e17c40c5fe0311532fb67
2014-02-21 14:11:17 +13:00
Robert O'Callahan
b8b97141df Backing out patches for bug 972713 (changesets b5486b9ed88c and 7829e535cdd7) due to Windows 8 test failure. 2014-02-18 22:48:18 +13:00
Robert O'Callahan
b4cf7258be Bug 972713. Part 1: Make all callers of GetAnimatedGeometryRootFor pass a display item so we can stop searching when we reach the item's reference frame. r=mattwoodrow
This guarantees that the animated geometry root for an item is always in the
same display list coordinate system as the frame.

--HG--
extra : rebase_source : 249fd847a2c08f8d0846d698cce9dd4681e38a98
2014-02-18 14:26:57 +13:00
Timothy Nikkel
ea9c6493ec Bug 966510. Scroll frame display items are never opaque. r=roc
The content they contain may be moved, so any region that is opaquely covered at paint time may not be later.

This problem was made worse by bug 951467 because it made the bounds of the scroll layer item be the bounds of the scrollport is all cases (making it return wrong results even at paint time), instead of the bounds of the contained content (meaning the results would only be wrong after async scroll).
2014-02-10 04:56:30 -06:00
Timothy Nikkel
32cb74e6ed Bug 962791. Fail to create a scrollable layer if it would cause incorrect clipping of absolutely position items. r=roc
We incorrectly wrap abs pos items, but not wrapping them leads to too many sites failing to create scrollable layers that we can't do that. So instead just fix the clipping issue for now until a more robust solution can be developed.
2014-02-03 23:16:20 -06:00
Matt Woodrow
21451501e0 Bug 952011 - Use Untransform API to safetly untransform points when we have a projective matrix. r=roc 2014-02-04 12:25:23 +13:00
Matt Woodrow
d9d558f8f0 Bug 952011 - Remove some nsLayoutUtils transform functions that are no longer needed. r=roc 2014-02-04 12:25:22 +13:00
Robert O'Callahan
a6d3b2e9c0 Bug 946502. Part 4: Remove mStickyPosFrame. r=mattwoodrow
--HG--
extra : rebase_source : 71bcbd246cf6806196a3e64d32fdde169bddfa07
2014-01-04 18:14:27 +13:00
Robert O'Callahan
3ffa57cf68 Bug 946502. Part 2: Remove unimplemented, unused function. r=mattwoodrow
--HG--
extra : rebase_source : fbc4a398d1554ffc668a18bd667b6b90fdace15f
2013-12-18 00:19:31 +13:00
Matt Woodrow
eec83a3058 Bug 946952 - Run a 'compressed' paint up to 1 second after skipping the ColorLayer optimization. r=roc 2014-01-30 18:41:17 +13:00
Timothy Nikkel
d5eb33d7d0 Bug 962505. Put the scroll frame and the scrolled frame in the display list dump for scroll layer items. r=mats 2014-01-26 16:09:06 -06:00
Timothy Nikkel
05195514d5 Bug 962505. When dumping display lists print the entire line at once so it works better with Fennec and b2g. r=mats 2014-01-26 16:07:08 -06:00
Timothy Nikkel
491cf736ad Bug 931028. Remove app units per pixel argument from nsDisplayTransform::GetTransform. r=mattwoodrow
All callers were using, and should only be using, the same value.
2014-01-20 00:56:55 -06:00
Robert O'Callahan
ddd88c039d Bug 945203. Part 4: Add nsDisplayEventRegions and build it when painting. r=mats
--HG--
extra : rebase_source : 26b71b6a18681e8fc48c6082c8df6263c1bd3739
2013-12-17 00:22:11 +13:00
Robert O'Callahan
aeb166a207 Bug 950427. Don't descend into subdocuments at all in elementFromPoint. r=mats
--HG--
extra : rebase_source : 59ce23c3ab81afc624921e4543fe48dd7ae47ce2
2013-12-18 18:37:24 +13:00
Phil Ringnalda
47bb18469f Back out f55504b0184f (bug 950427) for mochitest-4 and mochitest-oth bustage (at least)
CLOSED TREE
2013-12-17 23:22:20 -08:00
Robert O'Callahan
9454d623f6 Bug 950427. Don't descend into subdocuments at all in elementFromPoint. r=mats 2013-12-18 18:37:24 +13:00
Timothy Nikkel
a969eaf546 Bug 951467. Give scroll layer items the bounds of the scroll port, not the bounds of the display port. r=roc
The bounds of the scroll port match what will actually be drawn on the screen.

The bounds of the contained content (sized to the display port) are still accessible via mList.GetBounds, and similarly the visible rect of the contained content is mList.GetVisibleRect. The external bounds/visible rect are GetBounds and GetVisibleRect on the nsDisplayScrollLayer object itself.

We implement nsDisplayScrollInfoLayer::GetBounds solely so that it continues to return an empty rect because we expect active empty layers to have empty visible rects.

We no longer have to set our mVisibleRect in nsDisplayScrollLayer::ComputeVisibility because nsDisplayList::ComputeVisibilityForSublist now does it correctly for us (like other items).

We also have to teach ContainerState::ProcessDisplayItems to not set the visible region for scroll layers because it has the external visible region, not the larger internal display port sized visible region. We instead let BuildContainerLayer set the visible region of the layer.
2013-12-17 23:02:56 -06:00
Chris Lord
7977706b6f Bug 936500 - Always build layers for nsDisplayScrollLayer. r=tn
APZC information is associated with layers, and having those layers suddenly
disappear because they became occluded, or their displayports are off-screen
has undesired effects.
2013-12-13 19:37:34 +00:00
Cameron McCormack
6f8dcf77b4 Bug 773296 - Part 16: Add a ref-counted list nsCSSValue unit and use it for tranform lists; hold a strong reference to one on nsStyleDisplay. r=dbaron
This adds a new eCSSUnit_SharedList type for nsCSSValue, which is a
reference counted object that contains an nsCSSValueList.  We need this
so that nsStyleDisplay::mSpecifiedTransform can hold a strong reference
to a specified transform list value.  When 'transform' is specified
using a variable reference, the resulting nsCSSValue does not stick
around in the Declaration object, so we wouldn't be guaranteed that
it lives long enough for nsStyleDisplay to keep referencing it.
2013-12-12 13:09:44 +11:00
Kartikaya Gupta
1af8763544 Bug 814435 - Annotate layers for scrollbars as such. r=tn, BenWa 2013-12-09 22:14:53 -05:00
Nicholas Cameron
792ecf9509 Bug 943110. Don't use fputc in display list/layers dumps. r=BenWa 2013-11-26 15:07:41 +13:00
Matt Woodrow
0cc69e6803 Bug 941559 - Invalidate nsDislaySolidColor display items when their color changes. r=roc 2013-11-25 14:59:00 +13:00
Benoit Girard
f8fd653be7 Bug 942483 - Port paint-dumping to android/b2g. r=gal 2013-11-23 17:44:18 -05:00
Matt Woodrow
4122bef511 Bug 939607 - Part 3: Try fold nsDisplayOpacity items opacity value into their children. r=roc 2013-11-18 22:32:09 +13:00
Matt Woodrow
7bb2bbae86 Bug 939607 - Part 2: Add an API for storing an opacity on a display item, and implement it for nsDisplayBoxShadowOuter. r=roc 2013-11-18 22:32:09 +13:00
Robert O'Callahan
d1b9afa1b6 Bug 919144. Part 10: Fold nsDisplayFixedPosition into nsDisplayStickyPosition. r=mattwoodrow
--HG--
extra : rebase_source : 597e2a178762509421a32d53be6242cd588c7995
2013-09-27 18:02:03 +12:00
Robert O'Callahan
ac362be738 Bug 919144. Part 9: Move FrameLayerBuilder::ContainerParameters to mozilla::ContainerLayerParameters. r=mattwoodrow
This is to avoid having to #include FrameLayerBuilder.h in nsLayoutUtils.h in the next patch.

--HG--
extra : rebase_source : 5f3c3ae2785267949766ae094414781133d4ce44
2013-09-27 18:01:16 +12:00
Robert O'Callahan
c7ac6cec44 Bug 919144. Part 8: Delete lots of code that's no longer needed. r=mattwoodrow
I never liked nsDisplayListBuilder::IsFixedItem anyway, its behavior and
naming was confusing. Also, it assumed there's only one viewport displayport,
on the rootmost document, and that's a bad assumption in general.
We're able to remove calls to ForceVisiblityForFixedItem because FrameLayerBuilder
is now responsible for inflating the visible region of the fixed-pos layers.

--HG--
extra : rebase_source : e93d8e25d2f5c7f3e167e47203d961e6b4293b81
2013-09-27 18:01:16 +12:00
Robert O'Callahan
6a8e8942c3 Bug 919144. Part 1: Rename identifiers from 'active scroll(ed) root' to 'animated geometry root'. r=mattwoodrow
Also sneaks in a couple of other refactorings:

--HG--
extra : rebase_source : 8b0e0729f26231d98ed069b54dd4f7c1e51b10b5
2013-09-26 09:07:26 +12:00
Robert O'Callahan
654b2fe263 Backout changesets 37f9a5424227, c1578a4fc86d and a417424f9213 (for bugs 933354, 929021 and 923193 respectively) while we figure out performance regressions
--HG--
extra : rebase_source : e4a004a15c92b5a8a8b780e7da779ac86d1c29be
2013-11-11 15:23:56 +13:00
Robert O'Callahan
5a7f1f55e0 Bug 933354. Avoid calling GetDeltaToPerspectiveOrigin for elements that don't have perspective. r=heycam
--HG--
extra : rebase_source : 2e887376cc3529191799e6e7726c336199121e96
2013-11-05 23:03:38 -08:00
Kartikaya Gupta
b0a97ce747 Bug 732971 - Create a new layer type for subdocuments with a resolution. r=tn
The new nsDisplayResolution layer type is created for any subdocument whose
presShell specifies a non-1.0 resolution. This is specifically needed for
platforms such as Android and Metro, where the presShells corresponding to
the tabs (which have non-1.0 resolutions) are not the root presShell.
2013-10-29 09:27:15 -04:00
L. David Baron
ccbb4acceb Bug 929673 Patch 3: Rename GetDeltaToMoz{Transform,Perspective}Origin to remove the Moz to avoid use of deprecated CSS prefixes in variable names. r=dzbarsky 2013-10-24 14:46:00 +02:00
L. David Baron
a84ee2a5cd Bug 929673 Patch 2: Rename mToMozOrigin to mToTransformOrigin to avoid use of deprecated CSS prefixes in variable names. r=dzbarsky 2013-10-24 14:46:00 +02:00
Robert O'Callahan
3e2355be8b Bug 903340. Make nsDisplayScrollInfoLayer::ShouldFlattenAway side-effect-free. r=tn 2013-10-21 15:47:26 -07:00