Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(939)

Unified Diff: third_party/WebKit/LayoutTests/external/wpt/webusb/resources/usb-helpers.js

Issue 2789723003: Migrate WebUSB LayoutTests into external/wpt (Closed)
Patch Set: Upstream tests that will work in stable Chrome Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/external/wpt/webusb/resources/usb-helpers.js
diff --git a/third_party/WebKit/LayoutTests/usb/resources/usb-helpers.js b/third_party/WebKit/LayoutTests/external/wpt/webusb/resources/usb-helpers.js
similarity index 64%
rename from third_party/WebKit/LayoutTests/usb/resources/usb-helpers.js
rename to third_party/WebKit/LayoutTests/external/wpt/webusb/resources/usb-helpers.js
index 35ba6eaff40dd61e22d74146a0f8cb84401f2c63..5b8a9e90e6ce79e16823e56af0afe88bd575f81f 100644
--- a/third_party/WebKit/LayoutTests/usb/resources/usb-helpers.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/webusb/resources/usb-helpers.js
@@ -1,8 +1,39 @@
'use strict';
+// To enable these tests Chrome must be run with these options:
+//
+// --enable-blink-features=MojoJS,MojoJSTest
+let loadChromiumResources = Promise.resolve().then(() => {
ortuno 2017/06/21 00:43:50 Sad that we have to include Chrome-specific code i
foolip 2017/06/21 08:23:29 Could this be made part of wpt_automation instead?
Reilly Grant (use Gerrit) 2017/06/21 21:35:16 One of the goals of this patch is to make these te
foolip 2017/06/22 22:30:38 Hmm, I didn't notice that /resources/chromium/*.js
foolip 2017/06/22 22:52:18 Discussed in https://codereview.chromium.org/27897
+ if (!MojoInterfaceInterceptor) {
+ // Do nothing on non-Chromium-based browsers or when the Mojo bindings are
+ // not present in the global namespace.
+ return;
+ }
+
+ let chain = Promise.resolve();
+ [
+ '/resources/chromium/mojo_bindings.js',
+ '/resources/chromium/device.mojom.js',
+ '/resources/chromium/device_manager.mojom.js',
+ '/resources/chromium/chooser_service.mojom.js',
+ '/resources/chromium/webusb-test.js',
+ ].forEach(path => {
+ let script = document.createElement('script');
+ script.src = path;
+ script.async = false;
+ chain = chain.then(() => new Promise(resolve => {
+ script.onload = () => resolve();
+ }));
+ document.head.appendChild(script);
+ });
+
+ return chain;
+});
+
function usb_test(func, name, properties) {
promise_test(async () => {
- await navigator.usb.test.initialize()
+ await loadChromiumResources;
+ await navigator.usb.test.initialize();
try {
await func();
} finally {
@@ -72,24 +103,17 @@ function assertDeviceInfoEquals(usbDevice, deviceInit) {
}
}
-// TODO(reillyg): Remove when jyasskin upstreams this to testharness.js:
-// https://crbug.com/509058.
-function callWithKeyDown(functionCalledOnKeyPress) {
+function callWithTrustedClick(callback) {
return new Promise(resolve => {
- function onKeyPress() {
- document.removeEventListener('keypress', onKeyPress, false);
- resolve(functionCalledOnKeyPress());
- }
- document.addEventListener('keypress', onKeyPress, false);
-
- eventSender.keyDown(' ', []);
- });
-}
-
-function runGarbageCollection() {
- // Run gc() as a promise.
- return new Promise((resolve, reject) => {
- GCController.collect();
- setTimeout(resolve, 0);
+ let button = document.createElement('button');
+ button.textContent = 'click to continue test';
+ button.style.display = 'block';
+ button.style.fontSize = '20px';
+ button.style.padding = '10px';
+ button.onclick = () => {
+ resolve(callback());
+ document.body.removeChild(button);
+ };
+ document.body.appendChild(button);
});
}

Powered by Google App Engine
This is Rietveld 408576698