cros: Turn immersive fullscreen on by default

Use enabled/disabled flags as this will allow us to turn it off by default
after a branch point without changing the strings for about:flags.

BUG=233329
TEST=manual, toggle the option in about:flags, by default F4 should enter fullscreen
TBR=sky@chromium.org for trivial test expectation change in c/b/ui/browser_browsertest.cc

Review URL: https://chromiumcodereview.appspot.com/14366004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195358 0039d316-1c4b-4281-b951-d872f2087c98
parent bbbfb5fb
...@@ -64,6 +64,10 @@ const char kAshDisablePerAppLauncher[] = "ash-disable-per-app-launcher"; ...@@ -64,6 +64,10 @@ const char kAshDisablePerAppLauncher[] = "ash-disable-per-app-launcher";
// Disables display rotation. // Disables display rotation.
const char kAshDisableDisplayRotation[] = "ash-disable-display-rotation"; const char kAshDisableDisplayRotation[] = "ash-disable-display-rotation";
// Disable immersive fullscreen mode, regardless of default setting.
const char kAshDisableImmersiveFullscreen[] =
"ash-disable-immersive-fullscreen";
// Disables ui scaling. // Disables ui scaling.
const char kAshDisableUIScaling[] = "ash-disable-ui-scaling"; const char kAshDisableUIScaling[] = "ash-disable-ui-scaling";
...@@ -74,6 +78,9 @@ const char kAshEnableAdvancedGestures[] = "ash-enable-advanced-gestures"; ...@@ -74,6 +78,9 @@ const char kAshEnableAdvancedGestures[] = "ash-enable-advanced-gestures";
// main monitor as internal. // main monitor as internal.
const char kAshEnableBrightnessControl[] = "ash-enable-brightness-control"; const char kAshEnableBrightnessControl[] = "ash-enable-brightness-control";
// Enable immersive fullscreen mode, regardless of default setting.
const char kAshEnableImmersiveFullscreen[] = "ash-enable-immersive-fullscreen";
#if defined(OS_LINUX) #if defined(OS_LINUX)
// Enable memory monitoring. // Enable memory monitoring.
const char kAshEnableMemoryMonitor[] = "ash-enable-memory-monitor"; const char kAshEnableMemoryMonitor[] = "ash-enable-memory-monitor";
...@@ -94,9 +101,6 @@ const char kAshEnableWorkspaceScrubbing[] = "ash-enable-workspace-scrubbing"; ...@@ -94,9 +101,6 @@ const char kAshEnableWorkspaceScrubbing[] = "ash-enable-workspace-scrubbing";
// "1024x768*2" sets the scale factor to 2 for a high DPI display. // "1024x768*2" sets the scale factor to 2 for a high DPI display.
const char kAshHostWindowBounds[] = "ash-host-window-bounds"; const char kAshHostWindowBounds[] = "ash-host-window-bounds";
// Enable immersive fullscreen mode.
const char kAshImmersiveFullscreen[] = "ash-immersive-fullscreen";
// Hides the small tab indicators at the top of the screen during immersive // Hides the small tab indicators at the top of the screen during immersive
// fullscreen mode. // fullscreen mode.
const char kAshImmersiveHideTabIndicators[] = const char kAshImmersiveHideTabIndicators[] =
......
...@@ -27,6 +27,7 @@ ASH_EXPORT extern const char kAshDisableAutoMaximizing[]; ...@@ -27,6 +27,7 @@ ASH_EXPORT extern const char kAshDisableAutoMaximizing[];
ASH_EXPORT extern const char kAshDisableAutoWindowPlacement[]; ASH_EXPORT extern const char kAshDisableAutoWindowPlacement[];
ASH_EXPORT extern const char kAshDisableBootAnimation2[]; ASH_EXPORT extern const char kAshDisableBootAnimation2[];
ASH_EXPORT extern const char kAshDisableDisplayChangeLimiter[]; ASH_EXPORT extern const char kAshDisableDisplayChangeLimiter[];
ASH_EXPORT extern const char kAshDisableImmersiveFullscreen[];
ASH_EXPORT extern const char kAshDisableLauncherPerDisplay[]; ASH_EXPORT extern const char kAshDisableLauncherPerDisplay[];
ASH_EXPORT extern const char kAshDisableNewLockAnimations[]; ASH_EXPORT extern const char kAshDisableNewLockAnimations[];
ASH_EXPORT extern const char kAshDisableNewNetworkStatusArea[]; ASH_EXPORT extern const char kAshDisableNewNetworkStatusArea[];
...@@ -38,11 +39,11 @@ ASH_EXPORT extern const char kAshEnableBrightnessControl[]; ...@@ -38,11 +39,11 @@ ASH_EXPORT extern const char kAshEnableBrightnessControl[];
#if defined(OS_LINUX) #if defined(OS_LINUX)
ASH_EXPORT extern const char kAshEnableMemoryMonitor[]; ASH_EXPORT extern const char kAshEnableMemoryMonitor[];
#endif #endif
ASH_EXPORT extern const char kAshEnableImmersiveFullscreen[];
ASH_EXPORT extern const char kAshEnableOak[]; ASH_EXPORT extern const char kAshEnableOak[];
ASH_EXPORT extern const char kAshEnableTrayDragging[]; ASH_EXPORT extern const char kAshEnableTrayDragging[];
ASH_EXPORT extern const char kAshEnableWorkspaceScrubbing[]; ASH_EXPORT extern const char kAshEnableWorkspaceScrubbing[];
ASH_EXPORT extern const char kAshHostWindowBounds[]; ASH_EXPORT extern const char kAshHostWindowBounds[];
ASH_EXPORT extern const char kAshImmersiveFullscreen[];
ASH_EXPORT extern const char kAshImmersiveHideTabIndicators[]; ASH_EXPORT extern const char kAshImmersiveHideTabIndicators[];
ASH_EXPORT extern const char kAshInternalDisplayUIScale[]; ASH_EXPORT extern const char kAshInternalDisplayUIScale[];
ASH_EXPORT extern const char kAshSecondaryDisplayLayout[]; ASH_EXPORT extern const char kAshSecondaryDisplayLayout[];
......
...@@ -1129,11 +1129,12 @@ const Experiment kExperiments[] = { ...@@ -1129,11 +1129,12 @@ const Experiment kExperiments[] = {
kOsCrOS, kOsCrOS,
SINGLE_VALUE_TYPE(ash::switches::kAshEnableWorkspaceScrubbing), SINGLE_VALUE_TYPE(ash::switches::kAshEnableWorkspaceScrubbing),
}, },
{ "ash-immersive-fullscreen", { "ash-immersive-fullscreen-2",
IDS_FLAGS_ASH_IMMERSIVE_FULLSCREEN_NAME, IDS_FLAGS_ASH_IMMERSIVE_FULLSCREEN_NAME,
IDS_FLAGS_ASH_IMMERSIVE_FULLSCREEN_DESCRIPTION, IDS_FLAGS_ASH_IMMERSIVE_FULLSCREEN_DESCRIPTION,
kOsCrOS, kOsCrOS,
SINGLE_VALUE_TYPE(ash::switches::kAshImmersiveFullscreen), ENABLE_DISABLE_VALUE_TYPE(ash::switches::kAshEnableImmersiveFullscreen,
ash::switches::kAshDisableImmersiveFullscreen),
}, },
#if defined(OS_LINUX) #if defined(OS_LINUX)
{ "ash-enable-memory-monitor", { "ash-enable-memory-monitor",
......
include_rules = [
# TODO(jamescook): Remove this when immersive fullscreen is no longer
# optional. This is better than duplicating the flag-reading code in
# chrome_shell_delegate.cc.
"!chrome/browser/ui/views/frame/immersive_mode_controller.h"
]
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/host_desktop.h" #include "chrome/browser/ui/host_desktop.h"
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
#include "chrome/common/chrome_notification_types.h" #include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "chrome/common/time_format.h" #include "chrome/common/time_format.h"
...@@ -62,17 +63,6 @@ ChromeShellDelegate::~ChromeShellDelegate() { ...@@ -62,17 +63,6 @@ ChromeShellDelegate::~ChromeShellDelegate() {
instance_ = NULL; instance_ = NULL;
} }
// static
bool ChromeShellDelegate::UseImmersiveFullscreen() {
#if defined(OS_CHROMEOS)
// Kiosk mode needs the whole screen.
CommandLine* command_line = CommandLine::ForCurrentProcess();
return !command_line->HasSwitch(switches::kKioskMode) &&
command_line->HasSwitch(ash::switches::kAshImmersiveFullscreen);
#endif
return false;
}
bool ChromeShellDelegate::IsMultiProfilesEnabled() const { bool ChromeShellDelegate::IsMultiProfilesEnabled() const {
return CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles); return CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles);
} }
...@@ -110,7 +100,7 @@ void ChromeShellDelegate::ToggleMaximized() { ...@@ -110,7 +100,7 @@ void ChromeShellDelegate::ToggleMaximized() {
// TODO(jamescook): If immersive mode replaces fullscreen, rename this // TODO(jamescook): If immersive mode replaces fullscreen, rename this
// function and the interface to ToggleFullscreen. // function and the interface to ToggleFullscreen.
if (UseImmersiveFullscreen()) { if (chrome::UseImmersiveFullscreen()) {
chrome::ToggleFullscreenMode(GetTargetBrowser()); chrome::ToggleFullscreenMode(GetTargetBrowser());
return; return;
} }
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_commands.h"
#include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
typedef InProcessBrowserTest ChromeShellDelegateBrowserTest; typedef InProcessBrowserTest ChromeShellDelegateBrowserTest;
...@@ -23,7 +24,7 @@ IN_PROC_BROWSER_TEST_F(ChromeShellDelegateBrowserTest, ToggleMaximized) { ...@@ -23,7 +24,7 @@ IN_PROC_BROWSER_TEST_F(ChromeShellDelegateBrowserTest, ToggleMaximized) {
aura::Window* window = ash::wm::GetActiveWindow(); aura::Window* window = ash::wm::GetActiveWindow();
ASSERT_TRUE(window); ASSERT_TRUE(window);
if (ChromeShellDelegate::UseImmersiveFullscreen()) { if (chrome::UseImmersiveFullscreen()) {
// "ToggleMaximized" toggles immersive fullscreen. // "ToggleMaximized" toggles immersive fullscreen.
EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
EXPECT_FALSE(ash::wm::IsWindowFullscreen(window)); EXPECT_FALSE(ash::wm::IsWindowFullscreen(window));
......
...@@ -1669,9 +1669,9 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, FullscreenBookmarkBar) { ...@@ -1669,9 +1669,9 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, FullscreenBookmarkBar) {
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
EXPECT_EQ(BookmarkBar::SHOW, browser()->bookmark_bar_state()); EXPECT_EQ(BookmarkBar::SHOW, browser()->bookmark_bar_state());
#elif defined(OS_CHROMEOS) #elif defined(OS_CHROMEOS)
// TODO(jamescook): When immersive fullscreen is enabled by default, test // TODO(jamescook): If immersive fullscreen is disabled by default, test
// for BookmarkBar::SHOW. // for BookmarkBar::HIDDEN.
EXPECT_EQ(BookmarkBar::HIDDEN, browser()->bookmark_bar_state()); EXPECT_EQ(BookmarkBar::SHOW, browser()->bookmark_bar_state());
#else #else
EXPECT_EQ(BookmarkBar::HIDDEN, browser()->bookmark_bar_state()); EXPECT_EQ(BookmarkBar::HIDDEN, browser()->bookmark_bar_state());
#endif #endif
......
...@@ -58,7 +58,7 @@ class ImmersiveModeControllerAshTest : public InProcessBrowserTest { ...@@ -58,7 +58,7 @@ class ImmersiveModeControllerAshTest : public InProcessBrowserTest {
// content::BrowserTestBase overrides: // content::BrowserTestBase overrides:
virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
command_line->AppendSwitch(ash::switches::kAshImmersiveFullscreen); chrome::EnableImmersiveFullscreenForTest();
} }
private: private:
......
...@@ -17,20 +17,20 @@ namespace chrome { ...@@ -17,20 +17,20 @@ namespace chrome {
bool UseImmersiveFullscreen() { bool UseImmersiveFullscreen() {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
CommandLine* command = CommandLine::ForCurrentProcess();
// Kiosk mode needs the whole screen. // Kiosk mode needs the whole screen.
CommandLine* command_line = CommandLine::ForCurrentProcess(); if (command->HasSwitch(switches::kKioskMode))
return !command_line->HasSwitch(switches::kKioskMode) && return false;
command_line->HasSwitch(ash::switches::kAshImmersiveFullscreen); // Immersive fullscreen is on by default.
return !command->HasSwitch(ash::switches::kAshDisableImmersiveFullscreen);
#endif #endif
return false; return false;
} }
// Implemented here so all the code dealing with flags lives in one place. // Implemented here so all the code dealing with flags lives in one place.
void EnableImmersiveFullscreenForTest() { void EnableImmersiveFullscreenForTest() {
#if defined(OS_CHROMEOS) // Immersive fullscreen is on by default. If we turn it off, this function
CommandLine* command_line = CommandLine::ForCurrentProcess(); // will need to add kAshEnableImmersiveFullscreen to the command line.
command_line->AppendSwitch(ash::switches::kAshImmersiveFullscreen);
#endif
} }
ImmersiveModeController* CreateImmersiveModeController() { ImmersiveModeController* CreateImmersiveModeController() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment