summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
authorstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-17 16:41:10 +0000
committerstevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-17 16:41:10 +0000
commitc50a660db8dc3a4faa627e2dc78f6fbeea6e57cf (patch)
tree37f4c65706a593122c63d0fa26978ec5a6dc2061 /chrome/browser/chromeos
parent2dbe3b46526ed24c0dac17644cd3ae28bf4ef705 (diff)
downloadchromium_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.cc22
-rw-r--r--chrome/browser/chromeos/frame/browser_view.cc4
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);