diff options
author | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-03 00:37:31 +0000 |
---|---|---|
committer | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-03 00:37:31 +0000 |
commit | 1c1c77a5021be0b902240a4f78009a8d8f71d1ac (patch) | |
tree | c1afb46b67de923afaac68340ddb0113b7306193 /chrome/browser/extensions/extension_popup_api.h | |
parent | 23b3f6c67270a6aff5020c9a7279f4ed84192a02 (diff) | |
download | chromium_src-1c1c77a5021be0b902240a4f78009a8d8f71d1ac.zip chromium_src-1c1c77a5021be0b902240a4f78009a8d8f71d1ac.tar.gz chromium_src-1c1c77a5021be0b902240a4f78009a8d8f71d1ac.tar.bz2 |
Submitting change from http://codereview.chromium.org/276029/show
BUG=none
TEST=none
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30778 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_popup_api.h')
-rw-r--r-- | chrome/browser/extensions/extension_popup_api.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_popup_api.h b/chrome/browser/extensions/extension_popup_api.h new file mode 100644 index 0000000..96d6d53 --- /dev/null +++ b/chrome/browser/extensions/extension_popup_api.h @@ -0,0 +1,50 @@ +// Copyright (c) 2009 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_EXTENSIONS_EXTENSION_POPUP_API_H_ +#define CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_API_H_ + +#include "chrome/browser/extensions/extension_function.h" +#include "chrome/common/notification_registrar.h" + +class Profile; +class ExtensionPopup; + +// This extension function shows a pop-up extension view. It is asynchronous +// because the callback must be invoked only after the associated render +// process/view has been created and fully initialized. +class PopupShowFunction : public AsyncExtensionFunction, + public NotificationObserver { + public: + PopupShowFunction(); + + virtual void Run(); + virtual bool RunImpl(); + DECLARE_EXTENSION_FUNCTION_NAME("experimental.popup.show") + + private: + // NotificationObserver methods. + virtual void Observe(NotificationType type, + const NotificationSource& source, + const NotificationDetails& details); + NotificationRegistrar registrar_; + +#if defined(TOOLKIT_VIEWS) + // The pop-up view created by this function, saved for access during + // event notification. The pop-up is not owned by the PopupShowFunction + // instance. + ExtensionPopup* popup_; +#endif +}; + +// Event router class for events related to the chrome.popup.* set of APIs. +class PopupEventRouter { + public: + static void OnPopupClosed(Profile* profile, + int routing_id); + private: + DISALLOW_COPY_AND_ASSIGN(PopupEventRouter); +}; + +#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_POPUP_API_H_ |