Use FileDescriptorWatcher in AlarmTimer.

This CL is identical to https://codereview.chromium.org/2398753003/
which was reverted % fixes to avoid memory leaks in tests.

FileDescriptorWatcher is a new API that replaces
MessageLoopForIO::WatchFileDescriptor.

This CL also gets rid of the base::Thread created in the anonymous
namespace of alarm_timer_chromeos.cc. 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.

BUG=645114

Review-Url: https://codereview.chromium.org/2405503002
Cr-Original-Commit-Position: refs/heads/master@{#424471}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 51dbb9577b6a8194f025d790f581c10559f3ee2a
3 files changed