Closed
Bug 1502864
Opened 7 years ago
Closed 7 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•7 years ago
|
Assignee | ||
Comment 1•7 years ago
|
||
See also the geckodriver bug on this:
https://github.com/mozilla/geckodriver/issues/1173
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → ato
Status: NEW → ASSIGNED
Priority: P2 → P1
Assignee | ||
Comment 2•7 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•7 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•7 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•7 years ago
|
||
Depends on D10271
Assignee | ||
Comment 6•7 years ago
|
||
Depends on D10272
Assignee | ||
Comment 7•7 years ago
|
||
The strictFileInteractability capability is always supported by
geckodriver.
Depends on D10273
Assignee | ||
Comment 8•7 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•7 years ago
|
||
Depends on D10275
Comment 10•7 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•7 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•7 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•7 years ago
|
||
The test failure was caused by a faulty rebase by Lando.
Flags: needinfo?(ato)
Comment 15•7 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•7 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: 7 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•7 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•7 years ago
|
||
Also we may want to release a new geckodriver release (bug 1495062).
Blocks: 1495062
Upstream PR merged
Assignee | ||
Comment 23•7 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•7 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•7 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•7 years ago
|
||
Depends on D10271
Depends on D10271
Differential Revision: https://phabricator.services.mozilla.com/D10272
Assignee | ||
Comment 27•7 years ago
|
||
Depends on D10272
Depends on D10272
Differential Revision: https://phabricator.services.mozilla.com/D10273
Assignee | ||
Comment 28•7 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•7 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•7 years ago
|
||
Depends on D10275
Depends on D10275
Differential Revision: https://phabricator.services.mozilla.com/D10574
Assignee | ||
Comment 31•7 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•3 years ago
|
Product: Testing → Remote Protocol
You need to log in
before you can comment on or make changes to this bug.
Description
•