Add CCTToSDialogEnabled policy to skip ToS for CCT/PWA.
Bug: 1106981
Change-Id: I534a03608058d3136dde4a1854735ed327f0a51d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2321769
Commit-Queue: Sky Malice <[email protected]>
Reviewed-by: Owen Min <[email protected]>
Reviewed-by: Yusuf Ozuysal <[email protected]>
Reviewed-by: Dominic Battré <[email protected]>
Reviewed-by: Wenyu Fu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#794008}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 84f0a6b..19f1c708 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2711,6 +2711,8 @@
"enterprise/util/android_enterprise_info.h",
"file_select_helper_contacts_android.cc",
"file_select_helper_contacts_android.h",
+ "first_run/android/first_run_prefs.cc",
+ "first_run/android/first_run_prefs.h",
"first_run/android/first_run_utils.cc",
"flags/android/chrome_feature_list.cc",
"flags/android/chrome_feature_list.h",
diff --git a/chrome/browser/first_run/android/first_run_prefs.cc b/chrome/browser/first_run/android/first_run_prefs.cc
new file mode 100644
index 0000000..3287072
--- /dev/null
+++ b/chrome/browser/first_run/android/first_run_prefs.cc
@@ -0,0 +1,12 @@
+// Copyright 2020 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/first_run/android/first_run_prefs.h"
+
+namespace first_run {
+
+// Whether the ToS should be shown during the first-run for CCTs/PWAs.
+const char kCCTToSDialogEnabled[] = "policy.cct_tos_dialog_enabled";
+
+} // namespace first_run
diff --git a/chrome/browser/first_run/android/first_run_prefs.h b/chrome/browser/first_run/android/first_run_prefs.h
new file mode 100644
index 0000000..fa87914a
--- /dev/null
+++ b/chrome/browser/first_run/android/first_run_prefs.h
@@ -0,0 +1,14 @@
+// Copyright 2020 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.
+
+#ifndef CHROME_BROWSER_FIRST_RUN_ANDROID_FIRST_RUN_PREFS_H_
+#define CHROME_BROWSER_FIRST_RUN_ANDROID_FIRST_RUN_PREFS_H_
+
+namespace first_run {
+
+extern const char kCCTToSDialogEnabled[];
+
+} // namespace first_run
+
+#endif // CHROME_BROWSER_FIRST_RUN_ANDROID_FIRST_RUN_PREFS_H_
diff --git a/chrome/browser/first_run/android/first_run_utils.cc b/chrome/browser/first_run/android/first_run_utils.cc
index 8a03e7f..1649376 100644
--- a/chrome/browser/first_run/android/first_run_utils.cc
+++ b/chrome/browser/first_run/android/first_run_utils.cc
@@ -6,6 +6,8 @@
#include "chrome/android/chrome_jni_headers/FirstRunUtils_jni.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/first_run/android/first_run_prefs.h"
+#include "components/policy/core/common/policy_pref_names.h"
#include "components/prefs/pref_service.h"
#include "components/web_resource/web_resource_pref_names.h"
@@ -16,3 +18,8 @@
static void JNI_FirstRunUtils_SetEulaAccepted(JNIEnv* env) {
g_browser_process->local_state()->SetBoolean(prefs::kEulaAccepted, true);
}
+
+static jboolean JNI_FirstRunUtils_GetCctTosDialogEnabled(JNIEnv* env) {
+ return g_browser_process->local_state()->GetBoolean(
+ first_run::kCCTToSDialogEnabled);
+}
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
index 250e8e7..8b8efc2 100644
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -95,6 +95,7 @@
#include "ppapi/buildflags/buildflags.h"
#if defined(OS_ANDROID)
+#include "chrome/browser/first_run/android/first_run_prefs.h"
#include "chrome/browser/search/contextual_search_policy_handler_android.h"
#else // defined(OS_ANDROID)
#include "chrome/browser/download/default_download_dir_policy_handler.h"
@@ -1334,6 +1335,12 @@
{ key::kInsecureFormsWarningsEnabled,
prefs::kMixedFormsWarningsEnabled,
base::Value::Type::BOOLEAN },
+
+#if defined(OS_ANDROID)
+ { key::kCCTToSDialogEnabled,
+ first_run::kCCTToSDialogEnabled,
+ base::Value::Type::BOOLEAN },
+#endif // defined(OS_ANDROID)
};
// clang-format on
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 0dab3c2..9ea5f09 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -218,6 +218,7 @@
#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
#include "chrome/browser/android/preferences/browser_prefs_android.h"
#include "chrome/browser/android/usage_stats/usage_stats_bridge.h"
+#include "chrome/browser/first_run/android/first_run_prefs.h"
#include "chrome/browser/media/android/cdm/media_drm_origin_id_manager.h"
#include "chrome/browser/ssl/known_interception_disclosure_infobar_delegate.h"
#include "components/cdm/browser/media_drm_storage_impl.h"
@@ -746,7 +747,9 @@
#if defined(OS_ANDROID)
::android::RegisterPrefs(registry);
-#else
+
+ registry->RegisterBooleanPref(first_run::kCCTToSDialogEnabled, true);
+#else // defined(OS_ANDROID)
enterprise_connectors::RegisterLocalStatePrefs(registry);
enterprise_reporting::RegisterLocalStatePrefs(registry);
gcm::RegisterPrefs(registry);
@@ -759,7 +762,7 @@
UpgradeDetector::RegisterPrefs(registry);
registry->RegisterBooleanPref(kNtpActivateHideShortcutsFieldTrial, false);
-#endif // !defined(OS_ANDROID)
+#endif // defined(OS_ANDROID)
#if defined(OS_CHROMEOS)
arc::prefs::RegisterLocalStatePrefs(registry);