[CrOS MultiDevice] Convert to multidevice::SoftwareFeature/BeaconSeed.
Before this CL, RemoteDevice and related classes directly used CryptAuth
proto enums/messages for SoftwareFeature and BeaconSeed fields. This was
problematic because:
(1) RemoteDevice has been moved to a common/shared location and is now
meant to be independent of any one service. Thus, it no longer
makes sense for it to contain fields that are implementation
details of the DeviceSync service.
(2) The CryptAuth SoftwareFeature enum included an UNKNOWN_FEATURE
enum value, but this value was only meant to be used as a sentinel
value while communicating with the CryptAuth server. Since we
previously referenced the cryptauth::SoftwareFeature enum
directly, it was possible for RemoteDevice objects to have a state
for UNKNOWN_FEATURE, which does not make sense in this context.
(3) The CryptAuth SoftwareFeature enum referred to feature names using
outdated and/or incorrect names.
(4) CryptAuth protos do not define an operator<<() function, so it was
possible to log a cryptauth::SoftwareFeature as a number instead
of as a user-readable description. This led to issues such as
https://crbug.com/906836.
A follow-up CL will move the RemoteDevice Mojo definition from
device_sync.mojom (i.e., the DeviceSync-specific Mojo file) to a new
multidevice.mojom file meant to be referenced by other Mojo definitions.
Change-Id: Iccf4997cb5a1c6f4c34e7962c7c993f74f8aa8f0
Bug: 912743
Reviewed-on: https://chromium-review.googlesource.com/c/1362214
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614598}Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .