Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Unified Diff: chrome/browser/ui/cocoa/translate/before_translate_infobar_controller.mm

Issue 7876004: [Mac] Break stale controller refs in infobar close. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Also fix target on the close button. Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/translate/before_translate_infobar_controller.mm
diff --git a/chrome/browser/ui/cocoa/translate/before_translate_infobar_controller.mm b/chrome/browser/ui/cocoa/translate/before_translate_infobar_controller.mm
index 121d1c602a615c8b379c44d7141600d712065d38..388e6aff30685f56017332631f4afcc853a6ceec 100644
--- a/chrome/browser/ui/cocoa/translate/before_translate_infobar_controller.mm
+++ b/chrome/browser/ui/cocoa/translate/before_translate_infobar_controller.mm
@@ -30,6 +30,12 @@ NSButton* CreateNSButtonWithResourceIDAndParameter(
@implementation BeforeTranslateInfobarController
+- (void)dealloc {
+ [neverTranslateButton_ setTarget:nil];
+ [alwaysTranslateButton_ setTarget:nil];
+ [super dealloc];
+}
+
- (id) initWithDelegate:(InfoBarDelegate *)delegate
owner:(TabContentsWrapper*)owner {
if ((self = [super initWithDelegate:delegate owner:owner])) {
@@ -100,12 +106,16 @@ NSButton* CreateNSButtonWithResourceIDAndParameter(
// This is called when the "Never Translate [language]" button is pressed.
- (void)neverTranslate:(id)sender {
- [self delegate]->NeverTranslatePageLanguage();
+ TranslateInfoBarDelegate* delegate = [self delegate];
+ if (delegate)
+ [self delegate]->NeverTranslatePageLanguage();
Nico 2011/09/13 06:25:38 Nit: s/[self delegate]/delegate/
}
// This is called when the "Always Translate [language]" button is pressed.
- (void)alwaysTranslate:(id)sender {
- [self delegate]->AlwaysTranslatePageLanguage();
+ TranslateInfoBarDelegate* delegate = [self delegate];
+ if (delegate)
+ delegate->AlwaysTranslatePageLanguage();
}
- (bool)verifyLayout {
« no previous file with comments | « chrome/browser/ui/cocoa/infobars/infobar_controller.mm ('k') | chrome/browser/ui/cocoa/translate/translate_infobar_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698