Use FileDescriptorWatcher in AlarmTimer.

This CL is identical to
which was reverted % fixes to avoid memory leaks in tests.

FileDescriptorWatcher is a new API that replaces

This CL also gets rid of the base::Thread created in the anonymous
namespace of The FileDescriptorWatcher
API is supported by every TaskScheduler thread. Very soon, most
tasks in Chrome will run in TaskScheduler. Therefore, there is no
reason to create a base::Thread to allow AlarmTimer to be used from
threads that don't support the FileDescriptorWatcher API.


Cr-Original-Commit-Position: refs/heads/master@{#424471}
Cr-Mirrored-Commit: 51dbb9577b6a8194f025d790f581c10559f3ee2a
3 files changed