diff options
Diffstat (limited to 'chrome/browser/views/info_bar_view.cc')
-rw-r--r-- | chrome/browser/views/info_bar_view.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/chrome/browser/views/info_bar_view.cc b/chrome/browser/views/info_bar_view.cc index 00a704f9..17d4a2a 100644 --- a/chrome/browser/views/info_bar_view.cc +++ b/chrome/browser/views/info_bar_view.cc @@ -9,6 +9,7 @@ #include "chrome/browser/navigation_entry.h" #include "chrome/browser/tab_contents_delegate.h" #include "chrome/browser/web_contents.h" +#include "chrome/browser/web_contents_view.h" #include "chrome/common/gfx/chrome_canvas.h" #include "chrome/common/l10n_util.h" #include "chrome/common/resource_bundle.h" @@ -128,10 +129,13 @@ void InfoBarView::ViewHierarchyChanged(bool is_add, View *parent, expire_map_[child] = GetActiveID(); } - if (web_contents_->IsInfoBarVisible()) { + // TODO(brettw) clean up the ownership of this info bar. It should be owned + // by the web contents view instead. In the meantime, we assume we're owned + // by a WebContents. + if (web_contents_->AsWebContents()->view()->IsInfoBarVisible()) { web_contents_->ToolbarSizeChanged(false); } else { - web_contents_->SetInfoBarVisible(true); + web_contents_->view()->SetInfoBarVisible(true); } } } @@ -231,7 +235,7 @@ void InfoBarView::Observe(NotificationType type, if (GetChildViewCount() == 0) { // All our views have been removed, no need to stay visible. - web_contents_->SetInfoBarVisible(false); + web_contents_->view()->SetInfoBarVisible(false); } else if (web_contents_) { // This triggers a layout. web_contents_->ToolbarSizeChanged(false); |