Bug 841192. Part 1: Make <frame> elements behave more like <iframe>s, in particular supporting padding and borders (but not border-radius). r=mats

--HG--
extra : rebase_source : b49a430b7a54bc0579f4f109afa001634a2b8930
Bug 841192. Part 2: Move FrameLayerBuilder::Clip to DisplayItemClip. r=mattwoodrow

--HG--
extra : rebase_source : 2950e5dd64e217a406ede2dc9f6682b5e0540975
Bug 841192. Part 3: Make DisplayItemClip members private and encapsulate them in a real API. r=mattwoodrow

--HG--
extra : rebase_source : d6076e123603de9a1c48681f527719cd41b09883
Bug 841192. Part 4: Create DisplayListClipState. r=mattwoodrow

--HG--
extra : rebase_source : 90eb025d01cec4d3e52473ebc27ae411f42c0439
Bug 841192. Part 5: Add "current DisplayListClipState" to nsDisplayListBuilder. r=mattwoodrow

--HG--
extra : rebase_source : e8f99c3f0e6f9d516bfbed189ee42ad16cb8a6ee
Bug 841192. Part 6: Save and restore DisplayListClipState when we start building display lists for a frame. r=mattwoodrow

--HG--
extra : rebase_source : 9c9cb95acfb4d802ecf045e6d4c30811af647218
Bug 841192. Part 7: Move child->MarkAbsoluteFramesForDisplayList call down. r=mattwoodrow

--HG--
extra : rebase_source : 5d558cfe2850ece79fedc27cd5b6a6d4bf6f7cb3
Bug 841192. Part 8: On encountering out-of-flow frames during display list construction, save their clip rect as well as their dirty rect for later use when we traverse the placeholder. r=mattwoodrow

--HG--
extra : rebase_source : 3a41e2eb4940f1ae7c0748f27211a7d0cf7ad638
Bug 841192. Part 9: Add extra APIs to DisplayItemClip to set the current state, intersect with another DisplayItemClip, test intersection with a rect, translate, and provide easy access to a DisplayItemClip object which doesn't clip anything. r=mattwoodrow

--HG--
extra : rebase_source : 94b03b7d828c9044ac6ebbeaf51f9f0b4bde1ce2
Bug 841192. Part 10: Add extra APIs to DisplayListClipState to constrain the current clip, and an Auto class for safe saving and restoring. r=mattwoodrow

--HG--
extra : rebase_source : 4ec25ababe17ac4b828a9b0a00457fe9d00b560a
Bug 841192. Part 11: Make nsDisplayOptionEventGrabber be a non-anonymous display item list wrapper. r=mattwoodrow

--HG--
extra : rebase_source : c77c6d8a9385683a5659439793f397be959b277c
Bug 841192. Part 12: Move RoundedRectIntersectsRect from nsDisplayList.cpp to nsLayoutUtils. r=mattwoodrow

--HG--
extra : rebase_source : aa0ad96c363b70895b068a6d4805f9164cc03b27
Bug 841192. Part 13: Rename nsFrame::ApplyOverflowClipping to ShouldApplyOverflowClipping. r=mattwoodrow
We rename nsFrame::ApplyOverflowClipping to nsFrame::ShouldApplyOverflowClipping
to reflect the fact that it doesn't cause any clipping.

--HG--
extra : rebase_source : d3bd1ef902276526b37b27c510a8d3a9db6416dc
Bug 841192. Part 14: Convert all usage of nsDisplayClip(RoundedRect) to use DisplayListClipState/DisplayItemClip. r=mattwoodrow

This patch does several things. Sorry.

In BuildDisplayList implementations, instead of wrapping display items in nsDisplayClip, we
push clip state onto the nsDisplayListBuilder and give the display items an
explicit clip when they're created.

In FrameLayerBuilder, we use the explicit clips we find on display items instead of
computing our own.

We remove nsDisplayClip and everything that depends on it.

We remove ExplodeAnonymousChildLists. With nsDisplayClip gone, and
nsDisplayOptionEventGrabber removed in a previous patch, there are no
anonymous child lists.

nsDisplayItem::TryMerge implementations need to make sure they have the same
clip before being merged.

I ripped out the part of PruneDisplayListForExtraPage that adjusts clip rects.
As far as I can tell, it isn't actually necessary.

--HG--
extra : rebase_source : 6f3988b385d0ac54ab26fad10b12173884441f48
Bug 841192. Part 15: Move DisplayListClipState clipping methods to AutoSaveRestore and AutoClipMultiple helper classes for safer usage. r=mattwoodrow

--HG--
extra : rebase_source : aa674d4fa93f1b7c2b4dd84ba8d888cc9f289265
Bug 841192. Part 16: Take plugin's own clipping into account when computing the region for its window. Make SortByContentOrder handle cases where display items in the same list come from different documents. r=mattwoodrow

--HG--
extra : rebase_source : f39deb6250c7aef71d6cd3a62df43785a3bfc7b1