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";
// Disables 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.
const char kAshDisableUIScaling[] = "ash-disable-ui-scaling";
......@@ -74,6 +78,9 @@ const char kAshEnableAdvancedGestures[] = "ash-enable-advanced-gestures";
// main monitor as internal.
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)
// Enable memory monitoring.
const char kAshEnableMemoryMonitor[] = "ash-enable-memory-monitor";
......@@ -94,9 +101,6 @@ const char kAshEnableWorkspaceScrubbing[] = "ash-enable-workspace-scrubbing";
// "1024x768*2" sets the scale factor to 2 for a high DPI display.
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
// fullscreen mode.
const char kAshImmersiveHideTabIndicators[] =
......
......@@ -27,6 +27,7 @@ ASH_EXPORT extern const char kAshDisableAutoMaximizing[];
ASH_EXPORT extern const char kAshDisableAutoWindowPlacement[];
ASH_EXPORT extern const char kAshDisableBootAnimation2[];
ASH_EXPORT extern const char kAshDisableDisplayChangeLimiter[];
ASH_EXPORT extern const char kAshDisableImmersiveFullscreen[];
ASH_EXPORT extern const char kAshDisableLauncherPerDisplay[];
ASH_EXPORT extern const char kAshDisableNewLockAnimations[];
ASH_EXPORT extern const char kAshDisableNewNetworkStatusArea[];
......@@ -38,11 +39,11 @@ ASH_EXPORT extern const char kAshEnableBrightnessControl[];
#if defined(OS_LINUX)
ASH_EXPORT extern const char kAshEnableMemoryMonitor[];
#endif
ASH_EXPORT extern const char kAshEnableImmersiveFullscreen[];
ASH_EXPORT extern const char kAshEnableOak[];
ASH_EXPORT extern const char kAshEnableTrayDragging[];
ASH_EXPORT extern const char kAshEnableWorkspaceScrubbing[];
ASH_EXPORT extern const char kAshHostWindowBounds[];
ASH_EXPORT extern const char kAshImmersiveFullscreen[];
ASH_EXPORT extern const char kAshImmersiveHideTabIndicators[];
ASH_EXPORT extern const char kAshInternalDisplayUIScale[];
ASH_EXPORT extern const char kAshSecondaryDisplayLayout[];
......
......@@ -1129,11 +1129,12 @@ const Experiment kExperiments[] = {
kOsCrOS,
SINGLE_VALUE_TYPE(ash::switches::kAshEnableWorkspaceScrubbing),
},
{ "ash-immersive-fullscreen",
{ "ash-immersive-fullscreen-2",
IDS_FLAGS_ASH_IMMERSIVE_FULLSCREEN_NAME,
IDS_FLAGS_ASH_IMMERSIVE_FULLSCREEN_DESCRIPTION,
kOsCrOS,
SINGLE_VALUE_TYPE(ash::switches::kAshImmersiveFullscreen),
ENABLE_DISABLE_VALUE_TYPE(ash::switches::kAshEnableImmersiveFullscreen,
ash::switches::kAshDisableImmersiveFullscreen),
},
#if defined(OS_LINUX)
{ "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 @@
#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/browser_window.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_switches.h"
#include "chrome/common/time_format.h"
......@@ -62,17 +63,6 @@ ChromeShellDelegate::~ChromeShellDelegate() {
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 {
return CommandLine::ForCurrentProcess()->HasSwitch(switches::kMultiProfiles);
}
......@@ -110,7 +100,7 @@ void ChromeShellDelegate::ToggleMaximized() {
// TODO(jamescook): If immersive mode replaces fullscreen, rename this
// function and the interface to ToggleFullscreen.
if (UseImmersiveFullscreen()) {
if (chrome::UseImmersiveFullscreen()) {
chrome::ToggleFullscreenMode(GetTargetBrowser());
return;
}
......
......@@ -12,6 +12,7 @@
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_commands.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"
typedef InProcessBrowserTest ChromeShellDelegateBrowserTest;
......@@ -23,7 +24,7 @@ IN_PROC_BROWSER_TEST_F(ChromeShellDelegateBrowserTest, ToggleMaximized) {
aura::Window* window = ash::wm::GetActiveWindow();
ASSERT_TRUE(window);
if (ChromeShellDelegate::UseImmersiveFullscreen()) {
if (chrome::UseImmersiveFullscreen()) {
// "ToggleMaximized" toggles immersive fullscreen.
EXPECT_FALSE(ash::wm::IsWindowMaximized(window));
EXPECT_FALSE(ash::wm::IsWindowFullscreen(window));
......
......@@ -1669,9 +1669,9 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, FullscreenBookmarkBar) {
#if defined(OS_MACOSX)
EXPECT_EQ(BookmarkBar::SHOW, browser()->bookmark_bar_state());
#elif defined(OS_CHROMEOS)
// TODO(jamescook): When immersive fullscreen is enabled by default, test
// for BookmarkBar::SHOW.
EXPECT_EQ(BookmarkBar::HIDDEN, browser()->bookmark_bar_state());
// TODO(jamescook): If immersive fullscreen is disabled by default, test
// for BookmarkBar::HIDDEN.
EXPECT_EQ(BookmarkBar::SHOW, browser()->bookmark_bar_state());
#else
EXPECT_EQ(BookmarkBar::HIDDEN, browser()->bookmark_bar_state());
#endif
......
......@@ -58,7 +58,7 @@ class ImmersiveModeControllerAshTest : public InProcessBrowserTest {
// content::BrowserTestBase overrides:
virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
command_line->AppendSwitch(ash::switches::kAshImmersiveFullscreen);
chrome::EnableImmersiveFullscreenForTest();
}
private:
......
......@@ -17,20 +17,20 @@ namespace chrome {
bool UseImmersiveFullscreen() {
#if defined(OS_CHROMEOS)
CommandLine* command = CommandLine::ForCurrentProcess();
// Kiosk mode needs the whole screen.
CommandLine* command_line = CommandLine::ForCurrentProcess();
return !command_line->HasSwitch(switches::kKioskMode) &&
command_line->HasSwitch(ash::switches::kAshImmersiveFullscreen);
if (command->HasSwitch(switches::kKioskMode))
return false;
// Immersive fullscreen is on by default.
return !command->HasSwitch(ash::switches::kAshDisableImmersiveFullscreen);
#endif
return false;
}
// Implemented here so all the code dealing with flags lives in one place.
void EnableImmersiveFullscreenForTest() {
#if defined(OS_CHROMEOS)
CommandLine* command_line = CommandLine::ForCurrentProcess();
command_line->AppendSwitch(ash::switches::kAshImmersiveFullscreen);
#endif
// Immersive fullscreen is on by default. If we turn it off, this function
// will need to add kAshEnableImmersiveFullscreen to the command line.
}
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