summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-07 00:29:10 +0000
committerdbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-07 00:29:10 +0000
commitf18cde9b9bda82aac3537c1959a55e463055974f (patch)
treec9c82c6f6f6e7e295168355da8056f04de4488c6
parent93af0733aab11e5a8eb8beb84d77c38b3c30e9b0 (diff)
downloadchromium_src-f18cde9b9bda82aac3537c1959a55e463055974f.zip
chromium_src-f18cde9b9bda82aac3537c1959a55e463055974f.tar.gz
chromium_src-f18cde9b9bda82aac3537c1959a55e463055974f.tar.bz2
Revert 125251 - Ash: Use translucent frames by default
Was crashing a test on Linux ChromiumOS Tester (1): [ RUN ] PrintPreviewUIUnitTest.PrintPreviewData base::debug::StackTrace::StackTrace() [0x27842fe] base::(anonymous namespace)::StackDumpSignalHandler() [0x27bcd09] 0x7f5819766af0 ConstrainedWindowViews::ConstrainedWindowViews() [0x1c785db] ConstrainedHtmlUI::CreateConstrainedHtmlDialog() [0x1c78170] printing::PrintPreviewTabController::CreatePrintPreviewTab() [0x1a63a21] printing::PrintPreviewTabController::GetOrCreatePreviewTab() [0x1a63dfb] PrintPreviewUIUnitTest_PrintPreviewData_Test::TestBody() [0x12200ba] testing::Test::Run() [0x2351031] testing::TestInfo::Run() [0x23510fa] testing::TestCase::Run() [0x2351247] testing::internal::UnitTestImpl::RunAllTests() [0x23514dd] testing::UnitTest::Run() [0x234fbe3] base::TestSuite::Run() [0x3ef7f48] main [0x24716e5] 0x7f5819751c4d 0x423779 Remove --aura-translucent-frames switch. Tie old-style frames to the existing --aura-window-mode=compact flag. Also fix a couple of cases where views::Widget wasn't be flagged as transparent, which would lead to black pixels in the window corners and incorrect headers in the inactive state. BUG=113075 TEST=visual, look at active and inactive browser windows, popup windows, cookie management (constrained dialog), task manager (general dialog) Review URL: http://codereview.chromium.org/9618022 TBR=jamescook@chromium.org Review URL: https://chromiumcodereview.appspot.com/9617029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125266 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/ash_switches.cc4
-rw-r--r--ash/ash_switches.h1
-rw-r--r--ash/shell.cc4
-rw-r--r--chrome/browser/about_flags.cc7
-rw-r--r--chrome/browser/ui/views/constrained_window_views.cc12
-rw-r--r--chrome/browser/ui/views/frame/browser_frame.cc5
-rw-r--r--chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_aura.cc18
-rw-r--r--chrome/browser/ui/views/window.cc24
8 files changed, 31 insertions, 44 deletions
diff --git a/ash/ash_switches.cc b/ash/ash_switches.cc
index b45a9e2..e5556e0 100644
--- a/ash/ash_switches.cc
+++ b/ash/ash_switches.cc
@@ -16,7 +16,6 @@ const char kAshUberTray[] = "ash-uber-tray";
// Force the "compact" window mode regardless of the value of kAuraWindowMode.
// This can be used to override a value set in chrome://flags.
-// Also implies fully-opaque windows for performance.
// TODO(derat): Remove this once the normal mode is usable on all platforms.
const char kAuraForceCompactWindowMode[] = "aura-force-compact-window-mode";
@@ -32,6 +31,9 @@ const char kAuraLegacyPowerButton[] = "aura-legacy-power-button";
// Avoid drawing drop shadows under windows.
const char kAuraNoShadows[] = "aura-no-shadows";
+// Use Aura-style translucent window frame.
+const char kAuraTranslucentFrames[] = "aura-translucent-frames";
+
// If present animations are disabled.
const char kAuraWindowAnimationsDisabled[] = "aura-window-animations-disabled";
diff --git a/ash/ash_switches.h b/ash/ash_switches.h
index 1b8fa7a..70ae9d7 100644
--- a/ash/ash_switches.h
+++ b/ash/ash_switches.h
@@ -21,6 +21,7 @@ ASH_EXPORT extern const char kAuraForceCompactWindowMode[];
ASH_EXPORT extern const char kAuraGoogleDialogFrames[];
ASH_EXPORT extern const char kAuraLegacyPowerButton[];
ASH_EXPORT extern const char kAuraNoShadows[];
+ASH_EXPORT extern const char kAuraTranslucentFrames[];
ASH_EXPORT extern const char kAuraWindowAnimationsDisabled[];
ASH_EXPORT extern const char kAuraWindowMode[];
ASH_EXPORT extern const char kAuraWindowModeCompact[];
diff --git a/ash/shell.cc b/ash/shell.cc
index f37f2f7..1041a3d 100644
--- a/ash/shell.cc
+++ b/ash/shell.cc
@@ -589,8 +589,8 @@ views::NonClientFrameView* Shell::CreateDefaultNonClientFrameView(
switches::kAuraGoogleDialogFrames)) {
return new internal::DialogFrameView;
}
- // Normal non-compact-mode gets translucent-style window frames for dialogs.
- if (!IsWindowModeCompact()) {
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kAuraTranslucentFrames)) {
internal::CustomFrameViewAsh* frame_view = new internal::CustomFrameViewAsh;
frame_view->Init(widget);
return frame_view;
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index a69b7e6..d71473b 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -451,6 +451,13 @@ const Experiment kExperiments[] = {
},
#if defined(USE_AURA)
{
+ "aura-translucent-frames",
+ IDS_FLAGS_AURA_TRANSLUCENT_FRAMES_NAME,
+ IDS_FLAGS_AURA_TRANSLUCENT_FRAMES_DESCRIPTION,
+ kOsWin | kOsLinux | kOsCrOS,
+ SINGLE_VALUE_TYPE(ash::switches::kAuraTranslucentFrames)
+ },
+ {
"aura-google-dialog-frames",
IDS_FLAGS_AURA_GOOGLE_DIALOG_FRAMES_NAME,
IDS_FLAGS_AURA_GOOGLE_DIALOG_FRAMES_DESCRIPTION,
diff --git a/chrome/browser/ui/views/constrained_window_views.cc b/chrome/browser/ui/views/constrained_window_views.cc
index 7dbdae0..fb42722 100644
--- a/chrome/browser/ui/views/constrained_window_views.cc
+++ b/chrome/browser/ui/views/constrained_window_views.cc
@@ -566,11 +566,6 @@ ConstrainedWindowViews::ConstrainedWindowViews(
params.native_widget = native_constrained_window_->AsNativeWidget();
params.child = true;
params.parent = wrapper->web_contents()->GetNativeView();
-#if defined(USE_AURA)
- // In non-compact mode the window header can be transparent.
- if (!ash::Shell::GetInstance()->IsWindowModeCompact())
- params.transparent = true;
-#endif
Init(params);
wrapper_->constrained_window_tab_helper()->AddConstrainedDialog(this);
@@ -617,11 +612,10 @@ gfx::NativeWindow ConstrainedWindowViews::GetNativeWindow() {
views::NonClientFrameView* ConstrainedWindowViews::CreateNonClientFrameView() {
#if defined(USE_AURA)
CommandLine* command_line = CommandLine::ForCurrentProcess();
- if (command_line->HasSwitch(ash::switches::kAuraGoogleDialogFrames))
- return ash::Shell::GetInstance()->CreateDefaultNonClientFrameView(this);
- // In non-compact mode use fancy translucent headers.
- if (!ash::Shell::GetInstance()->IsWindowModeCompact())
+ if (command_line->HasSwitch(ash::switches::kAuraGoogleDialogFrames) ||
+ command_line->HasSwitch(ash::switches::kAuraTranslucentFrames)) {
return ash::Shell::GetInstance()->CreateDefaultNonClientFrameView(this);
+ }
#endif
return new ConstrainedWindowFrameView(this);
}
diff --git a/chrome/browser/ui/views/frame/browser_frame.cc b/chrome/browser/ui/views/frame/browser_frame.cc
index 58e3554..f5ab38d 100644
--- a/chrome/browser/ui/views/frame/browser_frame.cc
+++ b/chrome/browser/ui/views/frame/browser_frame.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/views/frame/browser_frame.h"
+#include "base/command_line.h"
#include "base/i18n/rtl.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
@@ -78,8 +79,8 @@ void BrowserFrame::InitBrowserFrame() {
#endif
}
#if defined(USE_AURA)
- // Compact mode has opaque frames, otherwise Aura frames are translucent.
- if (!ash::Shell::GetInstance()->IsWindowModeCompact())
+ CommandLine* command_line = CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(ash::switches::kAuraTranslucentFrames))
params.transparent = true;
// Aura compact mode fills the monitor with with its windows.
if (ash::Shell::GetInstance()->IsWindowModeCompact() &&
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_aura.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_aura.cc
index 72d6878..fdbe881 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_aura.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_aura.cc
@@ -4,7 +4,9 @@
#include "chrome/browser/ui/views/frame/browser_non_client_frame_view_aura.h"
+#include "ash/ash_switches.h"
#include "ash/shell.h"
+#include "base/command_line.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/panels/panel_browser_frame_view.h"
#include "chrome/browser/ui/panels/panel_browser_view.h"
@@ -22,8 +24,6 @@ BrowserNonClientFrameView* CreateBrowserNonClientFrameView(
return new PanelBrowserFrameView(
frame, static_cast<PanelBrowserView*>(browser_view));
}
-
- // Compact mode uses special opaque frames.
if (ash::Shell::GetInstance()->IsWindowModeCompact())
return new CompactBrowserFrameView(frame, browser_view);
@@ -31,11 +31,15 @@ BrowserNonClientFrameView* CreateBrowserNonClientFrameView(
if (browser_view->browser()->is_app() && browser_view->IsMaximized())
return new AppNonClientFrameViewAura(frame, browser_view);
- // Default is potentially translucent fancy frames.
- BrowserNonClientFrameViewAura* frame_view =
- new BrowserNonClientFrameViewAura(frame, browser_view);
- frame_view->Init();
- return frame_view;
+ CommandLine* command_line = CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(ash::switches::kAuraTranslucentFrames)) {
+ BrowserNonClientFrameViewAura* frame_view =
+ new BrowserNonClientFrameViewAura(frame, browser_view);
+ frame_view->Init();
+ return frame_view;
+ }
+
+ return new OpaqueBrowserFrameView(frame, browser_view);
}
} // namespace browser
diff --git a/chrome/browser/ui/views/window.cc b/chrome/browser/ui/views/window.cc
index b7fcc01..d3b0e56 100644
--- a/chrome/browser/ui/views/window.cc
+++ b/chrome/browser/ui/views/window.cc
@@ -33,28 +33,6 @@
// The remainder of the code here is dealing with the legacy CrOS WM and
// can also be removed.
-namespace {
-
-views::Widget* CreateViewsWindowWithParent(gfx::NativeWindow parent,
- views::WidgetDelegate* delegate) {
- views::Widget* widget = new views::Widget;
- views::Widget::InitParams params;
- params.delegate = delegate;
-#if defined(OS_WIN) || defined(USE_AURA)
- params.parent = parent;
-#endif
-#if defined(USE_AURA)
- // Outside of compact mode, dialog windows may have translucent frames.
- // TODO(jamescook): Find a better way to set this.
- if (!ash::Shell::GetInstance()->IsWindowModeCompact())
- params.transparent = true;
-#endif
- widget->Init(params);
- return widget;
-}
-
-} // namespace
-
namespace browser {
views::Widget* CreateViewsWindow(gfx::NativeWindow parent,
@@ -63,7 +41,7 @@ views::Widget* CreateViewsWindow(gfx::NativeWindow parent,
#if defined(OS_CHROMEOS) && !defined(USE_AURA)
return chromeos::BubbleWindow::Create(parent, style, delegate);
#else
- return CreateViewsWindowWithParent(parent, delegate);
+ return views::Widget::CreateWindowWithParent(delegate, parent);
#endif
}