| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_DRIVE_MODEL_DRIVE_SERVICE_CONFIGURATION_H_ |
| #define IOS_CHROME_BROWSER_DRIVE_MODEL_DRIVE_SERVICE_CONFIGURATION_H_ |
| |
| #import "base/memory/raw_ptr.h" |
| |
| class ChromeAccountManagerService; |
| class PrefService; |
| |
| namespace signin { |
| class IdentityManager; |
| } // namespace signin |
| |
| @protocol SingleSignOnService; |
| |
| namespace drive { |
| |
| // Configuration object used by the DriveService. |
| struct DriveServiceConfiguration { |
| // The SingleSignOnService instance to use by DriveService. |
| id<SingleSignOnService> sso_service; |
| // PrefService to check the state of Save to Drive preferences. |
| raw_ptr<PrefService> pref_service; |
| // IdentityManager to check whether the user is signed-in. |
| raw_ptr<signin::IdentityManager> identity_manager; |
| // The account manager service to observe system identities. |
| raw_ptr<ChromeAccountManagerService> account_manager_service; |
| }; |
| |
| } // namespace drive |
| |
| #endif // IOS_CHROME_BROWSER_DRIVE_MODEL_DRIVE_SERVICE_CONFIGURATION_H_ |