diff --git a/browser_patches/firefox-beta/BUILD_NUMBER b/browser_patches/firefox-beta/BUILD_NUMBER index b0777bbad0..946d188523 100644 --- a/browser_patches/firefox-beta/BUILD_NUMBER +++ b/browser_patches/firefox-beta/BUILD_NUMBER @@ -1,2 +1,2 @@ -1281 -Changed: joel.einbinder@gmail.com Tue 24 Aug 2021 12:02:01 PM PDT +1282 +Changed: joel.einbinder@gmail.com Wed 25 Aug 2021 08:16:37 AM PDT diff --git a/browser_patches/firefox-beta/juggler/content/PageAgent.js b/browser_patches/firefox-beta/juggler/content/PageAgent.js index 427fc0fbc0..a007fdb853 100644 --- a/browser_patches/firefox-beta/juggler/content/PageAgent.js +++ b/browser_patches/firefox-beta/juggler/content/PageAgent.js @@ -140,6 +140,7 @@ class PageAgent { describeNode: this._describeNode.bind(this), dispatchKeyEvent: this._dispatchKeyEvent.bind(this), dispatchMouseEvent: this._dispatchMouseEvent.bind(this), + dispatchWheelEvent: this._dispatchWheelEvent.bind(this), dispatchTouchEvent: this._dispatchTouchEvent.bind(this), dispatchTapEvent: this._dispatchTapEvent.bind(this), getContentQuads: this._getContentQuads.bind(this), @@ -760,6 +761,26 @@ class PageAgent { } } + async _dispatchWheelEvent({x, y, button, deltaX, deltaY, deltaZ, modifiers }) { + const deltaMode = 0; // WheelEvent.DOM_DELTA_PIXEL + const lineOrPageDeltaX = deltaX > 0 ? Math.floor(deltaX) : Math.ceil(deltaX); + const lineOrPageDeltaY = deltaY > 0 ? Math.floor(deltaY) : Math.ceil(deltaY); + + const frame = this._frameTree.mainFrame(); + + frame.domWindow().windowUtils.sendWheelEvent( + x, + y, + deltaX, + deltaY, + deltaZ, + deltaMode, + modifiers, + lineOrPageDeltaX, + lineOrPageDeltaY, + 0 /* options */); + } + async _insertText({text}) { const frame = this._frameTree.mainFrame(); frame.textInputProcessor().commitCompositionWith(text); diff --git a/browser_patches/firefox-beta/juggler/protocol/PageHandler.js b/browser_patches/firefox-beta/juggler/protocol/PageHandler.js index 4754c38f25..6eafe94c33 100644 --- a/browser_patches/firefox-beta/juggler/protocol/PageHandler.js +++ b/browser_patches/firefox-beta/juggler/protocol/PageHandler.js @@ -354,6 +354,10 @@ class PageHandler { return await this._contentPage.send('dispatchMouseEvent', options); } + async ['Page.dispatchWheelEvent'](options) { + return await this._contentPage.send('dispatchWheelEvent', options); + } + async ['Page.insertText'](options) { return await this._contentPage.send('insertText', options); } diff --git a/browser_patches/firefox-beta/juggler/protocol/Protocol.js b/browser_patches/firefox-beta/juggler/protocol/Protocol.js index 9ebf15b013..21421574f7 100644 --- a/browser_patches/firefox-beta/juggler/protocol/Protocol.js +++ b/browser_patches/firefox-beta/juggler/protocol/Protocol.js @@ -911,6 +911,16 @@ const Page = { buttons: t.Number, } }, + 'dispatchWheelEvent': { + params: { + x: t.Number, + y: t.Number, + deltaX: t.Number, + deltaY: t.Number, + deltaZ: t.Number, + modifiers: t.Number, + } + }, 'insertText': { params: { text: t.String, diff --git a/browser_patches/firefox/BUILD_NUMBER b/browser_patches/firefox/BUILD_NUMBER index e165966fec..026b2f0172 100644 --- a/browser_patches/firefox/BUILD_NUMBER +++ b/browser_patches/firefox/BUILD_NUMBER @@ -1,2 +1,2 @@ -1286 -Changed: joel.einbinder@gmail.com Mon 23 Aug 2021 08:45:33 PM PDT +1287 +Changed: joel.einbinder@gmail.com Wed 25 Aug 2021 08:15:20 AM PDT diff --git a/browser_patches/firefox/juggler/content/PageAgent.js b/browser_patches/firefox/juggler/content/PageAgent.js index 427fc0fbc0..a007fdb853 100644 --- a/browser_patches/firefox/juggler/content/PageAgent.js +++ b/browser_patches/firefox/juggler/content/PageAgent.js @@ -140,6 +140,7 @@ class PageAgent { describeNode: this._describeNode.bind(this), dispatchKeyEvent: this._dispatchKeyEvent.bind(this), dispatchMouseEvent: this._dispatchMouseEvent.bind(this), + dispatchWheelEvent: this._dispatchWheelEvent.bind(this), dispatchTouchEvent: this._dispatchTouchEvent.bind(this), dispatchTapEvent: this._dispatchTapEvent.bind(this), getContentQuads: this._getContentQuads.bind(this), @@ -760,6 +761,26 @@ class PageAgent { } } + async _dispatchWheelEvent({x, y, button, deltaX, deltaY, deltaZ, modifiers }) { + const deltaMode = 0; // WheelEvent.DOM_DELTA_PIXEL + const lineOrPageDeltaX = deltaX > 0 ? Math.floor(deltaX) : Math.ceil(deltaX); + const lineOrPageDeltaY = deltaY > 0 ? Math.floor(deltaY) : Math.ceil(deltaY); + + const frame = this._frameTree.mainFrame(); + + frame.domWindow().windowUtils.sendWheelEvent( + x, + y, + deltaX, + deltaY, + deltaZ, + deltaMode, + modifiers, + lineOrPageDeltaX, + lineOrPageDeltaY, + 0 /* options */); + } + async _insertText({text}) { const frame = this._frameTree.mainFrame(); frame.textInputProcessor().commitCompositionWith(text); diff --git a/browser_patches/firefox/juggler/protocol/PageHandler.js b/browser_patches/firefox/juggler/protocol/PageHandler.js index 4754c38f25..6eafe94c33 100644 --- a/browser_patches/firefox/juggler/protocol/PageHandler.js +++ b/browser_patches/firefox/juggler/protocol/PageHandler.js @@ -354,6 +354,10 @@ class PageHandler { return await this._contentPage.send('dispatchMouseEvent', options); } + async ['Page.dispatchWheelEvent'](options) { + return await this._contentPage.send('dispatchWheelEvent', options); + } + async ['Page.insertText'](options) { return await this._contentPage.send('insertText', options); } diff --git a/browser_patches/firefox/juggler/protocol/Protocol.js b/browser_patches/firefox/juggler/protocol/Protocol.js index 9ebf15b013..21421574f7 100644 --- a/browser_patches/firefox/juggler/protocol/Protocol.js +++ b/browser_patches/firefox/juggler/protocol/Protocol.js @@ -911,6 +911,16 @@ const Page = { buttons: t.Number, } }, + 'dispatchWheelEvent': { + params: { + x: t.Number, + y: t.Number, + deltaX: t.Number, + deltaY: t.Number, + deltaZ: t.Number, + modifiers: t.Number, + } + }, 'insertText': { params: { text: t.String,