diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-17 16:41:10 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-17 16:41:10 +0000 |
commit | c50a660db8dc3a4faa627e2dc78f6fbeea6e57cf (patch) | |
tree | 37f4c65706a593122c63d0fa26978ec5a6dc2061 /chrome/browser/chromeos | |
parent | 2dbe3b46526ed24c0dac17644cd3ae28bf4ef705 (diff) | |
download | chromium_src-c50a660db8dc3a4faa627e2dc78f6fbeea6e57cf.zip chromium_src-c50a660db8dc3a4faa627e2dc78f6fbeea6e57cf.tar.gz chromium_src-c50a660db8dc3a4faa627e2dc78f6fbeea6e57cf.tar.bz2 |
BUG=chromium-os:4448 - Hide the address bar for popups in ChromeOS (http://code.google.com/p/chromium-os/issues/detail?id=4448)
Moved PopupNonClientFrameView to its own file and moved FrameView initialization logic to BrowserFrameChromeos::Init.
TEST=See issue. Additionally, ensure that non-chromeos Chrome popup window behavior is unaffected, and that the address bar is still visible for popup windows not generated by apps (e.g popped out google chat windows), on chromeos and non-chromeos.
Review URL: http://codereview.chromium.org/3133001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56370 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r-- | chrome/browser/chromeos/frame/browser_frame_chromeos.cc | 22 | ||||
-rw-r--r-- | chrome/browser/chromeos/frame/browser_view.cc | 4 |
2 files changed, 17 insertions, 9 deletions
diff --git a/chrome/browser/chromeos/frame/browser_frame_chromeos.cc b/chrome/browser/chromeos/frame/browser_frame_chromeos.cc index cc68f68..d55e6ce 100644 --- a/chrome/browser/chromeos/frame/browser_frame_chromeos.cc +++ b/chrome/browser/chromeos/frame/browser_frame_chromeos.cc @@ -6,6 +6,8 @@ #include "chrome/browser/chromeos/frame/normal_browser_frame_view.h" #include "chrome/browser/views/frame/browser_view.h" +#include "chrome/browser/views/frame/opaque_browser_frame_view.h" +#include "chrome/browser/views/frame/popup_non_client_frame_view.h" // static (Factory method.) BrowserFrame* BrowserFrame::Create(BrowserView* browser_view, @@ -27,15 +29,19 @@ BrowserFrameChromeos::~BrowserFrameChromeos() { } void BrowserFrameChromeos::Init() { - // Excludes a browser intance that requires icon/title. This is typically true - // for dev tools and javascript console. - // TODO(oshima): handle app panels. This currently uses the default - // implementation, which opens Chrome's app panel instead of - // ChromeOS's panel. - if (!IsPanel() && - !browser_view()->ShouldShowWindowIcon() && - !browser_view()->ShouldShowWindowTitle()) { + // NOTE: This logic supersedes the logic in BrowserFrameGtk::Init() + // by always setting browser_frame_view_. + if (IsPanel()) { + // ChromeOS Panels should always use PopupNonClientFrameView. + set_browser_frame_view(new PopupNonClientFrameView()); + } else if (!browser_view()->ShouldShowWindowIcon() && + !browser_view()->ShouldShowWindowTitle()) { + // Excludes a browser intance that requires icon/title. + // This is typically true for dev tools and javascript console. set_browser_frame_view(new NormalBrowserFrameView(this, browser_view())); + } else { + // Default FrameView. + set_browser_frame_view(new OpaqueBrowserFrameView(this, browser_view())); } BrowserFrameGtk::Init(); diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc index 23d4debb..4fe7661 100644 --- a/chrome/browser/chromeos/frame/browser_view.cc +++ b/chrome/browser/chromeos/frame/browser_view.cc @@ -445,7 +445,9 @@ void BrowserView::UpdateOTRBackground() { BrowserWindow* BrowserWindow::CreateBrowserWindow(Browser* browser) { // Create a browser view for chromeos. BrowserView* view; - if (browser->type() & (Browser::TYPE_POPUP | Browser::TYPE_APP_PANEL)) + if ((browser->type() == Browser::TYPE_POPUP) || + (browser->type() == Browser::TYPE_APP_POPUP) || + (browser->type() == Browser::TYPE_APP_PANEL)) view = new chromeos::PanelBrowserView(browser); else view = new chromeos::BrowserView(browser); |