This issue tracks building specializations of ChooserContextBase and ChooserController for picking and managing serial port permissions as needed for the Serial API.
Issue 917202 has been merged into this issue.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7fa2022b91956a3bbedf4768460490641de85eda commit 7fa2022b91956a3bbedf4768460490641de85eda Author: Reilly Grant <reillyg@chromium.org> Date: Mon Jan 07 22:29:08 2019 [serial] Implement basic serial port chooser UI This change adds a RunSerialChooser method to the WebContentsDelegate interface which launches a chooser permission prompt displaying the currently connected serial ports. Bug: 908836 Change-Id: Ib84dd99d131aa5d52031f099da4d5293b5bb0e2a Reviewed-on: https://chromium-review.googlesource.com/c/1393373 Commit-Queue: Reilly Grant <reillyg@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/master@{#620502} [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/app/generated_resources.grd [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/app/generated_resources_grd/IDS_SERIAL_PORT_CHOOSER_CONNECT_BUTTON_TEXT.png.sha1 [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/app/generated_resources_grd/IDS_SERIAL_PORT_CHOOSER_PROMPT_EXTENSION_NAME.png.sha1 [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/app/generated_resources_grd/IDS_SERIAL_PORT_CHOOSER_PROMPT_ORIGIN.png.sha1 [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/browser/ui/BUILD.gn [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/browser/ui/browser.cc [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/browser/ui/browser.h [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/browser/ui/serial/serial_chooser.cc [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/browser/ui/serial/serial_chooser.h [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/browser/ui/serial/serial_chooser_controller.cc [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/chrome/browser/ui/serial/serial_chooser_controller.h [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/browser/serial/serial_browsertest.cc [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/browser/serial/serial_service.cc [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/browser/serial/serial_service.h [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/public/browser/BUILD.gn [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/public/browser/serial_chooser.cc [add] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/public/browser/serial_chooser.h [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/public/browser/web_contents_delegate.cc [modify] https://crrev.com/7fa2022b91956a3bbedf4768460490641de85eda/content/public/browser/web_contents_delegate.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f3229ebb4aec65575ee22d6e08032d0f84efc688 commit f3229ebb4aec65575ee22d6e08032d0f84efc688 Author: Reilly Grant <reillyg@chromium.org> Date: Fri Jan 11 03:51:07 2019 [serial] Use base::FilePath in device.mojom.SerialPortInfo This changes the type of the |path| field in device.mojom.SerialPortInfo from a string to a mojo_base.mojom.FilePath and updates the SerialDeviceEnumerator and SerialIoHandler implementations to pass around base::FilePaths instead of std::strings. This was done in order to make sure that device paths are stored in the correct platform-specific encoding and can be displayed to the user using base::FilePath::LossyDisplayName(). Bug: 908836 Change-Id: I46d0d18413c00db87f8ed3e58d73d5ae39b4c51e Reviewed-on: https://chromium-review.googlesource.com/c/1406087 Reviewed-by: Dominick Ng <dominickn@chromium.org> Reviewed-by: Peter Kasting <pkasting@chromium.org> Commit-Queue: Reilly Grant <reillyg@chromium.org> Cr-Commit-Position: refs/heads/master@{#621895} [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/chrome/browser/ui/serial/serial_chooser_controller.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/extensions/browser/api/serial/serial_api.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/extensions/browser/api/serial/serial_apitest.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/extensions/browser/api/serial/serial_port_manager.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/public/mojom/serial.mojom [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/fake_serial_device_enumerator.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/fake_serial_device_enumerator.h [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_device_enumerator.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_device_enumerator.h [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_device_enumerator_linux.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_device_enumerator_mac.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_device_enumerator_win.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_device_enumerator_win.h [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_io_handler.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_io_handler.h [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_io_handler_posix.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_io_handler_posix.h [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_io_handler_posix_unittest.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_io_handler_win.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_io_handler_win.h [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_port_impl.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_port_impl.h [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_port_manager_impl.cc [modify] https://crrev.com/f3229ebb4aec65575ee22d6e08032d0f84efc688/services/device/serial/serial_port_manager_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/65a21975e57885f50e9579400b9235253d092511 commit 65a21975e57885f50e9579400b9235253d092511 Author: Reilly Grant <reillyg@chromium.org> Date: Fri Jan 11 05:37:55 2019 [serial] Improve strings in chooser UI This change implements changes suggested on the design doc. The message at the top of the prompt now specifically calls out that the user is being asked to choose a serial port. Each port listed now includes both the friendly name (if available) as well as the device name i.e. COM1, ttyS0, etc. Bug: 908836 Change-Id: I003d5d4f759669e85195dd310591193881bcd288 Reviewed-on: https://chromium-review.googlesource.com/c/1401434 Commit-Queue: Reilly Grant <reillyg@chromium.org> Reviewed-by: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/master@{#621919} [modify] https://crrev.com/65a21975e57885f50e9579400b9235253d092511/chrome/app/generated_resources.grd [add] https://crrev.com/65a21975e57885f50e9579400b9235253d092511/chrome/app/generated_resources_grd/IDS_SERIAL_PORT_CHOOSER_NAME_WITH_PATH.png.sha1 [add] https://crrev.com/65a21975e57885f50e9579400b9235253d092511/chrome/app/generated_resources_grd/IDS_SERIAL_PORT_CHOOSER_PATH_ONLY.png.sha1 [modify] https://crrev.com/65a21975e57885f50e9579400b9235253d092511/chrome/app/generated_resources_grd/IDS_SERIAL_PORT_CHOOSER_PROMPT_EXTENSION_NAME.png.sha1 [modify] https://crrev.com/65a21975e57885f50e9579400b9235253d092511/chrome/app/generated_resources_grd/IDS_SERIAL_PORT_CHOOSER_PROMPT_ORIGIN.png.sha1 [modify] https://crrev.com/65a21975e57885f50e9579400b9235253d092511/chrome/browser/ui/serial/serial_chooser_controller.cc
Comment 1 by reillyg@chromium.org
, Nov 27