On Wednesday, October 21, 2020 at 11:56:45 AM UTC+2, James Graham wrote:
> Two changes that recently landed in web-platform-tests make it easier to 
> write tests that require access to non-web-exposed features: 
> 
> * testdriver APIs now work in many situations involving multiple 
> browsing contexts origins 
> 
> * SpecialPowers is now available in gecko-only web-platform-tests 
> 

Thanks!

> testdriver 
> ========== 
> 
> testdriver [1] is a cross-browser API provided by wpt for performing 
> privileged actions, notably those involving trusted user gestures. 
> Because it's cross-browser this is the preferred way to write tests 
> requiring such interactions, where possible. 
> 
> The default implementation of testdriver uses WebDriver on the backend, 
> and where specs provide WebDriver APIs for automation (e.g. [2]) they 
> can be exposed to wpt via testdriver. 
> 
> Previously testdriver APIs only worked in the browsing context 
> containing the test harness. Now it's possible to use them in any 
> browsing context that is reachable from the context containing the 
> harness (i.e. any context that can postMessage to the test window). Full 
> documentation is given in [1]. 
> 
> Unfortunately handling cases where the contexts can't communicate e.g. 
> rel=noopener remains challenging because of limitations in webdriver/the 
> way we communicate between the harness and the browser. It isn't 
> impossible to fix these cases, but will require additional work. Please 
> let me know when you're blocked writing cross-browser tests because of 
> such limitations since this will help prioritise the work. 
> 
> SpecialPowers 
> ============= 
> 
> The SpecialPowers API that's commonly used in gecko-specific tests in 
> other harnesses is now available for use in gecko-specific 
> web-platform-tests i.e. those that live in 
> testing/web-platform/mozilla/tests These tests obviously can't be run 
> cross-browser and aren't upstreamed. Therefore it's preferable to write 
> a shareable test using testdriver or similar where possible. However 
> there are some cases where that simply doesn't provide the required 
> features and rather than forcing authors to write mochitest-plain tests 
> for those cases it's now (hopefully) possible to do everything required 
> for content tests in wpt. 
> 
> Currently this is only enabled for js (i.e. testharness) tests. If there 
> are use cases that require SpecialPowers in other test types (e.g. wpt 
> reftests) please let me know. 
> 
> To be really clear here, this isn't suitable for anything that would 
> have previously used e.g. a browser-chrome test. The intent is to make 
> it possible to test web apis in a way that requires occasional access to 
> internals, not to allow testing the internals themselves. 
> 
> Future Work 
> =========== 
> 
> We want to keep making this kind of improvement to wpt, especially where 
> doing so allows us to drive compatibility improvements by writing 
> cross-browser tests where it was previously impossible. 
> 
> We are proposing and making an initial implementation of the Browser 
> Testing API spec [3], which is designed to provide a place to specify 
> test-only features that don't make sense in WebDriver; the initial scope 
> is a function to invoke a garbage collection; this has been a 
> longstanding feature request. If there are additional APIs that people 
> think would make sense in such a spec, please let me know. 
> 
> In general if there are places where wpt doesn't meet our requirements 
> for testing, or there are chances to improve the test writing ergonomics 
> please let me know and we can make sure that work gets appropriate 
> priority.

Supporting synthesizing drag-and-drop events [1] and convenience functions for 
checking the clipboard [2] would be helpful. In general, it's presumably worth 
checking what kind of convenience functions are offered [3] and used by 
mochitests.

[1] 
https://searchfox.org/mozilla-central/rev/e1d1f043957191616721b9e8bf811c0aab8a203a/testing/mochitest/tests/SimpleTest/EventUtils.js#4-26.
[2] 
https://searchfox.org/mozilla-central/rev/e1d1f043957191616721b9e8bf811c0aab8a203a/testing/mochitest/tests/SimpleTest/SimpleTest.js#1224
[3] 
https://searchfox.org/mozilla-central/source/testing/mochitest/tests/SimpleTest/


> Shared tests remains a key technique for ensuring 
> interoperability between different browser engines. 
> 
> [1] http://web-platform-tests.org/writing-tests/testdriver.html 
> [2] https://w3c.github.io/permissions/#automation 
> [3] https://jgraham.github.io/browser-test/
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to