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

Side by Side Diff: ash/common/wm/maximize_mode/maximize_mode_controller.cc

Issue 2642853006: Remove the ash-enable-touch-view-testing flag (Closed)
Patch Set: holte's comment. Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" 5 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "ash/common/ash_switches.h" 9 #include "ash/common/ash_switches.h"
10 #include "ash/common/wm/maximize_mode/maximize_mode_window_manager.h" 10 #include "ash/common/wm/maximize_mode/maximize_mode_window_manager.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 tick_clock_(new base::DefaultTickClock()), 91 tick_clock_(new base::DefaultTickClock()),
92 tablet_mode_switch_is_on_(false), 92 tablet_mode_switch_is_on_(false),
93 lid_is_closed_(false) { 93 lid_is_closed_(false) {
94 WmShell::Get()->AddShellObserver(this); 94 WmShell::Get()->AddShellObserver(this);
95 WmShell::Get()->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_INITIALLY_DISABLED); 95 WmShell::Get()->RecordUserMetricsAction(UMA_MAXIMIZE_MODE_INITIALLY_DISABLED);
96 96
97 // TODO(jonross): Do not create MaximizeModeController if the flag is 97 // TODO(jonross): Do not create MaximizeModeController if the flag is
98 // unavailable. This will require refactoring 98 // unavailable. This will require refactoring
99 // IsMaximizeModeWindowManagerEnabled to check for the existance of the 99 // IsMaximizeModeWindowManagerEnabled to check for the existance of the
100 // controller. 100 // controller.
101 const bool is_enabled = IsEnabled(); 101 if (IsEnabled()) {
102 if (is_enabled)
103 WmShell::Get()->AddDisplayObserver(this); 102 WmShell::Get()->AddDisplayObserver(this);
104
105 if (is_enabled)
106 chromeos::AccelerometerReader::GetInstance()->AddObserver(this); 103 chromeos::AccelerometerReader::GetInstance()->AddObserver(this);
104 }
107 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver( 105 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(
108 this); 106 this);
109 } 107 }
110 108
111 MaximizeModeController::~MaximizeModeController() { 109 MaximizeModeController::~MaximizeModeController() {
112 WmShell::Get()->RemoveShellObserver(this); 110 WmShell::Get()->RemoveShellObserver(this);
113 const bool is_enabled = IsEnabled(); 111
114 if (is_enabled) 112 if (IsEnabled()) {
115 WmShell::Get()->RemoveDisplayObserver(this); 113 WmShell::Get()->RemoveDisplayObserver(this);
116
117 if (is_enabled)
118 chromeos::AccelerometerReader::GetInstance()->RemoveObserver(this); 114 chromeos::AccelerometerReader::GetInstance()->RemoveObserver(this);
115 }
119 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver( 116 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RemoveObserver(
120 this); 117 this);
121 } 118 }
122 119
123 bool MaximizeModeController::CanEnterMaximizeMode() { 120 bool MaximizeModeController::CanEnterMaximizeMode() {
124 // If we have ever seen accelerometer data, then HandleHingeRotation may 121 // If we have ever seen accelerometer data, then HandleHingeRotation may
125 // trigger maximize mode at some point in the future. 122 // trigger maximize mode at some point in the future.
126 // The --enable-touch-view-testing switch can also mean that we may enter 123 // All TouchView-enabled devices can enter maximized mode.
127 // maximize mode. 124 return have_seen_accelerometer_data_ || IsEnabled();
128 // TODO(mgiuca): This can result in false positives, as it returns true for
129 // any device with an accelerometer. Have TouchView-enabled devices explicitly
130 // set a flag, and change this implementation to simply return true iff the
131 // flag is present (http://crbug.com/457445).
132 return have_seen_accelerometer_data_ ||
133 base::CommandLine::ForCurrentProcess()->HasSwitch(
134 switches::kAshEnableTouchViewTesting);
135 } 125 }
136 126
137 // TODO(jcliang): Hide or remove EnableMaximizeModeWindowManager 127 // TODO(jcliang): Hide or remove EnableMaximizeModeWindowManager
138 // (http://crbug.com/620241). 128 // (http://crbug.com/620241).
139 void MaximizeModeController::EnableMaximizeModeWindowManager( 129 void MaximizeModeController::EnableMaximizeModeWindowManager(
140 bool should_enable) { 130 bool should_enable) {
141 bool is_enabled = !!maximize_mode_window_manager_.get(); 131 bool is_enabled = !!maximize_mode_window_manager_.get();
142 if (should_enable == is_enabled) 132 if (should_enable == is_enabled)
143 return; 133 return;
144 134
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 EnterMaximizeMode(); 299 EnterMaximizeMode();
310 } 300 }
311 } 301 }
312 302
313 void MaximizeModeController::EnterMaximizeMode() { 303 void MaximizeModeController::EnterMaximizeMode() {
314 // Always reset first to avoid creation before destruction of a previous 304 // Always reset first to avoid creation before destruction of a previous
315 // object. 305 // object.
316 event_blocker_ = 306 event_blocker_ =
317 WmShell::Get()->CreateScopedDisableInternalMouseAndKeyboard(); 307 WmShell::Get()->CreateScopedDisableInternalMouseAndKeyboard();
318 308
319 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
320 switches::kAshEnableTouchViewTesting)) {
321 // We don't let accelerometer updates interfere with the maximize mode
322 // status as set by the touch-view-testing keyboard shortcut.
323 return;
324 }
325
326 if (IsMaximizeModeWindowManagerEnabled()) 309 if (IsMaximizeModeWindowManagerEnabled())
327 return; 310 return;
328 EnableMaximizeModeWindowManager(true); 311 EnableMaximizeModeWindowManager(true);
329 } 312 }
330 313
331 void MaximizeModeController::LeaveMaximizeMode() { 314 void MaximizeModeController::LeaveMaximizeMode() {
332 event_blocker_.reset(); 315 event_blocker_.reset();
333 316
334 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
335 switches::kAshEnableTouchViewTesting)) {
336 // We don't let accelerometer updates interfere with the maximize mode
337 // status as set by the touch-view-testing keyboard shortcut.
338 return;
339 }
340
341 if (!IsMaximizeModeWindowManagerEnabled()) 317 if (!IsMaximizeModeWindowManagerEnabled())
342 return; 318 return;
343 EnableMaximizeModeWindowManager(false); 319 EnableMaximizeModeWindowManager(false);
344 } 320 }
345 321
346 // Called after maximize mode has started, windows might still animate though. 322 // Called after maximize mode has started, windows might still animate though.
347 void MaximizeModeController::OnMaximizeModeStarted() { 323 void MaximizeModeController::OnMaximizeModeStarted() {
348 RecordTouchViewUsageInterval(TOUCH_VIEW_INTERVAL_INACTIVE); 324 RecordTouchViewUsageInterval(TOUCH_VIEW_INTERVAL_INACTIVE);
349 } 325 }
350 326
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
427 return elapsed_time.InSeconds() <= kLidRecentlyOpenedDurationSeconds; 403 return elapsed_time.InSeconds() <= kLidRecentlyOpenedDurationSeconds;
428 } 404 }
429 405
430 void MaximizeModeController::SetTickClockForTest( 406 void MaximizeModeController::SetTickClockForTest(
431 std::unique_ptr<base::TickClock> tick_clock) { 407 std::unique_ptr<base::TickClock> tick_clock) {
432 DCHECK(tick_clock_); 408 DCHECK(tick_clock_);
433 tick_clock_ = std::move(tick_clock); 409 tick_clock_ = std::move(tick_clock);
434 } 410 }
435 411
436 } // namespace ash 412 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/ash_switches.cc ('k') | ash/content/display/screen_orientation_controller_chromeos_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698