Remove persisted docked windows
Disables restoring windows to a docked state if the #ash-enable-docked-windows
flag is disabled. This change was meant to be in M57 right after CL:
https://codereview.chromium.org/2617733002 had landed, but it didn't make it
before the branch point.
BUG=668355
Review-Url: https://codereview.chromium.org/2652043004
Cr-Commit-Position: refs/heads/master@{#446754}
diff --git a/ash/common/wm/window_state.cc b/ash/common/wm/window_state.cc
index 13c4bff3..fbfa933 100644
--- a/ash/common/wm/window_state.cc
+++ b/ash/common/wm/window_state.cc
@@ -33,6 +33,8 @@
return WM_EVENT_FULLSCREEN;
case ui::SHOW_STATE_INACTIVE:
return WM_EVENT_SHOW_INACTIVE;
+
+ // TODO(afakhry): Remove Docked Windows in M58.
case ui::SHOW_STATE_DOCKED:
return WM_EVENT_DOCK;
case ui::SHOW_STATE_END:
diff --git a/ash/common/wm/wm_types.cc b/ash/common/wm/wm_types.cc
index 2e35f990..4deed1a 100644
--- a/ash/common/wm/wm_types.cc
+++ b/ash/common/wm/wm_types.cc
@@ -27,6 +27,8 @@
case WINDOW_STATE_TYPE_LEFT_SNAPPED:
case WINDOW_STATE_TYPE_AUTO_POSITIONED:
return ui::SHOW_STATE_NORMAL;
+
+ // TODO(afakhry): Remove Docked Windows in M58.
case WINDOW_STATE_TYPE_DOCKED:
return ui::SHOW_STATE_DOCKED;
case WINDOW_STATE_TYPE_MINIMIZED:
diff --git a/chrome/browser/extensions/api/sessions/sessions_api.cc b/chrome/browser/extensions/api/sessions/sessions_api.cc
index c628450..8d2cbdad 100644
--- a/chrome/browser/extensions/api/sessions/sessions_api.cc
+++ b/chrome/browser/extensions/api/sessions/sessions_api.cc
@@ -275,6 +275,8 @@
windows::WindowState state = windows::WINDOW_STATE_NONE;
switch (window.show_state) {
case ui::SHOW_STATE_NORMAL:
+
+ // TODO(afakhry): Remove Docked Windows in M58.
case ui::SHOW_STATE_DOCKED:
state = windows::WINDOW_STATE_NORMAL;
break;
diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
index 323bfe4..bb334940 100644
--- a/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
+++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views.cc
@@ -216,6 +216,7 @@
// When a panel is not docked it will be placed at a default origin in the
// currently active target root window.
+ // TODO(afakhry): Remove Docked Windows in M58.
bool use_default_bounds = create_params.state != ui::SHOW_STATE_DOCKED;
// Sanitize initial origin reseting it in case it was not specified.
using BoundsSpecification = AppWindow::BoundsSpecification;
diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc b/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc
index 2c93bee..761872a 100644
--- a/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc
+++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura.cc
@@ -45,6 +45,7 @@
case ui::SHOW_STATE_DEFAULT:
case ui::SHOW_STATE_MINIMIZED:
case ui::SHOW_STATE_INACTIVE:
+ // TODO(afakhry): Remove Docked Windows in M58.
case ui::SHOW_STATE_DOCKED:
case ui::SHOW_STATE_END:
return ui::SHOW_STATE_NORMAL;
@@ -103,6 +104,8 @@
// Use kPreMinimizedShowStateKey in case a window is minimized/hidden.
ui::WindowShowState restore_state = widget()->GetNativeWindow()->GetProperty(
aura::client::kPreMinimizedShowStateKey);
+
+ // TODO(afakhry): Remove in M58.
if (widget()->GetNativeWindow()->GetProperty(aura::client::kShowStateKey) ==
ui::SHOW_STATE_DOCKED ||
restore_state == ui::SHOW_STATE_DOCKED) {
diff --git a/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura_ash.cc b/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura_ash.cc
index abc6fb9..2f719c0 100644
--- a/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura_ash.cc
+++ b/chrome/browser/ui/views/apps/chrome_native_app_window_views_aura_ash.cc
@@ -6,6 +6,7 @@
#include "apps/ui/views/app_window_frame_view.h"
#include "ash/common/ash_constants.h"
+#include "ash/common/ash_switches.h"
#include "ash/common/frame/custom_frame_view_ash.h"
#include "ash/common/shelf/shelf_item_types.h"
#include "ash/common/wm/panels/panel_frame_view.h"
@@ -128,9 +129,14 @@
const AppWindow::CreateParams& create_params) {
ChromeNativeAppWindowViewsAura::InitializeWindow(app_window, create_params);
aura::Window* window = widget()->GetNativeWindow();
- // Restore docked state on ash desktop.
- if (create_params.state == ui::SHOW_STATE_DOCKED)
+
+ // TODO(afakhry): Remove Docked Windows in M58.
+ // Restore docked state on ash desktop if the docked windows flag is enabled.
+ if (create_params.state == ui::SHOW_STATE_DOCKED &&
+ ash::switches::DockedWindowsEnabled()) {
window->SetProperty(aura::client::kShowStateKey, create_params.state);
+ }
+
window->SetProperty(aura::client::kAppIdKey,
new std::string(app_window->extension_id()));
@@ -224,10 +230,14 @@
}
return ui::SHOW_STATE_FULLSCREEN;
}
- if (widget()->GetNativeWindow()->GetProperty(aura::client::kShowStateKey) ==
- ui::SHOW_STATE_DOCKED ||
- widget()->GetNativeWindow()->GetProperty(
- aura::client::kPreMinimizedShowStateKey) == ui::SHOW_STATE_DOCKED) {
+
+ // TODO(afakhry): Remove Docked Windows in M58.
+ if (ash::switches::DockedWindowsEnabled() &&
+ (widget()->GetNativeWindow()->GetProperty(
+ aura::client::kShowStateKey) == ui::SHOW_STATE_DOCKED ||
+ widget()->GetNativeWindow()->GetProperty(
+ aura::client::kPreMinimizedShowStateKey) ==
+ ui::SHOW_STATE_DOCKED)) {
return ui::SHOW_STATE_DOCKED;
}
}
diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc
index 5c3e141..96f14b1 100644
--- a/chrome/browser/ui/views/chrome_views_delegate.cc
+++ b/chrome/browser/ui/views/chrome_views_delegate.cc
@@ -231,7 +231,9 @@
window_preferences->SetInteger("bottom", bounds.bottom());
window_preferences->SetBoolean("maximized",
show_state == ui::SHOW_STATE_MAXIMIZED);
+ // TODO(afakhry): Remove Docked Windows in M58.
window_preferences->SetBoolean("docked", show_state == ui::SHOW_STATE_DOCKED);
+
gfx::Rect work_area(display::Screen::GetScreen()
->GetDisplayNearestWindow(window->GetNativeView())
.work_area());
diff --git a/chrome/browser/ui/views/frame/browser_frame_ash.cc b/chrome/browser/ui/views/frame/browser_frame_ash.cc
index 58ba903..1ec42a0 100644
--- a/chrome/browser/ui/views/frame/browser_frame_ash.cc
+++ b/chrome/browser/ui/views/frame/browser_frame_ash.cc
@@ -4,6 +4,7 @@
#include "chrome/browser/ui/views/frame/browser_frame_ash.h"
+#include "ash/common/ash_switches.h"
#include "ash/common/wm/window_state.h"
#include "ash/common/wm/window_state_delegate.h"
#include "ash/shell.h"
@@ -118,7 +119,9 @@
*show_state = ui::SHOW_STATE_NORMAL;
}
- if (ash::wm::GetWindowState(GetNativeWindow())->IsDocked()) {
+ // TODO(afakhry): Remove Docked Windows in M58.
+ if (ash::switches::DockedWindowsEnabled() &&
+ ash::wm::GetWindowState(GetNativeWindow())->IsDocked()) {
if (browser_view_->browser()->is_app()) {
// Only web app windows (not tabbed browser windows) persist docked state.
*show_state = ui::SHOW_STATE_DOCKED;
diff --git a/chrome/browser/ui/window_sizer/window_sizer.cc b/chrome/browser/ui/window_sizer/window_sizer.cc
index 446d116..2848985a 100644
--- a/chrome/browser/ui/window_sizer/window_sizer.cc
+++ b/chrome/browser/ui/window_sizer/window_sizer.cc
@@ -23,6 +23,7 @@
#include "ui/display/screen.h"
#if defined(USE_ASH)
+#include "ash/common/ash_switches.h"
#include "ash/common/wm/window_positioner.h" // nogncheck
#include "ash/shell.h" // nogncheck
#include "chrome/browser/ui/ash/ash_util.h" // nogncheck
@@ -80,11 +81,14 @@
if (*show_state == ui::SHOW_STATE_DEFAULT && maximized)
*show_state = ui::SHOW_STATE_MAXIMIZED;
#if defined(USE_ASH)
- bool docked = false;
- wp_pref->GetBoolean("docked", &docked);
- if (*show_state == ui::SHOW_STATE_DEFAULT && docked &&
- !browser_->is_type_tabbed()) {
- *show_state = ui::SHOW_STATE_DOCKED;
+ // TODO(afakhry): Remove Docked Windows in M58.
+ if (ash::switches::DockedWindowsEnabled()) {
+ bool docked = false;
+ wp_pref->GetBoolean("docked", &docked);
+ if (*show_state == ui::SHOW_STATE_DEFAULT && docked &&
+ !browser_->is_type_tabbed()) {
+ *show_state = ui::SHOW_STATE_DOCKED;
+ }
}
#endif // USE_ASH
}
diff --git a/components/sessions/core/session_service_commands.cc b/components/sessions/core/session_service_commands.cc
index ecedfe6..d066372 100644
--- a/components/sessions/core/session_service_commands.cc
+++ b/components/sessions/core/session_service_commands.cc
@@ -113,7 +113,7 @@
// SHOW_STATE_INACTIVE (4) never persisted.
PERSISTED_SHOW_STATE_FULLSCREEN = 5,
PERSISTED_SHOW_STATE_DETACHED_DEPRECATED = 6,
- PERSISTED_SHOW_STATE_DOCKED = 7,
+ PERSISTED_SHOW_STATE_DOCKED_DEPRECATED = 7,
PERSISTED_SHOW_STATE_END = 7
};
@@ -140,8 +140,10 @@
return PERSISTED_SHOW_STATE_MAXIMIZED;
case ui::SHOW_STATE_FULLSCREEN:
return PERSISTED_SHOW_STATE_FULLSCREEN;
+
+ // TODO(afakhry): Remove Docked Windows in M58.
case ui::SHOW_STATE_DOCKED:
- return PERSISTED_SHOW_STATE_DOCKED;
+ return PERSISTED_SHOW_STATE_DOCKED_DEPRECATED;
case ui::SHOW_STATE_DEFAULT:
case ui::SHOW_STATE_INACTIVE:
@@ -165,7 +167,7 @@
return ui::SHOW_STATE_MAXIMIZED;
case PERSISTED_SHOW_STATE_FULLSCREEN:
return ui::SHOW_STATE_FULLSCREEN;
- case PERSISTED_SHOW_STATE_DOCKED:
+ case PERSISTED_SHOW_STATE_DOCKED_DEPRECATED:
return ui::SHOW_STATE_DOCKED;
case PERSISTED_SHOW_STATE_DETACHED_DEPRECATED:
return ui::SHOW_STATE_NORMAL;
diff --git a/ui/views/mus/desktop_window_tree_host_mus.cc b/ui/views/mus/desktop_window_tree_host_mus.cc
index 2273016..0aac63a 100644
--- a/ui/views/mus/desktop_window_tree_host_mus.cc
+++ b/ui/views/mus/desktop_window_tree_host_mus.cc
@@ -202,6 +202,7 @@
desktop_native_widget_aura_->OnDesktopWindowTreeHostDestroyed(this);
}
+// TODO(afakhry): Remove Docked Windows in M58.
bool DesktopWindowTreeHostMus::IsDocked() const {
return window()->GetProperty(aura::client::kShowStateKey) ==
ui::SHOW_STATE_DOCKED;
@@ -358,6 +359,7 @@
}
void DesktopWindowTreeHostMus::ShowWindowWithState(ui::WindowShowState state) {
+ // TODO(afakhry): Remove Docked Windows in M58.
if (state == ui::SHOW_STATE_MAXIMIZED || state == ui::SHOW_STATE_FULLSCREEN ||
state == ui::SHOW_STATE_DOCKED) {
window()->SetProperty(aura::client::kShowStateKey, state);
diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc
index 8082fb5a..5edfc18 100644
--- a/ui/views/widget/native_widget_aura.cc
+++ b/ui/views/widget/native_widget_aura.cc
@@ -534,6 +534,7 @@
if (!window_)
return;
+ // TODO(afakhry): Remove Docked Windows in M58.
if (state == ui::SHOW_STATE_MAXIMIZED || state == ui::SHOW_STATE_FULLSCREEN ||
state == ui::SHOW_STATE_DOCKED) {
window_->SetProperty(aura::client::kShowStateKey, state);
@@ -992,6 +993,7 @@
////////////////////////////////////////////////////////////////////////////////
// NativeWidgetAura, private:
+// TODO(afakhry): Remove Docked Windows in M58.
bool NativeWidgetAura::IsDocked() const {
return window_ &&
window_->GetProperty(aura::client::kShowStateKey) ==