Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/extensions/extension_installed_bubble.h" | 5 #include "chrome/browser/ui/extensions/extension_installed_bubble.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 49 weak_factory_(this) { | 49 weak_factory_(this) { |
| 50 // |extension| has been initialized but not loaded at this point. We need to | 50 // |extension| has been initialized but not loaded at this point. We need to |
| 51 // wait on showing the Bubble until the EXTENSION_LOADED gets fired. | 51 // wait on showing the Bubble until the EXTENSION_LOADED gets fired. |
| 52 extension_registry_observer_.Add( | 52 extension_registry_observer_.Add( |
| 53 extensions::ExtensionRegistry::Get(bubble_->browser()->profile())); | 53 extensions::ExtensionRegistry::Get(bubble_->browser()->profile())); |
| 54 | 54 |
| 55 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSING, | 55 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_CLOSING, |
| 56 content::Source<Browser>(bubble_->browser())); | 56 content::Source<Browser>(bubble_->browser())); |
| 57 } | 57 } |
| 58 | 58 |
| 59 void Run() { | |
| 60 OnExtensionLoaded(nullptr, bubble_->extension()); | |
| 61 } | |
| 62 | |
| 59 private: | 63 private: |
| 60 ~ExtensionInstalledBubbleObserver() override {} | 64 ~ExtensionInstalledBubbleObserver() override {} |
| 61 | 65 |
| 62 // content::NotificationObserver: | 66 // content::NotificationObserver: |
| 63 void Observe(int type, | 67 void Observe(int type, |
| 64 const content::NotificationSource& source, | 68 const content::NotificationSource& source, |
| 65 const content::NotificationDetails& details) override { | 69 const content::NotificationDetails& details) override { |
| 66 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSER_CLOSING) | 70 DCHECK_EQ(type, chrome::NOTIFICATION_BROWSER_CLOSING) |
| 67 << "Received unexpected notification"; | 71 << "Received unexpected notification"; |
| 68 // Browser is closing before the bubble was shown. | 72 // Browser is closing before the bubble was shown. |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 162 | 166 |
| 163 } // namespace | 167 } // namespace |
| 164 | 168 |
| 165 // static | 169 // static |
| 166 void ExtensionInstalledBubble::ShowBubble( | 170 void ExtensionInstalledBubble::ShowBubble( |
| 167 const extensions::Extension* extension, | 171 const extensions::Extension* extension, |
| 168 Browser* browser, | 172 Browser* browser, |
| 169 const SkBitmap& icon) { | 173 const SkBitmap& icon) { |
| 170 // The ExtensionInstalledBubbleObserver will delete itself when the | 174 // The ExtensionInstalledBubbleObserver will delete itself when the |
| 171 // ExtensionInstalledBubble is shown or when it can't be shown anymore. | 175 // ExtensionInstalledBubble is shown or when it can't be shown anymore. |
| 172 new ExtensionInstalledBubbleObserver( | 176 auto x = new ExtensionInstalledBubbleObserver( |
|
sky
2015/12/04 23:41:06
x, huh? bubble_observer?
Devlin
2015/12/05 01:10:15
D'oh! This was all for testing. I remembered to
| |
| 173 make_scoped_ptr(new ExtensionInstalledBubble(extension, browser, icon))); | 177 make_scoped_ptr(new ExtensionInstalledBubble(extension, browser, icon))); |
| 178 extensions::ExtensionRegistry* reg = | |
| 179 extensions::ExtensionRegistry::Get(browser->profile()); | |
| 180 if (reg->enabled_extensions().GetByID(extension->id())) { | |
|
sky
2015/12/04 23:41:06
nit: no {}
Devlin
2015/12/05 01:10:15
Ditto.
| |
| 181 x->Run(); | |
| 182 } | |
| 174 } | 183 } |
| 175 | 184 |
| 176 ExtensionInstalledBubble::ExtensionInstalledBubble(const Extension* extension, | 185 ExtensionInstalledBubble::ExtensionInstalledBubble(const Extension* extension, |
| 177 Browser* browser, | 186 Browser* browser, |
| 178 const SkBitmap& icon) | 187 const SkBitmap& icon) |
| 179 : extension_(extension), browser_(browser), icon_(icon) { | 188 : extension_(extension), browser_(browser), icon_(icon) { |
| 180 if (!extensions::OmniboxInfo::GetKeyword(extension).empty()) | 189 if (!extensions::OmniboxInfo::GetKeyword(extension).empty()) |
| 181 type_ = OMNIBOX_KEYWORD; | 190 type_ = OMNIBOX_KEYWORD; |
| 182 else if (extensions::ActionInfo::GetBrowserActionInfo(extension)) | 191 else if (extensions::ActionInfo::GetBrowserActionInfo(extension)) |
| 183 type_ = BROWSER_ACTION; | 192 type_ = BROWSER_ACTION; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 225 | 234 |
| 226 if (message_id == 0) | 235 if (message_id == 0) |
| 227 return base::string16(); | 236 return base::string16(); |
| 228 return extra.empty() ? l10n_util::GetStringUTF16(message_id) : | 237 return extra.empty() ? l10n_util::GetStringUTF16(message_id) : |
| 229 l10n_util::GetStringFUTF16(message_id, extra); | 238 l10n_util::GetStringFUTF16(message_id, extra); |
| 230 } | 239 } |
| 231 | 240 |
| 232 void ExtensionInstalledBubble::OnExtensionLoaded() { | 241 void ExtensionInstalledBubble::OnExtensionLoaded() { |
| 233 action_command_ = GetCommand(extension_->id(), browser_->profile(), type_); | 242 action_command_ = GetCommand(extension_->id(), browser_->profile(), type_); |
| 234 } | 243 } |
| OLD | NEW |