Enable extended desktop by default.
Added debug only shortcut to activate screen locker.

BUG=123160
TEST=none

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148297 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/ash/accelerators/accelerator_table.cc b/ash/accelerators/accelerator_table.cc
index 3c7f2d89..415ff85 100644
--- a/ash/accelerators/accelerator_table.cc
+++ b/ash/accelerators/accelerator_table.cc
@@ -49,6 +49,10 @@
   { true, ui::VKEY_KBD_BRIGHTNESS_UP, ui::EF_NONE, KEYBOARD_BRIGHTNESS_UP },
   { true, ui::VKEY_F4, ui::EF_CONTROL_DOWN, CYCLE_DISPLAY_MODE },
   { true, ui::VKEY_L, ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, LOCK_SCREEN },
+#if !defined(NDEBUG)
+  // Extra shortcut for debug build to activate lock screen on linux desktop.
+  { true, ui::VKEY_L, ui::EF_ALT_DOWN, LOCK_SCREEN },
+#endif
   { true, ui::VKEY_O, ui::EF_CONTROL_DOWN, OPEN_FILE_MANAGER_DIALOG },
   { true, ui::VKEY_M, ui::EF_CONTROL_DOWN, OPEN_FILE_MANAGER_TAB },
   { true, ui::VKEY_T, ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN, OPEN_CROSH },
diff --git a/ash/ash_switches.cc b/ash/ash_switches.cc
index 1ddefda8..4ca3052 100644
--- a/ash/ash_switches.cc
+++ b/ash/ash_switches.cc
@@ -13,8 +13,8 @@
 // Enables the Oak tree viewer.
 const char kAshEnableOak[] = "ash-enable-oak";
 
-// Enable extended desktop.
-const char kAshExtendedDesktop[] = "ash-extended-desktop";
+// Disables extended desktop.
+const char kAshExtendedDesktopDisabled[] = "ash-extended-desktop-disabled";
 
 // Disable using Ash notifications.
 const char kAshNotifyDisabled[] = "ash-notify-disabled";
diff --git a/ash/ash_switches.h b/ash/ash_switches.h
index 3ed3d909b..042afc5b 100644
--- a/ash/ash_switches.h
+++ b/ash/ash_switches.h
@@ -17,7 +17,7 @@
 // Please keep alphabetized.
 ASH_EXPORT extern const char kAshDebugShortcuts[];
 ASH_EXPORT extern const char kAshEnableOak[];
-ASH_EXPORT extern const char kAshExtendedDesktop[];
+ASH_EXPORT extern const char kAshExtendedDesktopDisabled[];
 ASH_EXPORT extern const char kAshNotifyDisabled[];
 ASH_EXPORT extern const char kAshTouchHud[];
 ASH_EXPORT extern const char kAshWindowAnimationsDisabled[];
diff --git a/ash/display/display_controller.cc b/ash/display/display_controller.cc
index c0efb51a..a4807ae 100644
--- a/ash/display/display_controller.cc
+++ b/ash/display/display_controller.cc
@@ -19,10 +19,6 @@
 
 namespace ash {
 namespace internal {
-namespace {
-// True if the extended desktop mode is enabled.
-bool extended_desktop_enabled = false;
-}  // namespace
 
 DisplayController::DisplayController()
     : secondary_display_layout_(RIGHT) {
@@ -233,14 +229,10 @@
 
 // static
 bool DisplayController::IsExtendedDesktopEnabled(){
-  return extended_desktop_enabled ||
+  static bool extended_desktop_disabled =
       CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kAshExtendedDesktop);
-}
-
-// static
-void DisplayController::SetExtendedDesktopEnabled(bool enabled) {
-  extended_desktop_enabled = enabled;
+          switches::kAshExtendedDesktopDisabled);
+  return !extended_desktop_disabled;
 }
 
 aura::RootWindow* DisplayController::AddRootWindowForDisplay(
diff --git a/ash/display/display_controller.h b/ash/display/display_controller.h
index 9032b21..189f2db 100644
--- a/ash/display/display_controller.h
+++ b/ash/display/display_controller.h
@@ -84,8 +84,6 @@
 
   // Is extended desktop enabled?
   static bool IsExtendedDesktopEnabled();
-  // Change the extended desktop mode. Used for testing.
-  static void SetExtendedDesktopEnabled(bool enabled);
 
  private:
   // Creates a root window for |display| and stores it in the |root_windows_|
diff --git a/ash/display/display_controller_unittest.cc b/ash/display/display_controller_unittest.cc
index 48d2bab..73ceaa0 100644
--- a/ash/display/display_controller_unittest.cc
+++ b/ash/display/display_controller_unittest.cc
@@ -29,24 +29,7 @@
 
 }  // namespace
 
-class DisplayControllerTest : public test::AshTestBase {
- public:
-  DisplayControllerTest() {}
-  virtual ~DisplayControllerTest() {}
-
-  virtual void SetUp() OVERRIDE {
-    internal::DisplayController::SetExtendedDesktopEnabled(true);
-    AshTestBase::SetUp();
-  }
-
-  virtual void TearDown() OVERRIDE {
-    AshTestBase::TearDown();
-    internal::DisplayController::SetExtendedDesktopEnabled(false);
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(DisplayControllerTest);
-};
+typedef test::AshTestBase DisplayControllerTest;
 
 #if defined(OS_WIN)
 // TOD(oshima): Windows creates a window with smaller client area.
diff --git a/ash/display/multi_display_manager_unittest.cc b/ash/display/multi_display_manager_unittest.cc
index 4b52fa23..99e133c 100644
--- a/ash/display/multi_display_manager_unittest.cc
+++ b/ash/display/multi_display_manager_unittest.cc
@@ -32,7 +32,6 @@
   virtual ~MultiDisplayManagerTest() {}
 
   virtual void SetUp() OVERRIDE {
-    internal::DisplayController::SetExtendedDesktopEnabled(true);
     AshTestBase::SetUp();
     display_manager()->AddObserver(this);
     Shell::GetPrimaryRootWindow()->AddObserver(this);
@@ -41,7 +40,6 @@
     Shell::GetPrimaryRootWindow()->RemoveObserver(this);
     display_manager()->RemoveObserver(this);
     AshTestBase::TearDown();
-    internal::DisplayController::SetExtendedDesktopEnabled(false);
   }
 
   aura::DisplayManager* display_manager() {
diff --git a/ash/extended_desktop_unittest.cc b/ash/extended_desktop_unittest.cc
index 8e346a7..e4528f23 100644
--- a/ash/extended_desktop_unittest.cc
+++ b/ash/extended_desktop_unittest.cc
@@ -59,32 +59,14 @@
   DISALLOW_COPY_AND_ASSIGN(ModalWidgetDelegate);
 };
 
+internal::MultiDisplayManager* GetDisplayManager() {
+  return static_cast<internal::MultiDisplayManager*>(
+      aura::Env::GetInstance()->display_manager());
+}
+
 }  // namespace
 
-class ExtendedDesktopTest : public test::AshTestBase {
- public:
-  ExtendedDesktopTest() {}
-  virtual ~ExtendedDesktopTest() {}
-
-  virtual void SetUp() OVERRIDE {
-    internal::DisplayController::SetExtendedDesktopEnabled(true);
-    AshTestBase::SetUp();
-  }
-
-  virtual void TearDown() OVERRIDE {
-    AshTestBase::TearDown();
-    internal::DisplayController::SetExtendedDesktopEnabled(false);
-  }
-
- protected:
-  internal::MultiDisplayManager* display_manager() {
-    return static_cast<internal::MultiDisplayManager*>(
-        aura::Env::GetInstance()->display_manager());
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(ExtendedDesktopTest);
-};
+typedef test::AshTestBase ExtendedDesktopTest;
 
 // Test conditions that root windows in extended desktop mode
 // must satisfy.
@@ -461,10 +443,10 @@
   UpdateDisplay("1000x600,600x400");
   Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
   gfx::Display& display_1 =
-      display_manager()->FindDisplayForRootWindow(root_windows[0]);
+      GetDisplayManager()->FindDisplayForRootWindow(root_windows[0]);
   EXPECT_EQ("0,0", display_1.bounds().origin().ToString());
   gfx::Display& display_2 =
-      display_manager()->FindDisplayForRootWindow(root_windows[1]);
+      GetDisplayManager()->FindDisplayForRootWindow(root_windows[1]);
   EXPECT_EQ("1000,0", display_2.bounds().origin().ToString());
 
   aura::Window* d1 =
@@ -494,7 +476,7 @@
   Shell::GetInstance()->display_controller()->SetSecondaryDisplayLayout(
       internal::DisplayController::BOTTOM);
 
-  display_2 = display_manager()->FindDisplayForRootWindow(root_windows[1]);
+  display_2 = GetDisplayManager()->FindDisplayForRootWindow(root_windows[1]);
   EXPECT_EQ("0,600", display_2.bounds().origin().ToString());
 
   // Convert point in Root2's window to Root1's window Coord.
diff --git a/ash/root_window_controller_unittest.cc b/ash/root_window_controller_unittest.cc
index 1f50afd..12b27e8 100644
--- a/ash/root_window_controller_unittest.cc
+++ b/ash/root_window_controller_unittest.cc
@@ -61,24 +61,8 @@
 }  // namespace
 
 namespace test {
-class RootWindowControllerTest : public test::AshTestBase {
- public:
-  RootWindowControllerTest() {}
-  virtual ~RootWindowControllerTest() {}
 
-  virtual void SetUp() OVERRIDE {
-    internal::DisplayController::SetExtendedDesktopEnabled(true);
-    AshTestBase::SetUp();
-  }
-
-  virtual void TearDown() OVERRIDE {
-    AshTestBase::TearDown();
-    internal::DisplayController::SetExtendedDesktopEnabled(false);
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(RootWindowControllerTest);
-};
+typedef test::AshTestBase RootWindowControllerTest;
 
 TEST_F(RootWindowControllerTest, MoveWindows_Basic) {
   UpdateDisplay("600x600,500x500");
diff --git a/ash/screen_ash_unittest.cc b/ash/screen_ash_unittest.cc
index 6bb3b72b..36ab21c 100644
--- a/ash/screen_ash_unittest.cc
+++ b/ash/screen_ash_unittest.cc
@@ -16,24 +16,8 @@
 
 namespace ash {
 namespace test {
-class ScreenAshTest : public test::AshTestBase {
- public:
-  ScreenAshTest() {}
-  virtual ~ScreenAshTest() {}
 
-  virtual void SetUp() OVERRIDE {
-    internal::DisplayController::SetExtendedDesktopEnabled(true);
-    AshTestBase::SetUp();
-  }
-
-  virtual void TearDown() OVERRIDE {
-    AshTestBase::TearDown();
-    internal::DisplayController::SetExtendedDesktopEnabled(false);
-  }
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(ScreenAshTest);
-};
+typedef test::AshTestBase ScreenAshTest;
 
 #if !defined(OS_WIN)
 TEST_F(ScreenAshTest, Bounds) {
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index c33a2a6..f8fb57e8 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -5858,11 +5858,11 @@
       <message name="IDS_FLAGS_EXPERIMENTAL_WALLPAPER_UI_DESCRIPTION" desc="Description of the flag to enabel experimental wallpaper picker ui in chromeos.">
         Enables the experimental wallpaper UI.
       </message>
-      <message name="IDS_FLAGS_ENABLE_ASH_EXTENDED_DESKTOP_NAME" desc="Name of the flag to enable extended desktop in ash.">
-        Enables extended desktop support.
+      <message name="IDS_FLAGS_DISABLE_ASH_EXTENDED_DESKTOP_NAME" desc="Name of the flag to disable extended desktop in ash.">
+        Disable extended desktop support.
       </message>
-      <message name="IDS_FLAGS_ENABLE_ASH_EXTENDED_DESKTOP_DESCRIPTION" desc="Description of the flag to enable extended desktop in ash.">
-        Enables extended desktop, which allows you to open a browser in secondary displays.
+      <message name="IDS_FLAGS_DISABLE_ASH_EXTENDED_DESKTOP_DESCRIPTION" desc="Description of the flag to disable extended desktop in ash.">
+        Disable extended desktop, which allows you to open a browser in secondary displays.
       </message>
       <message name="IDS_FLAGS_DISABLE_ASH_NOTIFY_NAME" desc="Name of the flag to enable applist v2 in ash.">
         Disable Ash notifications.
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 9dc4adc3..ce427d39 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -780,11 +780,11 @@
     SINGLE_VALUE_TYPE(app_list::switches::kAppListShowAppsOnly),
   },
   {
-    "ash-extended-desktop",
-    IDS_FLAGS_ENABLE_ASH_EXTENDED_DESKTOP_NAME,
-    IDS_FLAGS_ENABLE_ASH_EXTENDED_DESKTOP_DESCRIPTION,
+    "ash-extended-desktop-disabled",
+    IDS_FLAGS_DISABLE_ASH_EXTENDED_DESKTOP_NAME,
+    IDS_FLAGS_DISABLE_ASH_EXTENDED_DESKTOP_DESCRIPTION,
     kOsAll,
-    SINGLE_VALUE_TYPE(ash::switches::kAshExtendedDesktop)
+    SINGLE_VALUE_TYPE(ash::switches::kAshExtendedDesktopDisabled)
   },
 #endif  // defined(USE_ASH)
 #if defined(OS_CHROMEOS)