Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(361)

Unified Diff: ash/common/wm/maximize_mode/maximize_mode_controller.cc

Issue 2775683002: CrOS: Apply flag which enables us to force maximize mode. (Closed)
Patch Set: Rebased. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/common/wm/maximize_mode/maximize_mode_controller.cc
diff --git a/ash/common/wm/maximize_mode/maximize_mode_controller.cc b/ash/common/wm/maximize_mode/maximize_mode_controller.cc
index 7fbf2b6f138b90dc9eba590a6e0044484f192c24..037ce1a6bf9c7db10071bf2ef04dc3167303bf8e 100644
--- a/ash/common/wm/maximize_mode/maximize_mode_controller.cc
+++ b/ash/common/wm/maximize_mode/maximize_mode_controller.cc
@@ -85,6 +85,22 @@ bool IsEnabled() {
switches::kAshEnableTouchView);
}
+// Checks the command line to see which force maximize mode is turned on, if
+// any.
+MaximizeModeController::ForceTabletMode GetMaximizeMode() {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(switches::kAshForceTabletMode)) {
+ std::string switch_value =
+ command_line->GetSwitchValueASCII(switches::kAshForceTabletMode);
+ if (switch_value == switches::kAshForceTabletModeClamshell)
+ return MaximizeModeController::ForceTabletMode::CLAMSHELL;
+
+ if (switch_value == switches::kAshForceTabletModeTouchView)
+ return MaximizeModeController::ForceTabletMode::TOUCHVIEW;
+ }
+ return MaximizeModeController::ForceTabletMode::NONE;
+}
+
} // namespace
MaximizeModeController::MaximizeModeController()
@@ -180,6 +196,9 @@ void MaximizeModeController::BindRequest(
void MaximizeModeController::OnAccelerometerUpdated(
scoped_refptr<const chromeos::AccelerometerUpdate> update) {
+ if (!AllowEnterExitMaximizeMode())
+ return;
+
have_seen_accelerometer_data_ = true;
can_detect_lid_angle_ =
update->has(chromeos::ACCELEROMETER_SOURCE_SCREEN) &&
@@ -214,6 +233,9 @@ void MaximizeModeController::OnAccelerometerUpdated(
void MaximizeModeController::LidEventReceived(
chromeos::PowerManagerClient::LidState state,
const base::TimeTicks& time) {
+ if (!AllowEnterExitMaximizeMode())
+ return;
+
const bool open = state == chromeos::PowerManagerClient::LidState::OPEN;
if (open)
last_lid_open_time_ = time;
@@ -224,6 +246,9 @@ void MaximizeModeController::LidEventReceived(
void MaximizeModeController::TabletModeEventReceived(
chromeos::PowerManagerClient::TabletMode mode,
const base::TimeTicks& time) {
+ if (!AllowEnterExitMaximizeMode())
+ return;
+
const bool on = mode == chromeos::PowerManagerClient::TabletMode::ON;
tablet_mode_switch_is_on_ = on;
// Do not change if docked.
@@ -353,6 +378,12 @@ void MaximizeModeController::OnMaximizeModeEnded() {
RecordTouchViewUsageInterval(TOUCH_VIEW_INTERVAL_ACTIVE);
}
+void MaximizeModeController::OnShellInitialized() {
+ force_tablet_mode_ = GetMaximizeMode();
+ if (force_tablet_mode_ == ForceTabletMode::TOUCHVIEW)
+ EnterMaximizeMode();
+}
+
void MaximizeModeController::OnDisplayConfigurationChanged() {
if (!display::Display::HasInternalDisplay() ||
!WmShell::Get()->IsActiveDisplayId(
@@ -402,6 +433,10 @@ void MaximizeModeController::AddObserver(mojom::TouchViewObserverPtr observer) {
observers_.AddPtr(std::move(observer));
}
+bool MaximizeModeController::AllowEnterExitMaximizeMode() const {
+ return force_tablet_mode_ == ForceTabletMode::NONE;
+}
+
void MaximizeModeController::OnAppTerminating() {
// The system is about to shut down, so record TouchView usage interval
// metrics based on whether TouchView mode is currently active.
« no previous file with comments | « ash/common/wm/maximize_mode/maximize_mode_controller.h ('k') | ash/wm/maximize_mode/maximize_mode_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698