| Index: chrome/browser/cocoa/extensions/extension_infobar_controller.mm
|
| ===================================================================
|
| --- chrome/browser/cocoa/extensions/extension_infobar_controller.mm (revision 65711)
|
| +++ chrome/browser/cocoa/extensions/extension_infobar_controller.mm (working copy)
|
| @@ -47,25 +47,21 @@
|
|
|
| // A helper class to bridge the asynchronous Skia bitmap loading mechanism to
|
| // the extension's button.
|
| -class InfobarBridge : public ExtensionInfoBarDelegate::DelegateObserver,
|
| - public ImageLoadingTracker::Observer {
|
| +class InfobarBridge : public ImageLoadingTracker::Observer {
|
| public:
|
| explicit InfobarBridge(ExtensionInfoBarController* owner)
|
| : owner_(owner),
|
| - delegate_([owner delegate]->AsExtensionInfoBarDelegate()),
|
| tracker_(this) {
|
| - delegate_->set_observer(this);
|
| LoadIcon();
|
| }
|
|
|
| virtual ~InfobarBridge() {
|
| - if (delegate_)
|
| - delegate_->set_observer(NULL);
|
| }
|
|
|
| // Load the Extension's icon image.
|
| void LoadIcon() {
|
| - const Extension* extension = delegate_->extension_host()->extension();
|
| + const Extension* extension = [owner_ delegate]->
|
| + AsExtensionInfoBarDelegate()->extension_host()->extension();
|
| ExtensionResource icon_resource = extension->GetIconResource(
|
| Extension::EXTENSION_ICON_BITTY, ExtensionIconSet::MATCH_EXACTLY);
|
| if (!icon_resource.relative_path().empty()) {
|
| @@ -81,11 +77,9 @@
|
| // ImageLoadingTracker::Observer implementation.
|
| // TODO(andybons): The infobar view implementations share a lot of the same
|
| // code. Come up with a strategy to share amongst them.
|
| - virtual void OnImageLoaded(
|
| - SkBitmap* image, ExtensionResource resource, int index) {
|
| - if (!delegate_)
|
| - return; // The delegate can go away while the image asynchronously loads.
|
| -
|
| + virtual void OnImageLoaded(SkBitmap* image,
|
| + ExtensionResource resource,
|
| + int index) {
|
| ResourceBundle& rb = ResourceBundle::GetSharedInstance();
|
|
|
| // Fall back on the default extension icon on failure.
|
| @@ -112,18 +106,10 @@
|
| [owner_ setButtonImage:gfx::SkBitmapToNSImage(canvas->ExtractBitmap())];
|
| }
|
|
|
| - // Overridden from ExtensionInfoBarDelegate::DelegateObserver:
|
| - virtual void OnDelegateDeleted() {
|
| - delegate_ = NULL;
|
| - }
|
| -
|
| private:
|
| // Weak. Owns us.
|
| ExtensionInfoBarController* owner_;
|
|
|
| - // Weak.
|
| - ExtensionInfoBarDelegate* delegate_;
|
| -
|
| // Loads the extensions's icon on the file thread.
|
| ImageLoadingTracker tracker_;
|
|
|
|
|