Chromium Code Reviews| Index: chrome/browser/ui/views/extensions/disabled_extensions_view.cc |
| =================================================================== |
| --- chrome/browser/ui/views/extensions/disabled_extensions_view.cc (revision 163351) |
| +++ chrome/browser/ui/views/extensions/disabled_extensions_view.cc (working copy) |
| @@ -9,9 +9,12 @@ |
| #include "base/utf_string_conversions.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/extensions/extension_system.h" |
| +#include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/singleton_tabs.h" |
| +#include "chrome/browser/prefs/pref_service.h" |
| #include "chrome/common/extensions/feature_switch.h" |
| +#include "chrome/common/pref_names.h" |
| #include "chrome/common/url_constants.h" |
| #include "content/public/browser/user_metrics.h" |
| #include "grit/generated_resources.h" |
| @@ -43,6 +46,9 @@ |
| const int kHeadlineRowPadding = 10; |
| const int kMessageBubblePadding = 11; |
| +// How often to show the disabled extension (sideload wipeout) bubble. |
| +const int kShowSideloadWipeoutBubbleMax = 3; |
| + |
| // How many extensions to show in the bubble (max). |
| const int kMaxExtensionsToShow = 7; |
| @@ -52,22 +58,33 @@ |
| // DisabledExtensionsView |
| // static |
| -bool DisabledExtensionsView::MaybeShow(Browser* browser, |
| +void DisabledExtensionsView::MaybeShow(Browser* browser, |
| views::View* anchor_view) { |
| #if !defined(OS_WIN) |
|
Aaron Boodman
2012/10/23 15:20:20
Shouldn't be necessary anymore, right?
|
| - // We are targeting registry-installed extensions, which is Windows-specific, |
| + // We are targeting registry-installed extensions, which are Windows-specific, |
| // and extensions marked internal and not from the web store, which are mostly |
| // problematic on Windows. |
| - return false; |
| + return; |
| #endif |
| if (!extensions::FeatureSwitch::sideload_wipeout()->IsEnabled()) |
| - return false; |
| + return; |
| static bool done_showing_ui = false; |
| if (done_showing_ui) |
| - return false; // Only show the bubble once per launch. |
| + return; // Only show the bubble once per launch. |
| + // A pref that counts how often the bubble has been shown. |
| + IntegerPrefMember sideload_wipeout_bubble_shown; |
| + |
| + sideload_wipeout_bubble_shown.Init( |
| + prefs::kExtensionsSideloadWipeoutBubbleShown, |
| + browser->profile()->GetPrefs(), NULL); |
| + int bubble_shown_count = sideload_wipeout_bubble_shown.GetValue(); |
| + if (bubble_shown_count >= kShowSideloadWipeoutBubbleMax) |
| + return; |
| + sideload_wipeout_bubble_shown.SetValue(++bubble_shown_count); |
| + |
| // Fetch all disabled extensions. |
| ExtensionService* extension_service = |
| extensions::ExtensionSystem::Get( |
| @@ -82,10 +99,7 @@ |
| bubble_delegate->StartFade(true); |
| done_showing_ui = true; |
| - return true; |
| } |
| - |
| - return false; |
| } |
| DisabledExtensionsView::DisabledExtensionsView( |
| @@ -123,7 +137,11 @@ |
| } else if (sender == dismiss_button_) { |
| content::RecordAction(UserMetricsAction("DisabledExtension_Dismiss")); |
| - // No action required. Close will happen below. |
| + IntegerPrefMember sideload_wipeout_bubble_shown; |
|
Aaron Boodman
2012/10/23 15:23:38
I think that it's only supposed to be shown once,
Finnur
2012/10/23 15:43:10
That makes sense for the buttons, but I'm not as s
Peter Ludwig
2012/10/23 16:11:01
It's fine for the bubble to dismiss (and to never
Finnur
2012/10/23 16:55:44
Sounds good.
|
| + sideload_wipeout_bubble_shown.Init( |
| + prefs::kExtensionsSideloadWipeoutBubbleShown, |
| + browser_->profile()->GetPrefs(), NULL); |
| + sideload_wipeout_bubble_shown.SetValue(kShowSideloadWipeoutBubbleMax); |
| } else { |
| NOTREACHED(); |
| } |