From e91140e88cc5c56518bb38e54dd1a0f8769b04b8 Mon Sep 17 00:00:00 2001 From: Joel Einbinder Date: Mon, 16 Nov 2020 11:07:06 -0800 Subject: [PATCH] browser(firefox): force a layout before dispatching a tap (#4428) --- browser_patches/firefox/BUILD_NUMBER | 4 ++-- browser_patches/firefox/juggler/content/PageAgent.js | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/browser_patches/firefox/BUILD_NUMBER b/browser_patches/firefox/BUILD_NUMBER index e6256d5dbb..0c9507bd0c 100644 --- a/browser_patches/firefox/BUILD_NUMBER +++ b/browser_patches/firefox/BUILD_NUMBER @@ -1,2 +1,2 @@ -1208 -Changed: yurys@chromium.org Fri 13 Nov 2020 02:55:31 PM PST +1209 +Changed: joel.einbinder@gmail.com Mon 16 Nov 2020 10:52:59 AM PST diff --git a/browser_patches/firefox/juggler/content/PageAgent.js b/browser_patches/firefox/juggler/content/PageAgent.js index 01146de227..af53449327 100644 --- a/browser_patches/firefox/juggler/content/PageAgent.js +++ b/browser_patches/firefox/juggler/content/PageAgent.js @@ -715,6 +715,14 @@ class PageAgent { } async _dispatchTapEvent({x, y, modifiers}) { + // Force a layout at the point in question, because touch events + // do not seem to trigger one like mouse events. + this._frameTree.mainFrame().domWindow().windowUtils.elementFromPoint( + x, + y, + false /* aIgnoreRootScrollFrame */, + true /* aFlushLayout */); + const {defaultPrevented: startPrevented} = await this._dispatchTouchEvent({ type: 'touchstart', modifiers,