See http://go/nearby-cros. This is a meta-bug for CLs implementing this feature.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/0793930946ac0805c9e594d82b7e39197925ca33 commit 0793930946ac0805c9e594d82b7e39197925ca33 Author: Kyle Qian <kyleqian@google.com> Date: Mon Jul 09 19:43:27 2018 Implement HashUtils for CrOS Nearby. This CL includes the implementation class for the abstract class HashUtils defined in the Nearby library. It implements a string-based interface for MD5 and SHA-256 hashing. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party (in-progress CL: https://chromium-review.googlesource.com/c/chromium/src/+/1113198). Bug: 861813 Change-Id: I41dc7d74d5913ae8168041c82d3cacf70628ce19 Reviewed-on: https://chromium-review.googlesource.com/1119492 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: Steven Bennetts <stevenjb@chromium.org> Reviewed-by: Adam Langley <agl@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#573409} [modify] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/BUILD.gn [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/BUILD.gn [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/DEPS [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/OWNERS [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/hash_utils_impl.cc [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/hash_utils_impl.h [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/hash_utils_impl_unittests.cc [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/library/BUILD.gn [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/library/byte_array.h [add] https://crrev.com/0793930946ac0805c9e594d82b7e39197925ca33/chromeos/components/nearby/library/hash_utils.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1d94c608a49651a7f5073360ec8e7f319b46a2c5 commit 1d94c608a49651a7f5073360ec8e7f319b46a2c5 Author: Kyle Qian <kyleqian@google.com> Date: Tue Jul 17 18:57:40 2018 Implement CountDownLatch for CrOS Nearby This CL includes the implementation class for the abstract class CountDownLatch defined in the Nearby library. It is a synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party (in-progress CL: https://chromium-review.googlesource.com/c/chromium/src/+/1113198). Bug: 861813 Change-Id: I8d018e16a83760fae23acb0f2f3d92dee88ce9bc Reviewed-on: https://chromium-review.googlesource.com/1123017 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#575737} [modify] https://crrev.com/1d94c608a49651a7f5073360ec8e7f319b46a2c5/chromeos/components/nearby/BUILD.gn [add] https://crrev.com/1d94c608a49651a7f5073360ec8e7f319b46a2c5/chromeos/components/nearby/count_down_latch_impl.cc [add] https://crrev.com/1d94c608a49651a7f5073360ec8e7f319b46a2c5/chromeos/components/nearby/count_down_latch_impl.h [add] https://crrev.com/1d94c608a49651a7f5073360ec8e7f319b46a2c5/chromeos/components/nearby/count_down_latch_impl_unittests.cc [add] https://crrev.com/1d94c608a49651a7f5073360ec8e7f319b46a2c5/chromeos/components/nearby/library/count_down_latch.h [add] https://crrev.com/1d94c608a49651a7f5073360ec8e7f319b46a2c5/chromeos/components/nearby/library/exception.cc [add] https://crrev.com/1d94c608a49651a7f5073360ec8e7f319b46a2c5/chromeos/components/nearby/library/exception.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/017a1bcf5cc6b8f82f389fd08c3754508c486c20 commit 017a1bcf5cc6b8f82f389fd08c3754508c486c20 Author: Kyle Qian <kyleqian@google.com> Date: Wed Jul 18 18:30:41 2018 Update CountDownLatchImpl to Match Specifications This CL changes the constructor for CountDownLatchImpl to use a DCHECK to disallow initialization counts less than 0. An initialization count of exactly 0 is still allowed, in which case countDown() will never Signal() its WaitableEvent, and all calls to Await() will immediately return. Bug: 861813 Change-Id: Ic7807544c792be010f46ca58391a02f64ab1638e Reviewed-on: https://chromium-review.googlesource.com/1141101 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: Gabriel Charette <gab@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Ryan Hansberry <hansberry@chromium.org> Cr-Commit-Position: refs/heads/master@{#576144} [modify] https://crrev.com/017a1bcf5cc6b8f82f389fd08c3754508c486c20/chromeos/components/nearby/count_down_latch_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b3562b267160bfba6e97fcf98b0a68c1f1f5d23c commit b3562b267160bfba6e97fcf98b0a68c1f1f5d23c Author: Kyle Qian <kyleqian@google.com> Date: Thu Jul 19 21:52:29 2018 Implement SettableFuture for CrOS Nearby. This CL includes a concrete implementation for the abstract class SettableFuture defined in the Nearby library. A SettableFuture is a type of Future whose result can be set, and a Future represents the result of an asynchronous computation. No concrete implementation of the abstract class Future will be provided, as it is expected that the provided SettableFuture implementation can be used as a Future as well. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party (in-progress CL: https://chromium-review.googlesource.com/c/chromium/src/+/1113198). Bug: 861813 Change-Id: I41808a7a82a03e72d30b5221a13fc9014ba32cf3 Reviewed-on: https://chromium-review.googlesource.com/1137095 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: Ryan Hansberry <hansberry@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#576648} [modify] https://crrev.com/b3562b267160bfba6e97fcf98b0a68c1f1f5d23c/chromeos/components/nearby/BUILD.gn [add] https://crrev.com/b3562b267160bfba6e97fcf98b0a68c1f1f5d23c/chromeos/components/nearby/library/future.h [add] https://crrev.com/b3562b267160bfba6e97fcf98b0a68c1f1f5d23c/chromeos/components/nearby/library/settable_future.h [add] https://crrev.com/b3562b267160bfba6e97fcf98b0a68c1f1f5d23c/chromeos/components/nearby/settable_future_impl.h [add] https://crrev.com/b3562b267160bfba6e97fcf98b0a68c1f1f5d23c/chromeos/components/nearby/settable_future_impl_unittests.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ffafde96b302d7eadbade41d463541adaec0232c commit ffafde96b302d7eadbade41d463541adaec0232c Author: Kyle Qian <kyleqian@google.com> Date: Thu Jul 19 23:54:37 2018 Implement ThreadUtils for CrOS Nearby. This CL includes a concrete implementation for the abstract class ThreadUtils defined in the Nearby library. This class currently only contains the method sleep(), which causes the currently executing thread to sleep for a specified number of milliseconds. This CL also adds missing file entries into nearby/library/BUILD.gn. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party (in-progress CL: https://chromium-review.googlesource.com/c/chromium/src/+/1113198). Bug: 861813 Change-Id: I8c78673bc42ee38b4667fd0fbc7118ee422b3393 Reviewed-on: https://chromium-review.googlesource.com/1144417 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#576701} [modify] https://crrev.com/ffafde96b302d7eadbade41d463541adaec0232c/chromeos/components/nearby/BUILD.gn [modify] https://crrev.com/ffafde96b302d7eadbade41d463541adaec0232c/chromeos/components/nearby/library/BUILD.gn [add] https://crrev.com/ffafde96b302d7eadbade41d463541adaec0232c/chromeos/components/nearby/library/thread_utils.h [add] https://crrev.com/ffafde96b302d7eadbade41d463541adaec0232c/chromeos/components/nearby/thread_utils_impl.cc [add] https://crrev.com/ffafde96b302d7eadbade41d463541adaec0232c/chromeos/components/nearby/thread_utils_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5a103d4af878aa956d0818317ef74ad146109176 commit 5a103d4af878aa956d0818317ef74ad146109176 Author: Kyle Qian <kyleqian@google.com> Date: Tue Jul 31 00:35:53 2018 Implement SystemClock for CrOS Nearby. This CL includes a concrete implementation for the abstract class SystemClock defined in the Nearby library. SystemClock currently contains a single method elapsedRealtime(), which is expected to return time in milliseconds since boot, including time spent in states such as suspension (closed lid). The implementation in this CL, however, does not include time spent in suspension due to a current limitation of the POSIX implementation of base::TimeTicks::Now(). See https://crbug.com/166153 for info. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party. Bug: 861813 Change-Id: I194880c75c4a8ba3afa37b6b3c916485c065f20f Reviewed-on: https://chromium-review.googlesource.com/1150822 Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Ryan Hansberry <hansberry@chromium.org> Commit-Queue: Kyle Qian <kyleqian@google.com> Cr-Commit-Position: refs/heads/master@{#579255} [modify] https://crrev.com/5a103d4af878aa956d0818317ef74ad146109176/chromeos/components/nearby/BUILD.gn [modify] https://crrev.com/5a103d4af878aa956d0818317ef74ad146109176/chromeos/components/nearby/library/BUILD.gn [add] https://crrev.com/5a103d4af878aa956d0818317ef74ad146109176/chromeos/components/nearby/library/system_clock.h [add] https://crrev.com/5a103d4af878aa956d0818317ef74ad146109176/chromeos/components/nearby/system_clock_impl.cc [add] https://crrev.com/5a103d4af878aa956d0818317ef74ad146109176/chromeos/components/nearby/system_clock_impl.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/477ab86dbea847178fa77c84980be44d840c50d8 commit 477ab86dbea847178fa77c84980be44d840c50d8 Author: Kyle Qian <kyleqian@google.com> Date: Mon Aug 20 21:21:35 2018 Implement AtomicBoolean and AtomicReference for CrOS Nearby. This CL includes concrete implementations for the abstract classes AtomicBoolean and AtomicReference defined in the Nearby library. An AtomicBoolean is a boolean value that may be updated atomically, and an AtomicReference is an object reference that may be updated atomically. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party (in-progress CL: https://chromium-review.googlesource.com/c/chromium/src/+/1113198). Bug: 861813 Change-Id: Ibbda1bd35e3fb63eed0ae492ecebb3d61fa43050 Reviewed-on: https://chromium-review.googlesource.com/1142478 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Ryan Hansberry <hansberry@chromium.org> Cr-Commit-Position: refs/heads/master@{#584564} [modify] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/BUILD.gn [add] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/atomic_boolean_impl.cc [add] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/atomic_boolean_impl.h [add] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/atomic_boolean_impl_unittests.cc [add] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/atomic_reference_impl.h [add] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/atomic_reference_impl_unittests.cc [modify] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/library/BUILD.gn [add] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/library/atomic_boolean.h [add] https://crrev.com/477ab86dbea847178fa77c84980be44d840c50d8/chromeos/components/nearby/library/atomic_reference.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a01e930247040faae5e3dd12e7a84d30230021a7 commit a01e930247040faae5e3dd12e7a84d30230021a7 Author: Kyle Qian <kyleqian@google.com> Date: Sat Aug 25 00:07:42 2018 Implement Lock and ConditionVariable for CrOS Nearby. This CL includes a concrete implementation for the abstract classes Lock (which must be recursive) and ConditionVariable defined in the Nearby library. A related CL was previously abandoned (https://chromium-review.googlesource.com/c/chromium/src/+/1138871) because the Nearby C++ library already includes a DefaultLock and DefaultConditionVariable. However, that CL is being revived as this CL because a Chromium-specific Lock/CV implementation is required. For instance, Chromium requires a ScopedBlockingCall to be instantiated in scopes where blocking calls are made. DefaultConditionVariable does not include an instantiation of ScopedBlockingCall. This implementation of ConditionVariable uses a base::WaitableEvent, which instantiates a ScopedBlockingCall. This CL also includes a Lock implementation that is recursive, which is a requirement of Nearby, but is not originally supported by base::Lock. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party. Bug: 861813 Change-Id: I72660ed302e239d8f38a21728fc715b000057c13 Reviewed-on: https://chromium-review.googlesource.com/1145730 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: François Doray <fdoray@chromium.org> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Cr-Commit-Position: refs/heads/master@{#586070} [modify] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/BUILD.gn [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/condition_variable_impl.cc [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/condition_variable_impl.h [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/condition_variable_impl_unittest.cc [modify] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/library/BUILD.gn [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/library/condition_variable.h [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/library/lock.h [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/lock_base.h [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/lock_impl.cc [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/lock_impl.h [add] https://crrev.com/a01e930247040faae5e3dd12e7a84d30230021a7/chromeos/components/nearby/lock_impl_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3 commit b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3 Author: Kyle Qian <kyleqian@google.com> Date: Sat Aug 25 00:20:43 2018 Implement {Scheduled,MultiThread,SingleThread}Executor for CrOS Nearby. This CL includes concrete implementations for the abstract Executor classes defined in the Nearby library. A ScheduledExecutor allows scheduled tasks that asynchronously execute in the future. A MultiThreadExecutor allows tasks with or without return values to be asynchronously executed in parallel, and a SingleThreadExecutor allows tasks with or without return values to be executed asynchronously, but in sequence relative to each other. Because the actual Nearby library has yet to be merged into the CrOS directory, this CL includes stand-in Nearby abstract classes under the temporary directory //chromeos/components/nearby/library. This directory will be removed after the Nearby library gets imported to //third_party. Bug: 861813 Change-Id: Idc561f2cedea7360eaf6d74940e1be8e56efe7cb Reviewed-on: https://chromium-review.googlesource.com/1154134 Commit-Queue: Kyle Qian <kyleqian@google.com> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org> Reviewed-by: Ryan Hansberry <hansberry@chromium.org> Cr-Commit-Position: refs/heads/master@{#586075} [modify] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/BUILD.gn [modify] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/BUILD.gn [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/callable.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/cancelable.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/config.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/down_cast.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/executor.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/multi_thread_executor.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/runnable.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/scheduled_executor.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/single_thread_executor.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/library/submittable_executor.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/multi_thread_executor_impl.cc [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/multi_thread_executor_impl.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/scheduled_executor_impl.cc [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/scheduled_executor_impl.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/scheduled_executor_impl_unittest.cc [modify] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/settable_future_impl.h [modify] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/settable_future_impl_unittest.cc [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/single_thread_executor_impl.cc [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/single_thread_executor_impl.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/submittable_executor_base.cc [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/submittable_executor_base.h [add] https://crrev.com/b8c7e5df06a5ef4f43874f92f715900eaaa5f8c3/chromeos/components/nearby/submittable_executor_base_unittest.cc
Comment 1 by bugdroid1@chromium.org
, Jul 9