diff options
Diffstat (limited to 'chromium/chrome/browser/signin/reauth_util.cc')
-rw-r--r-- | chromium/chrome/browser/signin/reauth_util.cc | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/chromium/chrome/browser/signin/reauth_util.cc b/chromium/chrome/browser/signin/reauth_util.cc new file mode 100644 index 00000000000..b770da50fb0 --- /dev/null +++ b/chromium/chrome/browser/signin/reauth_util.cc @@ -0,0 +1,40 @@ +// 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 <string> + +#include "base/strings/string_number_conversions.h" +#include "chrome/browser/signin/reauth_util.h" +#include "chrome/common/webui_url_constants.h" +#include "net/base/url_util.h" + +namespace signin { + +GURL GetReauthConfirmationURL(signin_metrics::ReauthAccessPoint access_point) { + GURL url = GURL(chrome::kChromeUISigninReauthURL); + url = net::AppendQueryParameter( + url, "access_point", + base::NumberToString(static_cast<int>(access_point))); + return url; +} + +signin_metrics::ReauthAccessPoint GetReauthAccessPointForReauthConfirmationURL( + const GURL& url) { + std::string value; + if (!net::GetValueForKeyInQuery(url, "access_point", &value)) + return signin_metrics::ReauthAccessPoint::kUnknown; + + int access_point = -1; + base::StringToInt(value, &access_point); + if (access_point <= + static_cast<int>(signin_metrics::ReauthAccessPoint::kUnknown) || + access_point > + static_cast<int>(signin_metrics::ReauthAccessPoint::kMaxValue)) { + return signin_metrics::ReauthAccessPoint::kUnknown; + } + + return static_cast<signin_metrics::ReauthAccessPoint>(access_point); +} + +} // namespace signin |