Handle multiple bindings.

Previously caused crash:
binding_state.cc(90)] Check failed: !is_bound(). Attempting to bind
interface that is already bound: ash::mojom::AssistantController.

Bug: b:79936619
Change-Id: I8c2bcb00becf0d9dd637bfe855053e14b21df0bc
Reviewed-on: https://chromium-review.googlesource.com/1064540
Reviewed-by: Xiaohui Chen <[email protected]>
Reviewed-by: Xiyuan Xia <[email protected]>
Commit-Queue: David Black <[email protected]>
Cr-Commit-Position: refs/heads/master@{#559703}
diff --git a/ash/assistant/assistant_controller.cc b/ash/assistant/assistant_controller.cc
index b211597..736a4e5 100644
--- a/ash/assistant/assistant_controller.cc
+++ b/ash/assistant/assistant_controller.cc
@@ -43,8 +43,7 @@
 // AssistantController ---------------------------------------------------------
 
 AssistantController::AssistantController()
-    : assistant_controller_binding_(this),
-      assistant_event_subscriber_binding_(this),
+    : assistant_event_subscriber_binding_(this),
       assistant_bubble_(std::make_unique<AssistantBubble>(this)) {
   AddInteractionModelObserver(this);
   Shell::Get()->highlighter_controller()->AddObserver(this);
@@ -54,13 +53,13 @@
   Shell::Get()->highlighter_controller()->RemoveObserver(this);
   RemoveInteractionModelObserver(this);
 
-  assistant_controller_binding_.Close();
+  assistant_controller_bindings_.CloseAllBindings();
   assistant_event_subscriber_binding_.Close();
 }
 
 void AssistantController::BindRequest(
     mojom::AssistantControllerRequest request) {
-  assistant_controller_binding_.Bind(std::move(request));
+  assistant_controller_bindings_.AddBinding(this, std::move(request));
 }
 
 void AssistantController::SetAssistant(