Support display of multiple controllers in VRShell

Updates the VR UI model to allow an array of controllers, each of which
will be rendered as part of the UI. This update introduces a concept of
a "primary controller" (largely for porting convenience) that is
currently always the controller at index 0 of the array. We may want to
improve the logic around that in future CLs.

Bug: 873274
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:linux_vr;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I1a91f6550f4d051d35d872118c822f1b6716c614
Reviewed-on: https://chromium-review.googlesource.com/c/1171519
Commit-Queue: Brandon Jones <[email protected]>
Reviewed-by: Christopher Grant <[email protected]>
Cr-Commit-Position: refs/heads/master@{#612778}
diff --git a/chrome/browser/vr/ui_interface.h b/chrome/browser/vr/ui_interface.h
index ccd64a5..dec99a7 100644
--- a/chrome/browser/vr/ui_interface.h
+++ b/chrome/browser/vr/ui_interface.h
@@ -63,8 +63,9 @@
       float width_percentage,
       float height_percentage) = 0;
   virtual void OnPause() = 0;
-  virtual void OnControllerUpdated(const ControllerModel& controller_model,
-                                   const ReticleModel& reticle_model) = 0;
+  virtual void OnControllersUpdated(
+      const std::vector<ControllerModel>& controller_models,
+      const ReticleModel& reticle_model) = 0;
   virtual void OnProjMatrixChanged(const gfx::Transform& proj_matrix) = 0;
   virtual void AcceptDoffPromptForTesting() = 0;
   virtual gfx::Point3F GetTargetPointForTesting(