Index: chrome/browser/extensions/settings_api_bubble_controller.cc |
diff --git a/chrome/browser/extensions/settings_api_bubble_controller.cc b/chrome/browser/extensions/settings_api_bubble_controller.cc |
index a5819bc0f8126027be909031b3f384ded6ea3012..f10ccc92ad9e136584e919fd7dd6a65397746b68 100644 |
--- a/chrome/browser/extensions/settings_api_bubble_controller.cc |
+++ b/chrome/browser/extensions/settings_api_bubble_controller.cc |
@@ -6,6 +6,7 @@ |
#include "base/metrics/histogram.h" |
#include "chrome/browser/extensions/extension_service.h" |
+#include "chrome/browser/extensions/settings_api_helpers.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/startup/startup_browser_creator.h" |
#include "chrome/common/extensions/manifest_handlers/settings_overrides_handler.h" |
@@ -93,35 +94,34 @@ bool SettingsApiBubbleDelegate::ShouldIncludeExtension( |
if (prefs->HasSettingsApiBubbleBeenAcknowledged(extension_id)) |
return false; |
- const SettingsOverrides* settings = SettingsOverrides::Get(extension); |
- if (!settings) |
- return false; |
- |
- bool should_include = false; |
+ const extensions::Extension* override = NULL; |
switch (type_) { |
case extensions::BUBBLE_TYPE_HOME_PAGE: |
- should_include = settings->homepage != NULL; |
+ override = extensions::OverridesHomepage(profile_, NULL); |
break; |
case extensions::BUBBLE_TYPE_STARTUP_PAGES: |
- should_include = !settings->startup_pages.empty(); |
+ override = extensions::OverridesStartupPages(profile_, NULL); |
break; |
case extensions::BUBBLE_TYPE_SEARCH_ENGINE: |
- should_include = settings->search_engine != NULL; |
+ override = extensions::OverridesSearchEngine(profile_, NULL); |
break; |
} |
- if (should_include && extension_id_ != extension_id) { |
- DCHECK(extension_id_.empty()); |
- extension_id_ = extension_id; |
- } |
- return should_include; |
+ if (!override || override->id() != extension->id()) |
+ return false; |
+ |
+ extension_id_ = extension_id; |
+ return true; |
} |
void SettingsApiBubbleDelegate::AcknowledgeExtension( |
const std::string& extension_id, |
ExtensionMessageBubbleController::BubbleAction user_action) { |
- extensions::ExtensionPrefs* prefs = extensions::ExtensionPrefs::Get(profile_); |
- prefs->SetSettingsApiBubbleBeenAcknowledged(extension_id, true); |
+ if (user_action != ExtensionMessageBubbleController::ACTION_EXECUTE) { |
+ extensions::ExtensionPrefs* prefs = |
+ extensions::ExtensionPrefs::Get(profile_); |
+ prefs->SetSettingsApiBubbleBeenAcknowledged(extension_id, true); |
+ } |
} |
void SettingsApiBubbleDelegate::PerformAction( |