Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: ios/chrome/browser/ui/authentication/authentication_flow.h

Issue 2586993002: Upstream Chrome on iOS source code [3/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/authentication/authentication_flow.h
diff --git a/ios/chrome/browser/ui/authentication/authentication_flow.h b/ios/chrome/browser/ui/authentication/authentication_flow.h
new file mode 100644
index 0000000000000000000000000000000000000000..26c9b63eaa717d832f7873890ebd8b491bdcfac2
--- /dev/null
+++ b/ios/chrome/browser/ui/authentication/authentication_flow.h
@@ -0,0 +1,67 @@
+// Copyright 2014 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.
+
+#ifndef IOS_CHROME_BROWSER_UI_AUTHENTICATION_AUTHENTICATION_FLOW_H_
+#define IOS_CHROME_BROWSER_UI_AUTHENTICATION_AUTHENTICATION_FLOW_H_
+
+#import <Foundation/Foundation.h>
+
+#import "ios/chrome/browser/signin/constants.h"
+#import "ios/chrome/browser/ui/authentication/authentication_flow_performer_delegate.h"
+
+@class AuthenticationFlowPerformer;
+@class ChromeIdentity;
+@class UIViewController;
+
+namespace ios {
+class ChromeBrowserState;
+} // namespace ios
+
+// |AuthenticationFlow| manages the authentication flow for a given identity.
+//
+// A new instance of |AuthenticationFlow| should be used each time an identity
+// needs to be signed in.
+@interface AuthenticationFlow : NSObject<AuthenticationFlowPerformerDelegate>
+
+// Designated initializer.
+// * |browserState| is the current browser state
+// * |shouldClearData| indicates how to handle existing data when the signed in
+// account is being switched. Possible values:
+// * User choice: present an alert view asking the user whether the data
+// should be cleared or merged.
+// * Clear data: data is removed before signing in with |identity|.
+// * Merge data: data is not removed before signing in with |identity|.
+// * |postSignInAction| represents the action to be taken once |identity| is
+// signed in.
+// * |presentingViewController| is the top presented view controller.
+- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState
+ identity:(ChromeIdentity*)identity
+ shouldClearData:(ShouldClearData)shouldClearData
+ postSignInAction:(PostSignInAction)postSignInAction
+ presentingViewController:(UIViewController*)presentingViewController
+ NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
+
+// Starts the sign in flow for the identity given in the constructor. Displays
+// the signed inconfirmation dialog allowing the user to sign out or configure
+// sync.
+// It is safe to destroy this authentication flow when |completion| is called.
+// |completion| must not be nil.
+- (void)startSignInWithCompletion:(signin_ui::CompletionCallback)completion;
+
+// Cancels the current sign-in operation (if any) and dismiss any UI presented
+// by this authentication flow. Calls the completion callback with the sign-in
+// flag set to NO.
+// Does nothing if the sign in flow is already done.
+- (void)cancelAndDismiss;
+
+@end
+
+// Private methods in AuthenticationFlow to test.
+@interface AuthenticationFlow (TestingAdditions)
+- (void)setPerformerForTesting:(AuthenticationFlowPerformer*)performer;
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_AUTHENTICATION_AUTHENTICATION_FLOW_H_

Powered by Google App Engine
This is Rietveld 408576698