summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-05 19:09:29 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-05 19:09:29 +0000
commitfdce35e5374b352f84c686c39e6214255f4d2d7a (patch)
tree1d86db45b85fab0ab47f37ece515593ad4f6e119
parent054584c3921dc77f7a6fdcab2ebf2b0a4621cae8 (diff)
downloadchromium_src-fdce35e5374b352f84c686c39e6214255f4d2d7a.zip
chromium_src-fdce35e5374b352f84c686c39e6214255f4d2d7a.tar.gz
chromium_src-fdce35e5374b352f84c686c39e6214255f4d2d7a.tar.bz2
Revert 180720 - I missed a case where immersive mode could still be triggered
> ash: Turn immersive mode off by default for M26 > > * Add back the --ash-immersive-mode flag > * Change about:flags to just turn immersive mode on/off > * Convert --ash-immersive-hide-tab-indicators as a command-line only flag > > BUG=174060 > TEST=browser_tests BrowserNonClientFrameViewAsh unit_tests ImmersiveModeController > > Review URL: https://codereview.chromium.org/12194022 TBR=jamescook@chromium.org Review URL: https://codereview.chromium.org/12226016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180750 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--ash/ash_switches.cc6
-rw-r--r--ash/ash_switches.h1
-rw-r--r--chrome/app/generated_resources.grd7
-rw-r--r--chrome/browser/about_flags.cc10
-rw-r--r--chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc61
-rw-r--r--chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc16
6 files changed, 42 insertions, 59 deletions
diff --git a/ash/ash_switches.cc b/ash/ash_switches.cc
index 150799a..1b9299e 100644
--- a/ash/ash_switches.cc
+++ b/ash/ash_switches.cc
@@ -76,11 +76,7 @@ const char kAshEnablePerAppLauncher[] = "ash-enable-per-app-launcher";
// Enables showing the tray bubble by dragging on the shelf.
const char kAshEnableTrayDragging[] = "ash-enable-tray-dragging";
-// Enables immersive mode.
-const char kAshImmersiveMode[] = "ash-immersive-mode";
-
-// Enables immersive mode and hides the small tab indicators at the top of the
-// screen.
+// Hides the small tab indicators at the top of the screen.
const char kAshImmersiveHideTabIndicators[] =
"ash-immersive-hide-tab-indicators";
diff --git a/ash/ash_switches.h b/ash/ash_switches.h
index 3a06eb1..95bee8d 100644
--- a/ash/ash_switches.h
+++ b/ash/ash_switches.h
@@ -39,7 +39,6 @@ ASH_EXPORT extern const char kAshEnableOak[];
ASH_EXPORT extern const char kAshEnablePerAppLauncher[];
ASH_EXPORT extern const char kAshEnableTrayDragging[];
ASH_EXPORT extern const char kAshEnableWorkspaceScrubbing[];
-ASH_EXPORT extern const char kAshImmersiveMode[];
ASH_EXPORT extern const char kAshImmersiveHideTabIndicators[];
ASH_EXPORT extern const char kAshSecondaryDisplayLayout[];
ASH_EXPORT extern const char kAshTouchHud[];
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index dfc4aec..45fe36d 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -6775,10 +6775,13 @@ Keep your key file in a safe place. You will need it to create new versions of y
Enables workspace switching via 3 finger vertical scroll.
</message>
<message name="IDS_FLAGS_ASH_IMMERSIVE_MODE_NAME" desc="Title for the flag to set the immersive mode style.">
- Immersive mode
+ Immersive window style
</message>
<message name="IDS_FLAGS_ASH_IMMERSIVE_MODE_DESCRIPTION" desc="Description for the flag to enable immersive mode.">
- Adds an "immersive mode" for browser windows that gives more space to web content. Activate immersive mode by maximizing a window then clicking on the button in the top right corner.
+ Sets the style of an "immersive mode" for browser windows that gives more space to web content. Activate immersive mode by maximizing a window then clicking on the button in the top right corner.
+ </message>
+ <message name="IDS_FLAGS_ASH_IMMERSIVE_HIDE_TAB_INDICATORS" desc="Description a selection in the immersive mode popup menu.">
+ Hide tab indicators
</message>
<message name="IDS_FLAGS_ENABLE_MEMORY_MONITOR_NAME" desc="Title for the flag to enable advanced gestures.">
Enable memory monitor
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index db431a8..2ee017b 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -230,6 +230,14 @@ const Experiment::Choice kChromeCaptivePortalDetectionChoices[] = {
};
#endif
+#if defined(USE_ASH)
+const Experiment::Choice kAshImmersiveModeChoices[] = {
+ { IDS_GENERIC_EXPERIMENT_CHOICE_DEFAULT, "", ""},
+ { IDS_FLAGS_ASH_IMMERSIVE_HIDE_TAB_INDICATORS,
+ ash::switches::kAshImmersiveHideTabIndicators, ""}
+};
+#endif
+
// RECORDING USER METRICS FOR FLAGS:
// -----------------------------------------------------------------------------
// The first line of the experiment is the internal name. If you'd like to
@@ -1104,7 +1112,7 @@ const Experiment kExperiments[] = {
IDS_FLAGS_ASH_IMMERSIVE_MODE_NAME,
IDS_FLAGS_ASH_IMMERSIVE_MODE_DESCRIPTION,
kOsCrOS,
- SINGLE_VALUE_TYPE(ash::switches::kAshImmersiveMode),
+ MULTI_VALUE_TYPE(kAshImmersiveModeChoices),
},
#if defined(OS_LINUX)
{ "ash-enable-memory-monitor",
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
index 2b330d8..190ead2 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
@@ -4,10 +4,8 @@
#include "chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h"
-#include "ash/ash_switches.h"
#include "ash/wm/frame_painter.h"
#include "ash/wm/workspace/frame_maximize_button.h"
-#include "base/command_line.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/avatar_menu_button.h"
@@ -35,8 +33,6 @@
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_delegate.h"
-using ash::switches::kAshImmersiveMode;
-
namespace {
// The avatar ends 2 px above the bottom of the tabstrip (which, given the
@@ -121,18 +117,16 @@ void BrowserNonClientFrameViewAsh::Init() {
frame_painter_->Init(frame(), window_icon_, size_button_, close_button_,
size_button_behavior);
- if (CommandLine::ForCurrentProcess()->HasSwitch(kAshImmersiveMode)) {
- // Button to toggle immersive mode.
- immersive_button_ = new views::ToggleImageButton(this);
- immersive_button_->SetAccessibleName(
- l10n_util::GetStringUTF16(IDS_ACCNAME_IMMERSIVE));
- immersive_button_->SetTooltipText(
- l10n_util::GetStringUTF16(IDS_TOOLTIP_IMMERSIVE));
- immersive_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT,
- views::ImageButton::ALIGN_BOTTOM);
- AddChildView(immersive_button_);
- frame_painter_->AddImmersiveButton(immersive_button_);
- }
+ // Button to toggle immersive mode.
+ immersive_button_ = new views::ToggleImageButton(this);
+ immersive_button_->SetAccessibleName(
+ l10n_util::GetStringUTF16(IDS_ACCNAME_IMMERSIVE));
+ immersive_button_->SetTooltipText(
+ l10n_util::GetStringUTF16(IDS_TOOLTIP_IMMERSIVE));
+ immersive_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT,
+ views::ImageButton::ALIGN_BOTTOM);
+ AddChildView(immersive_button_);
+ frame_painter_->AddImmersiveButton(immersive_button_);
}
///////////////////////////////////////////////////////////////////////////////
@@ -203,23 +197,21 @@ void BrowserNonClientFrameViewAsh::GetWindowMask(const gfx::Size& size,
}
void BrowserNonClientFrameViewAsh::ResetWindowControls() {
- if (CommandLine::ForCurrentProcess()->HasSwitch(kAshImmersiveMode)) {
- // Hide the caption buttons in immersive mode because it's confusing when
- // the user hovers or clicks in the top-right of the screen and hits one.
- // Only show them during a reveal.
- ImmersiveModeController* controller =
- browser_view()->immersive_mode_controller();
- if (controller->enabled()) {
- bool revealed = controller->IsRevealed();
- immersive_button_->SetVisible(revealed);
- size_button_->SetVisible(revealed);
- close_button_->SetVisible(revealed);
- } else {
- // Only show immersive button for maximized windows.
- immersive_button_->SetVisible(frame()->IsMaximized());
- size_button_->SetVisible(true);
- close_button_->SetVisible(true);
- }
+ // Hide the caption buttons in immersive mode because it's confusing when
+ // the user hovers or clicks in the top-right of the screen and hits one.
+ // Only show them during a reveal.
+ ImmersiveModeController* controller =
+ browser_view()->immersive_mode_controller();
+ if (controller->enabled()) {
+ bool revealed = controller->IsRevealed();
+ immersive_button_->SetVisible(revealed);
+ size_button_->SetVisible(revealed);
+ close_button_->SetVisible(revealed);
+ } else {
+ // Only show immersive button for maximized windows.
+ immersive_button_->SetVisible(frame()->IsMaximized());
+ size_button_->SetVisible(true);
+ close_button_->SetVisible(true);
}
size_button_->SetState(views::CustomButton::STATE_NORMAL);
@@ -327,8 +319,7 @@ void BrowserNonClientFrameViewAsh::ButtonPressed(views::Button* sender,
// |this| may be deleted - some windows delete their frames on maximize.
} else if (sender == close_button_) {
frame()->Close();
- } else if (CommandLine::ForCurrentProcess()->HasSwitch(kAshImmersiveMode) &&
- sender == immersive_button_) {
+ } else if (sender == immersive_button_) {
// Toggle immersive mode.
ImmersiveModeController* controller =
browser_view()->immersive_mode_controller();
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
index 3248fbf..da5b29f 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
@@ -5,8 +5,6 @@
#include "chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h"
#include "ash/ash_constants.h"
-#include "ash/ash_switches.h"
-#include "base/command_line.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/immersive_mode_controller.h"
@@ -17,19 +15,7 @@
using views::Widget;
-class BrowserNonClientFrameViewAshTest : public InProcessBrowserTest {
- public:
- BrowserNonClientFrameViewAshTest() {}
- virtual ~BrowserNonClientFrameViewAshTest() {}
-
- // content::BrowserTestBase overrides:
- virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
- command_line->AppendSwitch(ash::switches::kAshImmersiveMode);
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(BrowserNonClientFrameViewAshTest);
-};
+typedef InProcessBrowserTest BrowserNonClientFrameViewAshTest;
IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest, WindowHeader) {
// We know we're using Views, so static cast.