diff options
author | erikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 16:44:43 +0000 |
---|---|---|
committer | erikkay@chromium.org <erikkay@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 16:44:43 +0000 |
commit | 9c45b718e0b24664945c98d7a6315e4666fe7c22 (patch) | |
tree | 8697f8b5890b4a0f6121a76adf17a00045943068 /chrome/browser/views/frame | |
parent | 79ae821680fd8d84cc567063ead475072b799bc9 (diff) | |
download | chromium_src-9c45b718e0b24664945c98d7a6315e4666fe7c22.zip chromium_src-9c45b718e0b24664945c98d7a6315e4666fe7c22.tar.gz chromium_src-9c45b718e0b24664945c98d7a6315e4666fe7c22.tar.bz2 |
mole API - take 2
originally reviewed / committed as http://codereview.chromium.org/160276
TBR=mpcomplete,phadjan.jr
Review URL: http://codereview.chromium.org/159854
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22382 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/frame')
-rw-r--r-- | chrome/browser/views/frame/browser_view.cc | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index efce62a..120c2ef 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -599,9 +599,13 @@ void BrowserView::SetBounds(const gfx::Rect& bounds) { } void BrowserView::Close() { - BubbleSet::iterator bubble = browser_bubbles_.begin(); - for (; bubble != browser_bubbles_.end(); ++bubble) + // BrowserWindowClosing will usually cause the bubble to remove itself from + // the set, so we need to iterate in a way that's safe against deletion. + for (BubbleSet::iterator i = browser_bubbles_.begin(); + i != browser_bubbles_.end();) { + BubbleSet::iterator bubble = i++; (*bubble)->BrowserWindowClosing(); + } frame_->GetWindow()->Close(); } @@ -1490,10 +1494,12 @@ void BrowserView::Init() { status_bubble_.reset(new StatusBubbleViews(GetWidget())); - extension_shelf_ = new ExtensionShelf(browser_.get()); - extension_shelf_-> - SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_EXTENSIONS)); - AddChildView(extension_shelf_); + if (browser_->SupportsWindowFeature(Browser::FEATURE_EXTENSIONSHELF)) { + extension_shelf_ = new ExtensionShelf(browser_.get()); + extension_shelf_-> + SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_EXTENSIONS)); + AddChildView(extension_shelf_); + } #if defined(OS_WIN) InitSystemMenu(); |