New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 625019 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Feature

Blocking:
issue 436283



Sign in to add a comment

Software-only mechanism to show chosen objects in PageInfo

Project Member Reported by lgar...@chromium.org, Jul 1 2016

Issue description

Breaking out from  https://crbug.com/424667#c39 
If we can't easily test some of the Page Info UI, we're surely going to break it.

reillyg@ advises me I can borrow Bluetooth and USB test devices from govind@, but I'd like a solution that scales. (govind@, can I try some tomorrow morning?)

reillyg@, is there a simple way to implement fake devices to test the UI?
 
We have infrastructure for mocking USB device for tests but not to activate that code in a regular Chrome build. Are there any examples of such test modes for other UI features?
Views platforms (ChromeOS, Linux, Windows and soon macOS) can be tested with a Chrome OS on Linux build since that build comes with some fake bluetooth devices.
Cc: manoranj...@chromium.org
We don't have any Bluetooth and USB test devices AFAIK (manoranjanr@ returned back when needed for testing during Google i/0).
Cc: fbeaufort@chromium.org
Well, if we don't have a way to test these, I can pretty much guarantee the UI is going to break.

reillyg@, would you mind taking this on for early Q3?

@everyone: Do you know any cheap Bluetooth/USB devices I can buy to test the UI?
We should still have  a way to trigger this in software (I shouldn't be the only one who can test), but we need to be able to test this with physical devices, too.
I have two WebLight 0.9.3 USB devices for testing. Please let me know you want to grab them up. Sorry, i overlooked c#3 and i have returned only 'Bluetooth' test devices during i/o to scheib@.

Thank you!
Cc: scheib@chromium.org
Thanks to manoranjanr@, I can successfully test a WebLight!
It doesn't work on https://permission.site/, but I'll ask Mike about that.

scheib@: Do you have a spare Bluetooth devices?

In any case, software testing here is still important, so that I and other can test across all platforms without acquiring special devices (can our Linux workstations even do Bluetooth?).
A couple of things regarding bluetooth:

1. As mentioned in #2, you can build with target_os=chromeos and use the built-in fake devices.

2. Linux workstations don't work out of the box, you are going to have to compile and install the latest version of bluez and upgrade your kernel. Chrome OS and Macs with Low Energy support work fine. You can drop by US-MTV-43-1-182 and look for scheib or ortuno and we can give you a device to test with.

3. Are you looking to test the Bluetooth Chooser or Page Info? Web Bluetooth doesn't support Page Info yet.
1. Yeah, that works for custom builds, but that doesn't cover every test case. For example, I should be able to test on Windows even if I can't build on Windows.

2. Thanks, good to know.

3. Both, although I'm only working on Page Info right now.
> Thanks to manoranjanr@, I can successfully test a WebLight!
> It doesn't work on https://permission.site/, but I'll ask Mike about that.

https://permission.site doesn't have permission to access the device so it doesn't appear in the chooser unless you run Chrome with --disable-webusb-security. When you plugged the device in it should've prompted you to visit the right site which is https://sowbug.github.io/weblight.
Blocking: 436283
This is a reasonable feature request. Would be nice to have a switch to to this. 

Let's keep the 'how to test today' discussion off this issue (email / IM better). I've solved lgarron's needs for today in person.
Status: Started (was: Assigned)
I've started working on a chrome://usb-internals page where the first feature will be the ability to add and remove test devices at a layer low enough to exercise pretty much everything other than actually communicating with the device (open will fail).
Project Member

Comment 12 by bugdroid1@chromium.org, Aug 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3903a69e08972bf282615d725b918109e5cb7a44

commit 3903a69e08972bf282615d725b918109e5cb7a44
Author: reillyg <reillyg@chromium.org>
Date: Wed Aug 10 18:34:16 2016

Add chrome://usb-internals page for adding and removing test devices.

This patch adds a new WebUI page, chrome://usb-internals with controls
for simulating the connection and disconnection of virtual WebUSB
devices. This will be useful for doing UI testing without the need for
real hardware.

This page will be expanded in the future to add other features useful
for debugging WebUSB such as viewing device information as it has been
parsed by Chrome and overriding descriptors during development.

BUG= 625019 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2204713006
Cr-Commit-Position: refs/heads/master@{#411091}

[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/BUILD.gn
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/browser_resources.grd
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/resources/usb_internals/usb_internals.css
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/resources/usb_internals/usb_internals.html
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/resources/usb_internals/usb_internals.js
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/BUILD.gn
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/usb_internals/BUILD.gn
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/usb_internals/OWNERS
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/usb_internals/usb_internals.mojom
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/usb_internals/usb_internals_page_handler.cc
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/usb_internals/usb_internals_page_handler.h
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc
[add] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/browser/ui/webui/usb_internals/usb_internals_ui.h
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/chrome_browser_ui.gypi
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/common/url_constants.cc
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/chrome/common/url_constants.h
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/device/usb/usb_service.cc
[modify] https://crrev.com/3903a69e08972bf282615d725b918109e5cb7a44/device/usb/usb_service.h

Status: Fixed (was: Started)
Marking this as fixed as it solves the issue for USB and Bluetooth does not appear in page info yet.
Status: Verified (was: Fixed)
Thanks!

I just tested the UI, and it works perfectly, including adding, getting the notification, granting, and seeing it in Page Info.
Screen Shot 2016-08-15 at 11.42.47.png
196 KB View Download
Components: -Security>UX
Labels: Team-Security-UX
Security>UX component is deprecated in favor of the Team-Security-UX label

Sign in to add a comment