chromeos: adds AshDisplayController

and wires up ChromeConsoleServiceProviderDelegate to use it. I will
get rid of MusConsoleServiceProviderDelegate soon, but can't until
simplified display management is enabled for --mash.

BUG=718860
TEST=none

Change-Id: I055806ab5f85238ad8b69e87143ea4e795fafa07
Reviewed-on: https://chromium-review.googlesource.com/522545
Commit-Queue: Scott Violet <[email protected]>
Reviewed-by: kylechar <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Reviewed-by: Dan Erat <[email protected]>
Cr-Commit-Position: refs/heads/master@{#476881}
diff --git a/ash/mojo_interface_factory.cc b/ash/mojo_interface_factory.cc
index c8eab24b..78ea5f4c 100644
--- a/ash/mojo_interface_factory.cc
+++ b/ash/mojo_interface_factory.cc
@@ -8,6 +8,7 @@
 
 #include "ash/accelerators/accelerator_controller.h"
 #include "ash/cast_config_controller.h"
+#include "ash/display/ash_display_controller.h"
 #include "ash/login/lock_screen_controller.h"
 #include "ash/media_controller.h"
 #include "ash/new_window_controller.h"
@@ -44,6 +45,12 @@
   Shell::Get()->app_list()->BindRequest(std::move(request));
 }
 
+void BindAshDisplayControllerRequestOnMainThread(
+    const service_manager::BindSourceInfo& source_info,
+    mojom::AshDisplayControllerRequest request) {
+  Shell::Get()->ash_display_controller()->BindRequest(std::move(request));
+}
+
 void BindCastConfigOnMainThread(
     const service_manager::BindSourceInfo& source_info,
     mojom::CastConfigRequest request) {
@@ -135,6 +142,9 @@
       main_thread_task_runner);
   registry->AddInterface(base::Bind(&BindAppListRequestOnMainThread),
                          main_thread_task_runner);
+  registry->AddInterface(
+      base::Bind(&BindAshDisplayControllerRequestOnMainThread),
+      main_thread_task_runner);
   registry->AddInterface(base::Bind(&BindCastConfigOnMainThread),
                          main_thread_task_runner);
   registry->AddInterface(