Index: chrome/browser/ui/extensions/extension_action_platform_delegate.h |
diff --git a/chrome/browser/ui/extensions/extension_action_platform_delegate.h b/chrome/browser/ui/extensions/extension_action_platform_delegate.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..19618e348d3f45bcdf7a6dbe1df0d4642abca629 |
--- /dev/null |
+++ b/chrome/browser/ui/extensions/extension_action_platform_delegate.h |
@@ -0,0 +1,51 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// 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_EXTENSION_ACTION_PLATFORM_DELEGATE_H_ |
+#define CHROME_BROWSER_UI_EXTENSIONS_EXTENSION_ACTION_PLATFORM_DELEGATE_H_ |
+ |
+#include "chrome/browser/ui/extensions/extension_action_view_controller.h" |
+ |
+class GURL; |
+ |
+class ExtensionActionPlatformDelegate { |
+ public: |
+ virtual ~ExtensionActionPlatformDelegate() {} |
+ |
+ // Returns a created ExtensionActionPlatformDelegate. This is defined in the |
+ // platform-specific implementation for the class. |
+ static scoped_ptr<ExtensionActionPlatformDelegate> Create( |
+ ExtensionActionViewController* controller); |
+ |
+ // The following are forwarded from ToolbarActionViewController. See that |
+ // class for the definitions. |
+ virtual gfx::NativeView GetPopupNativeView() = 0; |
+ virtual bool IsMenuRunning() const = 0; |
+ virtual void RegisterCommand() = 0; |
+ |
+ // Called once the delegate is set, in order to do any extra initialization. |
+ virtual void OnDelegateSet() = 0; |
+ |
+ // Returns true if there is currently a popup for this extension action. |
+ virtual bool IsShowingPopup() const = 0; |
+ |
+ // Closes the active popup (whether it was this action's popup or not). |
+ virtual void CloseActivePopup() = 0; |
+ |
+ // Closes this action's popup. This will only be called if the popup is |
+ // showing. |
+ virtual void CloseOwnPopup() = 0; |
+ |
+ // Shows the popup for the extension action, given the associated |popup_url|. |
+ // |grant_tab_permissions| is true if active tab permissions should be given |
+ // to the extension; this is only true if the popup is opened through a user |
+ // action. |
+ // Returns true if a popup is successfully shown. |
+ virtual bool ShowPopupWithUrl( |
+ ExtensionActionViewController::PopupShowAction show_action, |
+ const GURL& popup_url, |
+ bool grant_tab_permissions) = 0; |
+}; |
+ |
+#endif // CHROME_BROWSER_UI_EXTENSIONS_EXTENSION_ACTION_PLATFORM_DELEGATE_H_ |