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

Issue 827672 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Aug 3
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature



Sign in to add a comment

Web BT support for cast platform

Project Member Reported by bcf@chromium.org, Mar 30 2018

Issue description

Tracking bug.
 

Comment 1 by bcf@chromium.org, Mar 30 2018

Summary: Web BT support for cast platform (was: Web BT support for Chromecast platform)
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 4 2018

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

commit 1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef
Author: Stephen Lanham <slan@google.com>
Date: Wed Apr 04 01:26:28 2018

[Chromecast] Add WebBluetooth support to Cast platforms (part 2 of N).

Introduce better lifetime management for BluetoothAdapterCast, allowing
the Cast embedder code to inject a factory for this class. This prevents
potential races at destruct time.

Also wires up the code to make Characteristic notifications work. With
this patch (and some hacks in content), a JS application can receive
notifications successfully.

BUG= 827672 

Bug: b/75967216
Test: test page
Change-Id: Idb8a1ba2c9ad94a80940083d31e307b3506f98e6
Reviewed-on: https://chromium-review.googlesource.com/988265
Commit-Queue: Stephen Lanham <slan@chromium.org>
Reviewed-by: Conley Owens <cco3@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547922}
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/chromecast/browser/BUILD.gn
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/chromecast/browser/DEPS
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/chromecast/browser/cast_browser_main_parts.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/chromecast/browser/cast_content_browser_client.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/chromecast/browser/cast_content_browser_client.h
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/chromecast/device/bluetooth/le/remote_characteristic_impl.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/BUILD.gn
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/BUILD.gn
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/DEPS
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_adapter_cast.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_adapter_cast.h
[add] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_adapter_cast_unittest.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_device_cast.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_device_cast.h
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_remote_gatt_characteristic_cast.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_remote_gatt_characteristic_cast.h
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_remote_gatt_descriptor_cast.cc
[modify] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_remote_gatt_service_cast.cc
[add] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_utils.cc
[add] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_utils.h
[add] https://crrev.com/1316af43165cc7fc1d75f9bf32854b1fb7a3c5ef/device/bluetooth/cast/bluetooth_utils_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 10 2018

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

commit ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7
Author: Stephen Lanham <slan@google.com>
Date: Tue Apr 10 04:21:56 2018

[Chromecast] Add WebBluetooth support to Cast platforms (part 3 of N).

Add BluetoothTestCast, a test fixture which allows the general Bluetooth
tests to be run against the Cast implementations. Fix the necessary
pieces to make the tests pass, including:
 * Handle service and manufacturer data properly.
 * Stub power management properly.
 * Handle discovery sessions properly.
 * Add TODOs for future work.

This by no means is all the test coverage we need for this code, this
just allows us to run device_unittests upstream.

BUG= 827672 

Bug: b/75967216
Test: test page
Change-Id: Ibf1acb524d1644a78a5510af09d354736bbb3a67
Reviewed-on: https://chromium-review.googlesource.com/998839
Commit-Queue: Stephen Lanham <slan@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Bailey Forrest <bcf@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549419}
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/chromecast/device/bluetooth/le/le_scan_result.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/chromecast/device/bluetooth/le/le_scan_result.h
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/BUILD.gn
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/BUILD.gn
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/DEPS
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/bluetooth_adapter_unittest.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/bluetooth_device_unittest.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/bluetooth_remote_gatt_descriptor_unittest.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/bluetooth_remote_gatt_service_unittest.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/cast/bluetooth_adapter_cast.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/cast/bluetooth_adapter_cast.h
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/cast/bluetooth_device_cast.cc
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/cast/bluetooth_device_cast.h
[modify] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/test/bluetooth_gatt_server_test.h
[add] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/test/bluetooth_test_cast.cc
[add] https://crrev.com/ccd5c25b9cd23dc5cb823dc155c350a2d2ca69b7/device/bluetooth/test/bluetooth_test_cast.h

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 12 2018

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

commit 223fbc57d3e4fc62a5c48ef2a8e779422fd043d5
Author: Bailey Forrest <bcf@chromium.org>
Date: Thu Apr 12 04:21:43 2018

[chromecast] Default BluetoothAdapterCast::powered_ = true

This is needed for Web Bluetooth to work on Chromecast.

Also, fix unrelated build error.

BUG= 827672 

Bug: b/75967216
Test: device_unittests, test page.
Change-Id: I216e544175a5729f81271abc9f64ae3509b94735
Reviewed-on: https://chromium-review.googlesource.com/1008876
Reviewed-by: Stephen Lanham <slan@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Bailey Forrest <bcf@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550010}
[modify] https://crrev.com/223fbc57d3e4fc62a5c48ef2a8e779422fd043d5/device/bluetooth/cast/bluetooth_adapter_cast.h
[modify] https://crrev.com/223fbc57d3e4fc62a5c48ef2a8e779422fd043d5/device/bluetooth/test/bluetooth_test_cast.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 14 2018

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

commit 366d988ee95deaa30f5ad72b408b39b177c1afea
Author: Stephen Lanham <slan@google.com>
Date: Sat Apr 14 00:25:41 2018

[Chromecast] Add CastWebView::RunBluetoothChooser().

This method allows the CastWebView to further delegate this call from
WebContents to the owner of this CastWebView (usually a Cast Activity).
WebBluetooth is disabled for a particular CastWebView unless this
method is overriden by the delegate.

This also adds an implementation of content::BluetoothChooser which
selects devices based on approved access from a remote entity (usually
the Activity host).

BUG= 827672 

Bug: b/75967216
Test: test app
Change-Id: I7915583012be4abf41b426c789ef40e8714203ad
Reviewed-on: https://chromium-review.googlesource.com/1011417
Commit-Queue: Stephen Lanham <slan@chromium.org>
Reviewed-by: Bailey Forrest <bcf@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550828}
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/BUILD.gn
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/cast_bluetooth_chooser.cc
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/cast_bluetooth_chooser.h
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/cast_bluetooth_chooser_unittest.cc
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/public/interfaces/BUILD.gn
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/public/interfaces/OWNERS
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/public/interfaces/web_bluetooth.mojom
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view.cc
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view.h
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view_default.cc
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view_default.h

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/366d988ee95deaa30f5ad72b408b39b177c1afea

commit 366d988ee95deaa30f5ad72b408b39b177c1afea
Author: Stephen Lanham <slan@google.com>
Date: Sat Apr 14 00:25:41 2018

[Chromecast] Add CastWebView::RunBluetoothChooser().

This method allows the CastWebView to further delegate this call from
WebContents to the owner of this CastWebView (usually a Cast Activity).
WebBluetooth is disabled for a particular CastWebView unless this
method is overriden by the delegate.

This also adds an implementation of content::BluetoothChooser which
selects devices based on approved access from a remote entity (usually
the Activity host).

BUG= 827672 

Bug: b/75967216
Test: test app
Change-Id: I7915583012be4abf41b426c789ef40e8714203ad
Reviewed-on: https://chromium-review.googlesource.com/1011417
Commit-Queue: Stephen Lanham <slan@chromium.org>
Reviewed-by: Bailey Forrest <bcf@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550828}
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/BUILD.gn
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/cast_bluetooth_chooser.cc
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/cast_bluetooth_chooser.h
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/cast_bluetooth_chooser_unittest.cc
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/public/interfaces/BUILD.gn
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/public/interfaces/OWNERS
[add] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/bluetooth/public/interfaces/web_bluetooth.mojom
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view.cc
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view.h
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view_default.cc
[modify] https://crrev.com/366d988ee95deaa30f5ad72b408b39b177c1afea/chromecast/browser/cast_web_view_default.h

Status: Assigned (was: Untriaged)
This bug has an owner, thus, it's been triaged. Changing status to "assigned".
Status: Fixed (was: Assigned)

Sign in to add a comment