Commit Graph

5720 Commits

Author SHA1 Message Date
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
4e3b98bb4e Bug 919144. Part 7: Make fixed-pos frames with displayports animated geometry roots, and make FrameLayerBuilder responsible for setting fixed-pos layer parameters instead of nsDisplayFixedPosition. r=mattwoodrow
This patch also makes FrameLayerBuilder responsible for setting the visible region
of a fixed-pos layer to the displayport intersected with the draw-region of
the layer. This will let us remove some displaylist code in later patches.
We add special handling to GetAnimatedGeometryRootFor for nsDisplayScrollLayers,
to match what nsDisplayList::IsFixedItem does.

--HG--
extra : rebase_source : f9258243fe666d5dee33c13a88e596bbed8e2c1c
2013-09-27 18:01:16 +12:00
Robert O'Callahan
b2332020fd Bug 919144. Part 6: nsDisplayListBuilder::MarkOutOfFlowFrameForDisplay should call IsFixedPosFrameInDisplayPort and make fixed-pos frames intersect their overflow-rect with the viewport's displayport to get their dirty rect. r=mattwoodrow
This prevents insanely large fixed-pos elements from getting an over-huge
dirty rect and building an enormous display list.
This is also a step towards getting rid of nsDisplayListBuilder::mHasDisplayPort,
which is good because the new code works on any subdocument that has a displayport.

--HG--
extra : rebase_source : e853022dd2ce85af318f235f8851d9dd8b5001ac
2013-09-27 18:01:15 +12:00
Robert O'Callahan
14f129a5c4 Bug 919144. Part 5: Add ThebesLayerData::mReferenceFrame. r=mattwoodrow
--HG--
extra : rebase_source : f569d1712be8e43aeff31ca2f045a4b87bbd1de6
2013-09-27 18:01:15 +12:00
Robert O'Callahan
65c65dd2ce Bug 919144. Part 4: Create nsLayoutUtils::IsFixedPosFrameInDisplayPort. r=mats
--HG--
extra : rebase_source : a7b7179efd91838ec7205f7109182c78814d33c5
2013-09-27 18:01:11 +12:00
Robert O'Callahan
7676e34f90 Bug 919144. part 3: The displayport out parameters to GetDisplayPort and GetCriticalDisplayPort are optional, so make them optional. r=mattwoodrow
--HG--
extra : rebase_source : 487f895279982c4b74fcd720c5c97381e46036d8
2013-09-27 17:57:20 +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
Olli Pettay
9f1791cccc Bug 938626, be more consistent when handling pref changes in PresContext, r=tn
--HG--
extra : rebase_source : a88316df079f54fd17dc9350b0590f60f8fe4f32
2013-11-17 22:49:52 +02:00
Nicholas Cameron
2ed8c68721 No bug. Fix an ifdef in FrameLayerBuilder. r=mattwoodrow 2013-11-18 09:33:21 +13:00
Ehsan Akhgari
69872c43cd Bug 938865 - Build layout/tables in unified mode; r=roc 2013-11-14 21:49:29 -05:00
Ehsan Akhgari
0ec1a021d3 Bug 938114 - Build layout/base in unified mode; r=roc 2013-11-14 21:43:56 -05:00
Robert O'Callahan
ff30284171 Bug 913444. Track restyling of margins and treat such nodes as active scrolled roots. r=mattwoodrow
Restyling margin-top and margin-bottom will typically require reflow and cause
sibling elements to be moved and invalidated, so it's not a big win to layerize
such nodes. However, layerizing them should be relatively harmless.

--HG--
extra : rebase_source : 659593b6b6990aa859144641eb23e7ccf384a82a
2013-09-09 17:08:42 -07:00
Robert O'Callahan
2e02d90dd4 Bug 876321. Track restyling of top/left/right/bottom and treat such nodes as active scrolled roots. r=mattwoodrow
--HG--
extra : rebase_source : 24e7900efdb476a0533808956b9604d144e4db89
2013-09-09 17:08:41 -07:00
Simon Montagu
7eb261234c Optimize bidi resolution on blocks without mixed-direction text. Bug 646359, r=roc 2013-11-04 07:14:02 +02:00
Simon Montagu
4e9637279f Bug 936935: Mark lines dirty more accurately in Bidi resolution, r=roc 2013-11-07 16:39:49 +02:00
Cameron McCormack
6e5ef8f8c6 Bug 933044 - Push style scopes even if we would skip pushing ancestors when there is no ancestor filter. r=bz 2013-11-17 17:51:04 +11:00
Matt Woodrow
4fd3487757 Bug 934860 - Followup to fix build on a CLOSED TREE 2013-11-17 17:24:53 +13:00
Matt Woodrow
a2ab151d04 Bug 934860 - Part 6: Add a pref to disable single rect painting and disable it for now for causing TART regressions. r=jrmuziel 2013-11-14 13:46:19 +13:00
Chris Lord
ade36f9119 Bug 933556 - Anchor fixed, left+right/top+bottom positioned content to center. r=roc
If a fixed position element has both top and bottom, or both left and right
positioning, set the fixed position anchor to the center of the corresponding
axis. This causes it to remain center-aligned when async zooming.
2013-11-15 17:06:29 +00:00
Ryan VanderMeulen
25f4dc9657 Merge m-c to inbound on a CLOSED TREE. 2013-11-14 20:58:52 -05:00
Corey Ford
98358e22c2 Bug 925259: Avoid sticky positioning inner table elements. r=dholbert 2013-11-12 12:46:47 -08:00
Kartikaya Gupta
801c513deb Bug 937843 - Make an argument to nsLayoutUtils::FindIDFor const. r=tn 2013-11-13 13:22:24 -05:00
Abhishek Arya
2e74fdac40 Bug 806056 - Crashtests. 2013-11-12 14:37:22 +00:00
Olli Pettay
1a484b93fe Bug 930381 - Follow the COM rules when calling ProcessSynthMouseMoveEvent. r=mats, smaug, tnikkel 2013-11-12 07:54:10 -05:00
Ed Morley
faca188d59 Merge mozilla-central and inbound 2013-11-11 13:20:20 +00:00
Ms2ger
feeaf7c61e Bug 923251 - Part e: Make nsPresContext::EnsureSafeToHandOutCSSRules return void; r=heycam 2013-11-11 09:00:33 +01:00
Ms2ger
52dbe35c70 Bug 923251 - Part d: Remove nsCSSStyleSheet::eUniqueInner_CloneFailed; r=heycam 2013-11-11 09:00:18 +01:00
Daniel Holbert
120abc396f Bug 936100 part 5: Remove usage of flexbox pref from C++ code. r=mats 2013-11-09 07:53:14 -08:00
Seth Fowler
f5c4899942 Bug 933057 (Part 1) - Correct scaling of SVG images in nsLayoutUtils::DrawSingleImage. r=dholbert 2013-11-08 15:14:53 -08: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
Horia Iosif Olaru
d0c7a64e0c Bug 841601 - Add background-blend-mode implementation. r=roc 2013-11-08 10:08:03 -05:00
Matt Woodrow
95ac7eda30 Bug 880031 - Make animated transforms force all above content to be in a separate ThebesLayer. r=roc 2013-11-08 19:04:12 +13:00
Andreas Gal
4c4062be6f Bug 930451 - Part 2: Use the new Rendering gradient cache for CSS border gradients as well. r=roc 2013-11-08 17:50:39 +13:00
Andreas Gal
5a78770a61 Bug 930451 - Part 1: Factor out CSS gradient cache into a new class gfxGradientCache. r=roc 2013-11-08 17:50:39 +13:00
Wes Kocher
ddbc05af1c Merge fx-team to m-c 2013-11-07 17:33:06 -08:00
Paul Rouget
9a424ed39e Bug 890195 - device-width media queries should use the page width, not the actual device width. r=bz 2013-11-07 14:40:23 +01:00
Matt Woodrow
8eff8879be Bug 813041 - Layerize the scrollbar thumb on mobile. r=roc 2013-11-08 07:12:22 +13:00
Matt Woodrow
53a5b436f2 Bug 934860 - Don't paint display items that don't intersect the current invalid rects. r=roc 2013-11-07 08:10:50 +13:00
Matt Woodrow
0f1ecdc3ec Bug 934860 - Draw each rect of the invalid region separately on Direct2D. r=roc 2013-11-07 08:10:50 +13:00
Matt Woodrow
9731cb7c16 Bug 934860 - Move paint region clipping into DrawThebesLayer. r=roc 2013-11-07 08:10:50 +13:00
Matt Woodrow
405dd8bf86 Bug 934860 - Move some parts of FrameLayerBuilder::DrawThebesLayer into helper functions. r=roc 2013-11-07 08:10:49 +13:00
Matt Woodrow
33e71bb6ac Bug 934860 - Start and finish transactions with temporary layer managers each time we use them to ensure that these are paired. r=roc 2013-11-07 08:10:49 +13:00
Robert O'Callahan
d147a68c2c Bug 931464. Part 1: GetFieldSetBlockFrame needs to drill down through a scrollframe if necessary. r=mats
--HG--
extra : rebase_source : 858213f65b5bd7d8872afd8205424c3bfdfe1e98
2013-11-05 23:04:00 -08: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
Trevor Saunders
1302a027c9 bug 931399 - shutdown DocAccessible's when the related docshell is destroyed r=bz 2013-10-29 17:22:41 -04:00
Kartikaya Gupta
428e4969a8 Bug 930904 - Remove some old code for android that is now no-op'd. r=tn 2013-11-04 21:40:05 -05:00
Kartikaya Gupta
62598956e6 Bug 930904 - Ensure the presShell resolution is recorded on the FrameMetrics for the root scrollable layer of the presShell. r=tn
Previously the code would only set the resolution on the FrameMetrics when
the scroll ID was equal to ROOT_SCROLL_ID. This only happens on the root
scrollable frame for a layer tree. However, with bug 732971 fixed, any presShell
can have a resolution associated with it, so we need to populate the mResolution
for any layer that is the root scrollable layer for a presShell.

On platforms like Fennec and Metro the content presShell is a sub-presShell
of the root presShell. The resolution is set on the content presShell, but would
not get populated on the FrameMetrics correctly because of this condition. The #ifdef
ANDROID hack a few lines below was used to work around this on Fennec but it
was broken on Metro. This change corrects the behaviour on both of these platforms.
2013-11-04 21:39:44 -05:00
John Daggett
80d5ea7f8a Bug 934719 - log load begin and end in presshell. r=heycam 2013-11-05 10:03:22 +09:00