#include "chrome/browser/extensions/api/identity/gaia_remote_consent_flow.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_functions.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/extensions/api/identity/identity_api.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/account_consistency_mode_manager.h"
#include "chrome/browser/signin/google_accounts_private_api_host.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "content/public/browser/storage_partition.h"
#include "google_apis/gaia/gaia_auth_util.h"
#include "net/cookies/cookie_util.h"
#include "services/network/public/mojom/cookie_manager.mojom.h"
#include "url/url_constants.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ash/account_manager/account_manager_util.h"
#endif
#if BUILDFLAG(IS_CHROMEOS_LACROS)
#include "components/signin/core/browser/consistency_cookie_manager.h"
#endif
namespace extensions {
namespace {
void RecordResultHistogram(GaiaRemoteConsentFlow::Failure failure) { … }
}
GaiaRemoteConsentFlow::Delegate::~Delegate() = default;
GaiaRemoteConsentFlow::GaiaRemoteConsentFlow(
Delegate* delegate,
Profile* profile,
const ExtensionTokenKey& token_key,
const RemoteConsentResolutionData& resolution_data,
bool user_gesture)
: … { … }
GaiaRemoteConsentFlow::~GaiaRemoteConsentFlow() { … }
void GaiaRemoteConsentFlow::Start() { … }
void GaiaRemoteConsentFlow::ReactToConsentResult(
const std::string& consent_result) { … }
void GaiaRemoteConsentFlow::OnAuthFlowFailure(WebAuthFlow::Failure failure) { … }
network::mojom::CookieManager*
GaiaRemoteConsentFlow::GetCookieManagerForPartition() { … }
void GaiaRemoteConsentFlow::SetWebAuthFlowForTesting(
std::unique_ptr<WebAuthFlow> web_auth_flow) { … }
WebAuthFlow* GaiaRemoteConsentFlow::GetWebAuthFlowForTesting() const { … }
void GaiaRemoteConsentFlow::GaiaRemoteConsentFlowFailed(Failure failure) { … }
void GaiaRemoteConsentFlow::DetachWebAuthFlow() { … }
void GaiaRemoteConsentFlow::OnNavigationFinished(
content::NavigationHandle* navigation_handle) { … }
}