Migrate cros_display_config.mojom to the new Mojo types

Convert the implementation and all users of the
ash::mojom::CrosDisplayConfigController and CrosDisplayConfigObserver
interfaces.

Bug: 955171
Change-Id: Ib5b8d6fdf20674ac00efa97c13c511a4864b5229
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1837620
Commit-Queue: Henrique Ferreiro <[email protected]>
Reviewed-by: Oksana Zhuravlova <[email protected]>
Reviewed-by: Emily Stark <[email protected]>
Reviewed-by: Denis Kuznetsov <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Cr-Commit-Position: refs/heads/master@{#705903}
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index 72c0f76..4bb0528 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -766,6 +766,7 @@
     "//components/safe_browsing/db:util",
     "//components/signin/core/browser",
     "//content/public/browser",
+    "//mojo/public/cpp/bindings",
   ]
   deps = [
     "//apps",
diff --git a/chrome/browser/extensions/system_display/display_info_provider_chromeos.cc b/chrome/browser/extensions/system_display/display_info_provider_chromeos.cc
index babafca..cd55a8426 100644
--- a/chrome/browser/extensions/system_display/display_info_provider_chromeos.cc
+++ b/chrome/browser/extensions/system_display/display_info_provider_chromeos.cc
@@ -274,7 +274,8 @@
 DisplayInfoProviderChromeOS::DisplayInfoProviderChromeOS(
     service_manager::Connector* connector) {
   CHECK(connector);
-  connector->BindInterface(ash::mojom::kServiceName, &cros_display_config_);
+  connector->Connect(ash::mojom::kServiceName,
+                     cros_display_config_.BindNewPipeAndPassReceiver());
 }
 
 DisplayInfoProviderChromeOS::~DisplayInfoProviderChromeOS() = default;
diff --git a/chrome/browser/extensions/system_display/display_info_provider_chromeos.h b/chrome/browser/extensions/system_display/display_info_provider_chromeos.h
index 98b5ad1..03c0cc4 100644
--- a/chrome/browser/extensions/system_display/display_info_provider_chromeos.h
+++ b/chrome/browser/extensions/system_display/display_info_provider_chromeos.h
@@ -13,6 +13,7 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "extensions/browser/api/system_display/display_info_provider.h"
+#include "mojo/public/cpp/bindings/remote.h"
 
 namespace service_manager {
 class Connector;
@@ -74,7 +75,7 @@
                             ash::mojom::TouchCalibrationPtr calibration,
                             ErrorCallback callback);
 
-  ash::mojom::CrosDisplayConfigControllerPtr cros_display_config_;
+  mojo::Remote<ash::mojom::CrosDisplayConfigController> cros_display_config_;
   std::string touch_calibration_target_id_;
   base::WeakPtrFactory<DisplayInfoProviderChromeOS> weak_ptr_factory_{this};
 
diff --git a/chrome/browser/extensions/system_display/display_info_provider_chromeos_unittest.cc b/chrome/browser/extensions/system_display/display_info_provider_chromeos_unittest.cc
index a601c21..7c0c202c 100644
--- a/chrome/browser/extensions/system_display/display_info_provider_chromeos_unittest.cc
+++ b/chrome/browser/extensions/system_display/display_info_provider_chromeos_unittest.cc
@@ -6,6 +6,8 @@
 
 #include <stdint.h>
 
+#include <utility>
+
 #include "ash/display/cros_display_config.h"
 #include "ash/display/screen_orientation_controller.h"
 #include "ash/display/screen_orientation_controller_test_api.h"
@@ -23,6 +25,7 @@
 #include "chrome/test/base/chrome_ash_test_base.h"
 #include "content/public/test/test_service_manager_context.h"
 #include "extensions/common/api/system_display.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "services/service_manager/public/cpp/connector.h"
 #include "ui/display/display.h"
 #include "ui/display/display_layout.h"
@@ -73,7 +76,7 @@
         service_manager::ServiceFilter::ByName(ash::mojom::kServiceName),
         ash::mojom::CrosDisplayConfigController::Name_,
         base::BindRepeating(&DisplayInfoProviderChromeosTest::
-                                AddCrosDisplayConfigControllerBinding,
+                                AddCrosDisplayConfigControllerReceiver,
                             base::Unretained(this)));
     // Provide the local connector to DisplayInfoProviderChromeOS.
     DisplayInfoProvider::InitializeForTesting(
@@ -85,10 +88,11 @@
     EXPECT_FALSE(ash::TabletMode::Get()->InTabletMode());
   }
 
-  void AddCrosDisplayConfigControllerBinding(
+  void AddCrosDisplayConfigControllerReceiver(
       mojo::ScopedMessagePipeHandle handle) {
-    cros_display_config_->BindRequest(
-        ash::mojom::CrosDisplayConfigControllerRequest(std::move(handle)));
+    cros_display_config_->BindReceiver(
+        mojo::PendingReceiver<ash::mojom::CrosDisplayConfigController>(
+            std::move(handle)));
   }
 
   float GetDisplayZoom(int64_t display_id) {