Double tap gesture fails on Fennec when C++ APZ is enabled.

RESOLVED WORKSFORME

Status

()

Core
Panning and Zooming
RESOLVED WORKSFORME
2 years ago
2 years ago

People

(Reporter: rbarker, Assigned: rbarker)

Tracking

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox43 affected)

Details

Attachments

(1 attachment)

(Assignee)

Description

2 years ago
nsBaseWidget::ProcessUntransformedAPZEvent assumes it is operating on the Root Content Document and removes the the resolution from the touch point before performing a hit test with the touch point. Under fennec, the nsBaseWidget holds the Root Document instead and so the resolution should not be removed from the touch point be fore performing a hit test.
Depends on: 1122804
(Assignee)

Updated

2 years ago
Blocks: 776030
To round out the explanation a bit, we still need *something* to un-apply the resolution during hit testing, we just need it to be done at the right time - when entering the Root Content Document - rather than at the very beginning of hit testing.
(Assignee)

Updated

2 years ago
Assignee: nobody → rbarker
(Assignee)

Comment 2

2 years ago
Created attachment 8649042 [details] [diff] [review]
0001-Bug-1195553-Double-tap-gesture-fails-on-Fennec-when-C-APZ-is-enabled-15081718-1e3c078.patch
(Assignee)

Comment 3

2 years ago
Comment on attachment 8649042 [details] [diff] [review]
0001-Bug-1195553-Double-tap-gesture-fails-on-Fennec-when-C-APZ-is-enabled-15081718-1e3c078.patch

Here is a patch that does the temporary work around.
Attachment #8649042 - Flags: feedback?(botond)
Comment on attachment 8649042 [details] [diff] [review]
0001-Bug-1195553-Double-tap-gesture-fails-on-Fennec-when-C-APZ-is-enabled-15081718-1e3c078.patch

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

::: widget/nsBaseWidget.cpp
@@ +994,5 @@
> +
> +    nsIDocument* document = GetDocument();
> +#ifdef MOZ_WIDGET_ANDROID
> +    // In fennec the widget holds the Root Document but hit testing is done
> +    // on the Root Content Document.

// If the callback transform applied above unapplied a resolution,
// the hit test done in SendSetTargetAPZCNotification() needs to
// start from the document bearing the resolution, which is the
// root content document.  This only affects Fennec because other APZ 
// platforms are e10s and any resolution is in the child process.
// Note that this means events targeting areas outside the root content 
// document may not be handled correctly; there should be no such
// areas in a default setup, but add-ons may produce some.
// Bug 1122804 tracks a proper solution to this.
Attachment #8649042 - Flags: feedback?(botond) → feedback+
Blocks: 1206872
This patch isn't needed any more, closing this out.
Status: NEW → RESOLVED
Last Resolved: 2 years ago
No longer depends on: 1122804
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.