summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/app/chromeos_strings.grdp6
-rw-r--r--chrome/browser/about_flags.cc7
-rw-r--r--chrome/browser/chromeos/login/startup_utils.cc6
-rw-r--r--chromeos/chromeos_switches.cc3
-rw-r--r--chromeos/chromeos_switches.h1
-rw-r--r--tools/metrics/histograms/histograms.xml1
6 files changed, 23 insertions, 1 deletions
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp
index 5f392c4..0575be6 100644
--- a/chrome/app/chromeos_strings.grdp
+++ b/chrome/app/chromeos_strings.grdp
@@ -6083,6 +6083,12 @@ All users must sign out to continue.
<message name="IDS_FLAGS_DISABLE_RESOLVE_TIMEZONE_BY_GEOLOCATION_DESCRIPTION" desc="Description for the flag to disable user setting to automatically update timezone by user geolocation.">
If set, automatic timezone update by the current geolocation is turned off.
</message>
+ <message name="IDS_FLAGS_DISABLE_WEBVIEW_SIGNIN_FLOW_NAME" desc="Title for the flag to disable the new WebView-based sign-in flow.">
+ Disable WebView-based sign-in flow
+ </message>
+ <message name="IDS_FLAGS_DISABLE_WEBVIEW_SIGNIN_FLOW_DESCRIPTION" desc="Description for the flag to disable the new WebView-based sign-in flow.">
+ If set, sign-in will be performed using the old GAIA flow instead of the new WebView-based one.
+ </message>
<message name="IDS_OPTIONS_RESOLVE_TIMEZONE_BY_GEOLOCATION_DESCRIPTION" desc="Label for checkbox to allow automatic timezone update by user geolocation.">
Set time zone automatically using your location
</message>
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 692521aa..713f3c1 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -2193,6 +2193,13 @@ const Experiment kExperiments[] = {
kOsCrOS,
SINGLE_VALUE_TYPE(chromeos::switches::kDisableTimeZoneTrackingOption)
},
+ {
+ "disable-webview-signin-flow",
+ IDS_FLAGS_DISABLE_WEBVIEW_SIGNIN_FLOW_NAME,
+ IDS_FLAGS_DISABLE_WEBVIEW_SIGNIN_FLOW_DESCRIPTION,
+ kOsCrOS,
+ SINGLE_VALUE_TYPE(chromeos::switches::kDisableWebviewSigninFlow)
+ },
#endif // defined(OS_CHROMEOS)
{
"enable-data-reduction-proxy-lo-fi",
diff --git a/chrome/browser/chromeos/login/startup_utils.cc b/chrome/browser/chromeos/login/startup_utils.cc
index 4488a65..1a0d47f 100644
--- a/chrome/browser/chromeos/login/startup_utils.cc
+++ b/chrome/browser/chromeos/login/startup_utils.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/chromeos/login/startup_utils.h"
#include "base/bind.h"
+#include "base/command_line.h"
#include "base/files/file_util.h"
#include "base/path_service.h"
#include "base/prefs/pref_registry_simple.h"
@@ -15,6 +16,7 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/extensions/features/feature_channel.h"
#include "chrome/common/pref_names.h"
+#include "chromeos/chromeos_switches.h"
#include "components/web_resource/web_resource_pref_names.h"
#include "content/public/browser/browser_thread.h"
#include "ui/base/l10n/l10n_util.h"
@@ -177,7 +179,9 @@ std::string StartupUtils::GetInitialLocale() {
// static
bool StartupUtils::IsWebviewSigninAllowed() {
- return extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV;
+ return extensions::GetCurrentChannel() <= chrome::VersionInfo::CHANNEL_DEV &&
+ !base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableWebviewSigninFlow);
}
// static
diff --git a/chromeos/chromeos_switches.cc b/chromeos/chromeos_switches.cc
index 2dbf5b0..93d1292 100644
--- a/chromeos/chromeos_switches.cc
+++ b/chromeos/chromeos_switches.cc
@@ -329,6 +329,9 @@ const char kEnableCaptivePortalBypassProxyOption[] =
const char kDisableTimeZoneTrackingOption[] =
"disable-timezone-tracking-option";
+// Disable new GAIA sign-in flow.
+const char kDisableWebviewSigninFlow[] = "disable-webview-signin-flow";
+
bool WakeOnWifiEnabled() {
return !base::CommandLine::ForCurrentProcess()->HasSwitch(kDisableWakeOnWifi);
}
diff --git a/chromeos/chromeos_switches.h b/chromeos/chromeos_switches.h
index 4b56b52..cf1021d 100644
--- a/chromeos/chromeos_switches.h
+++ b/chromeos/chromeos_switches.h
@@ -108,6 +108,7 @@ CHROMEOS_EXPORT extern const char kTestMetronomeTimer[];
CHROMEOS_EXPORT extern const char kWakeOnPackets[];
CHROMEOS_EXPORT extern const char kEnableCaptivePortalBypassProxyOption[];
CHROMEOS_EXPORT extern const char kDisableTimeZoneTrackingOption[];
+CHROMEOS_EXPORT extern const char kDisableWebviewSigninFlow[];
CHROMEOS_EXPORT bool WakeOnWifiEnabled();
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 5c5b021..01963f4e 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -52728,6 +52728,7 @@ To add a new entry, add it with any value and run test to compute valid value.
<int value="37024318" label="disable-affiliation-based-matching"/>
<int value="48159177" label="reduced-referrer-granularity"/>
<int value="61205887" label="enable-text-input-focus-manager"/>
+ <int value="75747474" label="disable-webview-signin-flow"/>
<int value="78998551" label="disable-hosted-app-shim-creation"/>
<int value="79503461" label="disable-account-consistency"/>
<int value="91938915" label="enable-suggestions-service"/>