Closed
Bug 1502864
Opened 6 years ago
Closed 6 years ago
Relax interactability test on <input type=file> and implement strictFileInteractability capability
Categories
(Remote Protocol :: Marionette, enhancement, P1)
Remote Protocol
Marionette
Tracking
(firefox65 fixed)
RESOLVED
FIXED
mozilla65
Tracking | Status | |
---|---|---|
firefox65 | --- | fixed |
People
(Reporter: ato, Assigned: ato)
References
(Blocks 1 open bug, )
Details
Attachments
(16 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
2.50 KB,
patch
|
Details | Diff | Splinter Review | |
3.10 KB,
patch
|
Details | Diff | Splinter Review | |
3.28 KB,
patch
|
Details | Diff | Splinter Review | |
1.47 KB,
patch
|
Details | Diff | Splinter Review | |
3.37 KB,
patch
|
Details | Diff | Splinter Review | |
2.75 KB,
patch
|
Details | Diff | Splinter Review | |
10.73 KB,
patch
|
Details | Diff | Splinter Review | |
4.92 KB,
patch
|
Details | Diff | Splinter Review |
It was decided at TPAC in Lyon [1] that we should relax the keyboard interactability checks on <input type=file> so that we for a transition period always treat it as interactable. This will give us compatibility with Chrome. Related spec changes: https://github.com/w3c/webdriver/pull/1325 [1] https://www.w3.org/2018/10/26-webdriver-minutes.html
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 1•6 years ago
|
||
See also the geckodriver bug on this: https://github.com/mozilla/geckodriver/issues/1173
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → ato
Status: NEW → ASSIGNED
Priority: P2 → P1
Assignee | ||
Comment 2•6 years ago
|
||
Normally all interactability tests are centralised in interactability.py, but the WebDriver standard recently changed to apply a special set of interactability checks specifically for <input type=file>. These tests ensure the special code paths are invoked for form controls.
Assignee | ||
Comment 3•6 years ago
|
||
The WebDriver standard changed in https://github.com/w3c/webdriver/pull/1325 to align with chromedriver's behaviour of permitting interaction with hidden <input type=file> elements. DOM elements can be hidden, i.e. not rendered, in two ways: through applying the "hidden" DOM attribute or by setting the "display: none" CSS style. Depends on D10269
Assignee | ||
Comment 4•6 years ago
|
||
The new strictFileInteractabilityTests capability takes a boolean and can unconditionally be set to both true and false. It is permitted to be undefined. Depends on D10270
Assignee | ||
Comment 5•6 years ago
|
||
Depends on D10271
Assignee | ||
Comment 6•6 years ago
|
||
Depends on D10272
Assignee | ||
Comment 7•6 years ago
|
||
The strictFileInteractability capability is always supported by geckodriver. Depends on D10273
Assignee | ||
Comment 8•6 years ago
|
||
This patch changes Marionette to only run the interactability test on <input type=file> when the strictFileInteractability capability is set. strictFileInteractability is not set by default which means this changes WebDriver:SendElementKeys' behaviour to not run interactability checks on <input type=file>. This aligns our WebDriver implementation with the current behaviour in Chrome. To make it legible what the input to interaction.sendKeysToElement is, its API has changed to take an options dictionary instead of three boolean arguments at the end. Depends on D10274
Assignee | ||
Comment 9•6 years ago
|
||
Depends on D10275
Comment 10•6 years ago
|
||
Pushed by atolfsen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7616e25a07b3 webdriver: add tests for keyboard interactability for <input type=file>; r=jgraham https://hg.mozilla.org/integration/autoland/rev/9caa2f0e2e38 webdriver: add tests for hidden <input type=file>; r=jgraham,whimboo https://hg.mozilla.org/integration/autoland/rev/0b421dd8a7d5 webdriver: add strictFileInteractability capability tests; r=jgraham https://hg.mozilla.org/integration/autoland/rev/2fda41394085 webdriver: sort invalid_extensions list; r=jgraham https://hg.mozilla.org/integration/autoland/rev/1eb51f6b4ba0 webdriver: add strictFileInteractability capability; r=jgraham https://hg.mozilla.org/integration/autoland/rev/9382a6630231 geckodriver: support strictFileInteractability; r=jgraham https://hg.mozilla.org/integration/autoland/rev/3f7ca511af8c marionette: support strictFileInteractability; r=whimboo https://hg.mozilla.org/integration/autoland/rev/6e4454a6f3ee marionette: enable strict file interactability in Python client; r=whimboo
Comment 11•6 years ago
|
||
Backout by aciure@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/430a62a41084 Backed out 8 changesets for failing test_capabilities.py CLOSED TREE
Comment 12•6 years ago
|
||
Backed out 8 changesets (bug 1502864) for failing test_capabilities.py push that caused the backout: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=testfailed%2Cbusted%2Cexception&classifiedState=unclassified&group_state=expanded&revision=6e4454a6f3ee427c05de4955efb0f43ec1b9b237 failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&fromchange=6cfdf048c0e72a0f04acee4da8de18d6af8f0d17&group_state=expanded&searchStr=linux%2Copt%2Ctest-linux32%2Fopt-marionette-e10s%2C%28mn%29&selectedJob=209465759 backout: https://hg.mozilla.org/integration/autoland/rev/430a62a41084d7704da529a6df7edf87c98df2f3
Flags: needinfo?(ato)
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/13885 for changes under testing/web-platform/tests
Assignee | ||
Comment 14•6 years ago
|
||
The test failure was caused by a faulty rebase by Lando.
Flags: needinfo?(ato)
Comment 15•6 years ago
|
||
Pushed by atolfsen@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/301c1d1d5e14 webdriver: add tests for keyboard interactability for <input type=file>; r=jgraham https://hg.mozilla.org/integration/autoland/rev/6fb763dc8e9b webdriver: add tests for hidden <input type=file>; r=jgraham,whimboo https://hg.mozilla.org/integration/autoland/rev/dc69c736701f webdriver: add strictFileInteractability capability tests; r=jgraham https://hg.mozilla.org/integration/autoland/rev/7a89ca7dca2d webdriver: sort invalid_extensions list; r=jgraham https://hg.mozilla.org/integration/autoland/rev/a46ac8b5864d webdriver: add strictFileInteractability capability; r=jgraham https://hg.mozilla.org/integration/autoland/rev/5dfaec47ee3f geckodriver: support strictFileInteractability; r=jgraham https://hg.mozilla.org/integration/autoland/rev/fcbcfe24b192 marionette: support strictFileInteractability; r=whimboo https://hg.mozilla.org/integration/autoland/rev/c2c30e650d69 marionette: enable strict file interactability in Python client; r=whimboo
Can't merge web-platform-tests PR due to failing upstream checks: Github PR https://github.com/web-platform-tests/wpt/pull/13885 * continuous-integration/travis-ci/pr (https://travis-ci.org/web-platform-tests/wpt/builds/450145729?utm_source=github_status&utm_medium=notification)
Upstream PR was closed without merging
Comment 18•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/301c1d1d5e14 https://hg.mozilla.org/mozilla-central/rev/6fb763dc8e9b https://hg.mozilla.org/mozilla-central/rev/dc69c736701f https://hg.mozilla.org/mozilla-central/rev/7a89ca7dca2d https://hg.mozilla.org/mozilla-central/rev/a46ac8b5864d https://hg.mozilla.org/mozilla-central/rev/5dfaec47ee3f https://hg.mozilla.org/mozilla-central/rev/fcbcfe24b192 https://hg.mozilla.org/mozilla-central/rev/c2c30e650d69
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
status-firefox65:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
Can't merge web-platform-tests PR due to failing upstream checks: Github PR https://github.com/web-platform-tests/wpt/pull/13885 * continuous-integration/travis-ci/pr (https://travis-ci.org/web-platform-tests/wpt/builds/450368352?utm_source=github_status&utm_medium=notification)
Comment 20•6 years ago
|
||
Andreas, I would say this bug is important enough to get uplifted to beta. What do you think?
Flags: needinfo?(ato)
Comment 21•6 years ago
|
||
Also we may want to release a new geckodriver release (bug 1495062).
Blocks: 1495062
Upstream PR merged
Assignee | ||
Comment 23•6 years ago
|
||
Normally all interactability tests are centralised in interactability.py, but the WebDriver standard recently changed to apply a special set of interactability checks specifically for <input type=file>. These tests ensure the special code paths are invoked for form controls. Differential Revision: https://phabricator.services.mozilla.com/D10269
Assignee | ||
Comment 24•6 years ago
|
||
The WebDriver standard changed in https://github.com/w3c/webdriver/pull/1325 to align with chromedriver's behaviour of permitting interaction with hidden <input type=file> elements. DOM elements can be hidden, i.e. not rendered, in two ways: through applying the "hidden" DOM attribute or by setting the "display: none" CSS style. Depends on D10269 Depends on D10269 Differential Revision: https://phabricator.services.mozilla.com/D10270
Assignee | ||
Comment 25•6 years ago
|
||
The new strictFileInteractabilityTests capability takes a boolean and can unconditionally be set to both true and false. It is permitted to be undefined. Depends on D10270 Depends on D10270 Differential Revision: https://phabricator.services.mozilla.com/D10271
Assignee | ||
Comment 26•6 years ago
|
||
Depends on D10271 Depends on D10271 Differential Revision: https://phabricator.services.mozilla.com/D10272
Assignee | ||
Comment 27•6 years ago
|
||
Depends on D10272 Depends on D10272 Differential Revision: https://phabricator.services.mozilla.com/D10273
Assignee | ||
Comment 28•6 years ago
|
||
The strictFileInteractability capability is always supported by geckodriver. Depends on D10273 Depends on D10273 Differential Revision: https://phabricator.services.mozilla.com/D10274
Assignee | ||
Comment 29•6 years ago
|
||
This patch changes Marionette to only run the interactability test on <input type=file> when the strictFileInteractability capability is set. strictFileInteractability is not set by default which means this changes WebDriver:SendElementKeys' behaviour to not run interactability checks on <input type=file>. This aligns our WebDriver implementation with the current behaviour in Chrome. To make it legible what the input to interaction.sendKeysToElement is, its API has changed to take an options dictionary instead of three boolean arguments at the end. Depends on D10274 Depends on D10274 Differential Revision: https://phabricator.services.mozilla.com/D10275
Assignee | ||
Comment 30•6 years ago
|
||
Depends on D10275 Depends on D10275 Differential Revision: https://phabricator.services.mozilla.com/D10574
Assignee | ||
Comment 31•6 years ago
|
||
(In reply to Henrik Skupin (:whimboo) from comment #20) > Andreas, I would say this bug is important enough to get uplifted > to beta. What do you think? I would agree with you. I hit some conflicts when rebasing it onto beta, but tried resolving the conflicts. There’s a try run here: https://treeherder.mozilla.org/#/jobs?repo=try&revision=d0ae66748bbfe42860d5cc1deffeab1bf405cb8d
Flags: needinfo?(ato)
Updated•1 year ago
|
Product: Testing → Remote Protocol
You need to log in
before you can comment on or make changes to this bug.
Description
•