The changes are as follows:
1. InputDeviceManager becomes a thread-local singleton instead of a global
singleton. UI Service instantiates DeviceDataManager, which is the service-
side implementation of InputDeviceManager, while the browser uses
InputDeviceClient, which is the client-side implementation.
2. PlatformEventSource also becomes a thread-local singleton. This is to prevent
ash and the browser from executing code on the UI Service's thread by
registering PlatformEventObservers (e.g. via UserActivityDetector). In the
futurer we may need a client-side implementation of PlatformEventSource.
3. GPU Service checks if a PowerMonitor singleton exists before creating one.
This is temporary until GPU Service runs in a separate process from the UI
Service. (crbug.com/609317).
BUG=722527
Review-Url: https://codereview.chromium.org/2978873002
Cr-Commit-Position: refs/heads/master@{#486534}
6 files changed