This patch also removes the duplication of style contexts during the
restyle, because otherwise pointer equality of ServoComputedValues stops
holding (and we assert on that in a few places)
MozReview-Commit-ID: 7Evc1p8ZfM2
Call gfxPrefs::LayersAllowTextLayers before aBuilder->GetWidgetLayerManager,
which is costly. Since LayersAllowTextLayers returns false by default, we are
free of using aBuilder->GetWidgetLayerManager.
MozReview-Commit-ID: Jv1voPYjOad
--HG--
extra : rebase_source : b4892a8800d71eeac5f30b8425954505cade31e6
nsDisplayText ctor does not pass aViewer into
nsDisplayListBuilder::GetWidgetLayerManager, as a result, finding viewer in that
function is not needed.
MozReview-Commit-ID: 2rPbp7jkpo6
--HG--
extra : rebase_source : 85fbe8a91efb9f741b9c513c015b199c88ad9c3a
This patch allows us to decide whether to use blob images depending on a MustPaintOnContentSide flag exposed by each display item. If any of the display item assigned to a given painted layer data have this flag, then the painted layer data is marked as preferring content side painting and the webrender layer manager uses this information to decide whether to create a regular content layer or serialize the drawing commands with blob image. This is useful for items that must be painted on the content side such as scroll bars, checkboxes, buttons, etc. Using blob images for these makes us first paint the widget on the content side, then serialize the painted pixels and blit the content again in the blob image which has a lot more overhead than painting the content into a layer and sharing it with webrender directly.
For gmail, 100 is too small, enlarge the dafault capaicty of
nsDisplayListBuilder::MarkFramesForDisplayList to prevent reallocation.
MozReview-Commit-ID: 5zSxyakZ5O9
--HG--
extra : rebase_source : a20032ef98fc0e78ddbd4ac8194ee4f11c2e11a7
extra : source : 105804994e32827ff87ea7fcacecf942df41a051
If we'll be reconstructing frames for the subtree in question, then we'll also
be reflowing and repainting that whole subtree. So all of this function's
other changehints become unnecessary and redundant.
MozReview-Commit-ID: 7R9lARBU7vZ
--HG--
extra : rebase_source : 69904e5920b01c54ffee2698518448bed800994a
On-screen coordinates for points in remote frameloads are calculated relative
to the screen origin of the top-level window, while event coordinates are
calculated relative to the nearest widget. Since popups have their own widgets
separate from the top-level window, their native client offsets have no
particular relation to the origin of the top-level window, and we need to
manually calculate them relative to the origin of the top-level widget
instead.
MozReview-Commit-ID: EDyEyu37XuY
--HG--
extra : rebase_source : 5d3f7a3fb9518d7a0cf149b8c2f579805d75eb3b
extra : absorb_source : f48ee4b131ff67ae686d12f81ed2ad19b934e81e
The crash test causes a panic in Servo_ResolveStyle on debug build without this
patch series. The reason why we send mouse move event twice is that one for
E10S and the other one is for non-E10S. It seems to be caused by being
requestIdleCallback processed on different timing.
MozReview-Commit-ID: 7cBmwhE9HDk
--HG--
extra : rebase_source : a74aa277e2b161b1e4f8da27293cf89ddc3821e1
Those remaining restyle hints are needed for normal traversal later.
MozReview-Commit-ID: DswGYGQwgfw
--HG--
extra : rebase_source : e493d964454315e1c9d1dcf7a028976eef1e60a9
When we process throttled animations restyle for event handling, we skip normal
traversal at all, so after Servo_TraverseSubtree, normally there remains
unstyled elements which have to be processed in normal traversal later. These
elements should be skipped in ProcessPostTraversal too since it's not yet styled!
MozReview-Commit-ID: LgyWQpiFZ8e
--HG--
extra : rebase_source : f5aecf5952c72fa3902a5b4fa28aa80f3f66a4eb
ForAnimationOnly is somewhat misleading, it means actually we process
*only* animation-only restyle without normal restyle. The purpose of
ForAnimationOnly is for updating throttled animations to get correct position
of the animations when we need to handle events. Currently we do also update
unthrottled animations though.
MozReview-Commit-ID: HBCCluKrZs9
--HG--
extra : rebase_source : bb37080e44b161b8b0210e3ba3c055604cf43a72