[Extensions UI] Remove ToolbarActionsModel::CreateAction[S|ForId]()

Remove ToolbarActionsModel::CreateActions() and
ToolbarActionsModel::CreateActionForId(). These were used to return
an ExtensionActionViewController for a given ID; however, the callers
(the extensions menu and extensions container) can easily create these
themselves. This was only done for historical reasons (when we had
"Chrome Actions" for things like media router). Now, there's no
reason for this routing, or for the model to have knowledge of the
views.

Bug: 1197766
Change-Id: Idfdef6d1ff53d131b942b4db8be7ef51d2ada153
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2845794
Reviewed-by: Peter Boström <[email protected]>
Commit-Queue: Devlin <[email protected]>
Cr-Commit-Position: refs/heads/master@{#877214}
diff --git a/chrome/browser/ui/extensions/extension_action_view_controller.h b/chrome/browser/ui/extensions/extension_action_view_controller.h
index d32ec0b..39d74808 100644
--- a/chrome/browser/ui/extensions/extension_action_view_controller.h
+++ b/chrome/browser/ui/extensions/extension_action_view_controller.h
@@ -13,6 +13,8 @@
 #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h"
 #include "extensions/browser/extension_host.h"
 #include "extensions/browser/extension_host_observer.h"
+#include "extensions/common/extension.h"
+#include "extensions/common/extension_id.h"
 #include "ui/gfx/image/image.h"
 
 class Browser;
@@ -43,11 +45,12 @@
   // The different options for showing a popup.
   enum PopupShowAction { SHOW_POPUP, SHOW_POPUP_AND_INSPECT };
 
-  ExtensionActionViewController(const extensions::Extension* extension,
-                                Browser* browser,
-                                extensions::ExtensionAction* extension_action,
-                                ExtensionsContainer* extensions_container,
-                                bool in_overflow_mode);
+  static std::unique_ptr<ExtensionActionViewController> Create(
+      const extensions::ExtensionId& extension_id,
+      Browser* browser,
+      ExtensionsContainer* extensions_container,
+      bool in_overflow_mode);
+
   ~ExtensionActionViewController() override;
 
   // ToolbarActionViewController:
@@ -101,6 +104,15 @@
   bool HasBeenBlockedForTesting(content::WebContents* web_contents) const;
 
  private:
+  // New instances should be instantiated with Create().
+  ExtensionActionViewController(
+      scoped_refptr<const extensions::Extension> extension,
+      Browser* browser,
+      extensions::ExtensionAction* extension_action,
+      extensions::ExtensionRegistry* extension_registry,
+      ExtensionsContainer* extensions_container,
+      bool in_overflow_mode);
+
   // ExtensionActionIconFactory::Observer:
   void OnIconUpdated() override;