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

Issue 752273 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 1
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 817554
issue 817618



Sign in to add a comment

CrOS MultiDevice APIs

Project Member Reported by khorimoto@chromium.org, Aug 3 2017

Issue description

Tracking bug for work on CrOS MultiDevice APIs:

(1) DeviceSync API: This API syncs metadata about other devices tied to a given Google account. It contacts the CryptAuth back-end to enroll the current device and sync down new data about other devices.

(2) SecureChannnel API: This API gives clients the ability to establish connections to remote devices synced via the DeviceSync API. Once a communication channel is established, the API allows clients to send and receive messages through the channel.
 
Showing comments 78 - 177 of 177 Older
Project Member

Comment 78 by bugdroid1@chromium.org, Jun 1 2018

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

commit 9e453cfccb6810b4431c37e2ba5c155c72aa3a27
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 01 02:00:13 2018

[CrOS MultiDevice] Add LocalDeviceMetadataManager.

This class provides an interface for setting and retrieving metadata
about the local device (i.e., the device on which this code is running).

The "default" metadata should be set once the user logs in and should be
used for all requests during a user session. Before the user signs in,
however, the default metadata is unset, since metadata is account-
specific. Thus, this class also provides the ability to tie arbitrary
metadata to a specific request ID.

Bug: 824568, 752273
Change-Id: I78e3da20ff680c1c4cc9ce70e203005aacbdfe23
Reviewed-on: https://chromium-review.googlesource.com/1079722
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563483}
[modify] https://crrev.com/9e453cfccb6810b4431c37e2ba5c155c72aa3a27/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/9e453cfccb6810b4431c37e2ba5c155c72aa3a27/chromeos/services/secure_channel/local_device_metadata_manager.cc
[add] https://crrev.com/9e453cfccb6810b4431c37e2ba5c155c72aa3a27/chromeos/services/secure_channel/local_device_metadata_manager.h
[add] https://crrev.com/9e453cfccb6810b4431c37e2ba5c155c72aa3a27/chromeos/services/secure_channel/local_device_metadata_manager_unittest.cc

Project Member

Comment 79 by bugdroid1@chromium.org, Jun 1 2018

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

commit b4f9c376f6c56d01d26e89e7b10b5fba0a8d78dc
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 01 03:54:56 2018

[CrOS MultiDevice] Set appropriate supported features on GcmDeviceInfo.

(1) The GcmDeviceInfo proto should refer to intrinsic properties of a
    device. Whether a feature is enabled is a mutable property of a
    device which can be changed, so it does not belong in this proto.
(2) GcmDeviceInfoProviderImpl now sets supported features.

Bug: 848611, 824568, 752273
Change-Id: I4e26b6f26f4b61b48b9b6c841e80fa3be0b24742
Reviewed-on: https://chromium-review.googlesource.com/1082011
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563526}
[modify] https://crrev.com/b4f9c376f6c56d01d26e89e7b10b5fba0a8d78dc/chrome/browser/chromeos/cryptauth/gcm_device_info_provider_impl.cc
[modify] https://crrev.com/b4f9c376f6c56d01d26e89e7b10b5fba0a8d78dc/components/cryptauth/proto/cryptauth_api.proto

Project Member

Comment 80 by bugdroid1@chromium.org, Jun 1 2018

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

commit a5f69f09853df281aca2cbc79029aba260180f77
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 01 04:29:10 2018

[CrOS Multidevice] Remove CryptAuthService from SecureChannel.

Bug: 824568, 752273
Change-Id: I790bc44762347d31a63e5d06bba3956ef99e5377
Reviewed-on: https://chromium-review.googlesource.com/1081994
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563535}
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/chromeos/components/tether/ble_connection_manager.cc
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/chromeos/components/tether/ble_connection_manager.h
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/chromeos/components/tether/ble_connection_manager_unittest.cc
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/chromeos/components/tether/fake_ble_connection_manager.cc
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/chromeos/services/secure_channel/authenticated_channel_impl_unittest.cc
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/components/cryptauth/fake_secure_channel.cc
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/components/cryptauth/fake_secure_channel.h
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/components/cryptauth/secure_channel.cc
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/components/cryptauth/secure_channel.h
[modify] https://crrev.com/a5f69f09853df281aca2cbc79029aba260180f77/components/cryptauth/secure_channel_unittest.cc

Project Member

Comment 81 by bugdroid1@chromium.org, Jun 1 2018

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

commit 0ec59851ef03fadada322592d704f37d2a424d2e
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 01 18:47:59 2018

[CrOS Multidevice] SecureChannel: Migrate AuthenticatedChannel to public/cpp.

This move is necessary because both the service and clients of it depend on it.

Bug: 824568, 752273
Change-Id: Ie0996c6ba26fa051de4759c633744bd60d56b011
Reviewed-on: https://chromium-review.googlesource.com/1082660
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563737}
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/active_connection_manager.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/active_connection_manager_impl_unittest.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/authenticated_channel_impl.h
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/authenticated_channel_impl_unittest.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/connection_attempt_base_unittest.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/fake_active_connection_manager.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/fake_connection_attempt_delegate.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/fake_pending_connection_manager.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/multiplexed_channel_impl.h
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/multiplexed_channel_impl_unittest.cc
[modify] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/pending_connection_manager.cc
[add] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/public/cpp/shared/BUILD.gn
[rename] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/public/cpp/shared/authenticated_channel.cc
[rename] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/public/cpp/shared/authenticated_channel.h
[rename] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/public/cpp/shared/fake_authenticated_channel.cc
[rename] https://crrev.com/0ec59851ef03fadada322592d704f37d2a424d2e/chromeos/services/secure_channel/public/cpp/shared/fake_authenticated_channel.h

Project Member

Comment 82 by bugdroid1@chromium.org, Jun 1 2018

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

commit 0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 01 19:32:11 2018

[CrOS Multidevice] Register DeviceSyncService.

Also creates DeviceSyncClientFactory: a BrowserContextKeyedService which
maintains a single instance of DeviceSyncClient and provides it to
clients.

Bug: 824568, 752273
Change-Id: Iad8f4ccb859f7e3b9500335525abdb365e085dfe
Reviewed-on: https://chromium-review.googlesource.com/1080370
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563751}
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/app/BUILD.gn
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/BUILD.gn
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/chromeos/cryptauth/chrome_cryptauth_service_factory.cc
[add] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/chromeos/device_sync/BUILD.gn
[add] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/chromeos/device_sync/OWNERS
[add] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[add] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/chromeos/device_sync/device_sync_client_factory.h
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/0f40a7ec0d40b4791eca72fba6f4b6dbf81cb9db/chromeos/services/device_sync/manifest.json

Project Member

Comment 83 by bugdroid1@chromium.org, Jun 2 2018

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

commit 2ccd3fabd886cddcb74da989dceebabe18e7b1f2
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sat Jun 02 00:40:50 2018

[CrOS MultiDevice] Update FakePendingConnectionManager.

This CL provides a NotifyConnectionForHandledRequests() function which
allows clients to notify the test double's delegate of a successful
connection.

This CL also adds ConnectionDetails::operator!=(), which was previously
undefined and is needed in NotifyConnectionForHandledRequests().

Bug: 824568, 752273
Change-Id: If163506f6198747dac27652606e540c292a6f8ac
Reviewed-on: https://chromium-review.googlesource.com/1083551
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563882}
[modify] https://crrev.com/2ccd3fabd886cddcb74da989dceebabe18e7b1f2/chromeos/services/secure_channel/connection_details.cc
[modify] https://crrev.com/2ccd3fabd886cddcb74da989dceebabe18e7b1f2/chromeos/services/secure_channel/connection_details.h
[modify] https://crrev.com/2ccd3fabd886cddcb74da989dceebabe18e7b1f2/chromeos/services/secure_channel/fake_pending_connection_manager.cc
[modify] https://crrev.com/2ccd3fabd886cddcb74da989dceebabe18e7b1f2/chromeos/services/secure_channel/fake_pending_connection_manager.h

Project Member

Comment 84 by bugdroid1@chromium.org, Jun 2 2018

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

commit 443386f1e7aa40933effd15d17d5f4e7a9b7366a
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sat Jun 02 02:41:37 2018

[CrOS MultiDevice] Refactor chromeos::tether::BleConnectionManager.

Previously, each time a device was registered or unregistered with
BleConnectionManager, a "ConnectionReason" enum was provided. There were
a limited number of possible reasons a connection could be requested,
all specific to various Instant Tethering use cases. However, now that
this class will be used to handle arbitrary connections from the
SecureChannel API, it must be able to handle arbitrary connection
reasons as well. This CL changes the enum type to a
base::UnguessableToken instead.

Additionally, each ConnectionReason previously had an associated
connection priority. With this change, the priority is now passed
directly to BleConnectionManager as a parameter instead of being
implicitly generated from the ConnectionReason enum.

Bug: 824568, 752273
Change-Id: Ia942ba7b7b3e6dc94aab041447399306141531e8
Reviewed-on: https://chromium-review.googlesource.com/1083936
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563919}
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/BUILD.gn
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/ble_connection_manager.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/ble_connection_manager.h
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/ble_connection_manager_unittest.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/connect_tethering_operation.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/connection_preserver_impl.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/connection_preserver_impl.h
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/connection_preserver_impl_unittest.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/connection_priority.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/connection_priority.h
[delete] https://crrev.com/7a5f1db86fda6c73b7362eb9e990c080c9bb6d55/chromeos/components/tether/connection_reason.cc
[delete] https://crrev.com/7a5f1db86fda6c73b7362eb9e990c080c9bb6d55/chromeos/components/tether/connection_reason.h
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/disconnect_tethering_operation.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/fake_ble_connection_manager.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/fake_ble_connection_manager.h
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/host_scanner_operation.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/keep_alive_operation.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/message_transfer_operation.cc
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/message_transfer_operation.h
[modify] https://crrev.com/443386f1e7aa40933effd15d17d5f4e7a9b7366a/chromeos/components/tether/message_transfer_operation_unittest.cc

Project Member

Comment 85 by bugdroid1@chromium.org, Jun 2 2018

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

commit e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Sat Jun 02 03:08:26 2018

[CrOS Multidevice] Move kMultiDeviceApi flag into //chromeos/chromeos_features.

kMultiDeviceApi currently resides in //chrome/common, but it shouldn't because
it controls Chrome OS specific features.

Bug: 824568, 752273
Change-Id: I26b3ef4c213c9548e89b6978a2b33e9e0a85968c

TBR=bauerb

Change-Id: I26b3ef4c213c9548e89b6978a2b33e9e0a85968c
Reviewed-on: https://chromium-review.googlesource.com/1083777
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563920}
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chrome/browser/about_flags.cc
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chrome/browser/chromeos/cryptauth/chrome_cryptauth_service_factory.cc
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chrome/common/chrome_features.cc
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chrome/common/chrome_features.h
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chromeos/chromeos_features.cc
[modify] https://crrev.com/e6a74d9c5cf5408eb9f164d039f2c87a05cf27cf/chromeos/chromeos_features.h

Project Member

Comment 86 by bugdroid1@chromium.org, Jun 2 2018

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

commit a7f94c6bee36b14c1a07312719065e19da68c581
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sat Jun 02 19:03:40 2018

[CrOS MultiDevice] Set appropriate supported features on GcmDeviceInfo.

(1) The GcmDeviceInfo proto should refer to intrinsic properties of a
    device. Whether a feature is enabled is a mutable property of a
    device which can be changed, so it does not belong in this proto.
(2) GcmDeviceInfoProviderImpl now sets supported features.

TBR=khorimoto@google.com

(cherry picked from commit b4f9c376f6c56d01d26e89e7b10b5fba0a8d78dc)

Bug: 848611, 824568, 752273
Change-Id: I4e26b6f26f4b61b48b9b6c841e80fa3be0b24742
Reviewed-on: https://chromium-review.googlesource.com/1082011
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#563526}
Reviewed-on: https://chromium-review.googlesource.com/1083964
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/branch-heads/3440@{#120}
Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733}
[modify] https://crrev.com/a7f94c6bee36b14c1a07312719065e19da68c581/chrome/browser/chromeos/cryptauth/gcm_device_info_provider_impl.cc
[modify] https://crrev.com/a7f94c6bee36b14c1a07312719065e19da68c581/components/cryptauth/proto/cryptauth_api.proto

Project Member

Comment 87 by bugdroid1@chromium.org, Jun 2 2018

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

commit 52e90927713c595534ee46514149e530aba9a9d3
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sat Jun 02 19:39:21 2018

[CrOS MultiDevice] Remove stale GATT services workaround code.

This code was put in place when there was an Android-side bug which
prevented GATT services from being added correctly to the phone's GATT
server. Now that the fix for this issue has rolled out, it is safe to
remove this code.

See https://crbug.com/784968 for details.

Bug: 824568, 784968, 752273
Change-Id: I75151a410e9bbe73f8a6f3b80820b90b6def17e7
Reviewed-on: https://chromium-review.googlesource.com/1083998
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563946}
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/BUILD.gn
[delete] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/chromeos/components/tether/ad_hoc_ble_advertiser.cc
[delete] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/chromeos/components/tether/ad_hoc_ble_advertiser.h
[delete] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/chromeos/components/tether/ad_hoc_ble_advertiser_impl.cc
[delete] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/chromeos/components/tether/ad_hoc_ble_advertiser_impl.h
[delete] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/chromeos/components/tether/ad_hoc_ble_advertiser_impl_unittest.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/asynchronous_shutdown_object_container_impl.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/ble_connection_manager.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/ble_connection_manager.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/ble_connection_manager_unittest.cc
[delete] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/chromeos/components/tether/fake_ad_hoc_ble_advertiser.cc
[delete] https://crrev.com/891b7907fabc802fbbae7331e66c8b846c193d8a/chromeos/components/tether/fake_ad_hoc_ble_advertiser.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/chromeos/components/tether/fake_ble_connection_manager.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection_unittest.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/connection.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/connection.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/connection_observer.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/fake_connection.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/fake_connection.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/fake_secure_channel.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/fake_secure_channel.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/secure_channel.cc
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/secure_channel.h
[modify] https://crrev.com/52e90927713c595534ee46514149e530aba9a9d3/components/cryptauth/secure_channel_unittest.cc

Project Member

Comment 88 by bugdroid1@chromium.org, Jun 2 2018

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

commit 21ed383dffe460f452c79d1c89fbc11b9f06b519
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Sat Jun 02 23:28:39 2018

[CrOS Multidevice] TetherHostFetcher: Conditionally use DeviceSyncClient as device provider.

Prepare TetherHostFetcher for the Tether feature's migration to using DeviceSync Mojo API
(instead of directly using RemoteDeviceProvider). TetherHostFetcher now accepts both a
RemoteDeviceProvider and DeviceSyncClient; it expects only one of them to be valid, and the
other to be null (this is controlled at a higher level by the features::kMultiDeviceApi flag).

Once the migration to the DeviceSync Mojo API is complete, RemoteDeviceProvider will be
completely ripped out of TetherHostFetcher.

Bug: 824568, 752273
Change-Id: Ide4420e016cf83b4c6d281e55b0184a79418e8eb
Reviewed-on: https://chromium-review.googlesource.com/1083838
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563952}
[modify] https://crrev.com/21ed383dffe460f452c79d1c89fbc11b9f06b519/chrome/browser/chromeos/tether/tether_service.cc
[modify] https://crrev.com/21ed383dffe460f452c79d1c89fbc11b9f06b519/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/21ed383dffe460f452c79d1c89fbc11b9f06b519/chromeos/components/tether/BUILD.gn
[modify] https://crrev.com/21ed383dffe460f452c79d1c89fbc11b9f06b519/chromeos/components/tether/tether_host_fetcher_impl.cc
[modify] https://crrev.com/21ed383dffe460f452c79d1c89fbc11b9f06b519/chromeos/components/tether/tether_host_fetcher_impl.h
[modify] https://crrev.com/21ed383dffe460f452c79d1c89fbc11b9f06b519/chromeos/components/tether/tether_host_fetcher_impl_unittest.cc
[modify] https://crrev.com/21ed383dffe460f452c79d1c89fbc11b9f06b519/chromeos/services/device_sync/public/cpp/fake_device_sync_client.h

Project Member

Comment 89 by bugdroid1@chromium.org, Jun 3 2018

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

commit 62c0990facc38f128fa63a30566b41c452db475a
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Sun Jun 03 00:32:41 2018

[CrOS Multidevice] Integrate DeviceSyncClient with Tether.

This plumbs DeviceSyncClient throughout TetherService and
TetherComponent. It is only fully used by TetherHostFetcher in
this CL -- a subsequent CL will inject it into Tether's BleScanner
and BleAdvertiser.

Bug: 824568, 752273
Change-Id: Ib6fc6f1757788ef5a64409e10eb604d2bea1cefa
Reviewed-on: https://chromium-review.googlesource.com/1081946
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563956}
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/device_sync/device_sync_client_factory.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/tether/fake_tether_service.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/tether/fake_tether_service.h
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/tether/tether_service.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/tether/tether_service.h
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/tether/tether_service_factory.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/BUILD.gn
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/asynchronous_shutdown_object_container_impl.h
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/tether_component_impl.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/tether_component_impl.h
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/tether_component_impl_unittest.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc
[modify] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/services/device_sync/public/cpp/device_sync_client_impl.h

Project Member

Comment 90 by bugdroid1@chromium.org, Jun 3 2018

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

commit 8fd698baad2716d78d3d4cc25fdd7694fa3c2422
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sun Jun 03 01:27:10 2018

[CrOS MultiDevice] Integrate ConnectionPriority into SecureChannel.

Previously, the ConnectionPriority enum was part of Instant Tethering,
but it will now be used within the SecureChannel service. This CL moves
this enum and integrates it into PendingConnectionManager.

This CL also introduces a temporary dependency from
//chromeos/components/tether to //chromeos/services/secure_channel. In
the future, this dependency will be removed when Instant Tethering
migrates to using the SecureChannel service.

Bug: 824568, 752273
Change-Id: If4548f2be6c6ea70567674bc433e5f01eda5a829
Reviewed-on: https://chromium-review.googlesource.com/1083820
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563957}
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/BUILD.gn
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/DEPS
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/ble_advertisement_device_queue.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/ble_advertisement_device_queue.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/ble_advertisement_device_queue_unittest.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/ble_connection_manager.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/ble_connection_manager.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/ble_connection_manager_unittest.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/connect_tethering_operation.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/connection_preserver_impl.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/connection_preserver_impl_unittest.cc
[delete] https://crrev.com/62c0990facc38f128fa63a30566b41c452db475a/chromeos/components/tether/connection_priority.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/disconnect_tethering_operation.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/fake_ble_connection_manager.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/fake_ble_connection_manager.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/host_scanner_operation.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/keep_alive_operation.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/message_transfer_operation.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/message_transfer_operation.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/fake_pending_connection_manager.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/fake_pending_connection_manager.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/pending_connection_manager.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/pending_connection_manager_impl.cc
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/pending_connection_manager_impl.h
[modify] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/public/cpp/shared/BUILD.gn
[rename] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/public/cpp/shared/connection_priority.cc
[add] https://crrev.com/8fd698baad2716d78d3d4cc25fdd7694fa3c2422/chromeos/services/secure_channel/public/cpp/shared/connection_priority.h

Project Member

Comment 91 by bugdroid1@chromium.org, Jun 3 2018

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

commit e8b2cdb924a9204dc20eac44173b2ebb54efb04e
Author: Kyle Horimoto <khorimoto@chromium.org>
Date: Sun Jun 03 18:55:27 2018

Revert "[CrOS MultiDevice] Add LocalDeviceMetadataManager."

This reverts commit 9e453cfccb6810b4431c37e2ba5c155c72aa3a27.

Reason for revert: After discussing with hansberry@, we changed this part of the design, and this class is no longer needed.

Original change's description:
> [CrOS MultiDevice] Add LocalDeviceMetadataManager.
> 
> This class provides an interface for setting and retrieving metadata
> about the local device (i.e., the device on which this code is running).
> 
> The "default" metadata should be set once the user logs in and should be
> used for all requests during a user session. Before the user signs in,
> however, the default metadata is unset, since metadata is account-
> specific. Thus, this class also provides the ability to tie arbitrary
> metadata to a specific request ID.
> 
> Bug: 824568, 752273
> Change-Id: I78e3da20ff680c1c4cc9ce70e203005aacbdfe23
> Reviewed-on: https://chromium-review.googlesource.com/1079722
> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
> Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#563483}

TBR=khorimoto@chromium.org,hansberry@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 824568, 752273
Change-Id: Ied459e3da24d4961f49f4c218b2f9a5909eac7a2
Reviewed-on: https://chromium-review.googlesource.com/1084251
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563969}
[modify] https://crrev.com/e8b2cdb924a9204dc20eac44173b2ebb54efb04e/chromeos/services/secure_channel/BUILD.gn
[delete] https://crrev.com/d1c69cab959139a1796dbb5926caa39f547f5438/chromeos/services/secure_channel/local_device_metadata_manager.cc
[delete] https://crrev.com/d1c69cab959139a1796dbb5926caa39f547f5438/chromeos/services/secure_channel/local_device_metadata_manager.h
[delete] https://crrev.com/d1c69cab959139a1796dbb5926caa39f547f5438/chromeos/services/secure_channel/local_device_metadata_manager_unittest.cc

Project Member

Comment 92 by bugdroid1@chromium.org, Jun 3 2018

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

commit 340c2dc250d82c243533e4f3b8ea04ae3139ba11
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sun Jun 03 18:57:17 2018

[CrOS MultiDevice] Update FakePendingConnectionManager.

Now, its NotifyConnectionForHandledRequests() function returns a vector
of the clients that have been passed to the delegate callback.

Bug: 824568, 752273
Change-Id: I153fa23501cf7f6b6c0c10b39136f456e82e9b12
Reviewed-on: https://chromium-review.googlesource.com/1083858
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563970}
[modify] https://crrev.com/340c2dc250d82c243533e4f3b8ea04ae3139ba11/chromeos/services/secure_channel/fake_pending_connection_manager.cc
[modify] https://crrev.com/340c2dc250d82c243533e4f3b8ea04ae3139ba11/chromeos/services/secure_channel/fake_pending_connection_manager.h

Project Member

Comment 93 by bugdroid1@chromium.org, Jun 3 2018

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

commit 0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sun Jun 03 19:09:37 2018

[CrOS MultiDevice] Add factory for RemoteDeviceCache.

Additionally, add IsSameDevice() test function, which returns whether a
RemoteDevice and RemoteDeviceRef refer to the same device.

TBR=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: Ic7884421165a9454617adb07332a7ae8a52a993e
Reviewed-on: https://chromium-review.googlesource.com/1083860
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563971}
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_signin_chromeos.cc
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/components/cryptauth/expiring_remote_device_cache.cc
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/components/cryptauth/remote_device_cache.cc
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/components/cryptauth/remote_device_cache.h
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/components/cryptauth/remote_device_cache_unittest.cc
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/components/cryptauth/remote_device_ref.h
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/components/cryptauth/remote_device_test_util.cc
[modify] https://crrev.com/0a9b7f6848d3d6dd7b62fd8abc9b66bfdfebf18f/components/cryptauth/remote_device_test_util.h

Project Member

Comment 94 by bugdroid1@chromium.org, Jun 3 2018

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

commit 5fff84af92ec0ebc40e51fd723191dfc5e4aace2
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sun Jun 03 19:28:28 2018

[CrOS MultiDevice] Rename FakeActiveConnectionManager function.

Previously, the function was named connection_details_to_channel_map().
However, the map value is a tuple with three components, so this CL
renames it to connection_details_to_active_metadata_map().

Bug: 824568, 752273
Change-Id: Id063f564c81e6625b50df615781daa5395f735e3
Reviewed-on: https://chromium-review.googlesource.com/1083827
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563972}
[modify] https://crrev.com/5fff84af92ec0ebc40e51fd723191dfc5e4aace2/chromeos/services/secure_channel/fake_active_connection_manager.cc
[modify] https://crrev.com/5fff84af92ec0ebc40e51fd723191dfc5e4aace2/chromeos/services/secure_channel/fake_active_connection_manager.h

Project Member

Comment 95 by bugdroid1@chromium.org, Jun 3 2018

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

commit 90bdfbf76f05162361c446b0280e46e76980acef
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sun Jun 03 19:34:22 2018

[CrOS MultiDevice] Update FakeClientConnectionParameters.

Now, this class provides the ability to pass a base::OnceClosure to the
constructor which is invoked when the object is deleted.

Bug: 824568, 752273
Change-Id: Ia9765dcdd8805af419a20492f505b43860eb6373
Reviewed-on: https://chromium-review.googlesource.com/1083828
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563973}
[modify] https://crrev.com/90bdfbf76f05162361c446b0280e46e76980acef/chromeos/services/secure_channel/fake_client_connection_parameters.cc
[modify] https://crrev.com/90bdfbf76f05162361c446b0280e46e76980acef/chromeos/services/secure_channel/fake_client_connection_parameters.h

Project Member

Comment 96 by bugdroid1@chromium.org, Jun 4 2018

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

commit 414fa258579e1fa35e4d8ba8fc0d74c79cdf1bfd
Author: Kyle Horimoto <khorimoto@google.com>
Date: Mon Jun 04 15:17:27 2018

[CrOS MultiDevice] Update PendingConnectionManager.

This CL adds a "local_device_id" parameter to HandleConnectionRequest().
This is necessary so that when connections are attempted, this class has
have knowledge of the cryptographic keys to use during authentication
handshakes.

Bug: 824568, 752273
Change-Id: Icf8899d7435524d9092ea5e208464a67020ae6ab
Reviewed-on: https://chromium-review.googlesource.com/1083868
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564098}
[modify] https://crrev.com/414fa258579e1fa35e4d8ba8fc0d74c79cdf1bfd/chromeos/services/secure_channel/fake_pending_connection_manager.cc
[modify] https://crrev.com/414fa258579e1fa35e4d8ba8fc0d74c79cdf1bfd/chromeos/services/secure_channel/fake_pending_connection_manager.h
[modify] https://crrev.com/414fa258579e1fa35e4d8ba8fc0d74c79cdf1bfd/chromeos/services/secure_channel/pending_connection_manager.h
[modify] https://crrev.com/414fa258579e1fa35e4d8ba8fc0d74c79cdf1bfd/chromeos/services/secure_channel/pending_connection_manager_impl.cc
[modify] https://crrev.com/414fa258579e1fa35e4d8ba8fc0d74c79cdf1bfd/chromeos/services/secure_channel/pending_connection_manager_impl.h

Project Member

Comment 97 by bugdroid1@chromium.org, Jun 5 2018

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

commit fd54a57bcc70004ad3fded17c773a72a0942e55a
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 05 18:00:16 2018

[CrOS MultiDevice] Add BleServiceDataHelper.

This class provides the ability to generate BLE advertisement service
data and, given service data that has been received in a BLE discovery
session, identify the device which sent the advertisement.

This class has two implementations: a chromeos::secure_channel version,
and a chromeos::tether version. The SecureChannel implementation is just
a stub for now, and the Instant Tethering version has no tests yet; a
TODO is left in both places for hansberry@. This CL is being submitted
now without full implementations so that I can depend on this code in
other CLs while hansberry@ works on the implementation.

Note: This CL also adds a dependency from //chromeos/components/tether
to //chromeos/services/secure_channel. This dependency is temporary
and will only be present during the migration to SecureChannelClient.

Bug: 824568, 752273
Change-Id: Icf4b150b6fdd74d67c87c6c82fdd35c10a543229
Reviewed-on: https://chromium-review.googlesource.com/1084291
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564570}
[modify] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/components/tether/BUILD.gn
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/components/tether/ble_service_data_helper_impl.cc
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/components/tether/ble_service_data_helper_impl.h
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/components/tether/ble_service_data_helper_impl_unittest.cc
[modify] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/ble_service_data_helper.cc
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/ble_service_data_helper.h
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/ble_service_data_helper_impl.cc
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/ble_service_data_helper_impl.h
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/ble_service_data_helper_impl_unittest.cc
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/device_id_pair.cc
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/device_id_pair.h
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/fake_ble_service_data_helper.cc
[add] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/chromeos/services/secure_channel/fake_ble_service_data_helper.h
[modify] https://crrev.com/fd54a57bcc70004ad3fded17c773a72a0942e55a/components/cryptauth/data_with_timestamp.h

Project Member

Comment 98 by bugdroid1@chromium.org, Jun 6 2018

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

commit 604e543e6d8e4f02429a58869ab88f1718ec9ef8
Author: Kyle Horimoto <khorimoto@google.com>
Date: Wed Jun 06 00:25:49 2018

[CrOS MultiDevice] Refactor ErrorTolerantBleAdvertisement.

Now, this class takes a DeviceIdPair rather than a single device ID.
This is in preparation for integrating this class with SecureChannel.

Bug: 824568, 752273
Change-Id: I21f355967590bbcda699e3f155ab93cd47959af4
Reviewed-on: https://chromium-review.googlesource.com/1086512
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564730}
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/components/tether/ble_advertiser_impl.cc
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/components/tether/ble_advertiser_impl_unittest.cc
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/services/secure_channel/error_tolerant_ble_advertisement.cc
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/services/secure_channel/error_tolerant_ble_advertisement.h
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/services/secure_channel/error_tolerant_ble_advertisement_impl.cc
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/services/secure_channel/error_tolerant_ble_advertisement_impl.h
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/services/secure_channel/error_tolerant_ble_advertisement_impl_unittest.cc
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/services/secure_channel/fake_error_tolerant_ble_advertisement.cc
[modify] https://crrev.com/604e543e6d8e4f02429a58869ab88f1718ec9ef8/chromeos/services/secure_channel/fake_error_tolerant_ble_advertisement.h

Project Member

Comment 99 by bugdroid1@chromium.org, Jun 6 2018

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

commit c9c807ab6035003e17c68d0c29b404f48d4473bc
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jun 06 00:37:58 2018

Add hansberry@ as OWNER in device_sync and secure_channel.

Bug: 824568, 752273
Change-Id: Iae40dd308ad057b08d4f3a6ad4433794243f4cce
Reviewed-on: https://chromium-review.googlesource.com/1086710
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564745}
[modify] https://crrev.com/c9c807ab6035003e17c68d0c29b404f48d4473bc/chromeos/services/device_sync/OWNERS
[modify] https://crrev.com/c9c807ab6035003e17c68d0c29b404f48d4473bc/chromeos/services/secure_channel/OWNERS

Project Member

Comment 100 by bugdroid1@chromium.org, Jun 6 2018

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

commit 250c9d73747959c99647afaf746a74907edc099e
Author: Kyle Horimoto <khorimoto@google.com>
Date: Wed Jun 06 01:16:37 2018

[CrOS MultiDevice] Create BleScanner.

This class is based on the chromeos::tether::BleScanner class, but it
has several key distinctions:
(1) It must support scanning for devices which belong to multiple
    accounts, so it supports having more than one "local device". The
    function used to direct BleScanner to start or stop scanning is
    SetScanFilters().
(2) It only has a single listener, so I've changed the Obsever pattern
    to a Delegate pattern.
(3) Since SecureChannelService cannot be temporarily disabled, there is
    no longer a need for the asynchronous shutdown flow, so the
    OnDiscoverySessionStateChanged() callback is no longer needed.
(4) The artificial limit of 2 devices has been removed. In
    SecureChannel, it should be possible to scan for as many nearby
    devices as the client requests.

Bug: 824568, 752273
Change-Id: Idaf6b65a6465d41e7979a81d8024b162a32b9b49
Reviewed-on: https://chromium-review.googlesource.com/1084319
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564758}
[modify] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/ble_scanner.cc
[add] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/ble_scanner.h
[add] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/ble_scanner_impl.cc
[add] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/ble_scanner_impl.h
[add] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/ble_scanner_impl_unittest.cc
[add] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/fake_ble_scanner.cc
[add] https://crrev.com/250c9d73747959c99647afaf746a74907edc099e/chromeos/services/secure_channel/fake_ble_scanner.h

Project Member

Comment 101 by bugdroid1@chromium.org, Jun 6 2018

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

commit d9fde4a68dd6653a58e60b41f2f491978a22cd7f
Author: Kyle Horimoto <khorimoto@google.com>
Date: Wed Jun 06 02:11:02 2018

[CrOS MultiDevice] Create SecureChannelService.

SecureChannelService holds one instance of SecureChannelImpl and brokers
all API calls to that instance.

Bug: 824568, 752273
Change-Id: Iaa3c0cde59fca0382682d3bf34b6458b75712b15
Reviewed-on: https://chromium-review.googlesource.com/1079643
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564768}
[modify] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/DEPS
[modify] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/OWNERS
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/manifest.json
[modify] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/BUILD.gn
[modify] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/OWNERS
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/constants.mojom
[modify] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/secure_channel.mojom
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/secure_channel.typemap
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/secure_channel_mojom_traits.cc
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/secure_channel_mojom_traits.h
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/secure_channel_mojom_traits_unittest.cc
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/public/mojom/typemaps.gni
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/secure_channel_base.cc
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/secure_channel_base.h
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/secure_channel_impl.cc
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/secure_channel_impl.h
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/secure_channel_service.cc
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/secure_channel_service.h
[add] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/chromeos/services/secure_channel/secure_channel_service_unittest.cc
[modify] https://crrev.com/d9fde4a68dd6653a58e60b41f2f491978a22cd7f/mojo/public/tools/bindings/chromium_bindings_configuration.gni

Project Member

Comment 102 by bugdroid1@chromium.org, Jun 6 2018

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

commit bb08bbcfeaa1c75299e6c7b2365b30948251a123
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jun 06 20:09:01 2018

[CrOS Multidevice] Make DeviceSyncClientImpl retry GetLocalMetadata() once devices are synced.

R=khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: I686f20e3933d35d58d94a5d83f89d5e171882b70
Reviewed-on: https://chromium-review.googlesource.com/1089373
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565015}
[modify] https://crrev.com/bb08bbcfeaa1c75299e6c7b2365b30948251a123/chromeos/services/device_sync/public/cpp/device_sync_client_impl.cc
[modify] https://crrev.com/bb08bbcfeaa1c75299e6c7b2365b30948251a123/chromeos/services/device_sync/public/cpp/device_sync_client_impl.h
[modify] https://crrev.com/bb08bbcfeaa1c75299e6c7b2365b30948251a123/chromeos/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc

Project Member

Comment 103 by bugdroid1@chromium.org, Jun 6 2018

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

commit ee61b7eaea0133a4c47a65bd66a263d08ea8df5b
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jun 06 22:14:50 2018

[CrOS Multidevice] Migrate BleScanner and BleAdvertiser to BleServiceDataHelper.

BLE advertisement logic like generating an advertisement and inspecting it
are factored into BleServiceDataHelper, allowing BleScanner and BleAdvertiser
to be agnostic of whether the new DeviceSync Mojo API is being used. This CL
completes Magic Tether's integration with the DeviceSync Mojo API; a user
can enable use of the API by enabling the kMultiDeviceApi flag.

This CL refactors BleAdvertisementGenerator and BackgroundEidGenerator to
accept RemoteDeviceRef lists with BeaconSeeds inside them, instead of
accepting a RemoteBeaconSeedFetcher. This removes the need for RemoteBeaconSeedFetcher;
it will be removed in a subsequent CL.

Bug: 824568, 752273
Change-Id: Ibfc8328ae979e176f438aa53b8258839133068b8
Reviewed-on: https://chromium-review.googlesource.com/1088311
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565057}
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/asynchronous_shutdown_object_container_impl.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_advertiser_impl.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_advertiser_impl.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_advertiser_impl_unittest.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_scanner_impl.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_scanner_impl.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_scanner_impl_unittest.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_service_data_helper_impl.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_service_data_helper_impl.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/components/tether/ble_service_data_helper_impl_unittest.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/services/device_sync/public/cpp/fake_device_sync_client.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/services/secure_channel/fake_ble_service_data_helper.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/chromeos/services/secure_channel/fake_ble_service_data_helper.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/background_eid_generator.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/background_eid_generator.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/background_eid_generator_unittest.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/ble/ble_advertisement_generator.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/ble/ble_advertisement_generator.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/ble/ble_advertisement_generator_unittest.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/ble/fake_ble_advertisement_generator.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/ble/fake_ble_advertisement_generator.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/fake_background_eid_generator.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/fake_background_eid_generator.h
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/remote_device_test_util.cc
[modify] https://crrev.com/ee61b7eaea0133a4c47a65bd66a263d08ea8df5b/components/cryptauth/remote_device_test_util.h

Project Member

Comment 104 by bugdroid1@chromium.org, Jun 6 2018

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

commit fba4e0b6e92bbebd8bdbbcffb3fc12fe5c6c2794
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jun 06 23:04:13 2018

[CrOS Multidevice] Remove RemoteBeaconSeedFetcher.

This class is no longer used and can be deleted. BeaconSeeds are no
longer fetched on demand; they are always present in a RemoteDevice
object.

R=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: I6047f5ed9da2abd01c93e26c752e46e9562ff2a1
Reviewed-on: https://chromium-review.googlesource.com/1087875
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565081}
[modify] https://crrev.com/fba4e0b6e92bbebd8bdbbcffb3fc12fe5c6c2794/chromeos/components/proximity_auth/bluetooth_low_energy_connection_finder.h
[modify] https://crrev.com/fba4e0b6e92bbebd8bdbbcffb3fc12fe5c6c2794/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/fba4e0b6e92bbebd8bdbbcffb3fc12fe5c6c2794/chromeos/components/tether/asynchronous_shutdown_object_container_impl.h
[modify] https://crrev.com/fba4e0b6e92bbebd8bdbbcffb3fc12fe5c6c2794/chromeos/services/secure_channel/ble_service_data_helper.cc
[modify] https://crrev.com/fba4e0b6e92bbebd8bdbbcffb3fc12fe5c6c2794/components/cryptauth/BUILD.gn
[delete] https://crrev.com/2c3eb17e891e8289ec906c5de85d386b531d6989/components/cryptauth/mock_remote_beacon_seed_fetcher.cc
[delete] https://crrev.com/2c3eb17e891e8289ec906c5de85d386b531d6989/components/cryptauth/mock_remote_beacon_seed_fetcher.h
[delete] https://crrev.com/2c3eb17e891e8289ec906c5de85d386b531d6989/components/cryptauth/remote_beacon_seed_fetcher.cc
[delete] https://crrev.com/2c3eb17e891e8289ec906c5de85d386b531d6989/components/cryptauth/remote_beacon_seed_fetcher.h
[delete] https://crrev.com/2c3eb17e891e8289ec906c5de85d386b531d6989/components/cryptauth/remote_beacon_seed_fetcher_unittest.cc

Project Member

Comment 105 by bugdroid1@chromium.org, Jun 6 2018

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

commit 7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jun 06 23:23:25 2018

[CrOS Multidevice] Create SecureChannelClient interface and test double.

SecureChannelClient's full implementation will follow in a subsequent
CL; we are creating the interface and test fake now to unblock other
engineers' work.

Bug: 824568, 752273
Change-Id: Ic7bc054d6a59d1f1b65e7831c4be9c6f77045ad0
Reviewed-on: https://chromium-review.googlesource.com/1083948
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565091}
[modify] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/BUILD.gn
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/connection_attempt.cc
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/connection_attempt.h
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.cc
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/secure_channel_client.h
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl.cc
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl.h
[add] https://crrev.com/7ae2f35b4ce8bd9a6f51bcac443b6301f3fceb68/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl_unittest.cc

Project Member

Comment 106 by bugdroid1@chromium.org, Jun 7 2018

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

commit 9eea3ab07fa5910175696e5d087109e76b6895bc
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 07 21:11:50 2018

[CrOS Multidevice] Make AuthenticatedChannel::GetConnectionMetadata() async.

This change allows clients which need to frequently poll SecureChannel API
for connection metadata updates (e.g., Smart Lock) to do so.

Bug: 824568, 752273
Change-Id: Iad7cd7d9f37e22563ee46fc257b4f146ce260a60
Reviewed-on: https://chromium-review.googlesource.com/1091223
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565409}
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/authenticated_channel_impl.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/authenticated_channel_impl.h
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/authenticated_channel_impl_unittest.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/channel_impl.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/channel_impl.h
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/fake_single_client_message_proxy.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/fake_single_client_message_proxy.h
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/multiplexed_channel_impl.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/multiplexed_channel_impl.h
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/multiplexed_channel_impl_unittest.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/public/cpp/shared/authenticated_channel.h
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/public/cpp/shared/fake_authenticated_channel.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/public/cpp/shared/fake_authenticated_channel.h
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/single_client_message_proxy.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/single_client_message_proxy.h
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/single_client_message_proxy_impl.cc
[modify] https://crrev.com/9eea3ab07fa5910175696e5d087109e76b6895bc/chromeos/services/secure_channel/single_client_message_proxy_impl.h

Project Member

Comment 107 by bugdroid1@chromium.org, Jun 7 2018

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

commit f8c77740dc7889035fda566d03549847046e0bb0
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Jun 07 23:46:00 2018

[CrOS MultiDevice] Add SharedResourceScheduler.

This class is used to prioritize incoming connection requests according
to their priority and time that they were received.

This CL will be used in the upcoming BleAdvertiser class, but it is
named generically so that it can be easily reused for future connection
mediums that require shared resources.

Bug: 824568, 752273
Change-Id: I9a21997f3e03cc439412c3bb8db398a5a448e146
Reviewed-on: https://chromium-review.googlesource.com/1088152
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565468}
[modify] https://crrev.com/f8c77740dc7889035fda566d03549847046e0bb0/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/f8c77740dc7889035fda566d03549847046e0bb0/chromeos/services/secure_channel/shared_resource_scheduler.cc
[add] https://crrev.com/f8c77740dc7889035fda566d03549847046e0bb0/chromeos/services/secure_channel/shared_resource_scheduler.h
[add] https://crrev.com/f8c77740dc7889035fda566d03549847046e0bb0/chromeos/services/secure_channel/shared_resource_scheduler_unittest.cc

Project Member

Comment 108 by bugdroid1@chromium.org, Jun 8 2018

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

commit a7947310247b9f5ae7bccf25c763474ec8a435b3
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 08 00:10:11 2018

[CrOS MultiDevice] Create TimerFactory and associated test doubles.

This is necessary for a follow-up CL which much inject a
FakeTimerFactory.

Bug: 824568, 752273
Change-Id: I3575778517c5768074e970604f95729c1fb761ae
Reviewed-on: https://chromium-review.googlesource.com/1091657
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565474}
[modify] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/fake_one_shot_timer.cc
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/fake_one_shot_timer.h
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/fake_timer_factory.cc
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/fake_timer_factory.h
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/timer_factory.h
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/timer_factory_impl.cc
[add] https://crrev.com/a7947310247b9f5ae7bccf25c763474ec8a435b3/chromeos/services/secure_channel/timer_factory_impl.h

Project Member

Comment 109 by bugdroid1@chromium.org, Jun 8 2018

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

commit 25fb850193fb1d476c8b4b440e678f16f12f9fd7
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 08 01:32:27 2018

[CrOS MultiDevice] Update FakeErrorTolerantBleAdvertisement.

The "destructor_callback" parameter now takes the DeviceIdPair
corresponding to the deleted object.

Bug: 824568, 752273
Change-Id: I57b9b70bd47a736d01f09802d38a1a9aefc7c604
Reviewed-on: https://chromium-review.googlesource.com/1092034
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565502}
[modify] https://crrev.com/25fb850193fb1d476c8b4b440e678f16f12f9fd7/chromeos/components/tether/ble_advertiser_impl_unittest.cc
[modify] https://crrev.com/25fb850193fb1d476c8b4b440e678f16f12f9fd7/chromeos/services/secure_channel/fake_error_tolerant_ble_advertisement.cc
[modify] https://crrev.com/25fb850193fb1d476c8b4b440e678f16f12f9fd7/chromeos/services/secure_channel/fake_error_tolerant_ble_advertisement.h

Project Member

Comment 110 by bugdroid1@chromium.org, Jun 8 2018

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

commit 4bd980e73ecdbb85c61bb2aaee5448df3c8a9879
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 08 02:34:42 2018

[CrOS MultiDevice] Add an ID to FakeErrorTolerantBleAdvertisement.

Bug: 824568, 752273
Change-Id: I7a58651e9a137ae0c35c7a8085d931ad3cf28647
Reviewed-on: https://chromium-review.googlesource.com/1092161
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565517}
[modify] https://crrev.com/4bd980e73ecdbb85c61bb2aaee5448df3c8a9879/chromeos/services/secure_channel/fake_error_tolerant_ble_advertisement.cc
[modify] https://crrev.com/4bd980e73ecdbb85c61bb2aaee5448df3c8a9879/chromeos/services/secure_channel/fake_error_tolerant_ble_advertisement.h

Project Member

Comment 111 by bugdroid1@chromium.org, Jun 8 2018

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

commit d8e41f7aed57009b0a930904d1a07b367646e0d3
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 08 18:49:47 2018

[CrOS MultiDevice] Add FakeTimerFactory::num_instances_created().

Bug: 824568, 752273
Change-Id: I7bafac91260e56b977caf89738931ad752115b73
Reviewed-on: https://chromium-review.googlesource.com/1093383
Reviewed-by: Jeremy Klein <jlklein@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565704}
[modify] https://crrev.com/d8e41f7aed57009b0a930904d1a07b367646e0d3/chromeos/services/secure_channel/fake_timer_factory.cc
[modify] https://crrev.com/d8e41f7aed57009b0a930904d1a07b367646e0d3/chromeos/services/secure_channel/fake_timer_factory.h

Project Member

Comment 112 by bugdroid1@chromium.org, Jun 9 2018

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

commit 43b69d0c59dd541d02b5c834a2c0a9a76d72f982
Author: Kyle Horimoto <khorimoto@google.com>
Date: Sat Jun 09 00:55:34 2018

[CrOS MultiDevice] Adjust BLE failure types.

This CL:
(1) Changes the potential failure reasons in the top-level Mojo API. The
    LOCAL_DEVICE_INVALID_BEACON_SEEDS and
    REMOTE_DEVICE_INVALID_BEACON_SEEDS enum values are removed and
    replaced with a COULD_NOT_GENERATE_ADVERTISEMENT value instead.
(2) Updates the BleInitiatorFailureType and BleListenerFailureType enums
    accordingly.
(3) Updates PendingBleInitiatorConnectionRequest and
    PendingBleListenerConnectionRequest to handle the changed failure
    types.
(4) Adds operator<<() functions for both changed failure types.

Bug: 824568, 752273
Change-Id: I29ebf6ad7f232ef51dc462df968287d2124d86e3
Reviewed-on: https://chromium-review.googlesource.com/1093437
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565800}
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/ble_initiator_failure_type.cc
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/ble_initiator_failure_type.h
[add] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/ble_listener_failure_type.cc
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/ble_listener_failure_type.h
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/pending_ble_initiator_connection_request.cc
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/pending_ble_initiator_connection_request_unittest.cc
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/pending_ble_listener_connection_request.cc
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/pending_ble_listener_connection_request_unittest.cc
[modify] https://crrev.com/43b69d0c59dd541d02b5c834a2c0a9a76d72f982/chromeos/services/secure_channel/public/mojom/secure_channel.mojom

Project Member

Comment 113 by bugdroid1@chromium.org, Jun 11 2018

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

commit ceda663f65353857ae35074d4c7374b6740b2c91
Author: Kyle Horimoto <khorimoto@google.com>
Date: Mon Jun 11 23:05:00 2018

[CrOS MultiDevice] Create BleAdvertiser.

This class queues requests for advertisements to a given remote device.
Each advertisement is given a 10-second timeout before it gives up.
This class uses a SharedResourceScheduler to prioritize requests and
updates priorities when needed if a request is added or its priority is
changed.

Bug: 824568, 752273
Change-Id: I59378f46dbc3ec9036ff5c60442bb494649806ab
Reviewed-on: https://chromium-review.googlesource.com/1092231
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566190}
[modify] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/ble_advertiser.cc
[add] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/ble_advertiser.h
[add] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/ble_advertiser_impl.cc
[add] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/ble_advertiser_impl.h
[modify] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc
[add] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/fake_ble_advertiser.cc
[add] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/fake_ble_advertiser.h
[modify] https://crrev.com/ceda663f65353857ae35074d4c7374b6740b2c91/chromeos/services/secure_channel/shared_resource_scheduler.h

Project Member

Comment 114 by bugdroid1@chromium.org, Jun 12 2018

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

commit a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 12 02:35:26 2018

[CrOS MultiDevice] Update connection attempt code to use DeviceIdPair.

Connections can be described using only "remote device ID" and
"connection medium". However, connection *attempts* must also take into
account the local device ID as well as the connection role. This is due
to the fact that our cryptographic handshake and BeaconSeed-based BLE
scheme use both the remote and local device data to broker connections.

This class creates ConnectionAttemptDetails, which contains these
additional fields and utilizes it, along with DeviceIdPair, throughout
attempt-related code.

Bug: 824568, 752273
Change-Id: Ib3c3597ab6f71ff8f6e020dbe0ccbf6fc1fba3b9
Reviewed-on: https://chromium-review.googlesource.com/1094138
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566284}
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connect_to_device_operation_base.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connect_to_device_operation_factory_base.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connection_attempt.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connection_attempt_base.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connection_attempt_base_unittest.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connection_attempt_delegate.h
[add] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connection_attempt_details.cc
[add] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connection_attempt_details.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/connection_details.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/fake_connection_attempt.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/fake_connection_attempt.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/fake_connection_attempt_delegate.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/fake_connection_attempt_delegate.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/fake_pending_connection_manager.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/fake_pending_connection_manager.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/pending_connection_manager.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/pending_connection_manager_impl.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/pending_connection_manager_impl.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/secure_channel_impl.cc
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/secure_channel_impl.h
[modify] https://crrev.com/a0f44ce4c08c9a13cd28ed8662b65afbef5fa13f/chromeos/services/secure_channel/secure_channel_service_unittest.cc

Project Member

Comment 115 by bugdroid1@chromium.org, Jun 12 2018

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

commit 656771d61ae53daacca8da2c45195415e3e6e3a9
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Jun 12 05:25:23 2018

[CrOS Multidevice] Implement SecureChannelClientImpl.

Bug: 824568, 752273
Change-Id: I0c4e16d2d8dbe9a1a3f9f18ae35f82f1a562d18b
Reviewed-on: https://chromium-review.googlesource.com/1089116
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566326}
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/fake_channel.cc
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/fake_channel.h
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/fake_secure_channel.cc
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/fake_secure_channel.h
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/BUILD.gn
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/client_channel.cc
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/client_channel.h
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/client_channel_impl.cc
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/client_channel_impl.h
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/client_channel_impl_unittest.cc
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/connection_attempt.cc
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/connection_attempt.h
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/connection_attempt_impl.cc
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/connection_attempt_impl.h
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.cc
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/fake_client_channel_observer.cc
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/fake_client_channel_observer.h
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/fake_connection_attempt.cc
[add] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/fake_connection_attempt.h
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl.cc
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl.h
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl_unittest.cc
[modify] https://crrev.com/656771d61ae53daacca8da2c45195415e3e6e3a9/components/cryptauth/remote_device_ref.h

Project Member

Comment 116 by bugdroid1@chromium.org, Jun 12 2018

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

commit 26233a53f713c930dd923d401e6aaadd81adad74
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Tue Jun 12 05:57:37 2018

Revert "[CrOS MultiDevice] Create BleAdvertiser."

This reverts commit ceda663f65353857ae35074d4c7374b6740b2c91.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 566190 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtL2NlZGE2NjNmNjUzNTM4NTdhZTM1MDc0ZDRjNzM3NGI2NzQwYjJjOTEM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/27876

Sample Failed Step: chromeos_unittests

Original change's description:
> [CrOS MultiDevice] Create BleAdvertiser.
> 
> This class queues requests for advertisements to a given remote device.
> Each advertisement is given a 10-second timeout before it gives up.
> This class uses a SharedResourceScheduler to prioritize requests and
> updates priorities when needed if a request is added or its priority is
> changed.
> 
> Bug: 824568, 752273
> Change-Id: I59378f46dbc3ec9036ff5c60442bb494649806ab
> Reviewed-on: https://chromium-review.googlesource.com/1092231
> Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#566190}

Change-Id: If2b446dd82661c90cb9f8cabf9bcdf16804844f7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 824568, 752273
Reviewed-on: https://chromium-review.googlesource.com/1096774
Cr-Commit-Position: refs/heads/master@{#566334}
[modify] https://crrev.com/26233a53f713c930dd923d401e6aaadd81adad74/chromeos/services/secure_channel/BUILD.gn
[delete] https://crrev.com/ac0ccdc1a7be0e8e96fc383e187325315d825042/chromeos/services/secure_channel/ble_advertiser.cc
[delete] https://crrev.com/ac0ccdc1a7be0e8e96fc383e187325315d825042/chromeos/services/secure_channel/ble_advertiser.h
[delete] https://crrev.com/ac0ccdc1a7be0e8e96fc383e187325315d825042/chromeos/services/secure_channel/ble_advertiser_impl.cc
[delete] https://crrev.com/ac0ccdc1a7be0e8e96fc383e187325315d825042/chromeos/services/secure_channel/ble_advertiser_impl.h
[modify] https://crrev.com/26233a53f713c930dd923d401e6aaadd81adad74/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc
[delete] https://crrev.com/ac0ccdc1a7be0e8e96fc383e187325315d825042/chromeos/services/secure_channel/fake_ble_advertiser.cc
[delete] https://crrev.com/ac0ccdc1a7be0e8e96fc383e187325315d825042/chromeos/services/secure_channel/fake_ble_advertiser.h
[modify] https://crrev.com/26233a53f713c930dd923d401e6aaadd81adad74/chromeos/services/secure_channel/shared_resource_scheduler.h

Project Member

Comment 117 by bugdroid1@chromium.org, Jun 12 2018

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

commit ea5218fa23168e393dd88c387f18755bb867aee7
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 12 16:37:29 2018

[CrOS MultiDevice] Transform various fakes to be templatized.

Previously, test doubles for the following classes were templatized by
the std::string type for testing:
  * PendingConnectionRequest
  * ConnectToDeviceOperation
  * ConnectToDeviceOperationFactory
  * ConnectionAttempt

However, this needs to be changed for the upcoming implementation of
real ConnectToDeviceOperations, which must be specific to actual failure
types which occur in real code.

Bug: 824568, 752273
Change-Id: Id0c8a21dfe348db19b6684deed100d0ccf428f12
Reviewed-on: https://chromium-review.googlesource.com/1096674
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566456}
[modify] https://crrev.com/ea5218fa23168e393dd88c387f18755bb867aee7/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/ea5218fa23168e393dd88c387f18755bb867aee7/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc
[modify] https://crrev.com/ea5218fa23168e393dd88c387f18755bb867aee7/chromeos/services/secure_channel/connection_attempt_base_unittest.cc
[delete] https://crrev.com/1e530e24ab5330683eff7315a55afed65ca7c851/chromeos/services/secure_channel/fake_connect_to_device_operation.cc
[modify] https://crrev.com/ea5218fa23168e393dd88c387f18755bb867aee7/chromeos/services/secure_channel/fake_connect_to_device_operation.h
[delete] https://crrev.com/1e530e24ab5330683eff7315a55afed65ca7c851/chromeos/services/secure_channel/fake_connect_to_device_operation_factory.cc
[modify] https://crrev.com/ea5218fa23168e393dd88c387f18755bb867aee7/chromeos/services/secure_channel/fake_connect_to_device_operation_factory.h
[delete] https://crrev.com/1e530e24ab5330683eff7315a55afed65ca7c851/chromeos/services/secure_channel/fake_connection_attempt.cc
[modify] https://crrev.com/ea5218fa23168e393dd88c387f18755bb867aee7/chromeos/services/secure_channel/fake_connection_attempt.h
[delete] https://crrev.com/1e530e24ab5330683eff7315a55afed65ca7c851/chromeos/services/secure_channel/fake_pending_connection_request.cc
[modify] https://crrev.com/ea5218fa23168e393dd88c387f18755bb867aee7/chromeos/services/secure_channel/fake_pending_connection_request.h

Project Member

Comment 118 by bugdroid1@chromium.org, Jun 12 2018

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

commit c9faa7d8b4fb899ed17a186a06d3500adf653f16
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 12 17:51:41 2018

[CrOS MultiDevice] Create BleAdvertiser.

This CL re-lands a reverted CL:
Original - https://chromium-review.googlesource.com/c/chromium/src/+/1092231
Revert - https://chromium-review.googlesource.com/c/chromium/src/+/1096774

The original CL is uploaded as patchset 1. The issue in the original CL
was that memory was used after it was deleted, and the fix is part of
patchset 2.

Original CL description:
This class queues requests for advertisements to a given remote device.
Each advertisement is given a 10-second timeout before it gives up.
This class uses a SharedResourceScheduler to prioritize requests and
updates priorities when needed if a request is added or its priority is
changed.

Bug: 824568, 752273
Change-Id: I918a752e3dd896ea7e140ba6323f761012997fd7
Reviewed-on: https://chromium-review.googlesource.com/1097462
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566495}
[modify] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/ble_advertiser.cc
[add] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/ble_advertiser.h
[add] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/ble_advertiser_impl.cc
[add] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/ble_advertiser_impl.h
[modify] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/ble_advertiser_impl_unittest.cc
[add] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/fake_ble_advertiser.cc
[add] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/fake_ble_advertiser.h
[modify] https://crrev.com/c9faa7d8b4fb899ed17a186a06d3500adf653f16/chromeos/services/secure_channel/shared_resource_scheduler.h

Project Member

Comment 119 by bugdroid1@chromium.org, Jun 12 2018

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

commit f57f72d161d89dfa06e0010154e320732de74554
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 12 19:50:21 2018

[CrOS MultiDevice] Add BleInitiatorOperation and BleListenerOperation.

These files are currently still stubs, but they are needed for a
follow-up CL. Implementation will come once the other CLs are finished.

Bug: 824568, 752273
Change-Id: I7456f713471f1608d99ba250bd3e001114c66c79
Reviewed-on: https://chromium-review.googlesource.com/1097586
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566535}
[modify] https://crrev.com/f57f72d161d89dfa06e0010154e320732de74554/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/f57f72d161d89dfa06e0010154e320732de74554/chromeos/services/secure_channel/ble_initiator_operation.cc
[add] https://crrev.com/f57f72d161d89dfa06e0010154e320732de74554/chromeos/services/secure_channel/ble_initiator_operation.h
[add] https://crrev.com/f57f72d161d89dfa06e0010154e320732de74554/chromeos/services/secure_channel/ble_initiator_operation_unittest.cc
[add] https://crrev.com/f57f72d161d89dfa06e0010154e320732de74554/chromeos/services/secure_channel/ble_listener_operation.cc
[add] https://crrev.com/f57f72d161d89dfa06e0010154e320732de74554/chromeos/services/secure_channel/ble_listener_operation.h
[add] https://crrev.com/f57f72d161d89dfa06e0010154e320732de74554/chromeos/services/secure_channel/ble_listener_operation_unittest.cc

Project Member

Comment 120 by bugdroid1@chromium.org, Jun 13 2018

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

commit 5fd812dd25b7fb88752d6a6c22611bd85e66c9fc
Author: Kyle Horimoto <khorimoto@google.com>
Date: Wed Jun 13 17:07:57 2018

[CrOS MultiDevice] Update ConnectToDeviceOperation priority.

This CL pipes ConnectionPriority through PendingConnectionRequest,
ConnectionAttempt, and ConnectToDeviceOperation. This provides a way
for the service to set and update the priority of pending connection
attempts.

Bug: 824568, 752273
Change-Id: I3641980dadfc9f100e3769c84191e325241fc2bd
Reviewed-on: https://chromium-review.googlesource.com/1097979
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566883}
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/ble_initiator_operation.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/ble_initiator_operation.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/ble_listener_operation.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/ble_listener_operation.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connect_to_device_operation.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connect_to_device_operation_base.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connect_to_device_operation_factory.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connect_to_device_operation_factory_base.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connection_attempt_base.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/connection_attempt_base_unittest.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/fake_connect_to_device_operation.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/fake_connect_to_device_operation_factory.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/fake_pending_connection_request.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_ble_initiator_connection_request.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_ble_initiator_connection_request.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_ble_initiator_connection_request_unittest.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_ble_listener_connection_request.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_ble_listener_connection_request.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_ble_listener_connection_request_unittest.cc
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_connection_request.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_connection_request_base.h
[modify] https://crrev.com/5fd812dd25b7fb88752d6a6c22611bd85e66c9fc/chromeos/services/secure_channel/pending_connection_request_base_unittest.cc

Project Member

Comment 121 by bugdroid1@chromium.org, Jun 13 2018

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

commit 9e80ef7fb3bb90321d1b83e55e50a8d7395e15ec
Author: Kyle Horimoto <khorimoto@google.com>
Date: Wed Jun 13 20:45:46 2018

[CrOS MultiDevice] Update cryptauth::SecureChannel::Observer.

This CL adds an empty body for all three observer functions. Upcoming
CLs only need to make use of some of the functions, so requiring that
observers implement all three functions is cumbersome.

Bug: 824568, 752273
Change-Id: I0e9d363afce71aa847ea8619a5e40b18f4a293b6
Reviewed-on: https://chromium-review.googlesource.com/1099678
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566975}
[modify] https://crrev.com/9e80ef7fb3bb90321d1b83e55e50a8d7395e15ec/components/cryptauth/secure_channel.h

Project Member

Comment 122 by bugdroid1@chromium.org, Jun 14 2018

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

commit 67bbae82be0a8bfbe080dd61d33692c5369db844
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 14 03:39:56 2018

Implement secure_channel::BleServiceDataHelperImpl.

This implementation is a port of tether::BleServiceDataHelperImpl, but
correctly uses its provided DevicePair arguments, and uses a
RemoteDeviceCache for device storage.

This CL also fixes a small bug in tether::BleServiceDataHelperImpl that
caused it to attempt to identify *all* known Tether hosts, instead of the
requested hosts.

Bug: 824568, 752273
Change-Id: Ib8ab47dfcb2889392b6ec5f519aed706ffc513d9
Reviewed-on: https://chromium-review.googlesource.com/1098146
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567121}
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/chromeos/components/tether/ble_service_data_helper_impl.cc
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/chromeos/components/tether/ble_service_data_helper_impl.h
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/chromeos/components/tether/ble_service_data_helper_impl_unittest.cc
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/chromeos/services/secure_channel/ble_service_data_helper_impl.cc
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/chromeos/services/secure_channel/ble_service_data_helper_impl.h
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/chromeos/services/secure_channel/ble_service_data_helper_impl_unittest.cc
[modify] https://crrev.com/67bbae82be0a8bfbe080dd61d33692c5369db844/components/cryptauth/ble/ble_advertisement_generator.h

Project Member

Comment 123 by bugdroid1@chromium.org, Jun 14 2018

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

commit 4eab3f7529bf5fea75a308777a638e00cd9ddff0
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Jun 14 17:39:43 2018

[CrOS MultiDevice] Add BleScanner::HasScanFilter().

Additionally, this CL adds new functionality to FakeBleScanner
and FakeBleAdvertiser for providing access to their stored
scan/advertisement requests.

Bug: 824568, 752273
Change-Id: I0407021b62605e6feea745ce51ed4136013bce6d
Reviewed-on: https://chromium-review.googlesource.com/1100479
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567333}
[modify] https://crrev.com/4eab3f7529bf5fea75a308777a638e00cd9ddff0/chromeos/services/secure_channel/ble_scanner.cc
[modify] https://crrev.com/4eab3f7529bf5fea75a308777a638e00cd9ddff0/chromeos/services/secure_channel/ble_scanner.h
[modify] https://crrev.com/4eab3f7529bf5fea75a308777a638e00cd9ddff0/chromeos/services/secure_channel/ble_scanner_impl_unittest.cc
[modify] https://crrev.com/4eab3f7529bf5fea75a308777a638e00cd9ddff0/chromeos/services/secure_channel/fake_ble_advertiser.cc
[modify] https://crrev.com/4eab3f7529bf5fea75a308777a638e00cd9ddff0/chromeos/services/secure_channel/fake_ble_advertiser.h
[modify] https://crrev.com/4eab3f7529bf5fea75a308777a638e00cd9ddff0/chromeos/services/secure_channel/fake_ble_scanner.cc
[modify] https://crrev.com/4eab3f7529bf5fea75a308777a638e00cd9ddff0/chromeos/services/secure_channel/fake_ble_scanner.h

Project Member

Comment 124 by bugdroid1@chromium.org, Jun 14 2018

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

commit e30241b2090ac9d36fadf0c31ce53eede27e4303
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 14 18:29:57 2018

[CrOS Multidevice] Migrate ProximityAuthWebUIHandler to conditionally use DeviceSyncClient.

ProximityAuthWebUiHandler now uses either ProximityAuthClient or DeviceSyncClient
to get remote device info or perform Cryptauth calls, depending on whether the
chromeos::features::kMultiDeviceApi is enabled. Once the migration to DeviceSyncClient
has been completed across all of Smart Lock, code that references ProximityAuthClient will
be removed.

This is one of many future CLs which are migrating Smart Lock to use
DeviceSync Mojo API instead of directly using the CryptAuth API.

I have manually verified the correctness of this change by verifying the
output on chrome://proximity-auth.

Bug: 824568, 752273, 848956
Change-Id: Ia6bf1666f631a79c2873df3745232b8a8152bc8e
Reviewed-on: https://chromium-review.googlesource.com/1099050
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Tommy Li <tommycli@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567354}
[modify] https://crrev.com/e30241b2090ac9d36fadf0c31ce53eede27e4303/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
[modify] https://crrev.com/e30241b2090ac9d36fadf0c31ce53eede27e4303/chromeos/components/proximity_auth/webui/BUILD.gn
[modify] https://crrev.com/e30241b2090ac9d36fadf0c31ce53eede27e4303/chromeos/components/proximity_auth/webui/proximity_auth_ui.cc
[modify] https://crrev.com/e30241b2090ac9d36fadf0c31ce53eede27e4303/chromeos/components/proximity_auth/webui/proximity_auth_ui.h
[modify] https://crrev.com/e30241b2090ac9d36fadf0c31ce53eede27e4303/chromeos/components/proximity_auth/webui/proximity_auth_webui_handler.cc
[modify] https://crrev.com/e30241b2090ac9d36fadf0c31ce53eede27e4303/chromeos/components/proximity_auth/webui/proximity_auth_webui_handler.h

Project Member

Comment 125 by bugdroid1@chromium.org, Jun 14 2018

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

commit 9a08623c2697d84a008e1bd4f9af324f0516bd14
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 14 21:28:05 2018

[CrOS Multidevice] Register SecureChannelService.

SecureChannelService is created in ChromeContentBrowserClient, instead of
ProfileImpl, because it is intended to be global, i.e. not profile-specific.

Also note that the Connector object provided to SecureChannelClient is tied
to the browser process, not the active Profile.

Bug: 824568, 752273
Change-Id: Ic99e22cc320b4e92e11bf48acd0592d7c1ef0eac
Reviewed-on: https://chromium-review.googlesource.com/1097513
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567427}
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/app/BUILD.gn
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/BUILD.gn
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/chromeos/BUILD.gn
[add] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/chromeos/secure_channel/BUILD.gn
[add] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/chromeos/secure_channel/OWNERS
[add] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/chromeos/secure_channel/secure_channel_client_provider.cc
[add] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chrome/browser/chromeos/secure_channel/secure_channel_client_provider.h
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chromeos/services/secure_channel/manifest.json
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chromeos/services/secure_channel/secure_channel_service.cc
[modify] https://crrev.com/9a08623c2697d84a008e1bd4f9af324f0516bd14/chromeos/services/secure_channel/secure_channel_service.h

Project Member

Comment 126 by bugdroid1@chromium.org, Jun 14 2018

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

commit a0b864d80a9e5ccc90ce37f0d16a04eb89204a71
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 14 22:50:10 2018

[CrOS Multidevice] Create a dependency from TetherService to SecureChannelClient.

Inject SecureChannelClient into TetherService, but not TetherComponent yet.
Injection into TetherComponent and subsequent SecureChannelClient usage will come
in subsequent CLs.

This change has allowed me to manually verify that SecureChannelService is correctly
registered at the login screen.

This CL features a small change to FakeSecureChannelClient needed to fix a build
error -- somehow it slipped by before.

Bug: 824568, 752273
Change-Id: I9ba2c35f2ed05ebc3c92b1817e54e8161512f6a8
Reviewed-on: https://chromium-review.googlesource.com/1100481
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567454}
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chrome/browser/chromeos/tether/fake_tether_service.cc
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chrome/browser/chromeos/tether/fake_tether_service.h
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chrome/browser/chromeos/tether/tether_service.cc
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chrome/browser/chromeos/tether/tether_service.h
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chrome/browser/chromeos/tether/tether_service_factory.cc
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.cc
[modify] https://crrev.com/a0b864d80a9e5ccc90ce37f0d16a04eb89204a71/chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h

Project Member

Comment 127 by bugdroid1@chromium.org, Jun 14 2018

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

commit dee1264c5d40fd5b0c2a928a3fcbc0c5281943ba
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 14 23:03:18 2018

Remove unhelpful debug log in Smart Lock setup.

This log is not informative, and spams hundreds of lines in the logs.

TBR=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: I7dbce85d6b0bd7f9a4389466dad79af5299085e5
Reviewed-on: https://chromium-review.googlesource.com/1101932
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567461}
[modify] https://crrev.com/dee1264c5d40fd5b0c2a928a3fcbc0c5281943ba/chromeos/components/proximity_auth/bluetooth_low_energy_setup_connection_finder.cc

Project Member

Comment 128 by bugdroid1@chromium.org, Jun 14 2018

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

commit 855f8451c5cecb4f742412edd41355eb6197fac8
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Jun 14 23:26:23 2018

[CrOS MultiDevice] Create SecureChannelDisconnector.

This class disconnects cryptauth::SecureChannel objects, which have an
asynchronous disconnection flow. It is an error to delete
cryptauth::SecureChannel objects before they are fully disconnected, as
this can cause the underlying connection to remain open.

Bug: 824568, 752273
Change-Id: I42ebf3814f27f9f45c6d90173cb3cb8513bc800b
Reviewed-on: https://chromium-review.googlesource.com/1101515
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567474}
[modify] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/chromeos/services/secure_channel/fake_secure_channel_disconnector.cc
[add] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/chromeos/services/secure_channel/fake_secure_channel_disconnector.h
[add] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/chromeos/services/secure_channel/secure_channel_disconnector.h
[add] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/chromeos/services/secure_channel/secure_channel_disconnector_impl.cc
[add] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/chromeos/services/secure_channel/secure_channel_disconnector_impl.h
[add] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/chromeos/services/secure_channel/secure_channel_disconnector_impl_unittest.cc
[modify] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/components/cryptauth/fake_secure_channel.cc
[modify] https://crrev.com/855f8451c5cecb4f742412edd41355eb6197fac8/components/cryptauth/fake_secure_channel.h

Project Member

Comment 129 by bugdroid1@chromium.org, Jun 14 2018

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

commit 4b0817a4c093cf2680f5da3137dc89492b85fd58
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Jun 14 23:45:32 2018

[CrOS MultiDevice] Add missing BleListenerFailureType::operator<<().

This function was already implemented in the .cc file, but it was not
declared in the .h file.

Bug: 824568, 752273
Change-Id: I5b8471bf5bd7bff54384696b38b10bb5523c82cf
Reviewed-on: https://chromium-review.googlesource.com/1101823
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567481}
[modify] https://crrev.com/4b0817a4c093cf2680f5da3137dc89492b85fd58/chromeos/services/secure_channel/ble_listener_failure_type.h

Project Member

Comment 130 by bugdroid1@chromium.org, Jun 14 2018

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

commit ba648e2faae88187e900574cd94f2142bd9e7c14
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 14 23:45:36 2018

[CrOS Multidevice] Remove Smart Lock's PromotionManager.

PromotionManager is no longer used, and there are no future plans to
use it. This CL also removes the flag that controlled the feature,
and its associated metadata.

R=khorimoto@chromium.org

TBR=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: I6ac7cfe8391ce050b1d1f9217ffc6ec95160746d
Reviewed-on: https://chromium-review.googlesource.com/1101703
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567482}
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/browser/about_flags.cc
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.h
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_unittest_chromeos.cc
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/browser/flag_descriptions.cc
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/browser/flag_descriptions.h
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/common/chrome_features.cc
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chrome/common/chrome_features.h
[modify] https://crrev.com/ba648e2faae88187e900574cd94f2142bd9e7c14/chromeos/components/proximity_auth/BUILD.gn
[delete] https://crrev.com/4b0817a4c093cf2680f5da3137dc89492b85fd58/chromeos/components/proximity_auth/promotion_manager.cc
[delete] https://crrev.com/4b0817a4c093cf2680f5da3137dc89492b85fd58/chromeos/components/proximity_auth/promotion_manager.h
[delete] https://crrev.com/4b0817a4c093cf2680f5da3137dc89492b85fd58/chromeos/components/proximity_auth/promotion_manager_unittests.cc

Project Member

Comment 131 by bugdroid1@chromium.org, Jun 15 2018

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

commit 53083dbde6bbf0116e534e86a60616040bb32262
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 15 02:59:26 2018

[CrOS Multidevice] SoftwareFeatureManager: fix incorrect special-case ToggleEasyUnlockRequest.

The special-case request to disable Smart Lock for all devices
requires, on the server-side, that the public key not be set at all.
Failing to do so results in an errback from the server.

Bug: 824568, 752273
Change-Id: I867d4a897b39b3927170488900a23b2d6450d467
Reviewed-on: https://chromium-review.googlesource.com/1102106
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567527}
[modify] https://crrev.com/53083dbde6bbf0116e534e86a60616040bb32262/chromeos/services/device_sync/public/cpp/device_sync_client.h
[modify] https://crrev.com/53083dbde6bbf0116e534e86a60616040bb32262/components/cryptauth/software_feature_manager.h
[modify] https://crrev.com/53083dbde6bbf0116e534e86a60616040bb32262/components/cryptauth/software_feature_manager_impl.cc
[modify] https://crrev.com/53083dbde6bbf0116e534e86a60616040bb32262/components/cryptauth/software_feature_manager_impl_unittest.cc

Project Member

Comment 132 by bugdroid1@chromium.org, Jun 15 2018

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

commit d687ea9e30cde1863a51645a974841010a95c9a1
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 15 04:29:17 2018

[CrOS Multidevice] ChromeProximityAuthClient: conditionally use DeviceSyncClient.

ChromeProximityAuthClient now uses either CryptAuthService or DeviceSyncClient
to get remote device info or perform Cryptauth calls, depending on whether the
chromeos::features::kMultiDeviceApi is enabled. Once the migration to DeviceSyncClient
has been completed across all of Smart Lock, code that references CryptAuthService will
be removed.

This is one of many future CLs which are migrating Smart Lock to use
DeviceSync Mojo API instead of directly using the CryptAuth API.

TBR=jhawkins@chromium.org

Bug: 824568, 752273, 848956
Change-Id: If78959aa2a0ef6dc9433bca29649ab2d837114a1
Reviewed-on: https://chromium-review.googlesource.com/1102161
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567546}
[modify] https://crrev.com/d687ea9e30cde1863a51645a974841010a95c9a1/chrome/browser/chromeos/login/easy_unlock/chrome_proximity_auth_client.cc
[modify] https://crrev.com/d687ea9e30cde1863a51645a974841010a95c9a1/chrome/browser/chromeos/login/easy_unlock/chrome_proximity_auth_client.h

Project Member

Comment 133 by bugdroid1@chromium.org, Jun 15 2018

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

commit cc7cca8030d508b3096a5a8180f2170f84256d8a
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 15 16:58:52 2018

[CrOS MultiDevice] Update BleScanner.

This CL adds ConnectionRole as part of the scan filter passed to
BleScanner; then, when a scan result is returned, the delegate callback
is only invoked if a scan filter with the correct role is present. This
is necessary because BleConnectionManager should not attempt to handle
scan results for the incorrect role.

This CL also tweaks the Delegate's callback function to return a
ConnectionRole instead of a "is background" bool.

Bug: 824568, 752273
Change-Id: I6467312bfbe2057b046cbc606a55d30e90e48303
Reviewed-on: https://chromium-review.googlesource.com/1102124
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567695}
[modify] https://crrev.com/cc7cca8030d508b3096a5a8180f2170f84256d8a/chromeos/services/secure_channel/ble_scanner.cc
[modify] https://crrev.com/cc7cca8030d508b3096a5a8180f2170f84256d8a/chromeos/services/secure_channel/ble_scanner.h
[modify] https://crrev.com/cc7cca8030d508b3096a5a8180f2170f84256d8a/chromeos/services/secure_channel/ble_scanner_impl.cc
[modify] https://crrev.com/cc7cca8030d508b3096a5a8180f2170f84256d8a/chromeos/services/secure_channel/ble_scanner_impl.h
[modify] https://crrev.com/cc7cca8030d508b3096a5a8180f2170f84256d8a/chromeos/services/secure_channel/ble_scanner_impl_unittest.cc
[modify] https://crrev.com/cc7cca8030d508b3096a5a8180f2170f84256d8a/chromeos/services/secure_channel/fake_ble_scanner.cc
[modify] https://crrev.com/cc7cca8030d508b3096a5a8180f2170f84256d8a/chromeos/services/secure_channel/fake_ble_scanner.h

Project Member

Comment 134 by bugdroid1@chromium.org, Jun 15 2018

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

commit f63de2078965607a421e8fe384b6c0f5abf91f2a
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 15 19:11:12 2018

[CrOS Multidevice] DeviceSync mojo interface: Add documentation for special case arguments.

Bug: 824568, 752273
Change-Id: I0a8480674fae8e5f11426110606ce59ebbcafdec
Reviewed-on: https://chromium-review.googlesource.com/1102159
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567756}
[modify] https://crrev.com/f63de2078965607a421e8fe384b6c0f5abf91f2a/chromeos/services/device_sync/public/mojom/device_sync.mojom

Project Member

Comment 135 by bugdroid1@chromium.org, Jun 15 2018

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

commit 256fbf85047c58767640b6477d8ec826fb2d5ae1
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 15 19:48:14 2018

[CrOS Multidevice] Make EasyUnlockServiceRegular conditionally use DeviceSyncClient.

EasyUnlockServiceRegular now uses either CryptAuthService or DeviceSyncClient
to get remote device info or perform Cryptauth calls, depending on whether the
chromeos::features::kMultiDeviceApi is enabled. Once the migration to DeviceSyncClient
has been completed across all of Smart Lock, code that references CryptAuthService will
be removed.

This is the last of other similar CLs which are migrating Smart Lock to use
DeviceSync Mojo API instead of directly using the CryptAuth API.

This CL also injects DeviceSyncClient into EasyUnlockServiceRegular, making Smart Lock
rely entirely on DeviceSyncClient if chromeos::features::kMultiDeviceApi is enabled.
I have manually verified that it works correctly by testing the following:

1. Setting up Smart Lock.
2. Using Smart Lock in the regular lock-screen manner.
3. Using Smart Lock in the login-screen manner.
4. Ensuring that notifications display at the correct time.
5. Turning off Smart Lock.
6. Ensuring that permits are correctly saved to prefs (the new model can't
   use the old way of grabbing the user's AccountId).

TBR=jhawkins@chromium.org

Bug: 824568, 752273, 848956
Change-Id: I3acc6dec46ff1ddc2875fbfe97261bb195a9494b
Reviewed-on: https://chromium-review.googlesource.com/1102164
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567769}
[modify] https://crrev.com/256fbf85047c58767640b6477d8ec826fb2d5ae1/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api_unittest.cc
[modify] https://crrev.com/256fbf85047c58767640b6477d8ec826fb2d5ae1/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.cc
[modify] https://crrev.com/256fbf85047c58767640b6477d8ec826fb2d5ae1/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/256fbf85047c58767640b6477d8ec826fb2d5ae1/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.h
[modify] https://crrev.com/256fbf85047c58767640b6477d8ec826fb2d5ae1/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_unittest_chromeos.cc

Project Member

Comment 136 by bugdroid1@chromium.org, Jun 15 2018

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

commit 1582e3987c3bf4df82a7680709cb663092519228
Author: Kyle Horimoto <khorimoto@google.com>
Date: Fri Jun 15 21:21:51 2018

[CrOS MultiDevice] Add BleConnectionManager.

Creates connections to remote devices over Bluetooth, using either the
listener role (BLE scans only) or the initiator role (a combination of BLE
advertising and scanning).

When a connection is attempted, it remains active until either an
AuthenticatedChannel is returned successfully or until the request is
explicitly removed via one of the Cancel*() functions.

Bug: 824568, 752273
Change-Id: Icda1cde32e3d4455742c1570df15b82979cd0ace
Reviewed-on: https://chromium-review.googlesource.com/1100133
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567796}
[modify] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/ble_connection_manager.cc
[add] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/ble_connection_manager.h
[add] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/ble_connection_manager_impl.cc
[add] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/ble_connection_manager_impl.h
[add] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc
[add] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/fake_ble_connection_manager.cc
[add] https://crrev.com/1582e3987c3bf4df82a7680709cb663092519228/chromeos/services/secure_channel/fake_ble_connection_manager.h

Project Member

Comment 137 by bugdroid1@chromium.org, Jun 18 2018

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

commit df6364f85935219e829cb94df310d399b067b945
Author: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Date: Mon Jun 18 06:08:34 2018

Revert "[CrOS MultiDevice] Add BleConnectionManager."

This reverts commit 1582e3987c3bf4df82a7680709cb663092519228.

Reason for revert: Broke chromeos_unittests

https://findit-for-me.appspot.com/waterfall/failure?redirect=1&url=https://ci.chromium.org/buildbot/chromium.memory/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/27937

https://ci.chromium.org/buildbot/chromium.memory/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/27937

Original change's description:
> [CrOS MultiDevice] Add BleConnectionManager.
> 
> Creates connections to remote devices over Bluetooth, using either the
> listener role (BLE scans only) or the initiator role (a combination of BLE
> advertising and scanning).
> 
> When a connection is attempted, it remains active until either an
> AuthenticatedChannel is returned successfully or until the request is
> explicitly removed via one of the Cancel*() functions.
> 
> Bug: 824568, 752273
> Change-Id: Icda1cde32e3d4455742c1570df15b82979cd0ace
> Reviewed-on: https://chromium-review.googlesource.com/1100133
> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
> Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#567796}

TBR=khorimoto@chromium.org,hansberry@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 824568, 752273
Change-Id: Ie665ff0cc4390132955e4599eb3dab7caedd8746
Reviewed-on: https://chromium-review.googlesource.com/1103917
Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567936}
[modify] https://crrev.com/df6364f85935219e829cb94df310d399b067b945/chromeos/services/secure_channel/BUILD.gn
[delete] https://crrev.com/47a732b081e2ee058b57be3726a46931b507fae1/chromeos/services/secure_channel/ble_connection_manager.cc
[delete] https://crrev.com/47a732b081e2ee058b57be3726a46931b507fae1/chromeos/services/secure_channel/ble_connection_manager.h
[delete] https://crrev.com/47a732b081e2ee058b57be3726a46931b507fae1/chromeos/services/secure_channel/ble_connection_manager_impl.cc
[delete] https://crrev.com/47a732b081e2ee058b57be3726a46931b507fae1/chromeos/services/secure_channel/ble_connection_manager_impl.h
[delete] https://crrev.com/47a732b081e2ee058b57be3726a46931b507fae1/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc
[delete] https://crrev.com/47a732b081e2ee058b57be3726a46931b507fae1/chromeos/services/secure_channel/fake_ble_connection_manager.cc
[delete] https://crrev.com/47a732b081e2ee058b57be3726a46931b507fae1/chromeos/services/secure_channel/fake_ble_connection_manager.h

Project Member

Comment 138 by bugdroid1@chromium.org, Jun 18 2018

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

commit 6341cf7e37bdcacb610aeeb32048befa6bc8a6fd
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Mon Jun 18 20:27:25 2018

[CrOS Multidevice] Inject SecureChannelClient into Tether.

This change only plumbs SecureChannelClient into the necessary locations in Tether;
it does not actually use it. A subsequent CL will utilize SecureChannelClient, instead
of BleConnectionManager, inside MessageTransferOperation.

Bug: 824568, 752273
Change-Id: I85adef9c17caf63ce9bea34621fb7a1c4666a3d9
Reviewed-on: https://chromium-review.googlesource.com/1104952
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568139}
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chrome/browser/chromeos/tether/tether_service.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chrome/browser/chromeos/tether/tether_service_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/BUILD.gn
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/asynchronous_shutdown_object_container_impl.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/asynchronous_shutdown_object_container_impl_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/connect_tethering_operation.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/connect_tethering_operation.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/connect_tethering_operation_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/disconnect_tethering_operation.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/disconnect_tethering_operation.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/disconnect_tethering_request_sender_impl.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/disconnect_tethering_request_sender_impl.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/disconnect_tethering_request_sender_impl_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/host_scanner_impl.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/host_scanner_impl.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/host_scanner_impl_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/host_scanner_operation.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/host_scanner_operation.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/host_scanner_operation_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/keep_alive_operation.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/keep_alive_operation.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/keep_alive_operation_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/keep_alive_scheduler.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/keep_alive_scheduler.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/keep_alive_scheduler_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/message_transfer_operation.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/message_transfer_operation.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/synchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/synchronous_shutdown_object_container_impl.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/tether_component_impl.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/tether_component_impl.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/tether_component_impl_unittest.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/tether_connector_impl.cc
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/tether_connector_impl.h
[modify] https://crrev.com/6341cf7e37bdcacb610aeeb32048befa6bc8a6fd/chromeos/components/tether/tether_connector_impl_unittest.cc

Project Member

Comment 139 by bugdroid1@chromium.org, Jun 18 2018

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

commit eabf9006e64b92f4944c61b011211af3a156e805
Author: Kyle Horimoto <khorimoto@google.com>
Date: Mon Jun 18 20:57:22 2018

[CrOS MultiDevice] Re-land BleConnectionManager.

BleConnectionManager originally landed in:
https://chromium-review.googlesource.com/c/chromium/src/+/1100133

It was reverted by:
https://chromium-review.googlesource.com/c/chromium/src/+/1103917

The CL was reverted due to failures in the ASAN build.

This CL uploads the original CL as patchset 1 and fixes the failing ASAN
tests in the following patchset.

Original CL description below:

> Creates connections to remote devices over Bluetooth, using either the
> listener role (BLE scans only) or the initiator role (a combination of BLE
> advertising and scanning).
>
> When a connection is attempted, it remains active until either an
> AuthenticatedChannel is returned successfully or until the request is
> explicitly removed via one of the Cancel*() functions.

Bug: 824568, 752273
Change-Id: I45322a246d56b9b33142c010ad2755c7872574d1
Reviewed-on: https://chromium-review.googlesource.com/1104792
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568156}
[modify] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/ble_connection_manager.cc
[add] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/ble_connection_manager.h
[add] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/ble_connection_manager_impl.cc
[add] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/ble_connection_manager_impl.h
[add] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc
[add] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/fake_ble_connection_manager.cc
[add] https://crrev.com/eabf9006e64b92f4944c61b011211af3a156e805/chromeos/services/secure_channel/fake_ble_connection_manager.h

Project Member

Comment 140 by bugdroid1@chromium.org, Jun 18 2018

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

commit 5fed877b175489a0b7202acc76a2c261ef2e71b8
Author: Kyle Horimoto <khorimoto@google.com>
Date: Mon Jun 18 21:55:11 2018

[CrOS MultiDevice] Update ConnectionAttempt.

Now, ConnectionAttempt uses a single ConnectToDeviceOperation throughout
its lifetime, which drastically cleans up the code and removes the
ConnectToDeviceOperationFactory, which is not really needed.

This CL removes ConnectToDeviceOperationFactory entirely.

Bug: 824568, 752273
Change-Id: Iaf8182da258e864b1377aa94cefa1ed9440e8bd1
Reviewed-on: https://chromium-review.googlesource.com/1103337
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568181}
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/ble_initiator_operation.cc
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/ble_initiator_operation.h
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/ble_listener_operation.cc
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/ble_listener_operation.h
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/connect_to_device_operation.h
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/connect_to_device_operation_base.h
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/connect_to_device_operation_base_unittest.cc
[delete] https://crrev.com/b5db59bcb54ab983475f0c72098fb8cf18a287a1/chromeos/services/secure_channel/connect_to_device_operation_factory.h
[delete] https://crrev.com/b5db59bcb54ab983475f0c72098fb8cf18a287a1/chromeos/services/secure_channel/connect_to_device_operation_factory_base.h
[delete] https://crrev.com/b5db59bcb54ab983475f0c72098fb8cf18a287a1/chromeos/services/secure_channel/connect_to_device_operation_factory_base_unittest.cc
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/connection_attempt.h
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/connection_attempt_base.h
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/connection_attempt_base_unittest.cc
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/fake_connect_to_device_operation.h
[delete] https://crrev.com/b5db59bcb54ab983475f0c72098fb8cf18a287a1/chromeos/services/secure_channel/fake_connect_to_device_operation_factory.h
[modify] https://crrev.com/5fed877b175489a0b7202acc76a2c261ef2e71b8/chromeos/services/secure_channel/fake_connection_attempt.h

Project Member

Comment 141 by bugdroid1@chromium.org, Jun 18 2018

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

commit bc0aae7dad11107a8726d1351e4b353481d16f81
Author: Kyle Horimoto <khorimoto@google.com>
Date: Mon Jun 18 23:12:53 2018

[CrOS MultiDevice] Implement BleListenerOperation.

This operation attempts to connect to a remote device over BLE via the
listener role via BleConnectionManager.

Bug: 824568, 752273
Change-Id: Ie6be7b139b8234049df4d1f1c2535254a1b962a0
Reviewed-on: https://chromium-review.googlesource.com/1103009
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568220}
[modify] https://crrev.com/bc0aae7dad11107a8726d1351e4b353481d16f81/chromeos/services/secure_channel/ble_listener_operation.cc
[modify] https://crrev.com/bc0aae7dad11107a8726d1351e4b353481d16f81/chromeos/services/secure_channel/ble_listener_operation.h
[modify] https://crrev.com/bc0aae7dad11107a8726d1351e4b353481d16f81/chromeos/services/secure_channel/ble_listener_operation_unittest.cc

Project Member

Comment 142 by bugdroid1@chromium.org, Jun 19 2018

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

commit b38f9e32d2ea19474f372646bc360a170d2441a0
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 00:48:38 2018

[CrOS MultiDevice] Implement BleInitiatorOperation.

This operation attempts to connect to a remote device over BLE via the
initiator role via BleConnectionManager.

Bug: 824568, 752273
Change-Id: Ifa3f161f8e0493707be83a217ed8aeb370bfe195
Reviewed-on: https://chromium-review.googlesource.com/1103192
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568263}
[modify] https://crrev.com/b38f9e32d2ea19474f372646bc360a170d2441a0/chromeos/services/secure_channel/ble_initiator_operation.cc
[modify] https://crrev.com/b38f9e32d2ea19474f372646bc360a170d2441a0/chromeos/services/secure_channel/ble_initiator_operation.h
[modify] https://crrev.com/b38f9e32d2ea19474f372646bc360a170d2441a0/chromeos/services/secure_channel/ble_initiator_operation_unittest.cc

Project Member

Comment 143 by bugdroid1@chromium.org, Jun 19 2018

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

commit d20bf68d3ad40e3a9a250b7e1c50b51bded4c320
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Jun 19 01:16:55 2018

[CrOS Multidevice] Inject DeviceSyncClient into MessageTransferOperation.

This change only plumbs DeviceSyncClient into MessageTransferOperation in Tether;
it does not actually use it. A subsequent CL will utilize DeviceSyncClient and
SecureChannelClient, instead of BleConnectionManager, inside MessageTransferOperation.

Bug: 824568, 752273
Change-Id: I8895110082bfa9b3d33f012b62e32e44c2331189
Reviewed-on: https://chromium-review.googlesource.com/1104721
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568277}
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/connect_tethering_operation.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/connect_tethering_operation.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/connect_tethering_operation_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/disconnect_tethering_operation.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/disconnect_tethering_operation.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/disconnect_tethering_operation_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/disconnect_tethering_request_sender_impl.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/disconnect_tethering_request_sender_impl.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/disconnect_tethering_request_sender_impl_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/host_scanner_impl.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/host_scanner_impl.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/host_scanner_impl_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/host_scanner_operation.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/host_scanner_operation.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/host_scanner_operation_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/keep_alive_operation.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/keep_alive_operation.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/keep_alive_operation_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/keep_alive_scheduler.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/keep_alive_scheduler.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/keep_alive_scheduler_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/message_transfer_operation.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/message_transfer_operation.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/synchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/synchronous_shutdown_object_container_impl.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/tether_component_impl.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/tether_component_impl_unittest.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/tether_connector_impl.cc
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/tether_connector_impl.h
[modify] https://crrev.com/d20bf68d3ad40e3a9a250b7e1c50b51bded4c320/chromeos/components/tether/tether_connector_impl_unittest.cc

Project Member

Comment 144 by bugdroid1@chromium.org, Jun 19 2018

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

commit ec50156473c79e1c94e9bb6a92c1ab7887dedbb3
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 01:57:59 2018

[CrOS MultiDevice] Add BleListenerConnectionAttempt.

This class generates BleListenerOperations.

Bug: 824568, 752273
Change-Id: I4c196efc3636b48b1542b533d6a6462c79a53201
Reviewed-on: https://chromium-review.googlesource.com/1103538
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568295}
[modify] https://crrev.com/ec50156473c79e1c94e9bb6a92c1ab7887dedbb3/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/ec50156473c79e1c94e9bb6a92c1ab7887dedbb3/chromeos/services/secure_channel/ble_listener_connection_attempt.cc
[add] https://crrev.com/ec50156473c79e1c94e9bb6a92c1ab7887dedbb3/chromeos/services/secure_channel/ble_listener_connection_attempt.h

Project Member

Comment 145 by bugdroid1@chromium.org, Jun 19 2018

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

commit a2c7b14a0b660910401c0c272990fbe7578849b7
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 02:46:30 2018

[CrOS MultiDevice] Add BleInitiatorConnectionAttempt.

This class generates BleInitiatorOperations.

Bug: 824568, 752273
Change-Id: Ia99da736b4ace4de27a1bbeb61a39e99e66805bc
Reviewed-on: https://chromium-review.googlesource.com/1103544
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568315}
[modify] https://crrev.com/a2c7b14a0b660910401c0c272990fbe7578849b7/chromeos/services/secure_channel/BUILD.gn
[add] https://crrev.com/a2c7b14a0b660910401c0c272990fbe7578849b7/chromeos/services/secure_channel/ble_initiator_connection_attempt.cc
[add] https://crrev.com/a2c7b14a0b660910401c0c272990fbe7578849b7/chromeos/services/secure_channel/ble_initiator_connection_attempt.h

Project Member

Comment 146 by bugdroid1@chromium.org, Jun 19 2018

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

commit 2d5ed9100fc928db519b0ae05689791d5210ff3d
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 03:48:42 2018

[CrOS MultiDevice] Fix FakeConnectionAttempt.

This class declared its constructor and destructor but did not actually
implement them. This CL implements them.

Additionally, this CL adds a "destructor callback" as an optional
constructor parameter and invokes the callback in the destructor.

Bug: 824568, 752273
Change-Id: I0c60a0bc64ade3b55b926bc864c20c6ea4814d7b
Reviewed-on: https://chromium-review.googlesource.com/1105306
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568330}
[modify] https://crrev.com/2d5ed9100fc928db519b0ae05689791d5210ff3d/chromeos/services/secure_channel/fake_connection_attempt.h

Project Member

Comment 147 by bugdroid1@chromium.org, Jun 19 2018

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

commit 69309ed8eabbbac6a3af4d92eee3cd5d6f97f368
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Jun 19 04:17:29 2018

[CrOS Multidevice] Remove secure_channel::ClientChannel::Disconnect() method.

This method is unnecessary; if clients wish to disconnect a ClientChannel,
they simply need to delete the object.

Bug: 824568, 752273
Change-Id: I5ba7268743f8aabb208bc4add9ed849a982c7465
Reviewed-on: https://chromium-review.googlesource.com/1105609
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568340}
[modify] https://crrev.com/69309ed8eabbbac6a3af4d92eee3cd5d6f97f368/chromeos/services/secure_channel/public/cpp/client/client_channel.cc
[modify] https://crrev.com/69309ed8eabbbac6a3af4d92eee3cd5d6f97f368/chromeos/services/secure_channel/public/cpp/client/client_channel.h
[modify] https://crrev.com/69309ed8eabbbac6a3af4d92eee3cd5d6f97f368/chromeos/services/secure_channel/public/cpp/client/client_channel_impl.cc
[modify] https://crrev.com/69309ed8eabbbac6a3af4d92eee3cd5d6f97f368/chromeos/services/secure_channel/public/cpp/client/client_channel_impl.h
[modify] https://crrev.com/69309ed8eabbbac6a3af4d92eee3cd5d6f97f368/chromeos/services/secure_channel/public/cpp/client/client_channel_impl_unittest.cc
[modify] https://crrev.com/69309ed8eabbbac6a3af4d92eee3cd5d6f97f368/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.cc
[modify] https://crrev.com/69309ed8eabbbac6a3af4d92eee3cd5d6f97f368/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h

Project Member

Comment 148 by bugdroid1@chromium.org, Jun 19 2018

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

commit 9d565db4c0551c5953aab7d22061065da8c477da
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Jun 19 04:42:54 2018

[CrOS Multidevice] Tether: Use SecureChannelClient in MessageTransferOperation.

MessageTransferOperation now uses the SecureChannelClient to request secure connections
to remote devices, instead of BleConnectionManager. This functionality is gated behind
the chromeos::features::kMultiDeviceApi.

This CL completely migrates Tether to the SecureChannel and DeviceSync services (besides
the feature flags gating their use, which will be removed in the next milestone).

Bug: 824568, 752273
Change-Id: I5689fd43e427a5140b6c05f5bbf659709fcb4139
Reviewed-on: https://chromium-review.googlesource.com/1105571
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568343}
[modify] https://crrev.com/9d565db4c0551c5953aab7d22061065da8c477da/chromeos/components/tether/BUILD.gn
[modify] https://crrev.com/9d565db4c0551c5953aab7d22061065da8c477da/chromeos/components/tether/message_transfer_operation.cc
[modify] https://crrev.com/9d565db4c0551c5953aab7d22061065da8c477da/chromeos/components/tether/message_transfer_operation.h
[modify] https://crrev.com/9d565db4c0551c5953aab7d22061065da8c477da/chromeos/components/tether/message_transfer_operation_unittest.cc
[modify] https://crrev.com/9d565db4c0551c5953aab7d22061065da8c477da/chromeos/services/secure_channel/public/cpp/client/fake_connection_attempt.h
[modify] https://crrev.com/9d565db4c0551c5953aab7d22061065da8c477da/chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.cc
[modify] https://crrev.com/9d565db4c0551c5953aab7d22061065da8c477da/chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h

Project Member

Comment 149 by bugdroid1@chromium.org, Jun 19 2018

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

commit 8828e0903e8cd1722d14f27f87b81a9eed18d55c
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 05:51:30 2018

[CrOS MultiDevice] Implement PendingConnectionManagerImpl.

This class creates one ConnectionAttempt per ConnectionAttemptDetails
requested; if more than one request shares the same
ConnectionAttemptDetails, a single ConnectionAttempt attempts a
connection for all associated requests.

If a ConnectionAttempt successfully creates a channel, this class
extracts client data from all requests to the same remote device and
alerts its delegate, deleting all associated ConnectionAttempts when it
is finished.

Bug: 824568, 752273
Change-Id: If9790549157919209e3e96f4a0b11d04fda2870c
Reviewed-on: https://chromium-review.googlesource.com/1103669
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568352}
[modify] https://crrev.com/8828e0903e8cd1722d14f27f87b81a9eed18d55c/chromeos/services/secure_channel/pending_connection_manager_impl.cc
[modify] https://crrev.com/8828e0903e8cd1722d14f27f87b81a9eed18d55c/chromeos/services/secure_channel/pending_connection_manager_impl.h
[modify] https://crrev.com/8828e0903e8cd1722d14f27f87b81a9eed18d55c/chromeos/services/secure_channel/pending_connection_manager_impl_unittest.cc
[modify] https://crrev.com/8828e0903e8cd1722d14f27f87b81a9eed18d55c/chromeos/services/secure_channel/secure_channel_impl.cc
[modify] https://crrev.com/8828e0903e8cd1722d14f27f87b81a9eed18d55c/chromeos/services/secure_channel/secure_channel_service_unittest.cc

Project Member

Comment 150 by bugdroid1@chromium.org, Jun 19 2018

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

commit 25034fc91f02c8c4acc565c3f4bf19887c44acd0
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Tue Jun 19 10:47:36 2018

Revert "[CrOS MultiDevice] Implement PendingConnectionManagerImpl."

This reverts commit 8828e0903e8cd1722d14f27f87b81a9eed18d55c.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 568352 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzg4MjhlMDkwM2U4Y2QxNzIyZDE0ZjI3Zjg3YjgxYTllZWQxOGQ1NWMM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20ChromiumOS%20MSan%20Tests/7673

Sample Failed Step: chromeos_unittests

Original change's description:
> [CrOS MultiDevice] Implement PendingConnectionManagerImpl.
> 
> This class creates one ConnectionAttempt per ConnectionAttemptDetails
> requested; if more than one request shares the same
> ConnectionAttemptDetails, a single ConnectionAttempt attempts a
> connection for all associated requests.
> 
> If a ConnectionAttempt successfully creates a channel, this class
> extracts client data from all requests to the same remote device and
> alerts its delegate, deleting all associated ConnectionAttempts when it
> is finished.
> 
> Bug: 824568, 752273
> Change-Id: If9790549157919209e3e96f4a0b11d04fda2870c
> Reviewed-on: https://chromium-review.googlesource.com/1103669
> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
> Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#568352}

Change-Id: Idd35a8b968324aafbf283868ff79fa49d9f879e5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 824568, 752273
Reviewed-on: https://chromium-review.googlesource.com/1105897
Cr-Commit-Position: refs/heads/master@{#568396}
[modify] https://crrev.com/25034fc91f02c8c4acc565c3f4bf19887c44acd0/chromeos/services/secure_channel/pending_connection_manager_impl.cc
[modify] https://crrev.com/25034fc91f02c8c4acc565c3f4bf19887c44acd0/chromeos/services/secure_channel/pending_connection_manager_impl.h
[modify] https://crrev.com/25034fc91f02c8c4acc565c3f4bf19887c44acd0/chromeos/services/secure_channel/pending_connection_manager_impl_unittest.cc
[modify] https://crrev.com/25034fc91f02c8c4acc565c3f4bf19887c44acd0/chromeos/services/secure_channel/secure_channel_impl.cc
[modify] https://crrev.com/25034fc91f02c8c4acc565c3f4bf19887c44acd0/chromeos/services/secure_channel/secure_channel_service_unittest.cc

Project Member

Comment 151 by bugdroid1@chromium.org, Jun 19 2018

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

commit 0cbd25a133cae355d747d2b340952b16eac2145d
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Jun 19 17:33:12 2018

[Cros Multidevice] tether::HostScanScheduler: Remove restrictions on host scans if SecureChannel API is present.

This conditionally (behind the chromeos::features::kMultiDeviceApi flag) removes the
following restrictions introduced by the following CLs:
1) "Stop scans when device is locked": https://chromium-review.googlesource.com/c/chromium/src/+/940609
2) "Do not perform host scans while the device is locked": https://chromium-review.googlesource.com/c/chromium/src/+/1045254
3) "Delay host scans slightly after unlock": https://chromium-review.googlesource.com/c/chromium/src/+/941583

These restricitons were necessary because Tether and Smart Lock used different BLE comminication stacks. Now that the
SecureChannel API is integrated into Tether (the BLE communication scheme that Tether and Smart Lock share), these
restrictions are no longer necessary.

Bug: 824568, 752273, 817554
Change-Id: Id63ba851c702502420ae42b99efcd5f18102aa34
Reviewed-on: https://chromium-review.googlesource.com/1105618
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568513}
[modify] https://crrev.com/0cbd25a133cae355d747d2b340952b16eac2145d/chromeos/components/tether/host_scan_scheduler_impl.cc
[modify] https://crrev.com/0cbd25a133cae355d747d2b340952b16eac2145d/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc

Project Member

Comment 152 by bugdroid1@chromium.org, Jun 19 2018

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

commit 34550a4ef42b3691aab650ce94e1486c0b0a1e71
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 18:10:19 2018

[CrOS MultiDevice] Re-land PendingConnectionManagerImpl.

PendingConnectionManagerImpl originally landed in:
https://chromium-review.googlesource.com/c/chromium/src/+/1103669

It was reverted by:
https://chromium-review.googlesource.com/c/chromium/src/+/1105897

The original CL was reverted due to failures in the ASAN build.  This CL
uploads the original CL as patchset 1 and fixes the failing ASAN tests
in the following patchset.

Original CL description below:

> This class creates one ConnectionAttempt per ConnectionAttemptDetails
> requested; if more than one request shares the same
> ConnectionAttemptDetails, a single ConnectionAttempt attempts a
> connection for all associated requests.
>
> If a ConnectionAttempt successfully creates a channel, this class
> extracts client data from all requests to the same remote device and
> alerts its delegate, deleting all associated ConnectionAttempts when
> it is finished.

Bug: 824568, 752273
Change-Id: Ia7fc61bb017d7d083fa43c6b3f949c3eed98f62f
Reviewed-on: https://chromium-review.googlesource.com/1106427
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568530}
[modify] https://crrev.com/34550a4ef42b3691aab650ce94e1486c0b0a1e71/chromeos/services/secure_channel/pending_connection_manager_impl.cc
[modify] https://crrev.com/34550a4ef42b3691aab650ce94e1486c0b0a1e71/chromeos/services/secure_channel/pending_connection_manager_impl.h
[modify] https://crrev.com/34550a4ef42b3691aab650ce94e1486c0b0a1e71/chromeos/services/secure_channel/pending_connection_manager_impl_unittest.cc
[modify] https://crrev.com/34550a4ef42b3691aab650ce94e1486c0b0a1e71/chromeos/services/secure_channel/secure_channel_impl.cc
[modify] https://crrev.com/34550a4ef42b3691aab650ce94e1486c0b0a1e71/chromeos/services/secure_channel/secure_channel_service_unittest.cc

Project Member

Comment 153 by bugdroid1@chromium.org, Jun 19 2018

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

commit 8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 19:36:15 2018

[CrOS MultiDevice] Complete SecureChannel initialization flow.

Initialization of the service is asynchronous due to the need to
fetch the Bluetooth adapter asynchronously. This class allows
clients to make requests of the service before it is fully
initializes; queued requests are then passed on to the rest of
the service once initialization completes.

Bug: 824568, 752273
Change-Id: I79b5940070b7c3ff6e0a9ed3f7ef4dff8f260038
Reviewed-on: https://chromium-review.googlesource.com/1105616
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568568}
[modify] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/BUILD.gn
[modify] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl_unittest.cc
[modify] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/secure_channel_impl.cc
[modify] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/secure_channel_impl.h
[add] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/secure_channel_initializer.cc
[add] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/secure_channel_initializer.h
[modify] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/secure_channel_service.cc
[modify] https://crrev.com/8e203a7a073b92fc38d7cf7b68a59caa3fb14c2a/chromeos/services/secure_channel/secure_channel_service_unittest.cc

Labels: -Pri-3 -M-63 M-69 Pri-1
Blocking: 817618
Project Member

Comment 156 by bugdroid1@chromium.org, Jun 19 2018

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

commit beee8d84df05ecc0457d60a8673dcd87e00e48c1
Author: Kyle Horimoto <khorimoto@google.com>
Date: Tue Jun 19 23:11:09 2018

[CrOS MultiDevice] SecureChannelServiceTest: Fix initialization.

Previously, the test assumed that the service did not actually start up
until an API call was made on one of its exposed interfaces. However,
that was actually incorrect; the service starts up as soon as a client
binds to it. The issue was actually that I had forgotten to call
SecureChannelPtr::FlushForTesting() at the end of SetUp().

Bug: 824568, 752273
Change-Id: I4ffd1f49f096fec5b72ce18870efd112d1ea0124
Reviewed-on: https://chromium-review.googlesource.com/1106972
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568632}
[modify] https://crrev.com/beee8d84df05ecc0457d60a8673dcd87e00e48c1/chromeos/services/secure_channel/secure_channel_service_unittest.cc

Project Member

Comment 157 by bugdroid1@chromium.org, Jun 20 2018

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

commit ac6e2f9af151b85d10d3137d3d0d9a67c2d3b3f3
Author: Kyle Horimoto <khorimoto@google.com>
Date: Wed Jun 20 03:16:08 2018

[CrOS MultiDevice] BleConnectionManager: Initialize SecureChannels.

cryptauth::SecureChannel requires that the client call the Initialize()
function before it starts connecting. I had forgotten to add this call
when I originally implemented BleConnectionManager.

Bug: 824568, 752273
Change-Id: I9464ee842382f53ed8cc253b5a4e93daf1af78d2
Reviewed-on: https://chromium-review.googlesource.com/1107297
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568712}
[modify] https://crrev.com/ac6e2f9af151b85d10d3137d3d0d9a67c2d3b3f3/chromeos/services/secure_channel/ble_connection_manager_impl.cc
[modify] https://crrev.com/ac6e2f9af151b85d10d3137d3d0d9a67c2d3b3f3/chromeos/services/secure_channel/ble_connection_manager_impl_unittest.cc
[modify] https://crrev.com/ac6e2f9af151b85d10d3137d3d0d9a67c2d3b3f3/components/cryptauth/fake_secure_channel.cc
[modify] https://crrev.com/ac6e2f9af151b85d10d3137d3d0d9a67c2d3b3f3/components/cryptauth/fake_secure_channel.h

Project Member

Comment 158 by bugdroid1@chromium.org, Jun 20 2018

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

commit d2f251939b6d1e8787b18ebeb265a4e7a16494f0
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jun 20 03:16:12 2018

[CrOS Multidevice] tether::MessageTransferOperation: use the correct Tether feature constant.

This is the correct constant that is expected by host devices.

Bug: 824568, 752273
Change-Id: I7f29159de6eb66f92f4534cd558fe82027175914
Reviewed-on: https://chromium-review.googlesource.com/1105621
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568713}
[modify] https://crrev.com/d2f251939b6d1e8787b18ebeb265a4e7a16494f0/chromeos/components/tether/message_transfer_operation.cc
[modify] https://crrev.com/d2f251939b6d1e8787b18ebeb265a4e7a16494f0/chromeos/components/tether/message_transfer_operation_unittest.cc

Project Member

Comment 159 by bugdroid1@chromium.org, Jun 21 2018

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

commit 79229df14f244c94d1cd74e27aee7103a6f2e16c
Author: Kyle Horimoto <khorimoto@google.com>
Date: Thu Jun 21 16:38:06 2018

[CrOS MultiDevice] Add RSSI support.

This CL adds a current_rssi field to the mojom::ConnectionMetadata
struct and implements fetching this field throughout all classes
involved with returning the value.

Bug: 844759, 824568, 752273
Change-Id: I663326ceb7bb3c5113289f0b29a2ad9c26fcbfa9
Reviewed-on: https://chromium-review.googlesource.com/1106810
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569295}
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/authenticated_channel_impl.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/authenticated_channel_impl.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/authenticated_channel_impl_unittest.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/channel_impl.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/channel_impl.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/fake_channel.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/fake_channel.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/fake_single_client_message_proxy.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/fake_single_client_message_proxy.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/multiplexed_channel_impl.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/multiplexed_channel_impl.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/multiplexed_channel_impl_unittest.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/client/client_channel.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/client/client_channel.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/client/client_channel_impl.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/client/client_channel_impl.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/client/client_channel_impl_unittest.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/shared/authenticated_channel.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/shared/fake_authenticated_channel.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/cpp/shared/fake_authenticated_channel.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/public/mojom/secure_channel.mojom
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/single_client_message_proxy.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/single_client_message_proxy.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/single_client_message_proxy_impl.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/single_client_message_proxy_impl.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/chromeos/services/secure_channel/single_client_message_proxy_impl_unittest.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection_unittest.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/connection.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/connection.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/connection_unittest.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/fake_connection.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/fake_connection.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/fake_secure_channel.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/fake_secure_channel.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/secure_channel.cc
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/secure_channel.h
[modify] https://crrev.com/79229df14f244c94d1cd74e27aee7103a6f2e16c/components/cryptauth/secure_channel_unittest.cc

Project Member

Comment 160 by bugdroid1@chromium.org, Jun 21 2018

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

commit e092b1bd82db7ca93d357b697039871f9833caf3
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 21 23:12:36 2018

[CrOS Multidevice] Integrate SecureChannel API into ProximityAuthMonitor.

This injects a ClientChannel into ProximityAuthMonitor, which is used if the
chromeos::features::kMultiDeviceApi is enabled. The ClientChannel is used
to get the current RSSI of the connected remote device.

In the future, the "rolling average RSSI" that is calculated in
ProximityAuthMonitor will be moved to the SecureChannel API, and returned
by it. However, to reduce immediate migration work, that logic is kept
in ProximityAuthMonitor for now.

R=jhawkins@chromium.org, khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: I8d6485a5a0018fe43595b880c25a2fa9af5a1b75
Reviewed-on: https://chromium-review.googlesource.com/1106616
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569425}
[modify] https://crrev.com/e092b1bd82db7ca93d357b697039871f9833caf3/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/e092b1bd82db7ca93d357b697039871f9833caf3/chromeos/components/proximity_auth/proximity_monitor_impl.cc
[modify] https://crrev.com/e092b1bd82db7ca93d357b697039871f9833caf3/chromeos/components/proximity_auth/proximity_monitor_impl.h
[modify] https://crrev.com/e092b1bd82db7ca93d357b697039871f9833caf3/chromeos/components/proximity_auth/proximity_monitor_impl_unittest.cc
[modify] https://crrev.com/e092b1bd82db7ca93d357b697039871f9833caf3/chromeos/components/proximity_auth/unlock_manager_impl.cc
[modify] https://crrev.com/e092b1bd82db7ca93d357b697039871f9833caf3/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.cc
[modify] https://crrev.com/e092b1bd82db7ca93d357b697039871f9833caf3/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h

Project Member

Comment 161 by bugdroid1@chromium.org, Jun 22 2018

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

commit faa083eea5586885cc907ae28928dd766e47b6fa
Author: Nico Weber <thakis@chromium.org>
Date: Fri Jun 22 13:07:36 2018

Revert "[CrOS Multidevice] Integrate SecureChannel API into ProximityAuthMonitor."

This reverts commit e092b1bd82db7ca93d357b697039871f9833caf3.

Reason for revert:
SecureChannelClientImplTest.TestMultipleConnections has been failing
consistently on the waterfall since this landed. Started here:
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/linux-chromeos-rel/9728


Original change's description:
> [CrOS Multidevice] Integrate SecureChannel API into ProximityAuthMonitor.
> 
> This injects a ClientChannel into ProximityAuthMonitor, which is used if the
> chromeos::features::kMultiDeviceApi is enabled. The ClientChannel is used
> to get the current RSSI of the connected remote device.
> 
> In the future, the "rolling average RSSI" that is calculated in
> ProximityAuthMonitor will be moved to the SecureChannel API, and returned
> by it. However, to reduce immediate migration work, that logic is kept
> in ProximityAuthMonitor for now.
> 
> R=​jhawkins@chromium.org, khorimoto@chromium.org
> 
> Bug: 824568, 752273
> Change-Id: I8d6485a5a0018fe43595b880c25a2fa9af5a1b75
> Reviewed-on: https://chromium-review.googlesource.com/1106616
> Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
> Reviewed-by: James Hawkins <jhawkins@chromium.org>
> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#569425}

TBR=jhawkins@chromium.org,khorimoto@chromium.org,hansberry@chromium.org

Change-Id: Ie22413bae9011ed505220115fa1c711fc1c7e626
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 824568, 752273
Reviewed-on: https://chromium-review.googlesource.com/1111937
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569590}
[modify] https://crrev.com/faa083eea5586885cc907ae28928dd766e47b6fa/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/faa083eea5586885cc907ae28928dd766e47b6fa/chromeos/components/proximity_auth/proximity_monitor_impl.cc
[modify] https://crrev.com/faa083eea5586885cc907ae28928dd766e47b6fa/chromeos/components/proximity_auth/proximity_monitor_impl.h
[modify] https://crrev.com/faa083eea5586885cc907ae28928dd766e47b6fa/chromeos/components/proximity_auth/proximity_monitor_impl_unittest.cc
[modify] https://crrev.com/faa083eea5586885cc907ae28928dd766e47b6fa/chromeos/components/proximity_auth/unlock_manager_impl.cc
[modify] https://crrev.com/faa083eea5586885cc907ae28928dd766e47b6fa/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.cc
[modify] https://crrev.com/faa083eea5586885cc907ae28928dd766e47b6fa/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h

Project Member

Comment 162 by bugdroid1@chromium.org, Jun 22 2018

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

commit 7902aaa2ec00b0c25fcccda52d10220a24ea6204
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 22 18:49:08 2018

[CrOS Multidevice] SecureChannelClient: Fix subtly broken test.

SecureChannelClientImplTest.TestMultipleConnections can intermittently fail:
it was only caught by the test waterfall after this unrelated change:
https://chromium-review.googlesource.com/c/chromium/src/+/1111937.

The test was failing on release builds, not debug builds, because
TestConnectionAttemptDelegate::last_client_channel() was returning a unique_ptr
which was being immediately thrown away; in a release build, the memory allocation
is optimized such that when a second ClientChannel was created, it was assigned
to the exact same address that the old one was addressed to, causing the
check 'EXPECT_NE(client_channel_1, client_channel_2)' to fail.

Bug: 824568, 752273
Change-Id: I2571f63c7dd0bfbbadef3fca17f001f740d64ab3
Reviewed-on: https://chromium-review.googlesource.com/1112422
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569710}
[modify] https://crrev.com/7902aaa2ec00b0c25fcccda52d10220a24ea6204/chromeos/services/secure_channel/public/cpp/client/secure_channel_client_impl_unittest.cc

Project Member

Comment 163 by bugdroid1@chromium.org, Jun 22 2018

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

commit 0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 22 21:29:22 2018

[CrOS Multidevice] Integrate SecureChannel API into ProximityAuthMonitor.

This injects a ClientChannel into ProximityAuthMonitor, which is used if the
chromeos::features::kMultiDeviceApi is enabled. The ClientChannel is used
to get the current RSSI of the connected remote device.

In the future, the "rolling average RSSI" that is calculated in
ProximityAuthMonitor will be moved to the SecureChannel API, and returned
by it. However, to reduce immediate migration work, that logic is kept
in ProximityAuthMonitor for now.

This CL was originally submitted as [1], but was reverted [2] due to a
subtle bug in a test, which has been fixed at [3]. This CL is unchanged
from the original.

1) https://chromium-review.googlesource.com/c/chromium/src/+/1106616
2) https://chromium-review.googlesource.com/c/chromium/src/+/1111937
3) https://chromium-review.googlesource.com/c/chromium/src/+/1112422

Bug: 824568, 752273
Change-Id: I5fba2dcb73fd4b8da08d93cbfa045b6f6888a93b
Reviewed-on: https://chromium-review.googlesource.com/1112434
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569785}
[modify] https://crrev.com/0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e/chromeos/components/proximity_auth/proximity_monitor_impl.cc
[modify] https://crrev.com/0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e/chromeos/components/proximity_auth/proximity_monitor_impl.h
[modify] https://crrev.com/0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e/chromeos/components/proximity_auth/proximity_monitor_impl_unittest.cc
[modify] https://crrev.com/0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e/chromeos/components/proximity_auth/unlock_manager_impl.cc
[modify] https://crrev.com/0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.cc
[modify] https://crrev.com/0d13ac29fcfe08b4a3ea5d91eb1bd5fcdfbd4a9e/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h

Project Member

Comment 164 by bugdroid1@chromium.org, Jun 22 2018

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

commit 799f491e6593bb2d45b3e86d272ce65d14fbafdd
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 22 21:55:06 2018

[CrOS Multidevice] Integrate the SecureChannel API into proximity_auth::Messenger.

This injects a ClientChannel into Messenger, which is used if the
chromeos::features::kMultiDeviceApi is enabled. The ClientChannel is used
to send and receive messages with the remote device.

R=jhawkins@chromium.org, khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: If927eb84d013657db823f8538d138beb9c2c16be
Reviewed-on: https://chromium-review.googlesource.com/1107482
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569798}
[modify] https://crrev.com/799f491e6593bb2d45b3e86d272ce65d14fbafdd/chromeos/components/proximity_auth/messenger.h
[modify] https://crrev.com/799f491e6593bb2d45b3e86d272ce65d14fbafdd/chromeos/components/proximity_auth/messenger_impl.cc
[modify] https://crrev.com/799f491e6593bb2d45b3e86d272ce65d14fbafdd/chromeos/components/proximity_auth/messenger_impl.h
[modify] https://crrev.com/799f491e6593bb2d45b3e86d272ce65d14fbafdd/chromeos/components/proximity_auth/messenger_impl_unittest.cc
[modify] https://crrev.com/799f491e6593bb2d45b3e86d272ce65d14fbafdd/chromeos/components/proximity_auth/remote_device_life_cycle_impl.cc
[modify] https://crrev.com/799f491e6593bb2d45b3e86d272ce65d14fbafdd/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc

Project Member

Comment 165 by bugdroid1@chromium.org, Jun 22 2018

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

commit c7e4c0d0a736517a1ce72474f2ce44631d5f87df
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 22 23:12:15 2018

[CrOS Multidevice] Integrate SecureChannel API into proximity_auth::RemoteDeviceLifeCycle.

This injects SecureChannelClient and local device into RemoteDeviceLifeCycle,
both of which are used to make a call to SecureChannel service. If the
chromeos::features::kMultiDeviceApi flag is enabled, they are used to create
an authenticated BLE connection to the remote device, instead of
using BluetoothLowEnergyConnectionFinder.

This change also injects a real ClientChannel into ProximityAuthMonitor.

R=jhawkins@chromium.org, khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: Iefb03d1356ea7e8f5aac0136c8d7a4280302da16
Reviewed-on: https://chromium-review.googlesource.com/1107490
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569825}
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/BUILD.gn
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/fake_remote_device_life_cycle.cc
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/fake_remote_device_life_cycle.h
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/proximity_auth_system.cc
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/remote_device_life_cycle.h
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/remote_device_life_cycle_impl.cc
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/remote_device_life_cycle_impl.h
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/remote_device_life_cycle_impl_unittest.cc
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/unlock_manager_impl.cc
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/unlock_manager_impl.h
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc
[modify] https://crrev.com/c7e4c0d0a736517a1ce72474f2ce44631d5f87df/chromeos/components/proximity_auth/webui/proximity_auth_webui_handler.cc

Project Member

Comment 166 by bugdroid1@chromium.org, Jun 22 2018

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

commit d6953d533ecd3d5ab1e7adc29b6c8454e63ccf81
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 22 23:30:46 2018

[CrOS Multidevice] Inject SecureChannel API into ProximityAuth WebUI debug logic.

R=khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: I4ee3b3e108a7bc82570e97dbfe460adb0fbe6ec8
Reviewed-on: https://chromium-review.googlesource.com/1108383
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Tommy Li <tommycli@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569838}
[modify] https://crrev.com/d6953d533ecd3d5ab1e7adc29b6c8454e63ccf81/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
[modify] https://crrev.com/d6953d533ecd3d5ab1e7adc29b6c8454e63ccf81/chromeos/components/proximity_auth/webui/BUILD.gn
[modify] https://crrev.com/d6953d533ecd3d5ab1e7adc29b6c8454e63ccf81/chromeos/components/proximity_auth/webui/proximity_auth_ui.cc
[modify] https://crrev.com/d6953d533ecd3d5ab1e7adc29b6c8454e63ccf81/chromeos/components/proximity_auth/webui/proximity_auth_ui.h
[modify] https://crrev.com/d6953d533ecd3d5ab1e7adc29b6c8454e63ccf81/chromeos/components/proximity_auth/webui/proximity_auth_webui_handler.cc
[modify] https://crrev.com/d6953d533ecd3d5ab1e7adc29b6c8454e63ccf81/chromeos/components/proximity_auth/webui/proximity_auth_webui_handler.h

Project Member

Comment 167 by bugdroid1@chromium.org, Jun 22 2018

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

commit 56292a0ca6cd13c812cbf8d3648b0ca23d567b50
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 22 23:39:19 2018

[CrOS Multidevice] Integrate SecureChannel API into ProximityAuthSystem.

Inject a SecureChannelClient and RemoteDeviceRef (representing the
local device) into ProximityAuthSystem, which are required by
RemoteDeviceLifeCycle in order to establish a secure connection to
a remote device.

R=jhawkins@chromium.org, khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: Iab717e9b9a9d1e992da661406d4d8ddd233c2d6d
Reviewed-on: https://chromium-review.googlesource.com/1109505
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569841}
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.cc
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.h
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_signin_chromeos.cc
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chromeos/components/proximity_auth/fake_remote_device_life_cycle.cc
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chromeos/components/proximity_auth/fake_remote_device_life_cycle.h
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chromeos/components/proximity_auth/proximity_auth_system.cc
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chromeos/components/proximity_auth/proximity_auth_system.h
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chromeos/components/proximity_auth/proximity_auth_system_unittest.cc
[modify] https://crrev.com/56292a0ca6cd13c812cbf8d3648b0ca23d567b50/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc

Project Member

Comment 168 by bugdroid1@chromium.org, Jun 25 2018

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

commit 7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Mon Jun 25 18:49:01 2018

[CrOS Multidevice] Integrate SecureChannel API into EasyUnlockServices.

Grab the global SecureChannelClient instance in EasyUnlockServiceFactory,
and inject it into EasyUnlockServiceRegular and EasyUnlockServiceSignin.

This change has allowed me to manually verify that Smart Lock works with
the new SecureChannel API, in the regular, lock-screen case. Additional
work still needs to be done to fully integrate the sign-in case, which
will come in subsequent CLs.

R=jhawkins@chromium.org, khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: I77952966eace55dabb6895569c8b18ac03cd1189
Reviewed-on: https://chromium-review.googlesource.com/1108880
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570110}
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api_unittest.cc
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.cc
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service.h
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_factory.cc
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.h
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_signin_chromeos.cc
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_signin_chromeos.h
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_unittest_chromeos.cc
[modify] https://crrev.com/7f112aaad9e5211d8a0576ee25a633fa2d6ddfdb/chrome/browser/ui/webui/settings/chromeos/easy_unlock_settings_handler_unittest.cc

Project Member

Comment 169 by bugdroid1@chromium.org, Jun 27 2018

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

commit 82e651013841764ef88074906f6688b619ab0c80
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jun 27 22:00:03 2018

[CrOS Multidevice] Integrate SecureChannel API into EasyUnlockServiceSignin.

EasyUnlockServiceSignin cannot directly access DeviceSync API to retrieve
RemoteDevices, because it is outside of a signed in session. Currently,
this is solved by persisting remote devices to the TPM from
EasyUnlockServiceRegular, for use later on by the Signin service. This CL
reuses that persistance mechanism by also persisting the local device
for each profile into the TPM.

I have manually verified this change, both with a single and multiple
profile(s).

I have also manually verified that this correctly migrates; that is, if
sign-in unlock is enabled before the chromeos::features::kMultiDeviceApi
flag is enabled, and then the flag becomes enabled, the local device will
correctly added as soon as the user signs in.

R=khorimoto@chromium.org

TBR=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: I613a59004076533642ee3d591637cbbf79e52795
Reviewed-on: https://chromium-review.googlesource.com/1112902
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570913}
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_create_keys_operation.cc
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_get_keys_operation.cc
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_manager.cc
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.h
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_signin_chromeos.cc
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_types.cc
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chrome/browser/chromeos/login/easy_unlock/easy_unlock_types.h
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chromeos/components/proximity_auth/unlock_manager_impl.cc
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chromeos/components/proximity_auth/unlock_manager_impl.h
[modify] https://crrev.com/82e651013841764ef88074906f6688b619ab0c80/chromeos/components/proximity_auth/unlock_manager_impl_unittest.cc

Project Member

Comment 170 by bugdroid1@chromium.org, Jun 28 2018

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

commit d483a82751d7df6313b4ef007c9f04db49ca4614
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Thu Jun 28 00:32:05 2018

[CrOS Multidevice] Integrate SecureChannel API with ConnectionPreserver.

Uses SecureChannelClient to keep a connection open with the appropriate
remote device. This change also requires slightly tweaking HostScannerOperation
to delay unregistering the remote device in question until ConnectionPreserver
has fully had a chance to communicate with the Mojo SecureChannel service.

Bug: 824568, 752273, 855813
Change-Id: I6c8c915ab1efbae9c77e08c9c9b2406a5b4de2ad
Reviewed-on: https://chromium-review.googlesource.com/1117558
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570979}
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/components/tether/connection_preserver_impl.cc
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/components/tether/connection_preserver_impl.h
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/components/tether/connection_preserver_impl_unittest.cc
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/components/tether/host_scanner_operation.cc
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/components/tether/host_scanner_operation.h
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/components/tether/host_scanner_operation_unittest.cc
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/components/tether/synchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.cc
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/services/secure_channel/public/cpp/client/fake_client_channel.h
[modify] https://crrev.com/d483a82751d7df6313b4ef007c9f04db49ca4614/chromeos/services/secure_channel/public/cpp/client/fake_secure_channel_client.h

Project Member

Comment 171 by bugdroid1@chromium.org, Jun 28 2018

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

commit 87cb87ca124b303f0ad60a304c1fdf6ba7b53ed6
Author: Kyle Qian <kyleqian@google.com>
Date: Thu Jun 28 00:56:37 2018

[CrOS Multidevice] Keep RemoteDeviceCache up-to-date.

Previously, RemoteDeviceCache would blindly overwrite any existing
device with a new one when SetRemoteDevices() was called. However, this
can cause subtle bugs in the case where SetRemoteDevices() is called
multiple times with devices possessing identical device IDs.
Specifically, if a device with stale information replaces a
more-recently-updated device, this can cause stale fields to replace
new ones.

This CL modifies RemoteDeviceCache by only updating the device residing
in the cache when the incoming device has a last update timestamp that
is more recent than the timestamp of the existing entry.

Bug: 856746, 824568, 752273
Change-Id: I5a178ac8d360efef7ceb1c6dae7478484978515e
Reviewed-on: https://chromium-review.googlesource.com/1117305
Commit-Queue: Kyle Qian <kyleqian@google.com>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570987}
[modify] https://crrev.com/87cb87ca124b303f0ad60a304c1fdf6ba7b53ed6/chromeos/services/device_sync/public/cpp/device_sync_client_impl_unittest.cc
[modify] https://crrev.com/87cb87ca124b303f0ad60a304c1fdf6ba7b53ed6/components/cryptauth/remote_device_cache.cc
[modify] https://crrev.com/87cb87ca124b303f0ad60a304c1fdf6ba7b53ed6/components/cryptauth/remote_device_cache_unittest.cc

Project Member

Comment 172 by bugdroid1@chromium.org, Jun 29 2018

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

commit 6c628af56763408031cf1832f70dbcf374ab3ada
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Fri Jun 29 17:39:18 2018

[CrOS Multidevice] Tether: time out if SecureChannel does not create connection in time.

SecureChannel will simply listen forever, waiting for a connection to the specified remote
device. MessageTransferOperation now uses a new timer that times out if a connection is
not created in time.

Bug: 824568, 752273, 854885
Change-Id: Ia37cf1ec55e60ae3e7e386cdf40fdd9486ab6cdf
Reviewed-on: https://chromium-review.googlesource.com/1117899
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571516}
[modify] https://crrev.com/6c628af56763408031cf1832f70dbcf374ab3ada/chromeos/components/tether/connect_tethering_operation.cc
[modify] https://crrev.com/6c628af56763408031cf1832f70dbcf374ab3ada/chromeos/components/tether/connect_tethering_operation.h
[modify] https://crrev.com/6c628af56763408031cf1832f70dbcf374ab3ada/chromeos/components/tether/connect_tethering_operation_unittest.cc
[modify] https://crrev.com/6c628af56763408031cf1832f70dbcf374ab3ada/chromeos/components/tether/message_transfer_operation.cc
[modify] https://crrev.com/6c628af56763408031cf1832f70dbcf374ab3ada/chromeos/components/tether/message_transfer_operation.h
[modify] https://crrev.com/6c628af56763408031cf1832f70dbcf374ab3ada/chromeos/components/tether/message_transfer_operation_unittest.cc

Project Member

Comment 173 by bugdroid1@chromium.org, Jul 10

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

commit 870aa64f1d933c08dfac517b90a41c83281e1007
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Jul 10 18:38:39 2018

[CrOS Multidevice] Clean up EasyUnlockService unlock key persistance logic.

This CL address comments left over from a CL [1] which were not addressed.

The changes are general cleanup and documentation clarification.

1) https://chromium-review.googlesource.com/c/chromium/src/+/1112902

R=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: Ic23bcffe23188f9c7146a17ece4e352595c275c8
Reviewed-on: https://chromium-review.googlesource.com/1129839
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573829}
[modify] https://crrev.com/870aa64f1d933c08dfac517b90a41c83281e1007/chrome/browser/chromeos/BUILD.gn
[modify] https://crrev.com/870aa64f1d933c08dfac517b90a41c83281e1007/chrome/browser/chromeos/login/easy_unlock/easy_unlock_get_keys_operation.cc
[modify] https://crrev.com/870aa64f1d933c08dfac517b90a41c83281e1007/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_manager.cc
[add] https://crrev.com/870aa64f1d933c08dfac517b90a41c83281e1007/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.cc
[add] https://crrev.com/870aa64f1d933c08dfac517b90a41c83281e1007/chrome/browser/chromeos/login/easy_unlock/easy_unlock_key_names.h
[modify] https://crrev.com/870aa64f1d933c08dfac517b90a41c83281e1007/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/870aa64f1d933c08dfac517b90a41c83281e1007/chromeos/components/proximity_auth/unlock_manager_impl.h

Project Member

Comment 174 by bugdroid1@chromium.org, Jul 10

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

commit a8cdd7ca02b9c445c5e1b065275d813207475290
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Jul 10 22:26:14 2018

Remove unhelful debug log in ProximityMonitor.

This log is not informative, and spams dozens of lines in the logs.

R=khorimoto@chromium.org

Bug: 824568, 752273
Change-Id: Ied74c5747977719a63a698fb687f0415d8a5bc3b
Reviewed-on: https://chromium-review.googlesource.com/1102980
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573951}
[modify] https://crrev.com/a8cdd7ca02b9c445c5e1b065275d813207475290/chromeos/components/proximity_auth/proximity_monitor_impl.cc

Project Member

Comment 175 by bugdroid1@chromium.org, Jul 11

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

commit 8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Wed Jul 11 21:48:03 2018

[CrOS Multidevice] Migrate usage of unlock_key and mobile_hotspot_supported to software features.

This removes usage of ExternalDeviceInfo's unlock_key and mobile_hotspot_supported booleans,
and completely removes RemoteDevice's unlock_key and mobile_hotspot_supported boolean fields,
in favor of their software features fields. This is in anticipation of all Better Together
features using the new software features paradigm.

There are special considerations in CryptAuthDeviceManager that account for the migration
process to this new paradigm:
1) Old devices saved to prefs before this CL lands are opened from prefs by ignoring
their deprecated boolean fields, and migrating them to software features.
2) The CryptAuth server does not yet serve devices with their software features populated.
CryptAuthDeviceManager now recognizes if that is the case, and appropriately migrates the
incoming device to not use the deprecated booleans, and instead populate its software features.

R=jhawkins@chromium.org

Bug: 824568, 752273
Change-Id: I8dceb7317410e5a9bc95055ac7ce3514fc26660e
Reviewed-on: https://chromium-review.googlesource.com/1080268
Reviewed-by: James Hawkins <jhawkins@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#574350}
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_regular.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chrome/browser/chromeos/login/easy_unlock/easy_unlock_service_signin_chromeos.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chromeos/components/proximity_auth/webui/proximity_auth_webui_handler.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chromeos/components/tether/tether_host_fetcher_impl.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chromeos/components/tether/tether_host_fetcher_impl_unittest.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chromeos/services/device_sync/public/mojom/device_sync.mojom
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chromeos/services/device_sync/public/mojom/device_sync_mojom_traits.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chromeos/services/device_sync/public/mojom/device_sync_mojom_traits.h
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/chromeos/services/device_sync/public/mojom/device_sync_mojom_traits_unittest.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/cryptauth_device_manager_impl.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/cryptauth_device_manager_impl_unittest.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/remote_device.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/remote_device.h
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/remote_device_loader.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/remote_device_loader_unittest.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/remote_device_ref.h
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/remote_device_ref_unittest.cc
[modify] https://crrev.com/8bf7eddac4f6b78495d8728aa0cd1c268eb8bdd7/components/cryptauth/remote_device_test_util.cc

Status: Fixed (was: Started)
Project Member

Comment 177 by bugdroid1@chromium.org, Sep 18

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

commit 9f994f436c5f6994446afcefe21c675814452ae2
Author: Ryan Hansberry <hansberry@chromium.org>
Date: Tue Sep 18 19:37:56 2018

[CrOS Multidevice] Do not initialize BleConnectionManager if MultiDevice APIs are active.

In the process, this also adapts HostConnectionMetricsLogger to use the MultiDevice APIs
to properly log to the "Background" versions of its metrics.

Bug: 824568, 752273, 854885, 857302
Change-Id: I77fc52b3d07d903fe61ac62de2620216984d28de
Reviewed-on: https://chromium-review.googlesource.com/1117897
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592146}
[modify] https://crrev.com/9f994f436c5f6994446afcefe21c675814452ae2/chromeos/components/tether/asynchronous_shutdown_object_container_impl.cc
[modify] https://crrev.com/9f994f436c5f6994446afcefe21c675814452ae2/chromeos/components/tether/host_connection_metrics_logger.cc
[modify] https://crrev.com/9f994f436c5f6994446afcefe21c675814452ae2/chromeos/components/tether/host_connection_metrics_logger.h
[modify] https://crrev.com/9f994f436c5f6994446afcefe21c675814452ae2/chromeos/components/tether/host_connection_metrics_logger_unittest.cc

Showing comments 78 - 177 of 177 Older

Sign in to add a comment