Closed Bug 1352918 Opened 7 years ago Closed 7 years ago

Be finer grained about hit testing tree updates

Categories

(Core :: Panning and Zooming, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox55 --- fixed

People

(Reporter: dvander, Assigned: dvander)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

Currently we update the hit testing tree when any layer property changes, but really we only need to care about properties related to hit testing.
Attached patch patchSplinter Review
This limits updates to relevant property changes, and also makes it easy to add diagnostics for why hit testing updates happen.
Attachment #8853841 - Flags: review?(bugmail)
Comment on attachment 8853841 [details] [diff] [review]
patch

Review of attachment 8853841 [details] [diff] [review]:
-----------------------------------------------------------------

::: gfx/layers/LayerAttributes.h
@@ +180,5 @@
> +    if (mScrollbarDirection != aOther.mScrollbarDirection) {
> +      return false;
> +    }
> +    if (mScrollbarThumbRatio != aOther.mScrollbarThumbRatio) {
> +      return false;

I don't think we need thumb ratio here. It seems to be used in AsyncCompositionManager but not in the APZ hit testing. APZ uses LayerMetricsWrapper::GetScrollThumbLength which is just the visible region.

::: gfx/layers/ipc/LayerTransactionParent.cpp
@@ +449,5 @@
> +    const SimpleLayerAttributes& attrs = op.attrs();
> +    const SimpleLayerAttributes& orig = layer->GetSimpleAttributes();
> +    if (attrs.Transform() != orig.Transform()) {
> +      UpdateHitTestingTree(layer, "transform changed");
> +    } else if (!attrs.ScrollingInfoIsEqual(orig)) {

Any particular reason you're checking the transform separately, and not just putting it in the ScrollingInfoIsEqual check? Doesn't matter to me either way, just curious.
Attachment #8853841 - Flags: review?(bugmail) → review+
Priority: -- → P3
Whiteboard: [gfx-noted]
I can't remember, but it makes more sense to fold it into one function anyway.
Pushed by danderson@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/56071dd2f7fa
Make finer-grained decisions about whether to update hit testing trees. (bug 1352918, r=kats)
https://hg.mozilla.org/mozilla-central/rev/56071dd2f7fa
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: