Chromium Code Reviews| Index: chrome/browser/ui/views/extensions/extension_popup.h |
| =================================================================== |
| --- chrome/browser/ui/views/extensions/extension_popup.h (revision 74331) |
| +++ chrome/browser/ui/views/extensions/extension_popup.h (working copy) |
| @@ -6,14 +6,13 @@ |
| #define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_POPUP_H_ |
| #pragma once |
| +#include "base/ref_counted.h" |
| #include "chrome/browser/extensions/extension_host.h" |
| #include "chrome/browser/ui/views/browser_bubble.h" |
| #include "chrome/browser/ui/views/bubble_border.h" |
| #include "chrome/browser/ui/views/extensions/extension_view.h" |
| #include "chrome/common/notification_observer.h" |
| -#include "chrome/common/notification_registrar.h" |
| #include "googleurl/src/gurl.h" |
| -#include "ui/gfx/native_widget_types.h" |
| class Browser; |
| @@ -26,8 +25,9 @@ |
| class ExtensionPopup : public BrowserBubble, |
| public BrowserBubble::Delegate, |
| + public ExtensionView::Container, |
| public NotificationObserver, |
| - public ExtensionView::Container { |
| + public base::RefCounted<ExtensionPopup> { |
| public: |
| // Observer to ExtensionPopup events. |
| class Observer { |
| @@ -36,34 +36,8 @@ |
| // is ref-counted, and thus will be released shortly after |
| // making this delegate call. |
| virtual void ExtensionPopupIsClosing(ExtensionPopup* popup) {} |
| - |
| - // Called after the ExtensionPopup has been closed and deleted. |
| - // |popup_token| is the address of the deleted ExtensionPopup. |
| - virtual void ExtensionPopupClosed(void* popup_token) {} |
| - |
| - // Called when the ExtensionHost is first created for the pop-up view. |
| - // Note that this is invoked BEFORE the ExtensionPopup is created, and can |
| - // be used to provide extra configuration of the host before it is pushed |
| - // into the popup. An example use is for automation resource routing in |
| - // Chrome-Frame. See extension_popup_api.cc. |
| - virtual void ExtensionHostCreated(ExtensionHost* host) {} |
| - |
| - // Called immediately after a popup is created, but before the hosted |
| - // extension has loaded and before the popup has been displayed. Use to |
| - // finalize configuration of |popup|. |
| - virtual void ExtensionPopupCreated(ExtensionPopup* popup) {} |
| - |
| - // Called when the ExtensionPopup is resized. Note that the popup may have |
| - // an empty bounds, if a popup is repositioned before the hosted content |
| - // has loaded. |
| - virtual void ExtensionPopupResized(ExtensionPopup* popup) {} |
| }; |
| - enum PopupChrome { |
| - BUBBLE_CHROME, |
| - RECTANGLE_CHROME |
| - }; |
| - |
| virtual ~ExtensionPopup(); |
| // Create and show a popup with |url| positioned adjacent to |relative_to| in |
| @@ -72,44 +46,22 @@ |
| // valid parameter for pop-ups not associated with a browser. |
| // |profile| is the user profile instance associated with the popup. A |
|
rafaelw
2011/02/10 20:22:00
remove
Jeff Timanus
2011/02/10 21:51:29
Done.
|
| // non NULL value must be given. |
| - // |frame_window| is the native window that hosts the view inside which the |
| - // popup will be anchored. |
| // The positioning of the pop-up is determined by |arrow_location| according |
| // to the following logic: The popup is anchored so that the corner indicated |
| // by value of |arrow_location| remains fixed during popup resizes. |
| // If |arrow_location| is BOTTOM_*, then the popup 'pops up', otherwise |
| // the popup 'drops down'. |
| - // Pass |activate_on_show| as true to activate the popup window. |
| // Pass |inspect_with_devtools| as true to pin the popup open and show the |
| // devtools window for it. |
| - // The |chrome| argument controls the chrome that surrounds the pop-up. |
| - // Passing BUBBLE_CHROME will give the pop-up a bubble-like appearance, |
| - // including the arrow mentioned above. Passing RECTANGLE_CHROME will give |
| - // the popup a rectangular, black border with a drop-shadow with no arrow. |
| - // The positioning of the popup is still governed by the arrow-location |
| - // parameter. |
| - // |
| // The actual display of the popup is delayed until the page contents |
| // finish loading in order to minimize UI flashing and resizing. |
| static ExtensionPopup* Show(const GURL& url, Browser* browser, |
| - Profile* profile, |
| - gfx::NativeWindow frame_window, |
| const gfx::Rect& relative_to, |
| BubbleBorder::ArrowLocation arrow_location, |
| - bool activate_on_show, |
| bool inspect_with_devtools, |
| - PopupChrome chrome, |
| Observer* observer); |
| - // Assigns the maximal width and height, respectively, to which the popup |
| - // may expand. If these routines are not called, the popup will resize to |
| - // no larger than |kMaxWidth| x |kMaxHeight|. Note that the popup will |
| - // never expand to larger than the dimensions of the screen. |
| - void set_max_width(int width) { max_size_.set_width(width); } |
| - void set_max_height(int height) { max_size_.set_height(height); } |
| - |
| - // Closes the ExtensionPopup (this will cause the delegate |
| - // ExtensionPopupIsClosing and ExtensionPopupClosed to fire. |
| + // Closes the ExtensionPopup. |
| void Close(); |
| // Some clients wish to do their own custom focus change management. If this |
| @@ -121,18 +73,6 @@ |
| ExtensionHost* host() const { return extension_host_.get(); } |
| - // Assigns the arrow location of the popup view, and updates the popup |
| - // border widget, if necessary. |
| - void SetArrowPosition(BubbleBorder::ArrowLocation arrow_location); |
| - BubbleBorder::ArrowLocation arrow_position() const { |
| - return anchor_position_; |
| - } |
| - |
| - // Gives the desired bounds (in screen coordinates) given the rect to point |
| - // to and the size of the contained contents. Includes all of the |
| - // border-chrome surrounding the pop-up as well. |
| - gfx::Rect GetOuterBounds() const; |
| - |
| // BrowserBubble overrides. |
| virtual void Hide(); |
| virtual void Show(bool activate); |
| @@ -155,18 +95,6 @@ |
| virtual void OnExtensionMouseLeave(ExtensionView* view) { } |
| virtual void OnExtensionPreferredSizeChanged(ExtensionView* view); |
| - // Export the refrence-counted interface required for use as template |
| - // arguments for RefCounted. ExtensionPopup does not inherit from RefCounted |
| - // because it must override the behaviour of Release. |
| - void AddRef() { instance_lifetime_->AddRef(); } |
| - static bool ImplementsThreadSafeReferenceCounting() { |
| - return InternalRefCounter::ImplementsThreadSafeReferenceCounting(); |
| - } |
| - |
| - // Implements the standard RefCounted<T>::Release behaviour, except |
| - // signals Observer::ExtensionPopupClosed after final release. |
| - void Release(); |
| - |
| // The min/max height of popups. |
| static const int kMinWidth; |
| static const int kMinHeight; |
| @@ -178,9 +106,7 @@ |
| views::Widget* frame, |
| const gfx::Rect& relative_to, |
| BubbleBorder::ArrowLocation arrow_location, |
| - bool activate_on_show, |
| bool inspect_with_devtools, |
| - PopupChrome chrome, |
| Observer* observer); |
| // The area on the screen that the popup should be positioned relative to. |
| @@ -189,9 +115,6 @@ |
| // The contained host for the view. |
| scoped_ptr<ExtensionHost> extension_host_; |
| - // Flag used to indicate if the pop-up should be activated upon first display. |
| - bool activate_on_show_; |
| - |
| // Flag used to indicate if the pop-up should open a devtools window once |
| // it is shown inspecting it. |
| bool inspect_with_devtools_; |
| @@ -212,12 +135,6 @@ |
| BubbleBorder* border_; |
| views::View* border_view_; |
| - // The type of chrome associated with the popup window. |
| - PopupChrome popup_chrome_; |
| - |
| - // The maximal size to which the popup may expand. |
| - gfx::Size max_size_; |
| - |
| // The observer of this popup. |
| Observer* observer_; |
| @@ -226,13 +143,6 @@ |
| // the position of the pop-up in relation to |relative_to_|. |
| BubbleBorder::ArrowLocation anchor_position_; |
|
rafaelw
2011/02/10 20:22:00
remove
Jeff Timanus
2011/02/10 21:51:29
Done.
|
| - // ExtensionPopup's lifetime is managed via reference counting, but it does |
| - // not expose the RefCounted interface. Instead, the lifetime is tied to |
| - // this member variable. |
| - class InternalRefCounter : public base::RefCounted<InternalRefCounter> { |
| - }; |
| - InternalRefCounter* instance_lifetime_; |
| - |
| DISALLOW_COPY_AND_ASSIGN(ExtensionPopup); |
| }; |