diff options
Diffstat (limited to 'chrome/browser/cocoa/browser_window_controller.h')
-rw-r--r-- | chrome/browser/cocoa/browser_window_controller.h | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/chrome/browser/cocoa/browser_window_controller.h b/chrome/browser/cocoa/browser_window_controller.h index 1be8fbc..d74e3a8 100644 --- a/chrome/browser/cocoa/browser_window_controller.h +++ b/chrome/browser/cocoa/browser_window_controller.h @@ -50,14 +50,9 @@ class TabStripModelObserverBridge; // The ordering of these members is important as it determines the order in // which they are destroyed. |browser_| needs to be destroyed last as most of // the other objects hold weak references to it or things it owns - // (tab/toolbar/bookmark models, profiles, etc). We hold a strong ref to the - // window so that it will live after the NSWindowController dealloc has run - // (which happens *before* these scoped pointers are torn down). Keeping it - // alive ensures that weak view or window pointers remain valid through - // their destruction sequence. + // (tab/toolbar/bookmark models, profiles, etc). scoped_ptr<Browser> browser_; - scoped_nsobject<ChromeBrowserWindow> window_; - scoped_nsobject<NSWindow> fullscreen_window_; + NSWindow* savedRegularWindow_; scoped_ptr<TabStripModelObserverBridge> tabObserver_; scoped_ptr<BrowserWindowCocoa> windowShim_; scoped_nsobject<ToolbarController> toolbarController_; @@ -65,14 +60,21 @@ class TabStripModelObserverBridge; scoped_nsobject<TabStripController> tabStripController_; scoped_nsobject<FindBarCocoaController> findBarCocoaController_; scoped_nsobject<InfoBarContainerController> infoBarContainerController_; - scoped_ptr<StatusBubbleMac> statusBubble_; scoped_nsobject<DownloadShelfController> downloadShelfController_; scoped_nsobject<ExtensionShelfController> extensionShelfController_; scoped_nsobject<BookmarkBarController> bookmarkBarController_; - scoped_nsobject<BookmarkBubbleController> bookmarkBubbleController_; + + // Strong. StatusBubble is a special case of a strong reference that + // we don't wrap in a scoped_ptr because it is acting the same + // as an NSWindowController in that it wraps a window that must + // be shut down before our destructors are called. + StatusBubbleMac* statusBubble_; + + // Strong. We don't wrap it in scoped_nsobject because we must close + // it appropriately in [windowWillClose:]. + BookmarkBubbleController* bookmarkBubbleController_; scoped_nsobject<GTMTheme> theme_; BOOL ownsBrowser_; // Only ever NO when testing - BOOL fullscreen_; CGFloat verticalOffsetForStatusBubble_; } |