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

Side by Side Diff: ui/base/material_design/material_design_controller.cc

Issue 1955773002: Enable MD by default on Windows for Canary/Dev and local builds. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't break first run Created 4 years, 7 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 <string> 5 #include <string>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/field_trial.h"
9 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
10 #include "ui/base/material_design/material_design_controller.h" 11 #include "ui/base/material_design/material_design_controller.h"
11 #include "ui/base/ui_base_switches.h" 12 #include "ui/base/ui_base_switches.h"
12 13
13 #if defined(OS_CHROMEOS) 14 #if defined(OS_CHROMEOS)
14 #include "ui/base/touch/touch_device.h" 15 #include "ui/base/touch/touch_device.h"
15 #include "ui/events/devices/device_data_manager.h" 16 #include "ui/events/devices/device_data_manager.h"
16 17
17 #if defined(USE_OZONE) 18 #if defined(USE_OZONE)
18 #include <fcntl.h> 19 #include <fcntl.h>
19 20
20 #include "base/files/file_enumerator.h" 21 #include "base/files/file_enumerator.h"
21 #include "base/threading/thread_restrictions.h" 22 #include "base/threading/thread_restrictions.h"
22 #include "ui/events/ozone/evdev/event_device_info.h" 23 #include "ui/events/ozone/evdev/event_device_info.h"
23 #endif // defined(USE_OZONE) 24 #endif // defined(USE_OZONE)
24 25
25 #endif // defined(OS_CHROMEOS) 26 #endif // defined(OS_CHROMEOS)
26 27
27 namespace ui { 28 namespace ui {
28 29
30 // static
29 bool MaterialDesignController::is_mode_initialized_ = false; 31 bool MaterialDesignController::is_mode_initialized_ = false;
30 32 bool MaterialDesignController::default_to_material_ = false;
31 MaterialDesignController::Mode MaterialDesignController::mode_ = 33 MaterialDesignController::Mode MaterialDesignController::mode_ =
32 MaterialDesignController::NON_MATERIAL; 34 MaterialDesignController::NON_MATERIAL;
33 35
34 bool MaterialDesignController::include_secondary_ui_ = false; 36 bool MaterialDesignController::include_secondary_ui_ = false;
35 37
36 // static 38 // static
37 void MaterialDesignController::Initialize() { 39 void MaterialDesignController::Initialize() {
38 TRACE_EVENT0("startup", "MaterialDesignController::InitializeMode"); 40 TRACE_EVENT0("startup", "MaterialDesignController::InitializeMode");
39 CHECK(!is_mode_initialized_); 41 CHECK(!is_mode_initialized_);
40 #if !defined(ENABLE_TOPCHROME_MD) 42 #if !defined(ENABLE_TOPCHROME_MD)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 return GetMode() == MATERIAL_NORMAL || GetMode() == MATERIAL_HYBRID; 77 return GetMode() == MATERIAL_NORMAL || GetMode() == MATERIAL_HYBRID;
76 } 78 }
77 79
78 // static 80 // static
79 bool MaterialDesignController::IsSecondaryUiMaterial() { 81 bool MaterialDesignController::IsSecondaryUiMaterial() {
80 return IsModeMaterial() && include_secondary_ui_; 82 return IsModeMaterial() && include_secondary_ui_;
81 } 83 }
82 84
83 // static 85 // static
84 MaterialDesignController::Mode MaterialDesignController::DefaultMode() { 86 MaterialDesignController::Mode MaterialDesignController::DefaultMode() {
87 // The field trial value, if any, overrides the platform defaults below.
88 constexpr char kMaterialDesignModeFieldTrialName[] = "MaterialDesignMode";
89 constexpr char kNonMaterialGroupName[] = "NonMaterial";
90 constexpr char kMaterialNormalGroupName[] = "MaterialNormal";
91 constexpr char kMaterialHybridGroupName[] = "MaterialHybrid";
92 const std::string group =
93 base::FieldTrialList::FindFullName(kMaterialDesignModeFieldTrialName);
94 if (group == kNonMaterialGroupName)
95 return NON_MATERIAL;
96 if (group == kMaterialNormalGroupName)
97 return MATERIAL_NORMAL;
98 if (group == kMaterialHybridGroupName)
99 return MATERIAL_HYBRID;
100
101 // No recognized field trial group; fall back to per-platform defaults.
85 #if defined(OS_CHROMEOS) 102 #if defined(OS_CHROMEOS)
86 // If a scan of available devices has already completed, use material-hybrid 103 // If a scan of available devices has already completed, use material-hybrid
87 // if a touchscreen is present. 104 // if a touchscreen is present.
88 if (DeviceDataManager::HasInstance() && 105 if (DeviceDataManager::HasInstance() &&
89 DeviceDataManager::GetInstance()->device_lists_complete()) { 106 DeviceDataManager::GetInstance()->device_lists_complete()) {
90 return GetTouchScreensAvailability() == TouchScreensAvailability::ENABLED 107 return GetTouchScreensAvailability() == TouchScreensAvailability::ENABLED
91 ? MATERIAL_HYBRID 108 ? MATERIAL_HYBRID
92 : MATERIAL_NORMAL; 109 : MATERIAL_NORMAL;
93 } 110 }
94 111
(...skipping 13 matching lines...) Expand all
108 close(fd); 125 close(fd);
109 return MATERIAL_HYBRID; 126 return MATERIAL_HYBRID;
110 } 127 }
111 close(fd); 128 close(fd);
112 } 129 }
113 } 130 }
114 #endif // defined(USE_OZONE) 131 #endif // defined(USE_OZONE)
115 return MATERIAL_NORMAL; 132 return MATERIAL_NORMAL;
116 #elif defined(OS_LINUX) || defined(OS_MACOSX) 133 #elif defined(OS_LINUX) || defined(OS_MACOSX)
117 return MATERIAL_NORMAL; 134 return MATERIAL_NORMAL;
135 #elif defined(OS_WIN)
136 return default_to_material_ ? MATERIAL_NORMAL : NON_MATERIAL;
118 #else 137 #else
119 return NON_MATERIAL; 138 return NON_MATERIAL;
120 #endif // defined(OS_CHROMEOS) 139 #endif // defined(OS_CHROMEOS)
121 } 140 }
122 141
123 // static 142 // static
143 void MaterialDesignController::SetDefaultToMaterial(bool default_to_material) {
144 default_to_material_ = default_to_material;
145 }
146
147 // static
124 void MaterialDesignController::Uninitialize() { 148 void MaterialDesignController::Uninitialize() {
125 is_mode_initialized_ = false; 149 is_mode_initialized_ = false;
126 } 150 }
127 151
128 // static 152 // static
129 void MaterialDesignController::SetMode(MaterialDesignController::Mode mode) { 153 void MaterialDesignController::SetMode(MaterialDesignController::Mode mode) {
130 mode_ = mode; 154 mode_ = mode;
131 is_mode_initialized_ = true; 155 is_mode_initialized_ = true;
132 } 156 }
133 157
134 } // namespace ui 158 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698