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

Unified Diff: chrome/browser/ui/cocoa/browser_window_controller.mm

Issue 1221173003: [Mac] Inform reference counted objects that hold a weak Browser* when the Browser is being destroye… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove dealloc override. Created 5 years, 5 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/browser_window_controller.mm
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm
index 022763ca1412a4b4ba2c130be2538e380bedeaf3..0196968353a50a4f4fc45c953c0f1c3d258e5d83 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
@@ -302,7 +302,7 @@ using content::WebContents;
// Create the overlayable contents controller. This provides the switch
// view that TabStripController needs.
overlayableContentsController_.reset(
- [[OverlayableContentsController alloc] initWithBrowser:browser]);
+ [[OverlayableContentsController alloc] init]);
[[overlayableContentsController_ view]
setFrame:[[devToolsController_ view] bounds]];
[[devToolsController_ view]
@@ -439,6 +439,17 @@ using content::WebContents;
[[NSNotificationCenter defaultCenter] removeObserver:self];
+ // Inform reference counted objects that the Browser will be destroyed. This
+ // insures they invalidate their weak Browser* to prevent use-after-free.
tapted 2015/07/06 07:26:17 insures -> ensures?
jackhou1 2015/07/07 03:27:26 Done.
+ // These may outlive the Browser if they are retained by something else, e.g.
+ // an autorelease NSView or an NSEvent.
+ [toolbarController_ browserWillBeDestroyed];
+ [tabStripController_ browserWillBeDestroyed];
+ [findBarCocoaController_ browserWillBeDestroyed];
+ [downloadShelfController_ browserWillBeDestroyed];
+ [bookmarkBarController_ browserWillBeDestroyed];
+ [avatarButtonController_ browserWillBeDestroyed];
+
[super dealloc];
}

Powered by Google App Engine
This is Rietveld 408576698