- From: Philip Jägenstedt <foolip@google.com>
- Date: Wed, 14 Jun 2017 08:23:15 +0000
- To: Vincent Scheib <scheib@google.com>
- Cc: James Graham <james@hoppipolla.co.uk>, public-test-infra@w3.org
- Message-ID: <CAARdPYeKur8qfzm7mBkXe293b8n9=d4UKEJOA_ROGyTpeUqT0A@mail.gmail.com>
Thanks for summarizing, Vincent, https://wicg.github.io/webusb/test/ is, I believe, the most well-defined such API so far. Perhaps a next good step would be to prepare a PR that adds one such test to https://github.com/w3c/web-platform-tests/tree/master/webusb to make it all very concrete, to see what issues come up? On Tue, Jun 13, 2017 at 7:52 PM Vincent Scheib <scheib@google.com> wrote: > Related to this thread "Specifications with matching test APIs" > <https://www.w3.org/Search/Mail/Public/search?keywords=&hdr-1-name=subject&hdr-1-query=%22Specifications+with+matching+test+APIs%22&index-grp=Public_FULL&index-type=g&type-index=> > and the earlier thread "UserAgent-specific files in Web Platform Tests" > <https://www.w3.org/Search/Mail/Public/search?keywords=&hdr-1-name=subject&hdr-1-query=%22UserAgent-specific+files+in+Web+Platform+Tests%22&index-grp=Public_FULL&index-type=g&type-index=> > > This is a summary of a call discussing web platform testing with “Test > APIs” including James Graham (Mozilla) and Philip Jägenstedt, Reilly Grant, > Vincent Scheib (Google). > > Web Bluetooth, WebUSB, and WebVR are actively seeking to develop web > platform tests with new requirements compared to existing tests. Complex > state must be configured for these features to be tested, e.g. fake > bluetooth devices. “Test APIs” are proposed as being paired with > specifications. > > Concerns raised and discussed include: > > A) With new testing patterns we may develop unexpected influence on future > implementations. Particularly risky when only a small number of developers > are influencing the API. E.g. WebUSB which doesn’t yet have other > implementations. > > B) WebDriver already operates at a high level, helping avoid test APIs > being too implementation specific. > > C) Test APIs that don’t work with browser’s standard shipping versions may > be a problem. E.g. they won’t run with web-developer focused testing > infrastructure, BrowserStack, Sauce, etc. And, they’re harder to run > manually. > > D) Our primary goal is to have conforming web browser implementations. > Considering the goal of “Testing APIs should work for web-app developers” > is lower priority. > > Recommendations: > > Test APIs should clearly indicate their purpose and scope: > > - They are intended only for WPT. This means test APIs can be modified > more freely if a later implementation discovers limitations in the testing > API. We do not want additional resistance to API change due to e.g. web app > developers using the test API. > > - Test APIs should be designed carefully to only use concepts from the > feature being tested, and not the details of the implementation. E.g. > garbage collection, implementation specific feature details, synchronous > responses, etc. > > Full notes > <https://docs.google.com/document/d/1CWiBgegF25yWDgUFYel5hJoRufM0q2uTHcvxzeRxKvY/edit?pli=1#heading=h.qw3pxi7awcst> > . > > On Wed, May 3, 2017 at 8:55 AM, Philip Jägenstedt <foolip@google.com> > wrote: > >> On Mon, Apr 24, 2017 at 4:33 PM James Graham <james@hoppipolla.co.uk> >> wrote: >> >>> On 22/04/17 02:28, Reilly Grant wrote: >>> > On Fri, Apr 21, 2017 at 6:11 PM Rick Byers <rbyers@chromium.org> >>> wrote: >>> > >>> >> Thanks Reilly, I support continuing to move in this direction! >>> >> >>> >> Are you planning in shipping this API in release Chrome builds behind >>> a >>> >> flag? I think it would be reasonable to modify the WPT infrastructure >>> >> (stability_checker, dashboard) to pass a --enable-testing-apis flag >>> >> (although we might need to consider the security implications of that >>> for >>> >> the WPT infrastructure running potentially untrusted test patches). >>> But I >>> >> don't think we'd want to use content_shell (or even Chromium builds) >>> in >>> >> that infrastructure - at least not in place of Chrome builds. >>> >> >>> > >>> > The ability to override the Mojo services provided to the renderer >>> from the >>> > renderer itself (which is how Chromium's polyfill for this API is >>> > implemented) is only available in content_shell when the >>> --run-layout-test >>> > parameter is passed. There have been discussions with the Mojo team >>> about >>> > making this available in production Chrome builds when a flag is >>> enabled. >>> > It would have to be a flag which displays the "unsupported flag, >>> security >>> > and stability will suffer" infobar because it effectively allows >>> arbitrary >>> > JavaScript to run with the privileges of the renderer. >>> >>> This seems like: >>> >>> * An API with unclear vendor buy-in. >>> * An test API that is (effectively) not available outside Chromium CI >>> (although it's possible to get contentshell builds it's not a bad >>> approximation to assume that no one will). >>> >>> So I'm pretty worried about this approach. It seems like there's a high >>> chance that the test api will encode Blink implementation details, we >>> will struggle to run the tests outside your CI, and web developers who >>> want to test their USB-using website will be left to search for a >>> different solution. >>> >> >> I think it's probably true that there are ways of depending on >> implementation details with a testing API that are unlikely/impossible >> using a WebDriver extension, but with either approach it would be very >> surprising if the tests didn't need any adjustment when the second >> implementer starts running them. As long as the effort to find and fix such >> problems is much lower than writing tests from scratch, is it not still a >> net win? It seems likely to me that this would be the case, especially when >> making a conscious effort to define a testing API that doesn't depend on >> implementation details. >> >> Until there is a second implementer showing public interest, would it >> help to contain tests like this to webusb/chromium/ or similar? >> > >
Received on Wednesday, 14 June 2017 08:24:00 UTC