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

Unified Diff: chrome/browser/supervised_user/experimental/supervised_user_filtering_switches.cc

Issue 698253002: Supervised user SafeSites: Add a field trial to turn on/off (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 8 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: chrome/browser/supervised_user/experimental/supervised_user_filtering_switches.cc
diff --git a/chrome/browser/supervised_user/experimental/supervised_user_filtering_switches.cc b/chrome/browser/supervised_user/experimental/supervised_user_filtering_switches.cc
new file mode 100644
index 0000000000000000000000000000000000000000..557580730d1e7b64111d5f7d3a2e1a98e454cb59
--- /dev/null
+++ b/chrome/browser/supervised_user/experimental/supervised_user_filtering_switches.cc
@@ -0,0 +1,73 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/supervised_user/experimental/supervised_user_filtering_switches.h"
+
+#include "base/command_line.h"
+#include "base/metrics/field_trial.h"
+#include "chrome/common/chrome_switches.h"
+
+namespace {
+
+enum class SafeSitesState {
+ ENABLED,
+ DISABLED,
+ BLACKLIST_ONLY,
+ ONLINE_CHECK_ONLY
+};
+
+const char kSafeSitesFieldTrialName[] = "SafeSites";
+
+SafeSitesState GetState() {
+ // Note: It's important to query the field trial state first, to ensure that
+ // UMA reports the correct group.
+ std::string trial_group =
+ base::FieldTrialList::FindFullName(kSafeSitesFieldTrialName);
+
+ std::string arg = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
+ switches::kSupervisedUserSafeSites);
+ if (!arg.empty()) {
+ if (arg == "enabled")
+ return SafeSitesState::ENABLED;
+ else if (arg == "disabled")
+ return SafeSitesState::DISABLED;
+ else if (arg == "blacklist-only")
+ return SafeSitesState::BLACKLIST_ONLY;
+ else if (arg == "online-check-only")
+ return SafeSitesState::ONLINE_CHECK_ONLY;
+
+ LOG(WARNING) << "Invalid value \"" << arg << "\" specified for flag \""
+ << switches::kSupervisedUserSafeSites
+ << "\", defaulting to \"disabled\"";
+ return SafeSitesState::DISABLED;
+ }
+
+ // If no cmdline arg is specified, evaluate the field trial.
+ if (trial_group == "Disabled")
+ return SafeSitesState::DISABLED;
+ else if (trial_group == "BlacklistOnly")
+ return SafeSitesState::BLACKLIST_ONLY;
+ else if (trial_group == "OnlineCheckOnly")
+ return SafeSitesState::ONLINE_CHECK_ONLY;
+ else
+ return SafeSitesState::ENABLED;
+}
+
+} // namespace
+
+namespace supervised_users {
+
+bool IsSafeSitesBlacklistEnabled() {
+ SafeSitesState state = GetState();
+ return state == SafeSitesState::ENABLED ||
+ state == SafeSitesState::BLACKLIST_ONLY;
+}
+
+bool IsSafeSitesOnlineCheckEnabled() {
+ SafeSitesState state = GetState();
+ return state == SafeSitesState::ENABLED ||
+ state == SafeSitesState::ONLINE_CHECK_ONLY;
+}
+
+} // namespace supervised_users

Powered by Google App Engine
This is Rietveld 408576698