diff options
author | rdevlin.cronin <rdevlin.cronin@chromium.org> | 2015-08-06 11:40:19 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-06 18:41:03 +0000 |
commit | 0ba2a4cb378121906b5f3aad3ed25ff645b9e360 (patch) | |
tree | 4f73f12ea247e612046d1c5d9da3655eec6b185e /chrome/browser/extensions/ntp_overridden_bubble_controller.cc | |
parent | 43727507fc0d6c16ccefc91ea275ccee08389983 (diff) | |
download | chromium_src-0ba2a4cb378121906b5f3aad3ed25ff645b9e360.zip chromium_src-0ba2a4cb378121906b5f3aad3ed25ff645b9e360.tar.gz chromium_src-0ba2a4cb378121906b5f3aad3ed25ff645b9e360.tar.bz2 |
[Extensions UI] Have the ExtensionMessageBubble linked to a browser
Right now, the ExtensionMessageBubbleController will try and
find the most recently used browser if it needs to open a link.
Instead, it should be linked to a particular browser, since it is
shown in a single browser. This also fixes a crash where it
was improperly using a developer tools window browser and
trying to navigate it.
BUG=515853
Review URL: https://codereview.chromium.org/1265093007
Cr-Commit-Position: refs/heads/master@{#342156}
Diffstat (limited to 'chrome/browser/extensions/ntp_overridden_bubble_controller.cc')
-rw-r--r-- | chrome/browser/extensions/ntp_overridden_bubble_controller.cc | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/chrome/browser/extensions/ntp_overridden_bubble_controller.cc b/chrome/browser/extensions/ntp_overridden_bubble_controller.cc index 86e437d..f982408 100644 --- a/chrome/browser/extensions/ntp_overridden_bubble_controller.cc +++ b/chrome/browser/extensions/ntp_overridden_bubble_controller.cc @@ -7,6 +7,7 @@ #include "base/metrics/histogram.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" #include "chrome/common/url_constants.h" #include "chrome/grit/generated_resources.h" #include "extensions/browser/extension_registry.h" @@ -29,7 +30,7 @@ const char kNtpBubbleAcknowledged[] = "ack_ntp_bubble"; class NtpOverriddenBubbleDelegate : public extensions::ExtensionMessageBubbleController::Delegate { public: - NtpOverriddenBubbleDelegate(ExtensionService* service, Profile* profile); + explicit NtpOverriddenBubbleDelegate(Profile* profile); ~NtpOverriddenBubbleDelegate() override; // ExtensionMessageBubbleController::Delegate methods. @@ -55,9 +56,6 @@ class NtpOverriddenBubbleDelegate action) override; private: - // Our extension service. Weak, not owned by us. - ExtensionService* service_; - // The ID of the extension we are showing the bubble for. std::string extension_id_; @@ -65,10 +63,8 @@ class NtpOverriddenBubbleDelegate }; NtpOverriddenBubbleDelegate::NtpOverriddenBubbleDelegate( - ExtensionService* service, Profile* profile) - : extensions::ExtensionMessageBubbleController::Delegate(profile), - service_(service) { + : extensions::ExtensionMessageBubbleController::Delegate(profile) { set_acknowledged_flag_pref_name(kNtpBubbleAcknowledged); } @@ -79,10 +75,9 @@ bool NtpOverriddenBubbleDelegate::ShouldIncludeExtension( if (!extension_id_.empty() && extension_id_ != extension_id) return false; - using extensions::ExtensionRegistry; - ExtensionRegistry* registry = ExtensionRegistry::Get(profile()); const extensions::Extension* extension = - registry->GetExtensionById(extension_id, ExtensionRegistry::ENABLED); + registry()->GetExtensionById(extension_id, + extensions::ExtensionRegistry::ENABLED); if (!extension) return false; // The extension provided is no longer enabled. @@ -102,8 +97,8 @@ void NtpOverriddenBubbleDelegate::AcknowledgeExtension( void NtpOverriddenBubbleDelegate::PerformAction( const extensions::ExtensionIdList& list) { for (size_t i = 0; i < list.size(); ++i) { - service_->DisableExtension(list[i], - extensions::Extension::DISABLE_USER_ACTION); + service()->DisableExtension(list[i], + extensions::Extension::DISABLE_USER_ACTION); } } @@ -172,13 +167,10 @@ namespace extensions { //////////////////////////////////////////////////////////////////////////////// // NtpOverriddenBubbleController -NtpOverriddenBubbleController::NtpOverriddenBubbleController(Profile* profile) +NtpOverriddenBubbleController::NtpOverriddenBubbleController(Browser* browser) : ExtensionMessageBubbleController( - new NtpOverriddenBubbleDelegate( - ExtensionSystem::Get(profile)->extension_service(), - profile), - profile), - profile_(profile) {} + new NtpOverriddenBubbleDelegate(browser->profile()), + browser) {} NtpOverriddenBubbleController::~NtpOverriddenBubbleController() {} |