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

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: DISALLOW_IMPLICIT_CONSTRUCTORS 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..bf153e35e166170935fd1a040ef6157b500da4aa 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,8 @@
namespace ui {
+// static
bool MaterialDesignController::is_mode_initialized_ = false;
-
MaterialDesignController::Mode MaterialDesignController::mode_ =
MaterialDesignController::NON_MATERIAL;
@@ -35,6 +36,11 @@ bool MaterialDesignController::include_secondary_ui_ = false;
// static
void MaterialDesignController::Initialize() {
+ InitializeWithDefaultMode(DefaultMode());
+}
+
+// static
+void MaterialDesignController::InitializeWithDefaultMode(Mode mode) {
TRACE_EVENT0("startup", "MaterialDesignController::InitializeMode");
CHECK(!is_mode_initialized_);
#if !defined(ENABLE_TOPCHROME_MD)
@@ -56,7 +62,22 @@ void MaterialDesignController::Initialize() {
<< "' for command line switch '" << switches::kTopChromeMD
<< "'.";
}
- SetMode(DefaultMode());
+
+ // The field trial value, if any, overrides the provided default mode.
+ 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)
+ mode = NON_MATERIAL;
+ else if (group == kMaterialNormalGroupName)
+ mode = MATERIAL_NORMAL;
+ else if (group == kMaterialHybridGroupName)
+ mode = MATERIAL_HYBRID;
+
+ SetMode(mode);
}
include_secondary_ui_ = base::CommandLine::ForCurrentProcess()->HasSwitch(
@@ -81,6 +102,17 @@ bool MaterialDesignController::IsSecondaryUiMaterial() {
}
// static
+void MaterialDesignController::Uninitialize() {
+ is_mode_initialized_ = false;
+}
+
+// static
+void MaterialDesignController::SetMode(MaterialDesignController::Mode mode) {
+ mode_ = mode;
+ is_mode_initialized_ = true;
+}
+
+// static
MaterialDesignController::Mode MaterialDesignController::DefaultMode() {
#if defined(OS_CHROMEOS)
// If a scan of available devices has already completed, use material-hybrid
@@ -113,22 +145,11 @@ MaterialDesignController::Mode MaterialDesignController::DefaultMode() {
}
#endif // defined(USE_OZONE)
return MATERIAL_NORMAL;
-#elif defined(OS_LINUX) || defined(OS_MACOSX)
+#elif defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_WIN)
return MATERIAL_NORMAL;
#else
return NON_MATERIAL;
#endif // defined(OS_CHROMEOS)
}
-// static
-void MaterialDesignController::Uninitialize() {
- is_mode_initialized_ = false;
-}
-
-// static
-void MaterialDesignController::SetMode(MaterialDesignController::Mode mode) {
- mode_ = mode;
- is_mode_initialized_ = true;
-}
-
} // namespace ui
« no previous file with comments | « ui/base/material_design/material_design_controller.h ('k') | ui/base/material_design/material_design_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698