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.
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.
Created attachment 8649042 [details] [diff] [review] 0001-Bug-1195553-Double-tap-gesture-fails-on-Fennec-when-C-APZ-is-enabled-15081718-1e3c078.patch
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.
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.
This patch isn't needed any more, closing this out.