Frame throttling for Android apps in ChromeOS.

Throttling Android apps from ash through wayland protocol. This is done
by manipulating the vsync updates intervals in exo. Because vsync is
global for all android apps, we don't apply throttle if at least one
android app shouldn't be throttled.

Bug: 1107201
Change-Id: I39f761f9460120928687058732942739bb26c88b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2389326
Reviewed-by: kylechar <[email protected]>
Reviewed-by: Mitsuru Oshima <[email protected]>
Commit-Queue: Jun Liu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#816831}
diff --git a/components/exo/BUILD.gn b/components/exo/BUILD.gn
index 3c27ddd..4d3aa94 100644
--- a/components/exo/BUILD.gn
+++ b/components/exo/BUILD.gn
@@ -189,6 +189,8 @@
   testonly = true
 
   sources = [
+    "mock_vsync_timing_observer.cc",
+    "mock_vsync_timing_observer.h",
     "test/exo_test_base_views.cc",
     "test/exo_test_base_views.h",
     "test/exo_test_suite_aura.cc",
@@ -294,6 +296,7 @@
       "toast_surface_unittest.cc",
       "touch_unittest.cc",
       "ui_lock_controller_unittest.cc",
+      "wm_helper_chromeos_unittest.cc",
       "xdg_shell_surface_unittest.cc",
     ]