| Index: trunk/src/chrome/browser/ui/views/extensions/extension_message_bubble_view.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/ui/views/extensions/extension_message_bubble_view.cc (revision 275254)
|
| +++ trunk/src/chrome/browser/ui/views/extensions/extension_message_bubble_view.cc (working copy)
|
| @@ -11,12 +11,10 @@
|
| #include "chrome/browser/extensions/extension_action_manager.h"
|
| #include "chrome/browser/extensions/extension_message_bubble_controller.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| -#include "chrome/browser/extensions/proxy_overridden_bubble_controller.h"
|
| #include "chrome/browser/extensions/settings_api_bubble_controller.h"
|
| #include "chrome/browser/extensions/settings_api_helpers.h"
|
| #include "chrome/browser/extensions/suspicious_extension_bubble_controller.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/ui/view_ids.h"
|
| #include "chrome/browser/ui/views/frame/browser_view.h"
|
| #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
|
| #include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h"
|
| @@ -64,7 +62,6 @@
|
| : BubbleDelegateView(anchor_view, arrow_location),
|
| weak_factory_(this),
|
| controller_(controller.Pass()),
|
| - anchor_view_(anchor_view),
|
| headline_(NULL),
|
| learn_more_(NULL),
|
| dismiss_button_(NULL),
|
| @@ -159,8 +156,7 @@
|
| views::Label* message = new views::Label();
|
| message->SetMultiLine(true);
|
| message->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| - message->SetText(delegate->GetMessageBody(
|
| - anchor_view_->id() == VIEW_ID_BROWSER_ACTION));
|
| + message->SetText(delegate->GetMessageBody());
|
| message->SizeToFit(views::Widget::GetLocalizedContentsWidth(
|
| IDS_EXTENSION_WIPEOUT_BUBBLE_WIDTH_CHARS));
|
| layout->AddView(message);
|
| @@ -276,7 +272,6 @@
|
| toolbar_view_(toolbar_view),
|
| shown_suspicious_extensions_bubble_(false),
|
| shown_startup_override_extensions_bubble_(false),
|
| - shown_proxy_override_extensions_bubble_(false),
|
| shown_dev_mode_extensions_bubble_(false),
|
| is_observing_(false),
|
| stage_(STAGE_START),
|
| @@ -309,10 +304,6 @@
|
| MaybeShowStartupOverrideExtensionsBubble(anchor_view))
|
| return;
|
|
|
| - if (!shown_proxy_override_extensions_bubble_ &&
|
| - MaybeShowProxyOverrideExtensionsBubble(anchor_view))
|
| - return;
|
| -
|
| if (!shown_dev_mode_extensions_bubble_)
|
| MaybeShowDevModeExtensionsBubble(anchor_view);
|
| #endif // OS_WIN
|
| @@ -345,11 +336,11 @@
|
| views::View* anchor_view) {
|
| #if !defined(OS_WIN)
|
| return false;
|
| -#else
|
| +#endif
|
| +
|
| DCHECK(!shown_startup_override_extensions_bubble_);
|
|
|
| - const Extension* extension =
|
| - GetExtensionOverridingStartupPages(profile_, NULL);
|
| + const Extension* extension = OverridesStartupPages(profile_, NULL);
|
| if (!extension)
|
| return false;
|
|
|
| @@ -360,34 +351,15 @@
|
| return false;
|
|
|
| shown_startup_override_extensions_bubble_ = true;
|
| - PrepareToHighlightExtensions(
|
| - settings_api_bubble.PassAs<ExtensionMessageBubbleController>(),
|
| - anchor_view);
|
| - return true;
|
| -#endif
|
| -}
|
| + SettingsApiBubbleController* weak_controller = settings_api_bubble.get();
|
| + ExtensionMessageBubbleView* bubble_delegate = new ExtensionMessageBubbleView(
|
| + anchor_view,
|
| + views::BubbleBorder::TOP_RIGHT,
|
| + settings_api_bubble.PassAs<ExtensionMessageBubbleController>());
|
| + views::BubbleDelegateView::CreateBubble(bubble_delegate);
|
| + weak_controller->Show(bubble_delegate);
|
|
|
| -bool ExtensionMessageBubbleFactory::MaybeShowProxyOverrideExtensionsBubble(
|
| - views::View* anchor_view) {
|
| -#if !defined(OS_WIN)
|
| - return false;
|
| -#else
|
| - DCHECK(!shown_proxy_override_extensions_bubble_);
|
| -
|
| - const Extension* extension = GetExtensionOverridingProxy(profile_);
|
| - if (!extension)
|
| - return false;
|
| -
|
| - scoped_ptr<ProxyOverriddenBubbleController> proxy_bubble(
|
| - new ProxyOverriddenBubbleController(profile_));
|
| - if (!proxy_bubble->ShouldShow(extension->id()))
|
| - return false;
|
| -
|
| - shown_proxy_override_extensions_bubble_ = true;
|
| - PrepareToHighlightExtensions(
|
| - proxy_bubble.PassAs<ExtensionMessageBubbleController>(), anchor_view);
|
| return true;
|
| -#endif
|
| }
|
|
|
| bool ExtensionMessageBubbleFactory::MaybeShowDevModeExtensionsBubble(
|
| @@ -403,9 +375,23 @@
|
| return false;
|
|
|
| shown_dev_mode_extensions_bubble_ = true;
|
| - PrepareToHighlightExtensions(
|
| - dev_mode_extensions.PassAs<ExtensionMessageBubbleController>(),
|
| - anchor_view);
|
| +
|
| + // We should be in the start stage (i.e., should not have a pending attempt to
|
| + // show a bubble).
|
| + DCHECK_EQ(stage_, STAGE_START);
|
| +
|
| + // Prepare to display and highlight the developer mode extensions before
|
| + // showing the bubble. Since this is an asynchronous process, set member
|
| + // variables for later use.
|
| + controller_ = dev_mode_extensions.Pass();
|
| + anchor_view_ = anchor_view;
|
| + container_ = toolbar_view_->browser_actions();
|
| +
|
| + if (container_->animating())
|
| + MaybeObserve();
|
| + else
|
| + HighlightDevModeExtensions();
|
| +
|
| return true;
|
| }
|
|
|
| @@ -434,9 +420,9 @@
|
| void ExtensionMessageBubbleFactory::OnBrowserActionsContainerAnimationEnded() {
|
| MaybeStopObserving();
|
| if (stage_ == STAGE_START) {
|
| - HighlightExtensions();
|
| + HighlightDevModeExtensions();
|
| } else if (stage_ == STAGE_HIGHLIGHTED) {
|
| - ShowHighlightingBubble();
|
| + ShowDevModeBubble();
|
| } else { // We shouldn't be observing if we've completed the process.
|
| NOTREACHED();
|
| Finish();
|
| @@ -449,26 +435,7 @@
|
| Finish();
|
| }
|
|
|
| -void ExtensionMessageBubbleFactory::PrepareToHighlightExtensions(
|
| - scoped_ptr<ExtensionMessageBubbleController> controller,
|
| - views::View* anchor_view) {
|
| - // We should be in the start stage (i.e., should not have a pending attempt to
|
| - // show a bubble).
|
| - DCHECK_EQ(stage_, STAGE_START);
|
| -
|
| - // Prepare to display and highlight the extensions before showing the bubble.
|
| - // Since this is an asynchronous process, set member variables for later use.
|
| - controller_ = controller.Pass();
|
| - anchor_view_ = anchor_view;
|
| - container_ = toolbar_view_->browser_actions();
|
| -
|
| - if (container_->animating())
|
| - MaybeObserve();
|
| - else
|
| - HighlightExtensions();
|
| -}
|
| -
|
| -void ExtensionMessageBubbleFactory::HighlightExtensions() {
|
| +void ExtensionMessageBubbleFactory::HighlightDevModeExtensions() {
|
| DCHECK_EQ(STAGE_START, stage_);
|
| stage_ = STAGE_HIGHLIGHTED;
|
|
|
| @@ -478,10 +445,10 @@
|
| if (container_->animating())
|
| MaybeObserve();
|
| else
|
| - ShowHighlightingBubble();
|
| + ShowDevModeBubble();
|
| }
|
|
|
| -void ExtensionMessageBubbleFactory::ShowHighlightingBubble() {
|
| +void ExtensionMessageBubbleFactory::ShowDevModeBubble() {
|
| DCHECK_EQ(stage_, STAGE_HIGHLIGHTED);
|
| stage_ = STAGE_COMPLETE;
|
|
|
| @@ -491,13 +458,11 @@
|
| if (reference_view && reference_view->visible())
|
| anchor_view_ = reference_view;
|
|
|
| - ExtensionMessageBubbleController* weak_controller = controller_.get();
|
| - ExtensionMessageBubbleView* bubble_delegate =
|
| - new ExtensionMessageBubbleView(
|
| - anchor_view_,
|
| - views::BubbleBorder::TOP_RIGHT,
|
| - scoped_ptr<ExtensionMessageBubbleController>(
|
| - controller_.release()));
|
| + DevModeBubbleController* weak_controller = controller_.get();
|
| + ExtensionMessageBubbleView* bubble_delegate = new ExtensionMessageBubbleView(
|
| + anchor_view_,
|
| + views::BubbleBorder::TOP_RIGHT,
|
| + scoped_ptr<ExtensionMessageBubbleController>(controller_.release()));
|
| views::BubbleDelegateView::CreateBubble(bubble_delegate);
|
| weak_controller->Show(bubble_delegate);
|
|
|
|
|