Commit 556ab645 authored by Anastasiia N's avatar Anastasiia N Committed by Chromium LUCI CQ

Add ShowAddAccountDialog to AccountManagerFacade

Add `ShowAddAccountDialog` and `ShowReauthAccountDialog`
methods to `AccountManagerFacade`.

Bug: 1140469
Change-Id: I0d3d1d25b30d872412972fba039379f349fe59f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2550669
Commit-Queue: Anastasiia N <anastasiian@chromium.org>
Reviewed-by: default avatarKush Sinha <sinhak@chromium.org>
Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#841424}
parent 1ef0d20c
...@@ -38,6 +38,18 @@ bool AccountManagerFacadeLacros::IsInitialized() { ...@@ -38,6 +38,18 @@ bool AccountManagerFacadeLacros::IsInitialized() {
return is_initialized_; return is_initialized_;
} }
void AccountManagerFacadeLacros::ShowAddAccountDialog(
const AccountAdditionSource& source,
base::OnceCallback<void(const AccountAdditionResult& result)> callback) {
// TODO(crbug.com/1140469): implement this.
}
void AccountManagerFacadeLacros::ShowReauthAccountDialog(
const AccountAdditionSource& source,
const std::string& email) {
// TODO(crbug.com/1140469): implement this.
}
void AccountManagerFacadeLacros::OnVersionCheck(uint32_t version) { void AccountManagerFacadeLacros::OnVersionCheck(uint32_t version) {
if (version < kMinVersionWithObserver) { if (version < kMinVersionWithObserver) {
std::move(init_finished_).Run(); std::move(init_finished_).Run();
......
...@@ -29,6 +29,12 @@ class AccountManagerFacadeLacros ...@@ -29,6 +29,12 @@ class AccountManagerFacadeLacros
// AccountManagerFacade overrides: // AccountManagerFacade overrides:
bool IsInitialized() override; bool IsInitialized() override;
void ShowAddAccountDialog(
const AccountAdditionSource& source,
base::OnceCallback<void(const AccountAdditionResult& result)> callback)
override;
void ShowReauthAccountDialog(const AccountAdditionSource& source,
const std::string& email) override;
// crosapi::mojom::AccountManagerObserver overrides: // crosapi::mojom::AccountManagerObserver overrides:
void OnTokenUpserted(crosapi::mojom::AccountPtr account) override; void OnTokenUpserted(crosapi::mojom::AccountPtr account) override;
......
...@@ -18,4 +18,16 @@ bool AccountManagerFacadeAsh::IsInitialized() { ...@@ -18,4 +18,16 @@ bool AccountManagerFacadeAsh::IsInitialized() {
return account_manager_->IsInitialized(); return account_manager_->IsInitialized();
} }
void AccountManagerFacadeAsh::ShowAddAccountDialog(
const AccountAdditionSource& source,
base::OnceCallback<void(const AccountAdditionResult& result)> callback) {
// TODO(crbug.com/1140469): implement this.
}
void AccountManagerFacadeAsh::ShowReauthAccountDialog(
const AccountAdditionSource& source,
const std::string& email) {
// TODO(crbug.com/1140469): implement this.
}
} // namespace chromeos } // namespace chromeos
...@@ -23,6 +23,12 @@ class COMPONENT_EXPORT(ACCOUNT_MANAGER) AccountManagerFacadeAsh ...@@ -23,6 +23,12 @@ class COMPONENT_EXPORT(ACCOUNT_MANAGER) AccountManagerFacadeAsh
// AccountManagerFacade overrides: // AccountManagerFacade overrides:
bool IsInitialized() override; bool IsInitialized() override;
void ShowAddAccountDialog(
const AccountAdditionSource& source,
base::OnceCallback<void(const AccountAdditionResult& result)> callback)
override;
void ShowReauthAccountDialog(const AccountAdditionSource& source,
const std::string& email) override;
private: private:
AccountManager* const account_manager_; AccountManager* const account_manager_;
......
...@@ -20,6 +20,7 @@ component("account_manager_core") { ...@@ -20,6 +20,7 @@ component("account_manager_core") {
deps = [ deps = [
"//base", "//base",
"//chromeos/crosapi/mojom", "//chromeos/crosapi/mojom",
"//google_apis:google_apis",
] ]
defines = [ "IS_ACCOUNT_MANAGER_CORE_IMPL" ] defines = [ "IS_ACCOUNT_MANAGER_CORE_IMPL" ]
......
include_rules = [ include_rules = [
"+chromeos/crosapi/mojom/account_manager.mojom.h", "+chromeos/crosapi/mojom/account_manager.mojom.h",
"+google_apis/gaia/google_service_auth_error.h",
] ]
...@@ -6,6 +6,17 @@ ...@@ -6,6 +6,17 @@
namespace account_manager { namespace account_manager {
AccountManagerFacade::AccountAdditionResult::AccountAdditionResult() = default;
AccountManagerFacade::AccountAdditionResult::AccountAdditionResult(
Status status,
AccountKey account)
: status(status), account(account) {}
AccountManagerFacade::AccountAdditionResult::AccountAdditionResult(
Status status,
GoogleServiceAuthError error)
: status(status), error(error) {}
AccountManagerFacade::AccountAdditionResult::~AccountAdditionResult() = default;
AccountManagerFacade::AccountManagerFacade() = default; AccountManagerFacade::AccountManagerFacade() = default;
AccountManagerFacade::~AccountManagerFacade() = default; AccountManagerFacade::~AccountManagerFacade() = default;
......
...@@ -5,7 +5,12 @@ ...@@ -5,7 +5,12 @@
#ifndef COMPONENTS_ACCOUNT_MANAGER_CORE_ACCOUNT_MANAGER_FACADE_H_ #ifndef COMPONENTS_ACCOUNT_MANAGER_CORE_ACCOUNT_MANAGER_FACADE_H_
#define COMPONENTS_ACCOUNT_MANAGER_CORE_ACCOUNT_MANAGER_FACADE_H_ #define COMPONENTS_ACCOUNT_MANAGER_CORE_ACCOUNT_MANAGER_FACADE_H_
#include <string>
#include "base/callback.h"
#include "base/component_export.h" #include "base/component_export.h"
#include "components/account_manager_core/account.h"
#include "google_apis/gaia/google_service_auth_error.h"
namespace account_manager { namespace account_manager {
...@@ -42,6 +47,31 @@ class COMPONENT_EXPORT(ACCOUNT_MANAGER_CORE) AccountManagerFacade { ...@@ -42,6 +47,31 @@ class COMPONENT_EXPORT(ACCOUNT_MANAGER_CORE) AccountManagerFacade {
kMaxValue = kOnboarding kMaxValue = kOnboarding
}; };
// The result of account addition request.
struct AccountAdditionResult {
enum class Status : int {
// The account was added successfully.
kSuccess = 0,
// The dialog is already open.
kAlreadyInProgress = 1,
// User closed the dialog.
kCancelledByUser = 2,
// Network error.
kNetworkError = 3,
};
Status status;
// The account that was added.
base::Optional<AccountKey> account;
// The error is set only if `status` is set to `kNetworkError`.
base::Optional<GoogleServiceAuthError> error;
AccountAdditionResult();
AccountAdditionResult(Status status, AccountKey account);
AccountAdditionResult(Status status, GoogleServiceAuthError error);
~AccountAdditionResult();
};
AccountManagerFacade(); AccountManagerFacade();
AccountManagerFacade(const AccountManagerFacade&) = delete; AccountManagerFacade(const AccountManagerFacade&) = delete;
AccountManagerFacade& operator=(const AccountManagerFacade&) = delete; AccountManagerFacade& operator=(const AccountManagerFacade&) = delete;
...@@ -52,6 +82,18 @@ class COMPONENT_EXPORT(ACCOUNT_MANAGER_CORE) AccountManagerFacade { ...@@ -52,6 +82,18 @@ class COMPONENT_EXPORT(ACCOUNT_MANAGER_CORE) AccountManagerFacade {
// Note: For out-of-process implementations, it returns |false| if the IPC // Note: For out-of-process implementations, it returns |false| if the IPC
// pipe to |AccountManager| is disconnected. // pipe to |AccountManager| is disconnected.
virtual bool IsInitialized() = 0; virtual bool IsInitialized() = 0;
// Launches account addition dialog and calls the `callback` with the result.
// If `result` is `kSuccess`, the added account will be passed to the
// callback. Otherwise `account` will be set to `base::nullopt`.
virtual void ShowAddAccountDialog(
const AccountAdditionSource& source,
base::OnceCallback<void(const AccountAdditionResult& result)>
callback) = 0;
// Launches account reauthentication dialog for provided `email`.
virtual void ShowReauthAccountDialog(const AccountAdditionSource& source,
const std::string& email) = 0;
}; };
} // namespace account_manager } // namespace account_manager
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment