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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: ui/base/material_design/material_design_controller.cc
diff --git a/ui/base/material_design/material_design_controller.cc b/ui/base/material_design/material_design_controller.cc
index 86685cf5114f2d0db70683e5828e42960227dfe2..41e7be934ff5d5ff04cc6c99bfd0b00e7af8dd40 100644
--- a/ui/base/material_design/material_design_controller.cc
+++ b/ui/base/material_design/material_design_controller.cc
@@ -6,6 +6,7 @@
#include "base/command_line.h"
#include "base/logging.h"
+#include "base/metrics/field_trial.h"
#include "base/trace_event/trace_event.h"
#include "ui/base/material_design/material_design_controller.h"
#include "ui/base/ui_base_switches.h"
@@ -26,8 +27,9 @@
namespace ui {
+// static
bool MaterialDesignController::is_mode_initialized_ = false;
-
+bool MaterialDesignController::default_to_material_ = false;
MaterialDesignController::Mode MaterialDesignController::mode_ =
MaterialDesignController::NON_MATERIAL;
@@ -82,6 +84,21 @@ bool MaterialDesignController::IsSecondaryUiMaterial() {
// static
MaterialDesignController::Mode MaterialDesignController::DefaultMode() {
+ // The field trial value, if any, overrides the platform defaults below.
+ constexpr char kMaterialDesignModeFieldTrialName[] = "MaterialDesignMode";
+ constexpr char kNonMaterialGroupName[] = "NonMaterial";
+ constexpr char kMaterialNormalGroupName[] = "MaterialNormal";
+ constexpr char kMaterialHybridGroupName[] = "MaterialHybrid";
+ const std::string group =
+ base::FieldTrialList::FindFullName(kMaterialDesignModeFieldTrialName);
+ if (group == kNonMaterialGroupName)
+ return NON_MATERIAL;
+ if (group == kMaterialNormalGroupName)
+ return MATERIAL_NORMAL;
+ if (group == kMaterialHybridGroupName)
+ return MATERIAL_HYBRID;
+
+ // No recognized field trial group; fall back to per-platform defaults.
#if defined(OS_CHROMEOS)
// If a scan of available devices has already completed, use material-hybrid
// if a touchscreen is present.
@@ -115,12 +132,19 @@ MaterialDesignController::Mode MaterialDesignController::DefaultMode() {
return MATERIAL_NORMAL;
#elif defined(OS_LINUX) || defined(OS_MACOSX)
return MATERIAL_NORMAL;
+#elif defined(OS_WIN)
+ return default_to_material_ ? MATERIAL_NORMAL : NON_MATERIAL;
#else
return NON_MATERIAL;
#endif // defined(OS_CHROMEOS)
}
// static
+void MaterialDesignController::SetDefaultToMaterial(bool default_to_material) {
+ default_to_material_ = default_to_material;
+}
+
+// static
void MaterialDesignController::Uninitialize() {
is_mode_initialized_ = false;
}

Powered by Google App Engine
This is Rietveld 408576698