diff options
| author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-05 02:44:51 +0000 |
|---|---|---|
| committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-05 02:44:51 +0000 |
| commit | 3de6fd34b8081868e0476341987c8953fd1cfba4 (patch) | |
| tree | 5c55943a94a1edb6a744d75b5389c68f38f81557 /chrome/browser/vista_frame.cc | |
| parent | f052118e0a1dea89270f0c92cb78d8b277720dc6 (diff) | |
| download | chromium_src-3de6fd34b8081868e0476341987c8953fd1cfba4.zip chromium_src-3de6fd34b8081868e0476341987c8953fd1cfba4.tar.gz chromium_src-3de6fd34b8081868e0476341987c8953fd1cfba4.tar.bz2 | |
Attempt at fixing crash. I believe this is happening during session
end, which has a different shutdown path and is possible for the model
to be deleted before the view.
I'm also adding checking to XPFrame/VistaFrame to make sure the
BookmarkBarView doesn't have a parent in the destructor. This
shouldn't be possible, but I'm adding the check to be sure;)
BUG=1359852
TEST=make sure you don't see problems with bookmarks
Review URL: http://codereview.chromium.org/440
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1754 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/vista_frame.cc')
| -rw-r--r-- | chrome/browser/vista_frame.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/chrome/browser/vista_frame.cc b/chrome/browser/vista_frame.cc index 64bf4f8..b1b0ebb3 100644 --- a/chrome/browser/vista_frame.cc +++ b/chrome/browser/vista_frame.cc @@ -1576,6 +1576,18 @@ void VistaFrame::DestroyBrowser() { // the tabstrip from the model's observer list because the model was // destroyed with browser_. if (browser_) { + if (bookmark_bar_view_.get() && bookmark_bar_view_->GetParent()) { + // The bookmark bar should not be parented by the time we get here. + // If you hit this NOTREACHED file a bug with the trace. + NOTREACHED(); + bookmark_bar_view_->GetParent()->RemoveChildView(bookmark_bar_view_.get()); + } + + // Explicitly delete the BookmarkBarView now. That way we don't have to + // worry about the BookmarkBarView potentially outliving the Browser & + // Profile. + bookmark_bar_view_.reset(NULL); + browser_->tabstrip_model()->RemoveObserver(tabstrip_); delete browser_; browser_ = NULL; @@ -1610,4 +1622,3 @@ void VistaFrame::ShelfVisibilityChangedImpl(TabContents* current_tab) { if (changed && current_tab) Layout(); } - |
