| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_UI_EXTENSIONS_EXTENSIONS_CONTAINER_H_ |
| #define CHROME_BROWSER_UI_EXTENSIONS_EXTENSIONS_CONTAINER_H_ |
| |
| #include <string> |
| |
| #include "chrome/browser/ui/extensions/extension_popup_types.h" |
| |
| class ToolbarActionViewController; |
| |
| // An interface for containers in the toolbar that host extensions. |
| // |
| // This interface provides a minimal set of APIs that allows non-UI code to |
| // interact with the extension toolbar UI. Add new methods to this interface |
| // only if they are called from non-UI code. |
| class ExtensionsContainer { |
| public: |
| // Returns the action for the given |id|, if one exists. |
| virtual ToolbarActionViewController* GetActionForId( |
| const std::string& action_id) = 0; |
| |
| // Hides the actively showing popup, if any. |
| virtual void HideActivePopup() = 0; |
| |
| // Closes the overflow menu, if it was open. Returns whether or not the |
| // overflow menu was closed. |
| virtual bool CloseOverflowMenuIfOpen() = 0; |
| |
| // Shows the popup for the action with |id| as the result of an API call, |
| // returning true if a popup is shown and invoking |callback| upon completion. |
| virtual bool ShowToolbarActionPopupForAPICall(const std::string& action_id, |
| ShowPopupCallback callback) = 0; |
| |
| // Toggle the Extensions menu (as if the user clicked the puzzle piece icon). |
| virtual void ToggleExtensionsMenu() = 0; |
| |
| // Whether there are any Extensions registered with the ExtensionsContainer. |
| virtual bool HasAnyExtensions() const = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_UI_EXTENSIONS_EXTENSIONS_CONTAINER_H_ |