If we set a transform in push_stacking_context, it changes the internal
WebRender behaviour to make that stacking context a reference frame, and
things inside it are positioned differently. This is true even if the
transform is an identity transform.
In most cases we are hitting this and sending an identity transform
through, when in fact we want to be sending a None value to WebRender so
that it doesn't create reference frames. This is a partial fix, a proper
fix will be done in bug 1345577 by separating the CSS transform from the
other transforms that FrameLayerBuilder invents.
MozReview-Commit-ID: ElSs3hFMD2D
In addition to updating webrender and webrender_traits, this patch:
- bumps the euclid dependency in webrender_bindings to match webrender
- updates the Cargo.lock files and re-vendors third-party rust packages
- updates the push_yuv_image callers due to an API change in WR cset a4b9e25.
This allows APZCCallbackHelper to send the SetConfirmedTargetAPZC
message over PWebRenderBridge if webrender is enabled, rather than
assuming the layer manager is a ClientLayerManager and then crashing.
MozReview-Commit-ID: 57o9CaCcbTi
This makes it simpler to reuse this API from WebRenderBridgeParent,
since we can provide a layers id but not a LayerTransactionParent.
MozReview-Commit-ID: DEIGMk9tJEB
This implements some methods exposed on DOMWindowUtils and used by
reftests, for the WebRender codepath. The implementation is very similar
to the implementation in LayerTransactionParent.
MozReview-Commit-ID: HP8OxzIzS7P
This is helpful for reusing the FlushApzRepaints from
WebRenderBridgeParent, since it no longer assumes there's a layers
transaction object.
MozReview-Commit-ID: GVqDDEeZaN3
Both nsIntPoint and IntRect are specializations of template classes (BasePoint
and BaseRect) that are already covered by the corresponding template methods
in LayersLogging.h. Therefore these methods are not needed (and in fact are not
listed separately in LayersLogging.h).
MozReview-Commit-ID: BIZAOFfWCfI
MozReview-Commit-ID: yHXUFw2fx6
***
Bug 1367062 - Change std::map to std::unordered_map in APZCTreeManager
changed gfx/layers/FrameMetrics.h by adding a ScrollableLayerGuidHash class that will be used as the hashing function for std::unordered_maps which use ScrollableLayerGuid as keys.
changed gfx/layers/apz/src/APZCTreeManager.cpp by changing mApzcMap to a std::unordered_map.
changed gfx/layers/apz/src/APZCTreeManager.h by changing mZoomConstraints to a std::unordered_map.
MozReview-Commit-ID: JmoQzh1MvKK
--HG--
extra : rebase_source : cb7bd9419085f83873c9fd019c4a379fae0ee278
The propagation happens via LayerMetricsWrapper or WebRenderScrollDataWrapper.
MozReview-Commit-ID: GBZUnNn3zjN
--HG--
extra : rebase_source : 4c63269480154a95d5faedf1b4972f7d3373cb5a
Also take advantage of the new CoordOf metafunction to combine some of their overloads.
MozReview-Commit-ID: ETybNn7b5ic
--HG--
extra : rebase_source : 5798103462e454dc61abb7c8a26b997f02c8be36
Even if we don't accept the scroll offset from content, we always accept the
new scrollable rect, so to avoid an out-of-bounds scroll offset, we need to
re-clamp it.
MozReview-Commit-ID: 5JbCUYuDPR6
--HG--
extra : rebase_source : 72638713f97b5ab42633580f54b5a4c9dad1a630
We get the progress as |double|, and then pass it to a function by a |float|
type, and then finally cast it back to |double| for the interpolation.
We should avoid casting it back and forth, so change the function argument to
use |double| type for the progress.
MozReview-Commit-ID: 7QzfVBC7hSt
--HG--
extra : rebase_source : 62467bf0a734b650f524af656658cdfdabca2a5c
This is a pre-existing bug that I ran into while exercising the async scrollbar
code on OS X. The LayerTreeState might not be available, so we detect and skip
those layers.
MozReview-Commit-ID: GiHaq7gQLxq
This updates PushStateToWR to actually produce the scrollbar thumb transforms
and append them into the provided transform array.
MozReview-Commit-ID: 14xlpRQXhhq
This allows the APZCTreeManager::PushStateToWR function to also produce a set
of transforms to be applied to scrollbar thumbs. The PushStateToWR function
will be updated in the next patch to actually produce the transforms. This patch
also rearranges code in WebRenderBridgeParent::CompositeToTarget so that either
OMTA or APZ can produce animation updates.
MozReview-Commit-ID: 1ghvVG32TC5
This propagates the animation id for a scroll thumb's stacking context over to
the APZ code, and stores it in the HitTestingTreeNode.
MozReview-Commit-ID: 5O13Xko2Bph
In order to have the scrollbar thumbs reflect the async scroll position, we're
going to re-use the API for OMTA. That is, we set an animation id on the
stacking context for the scroll thumb, and we'll update the transform on the
stacking context at composite time based on the async scroll position. For this
to work we need to ensure that the scroll thumb does in fact have an
animation id set on it.
MozReview-Commit-ID: 6TvRemxRUrR