Index: ios/chrome/app/main_controller_private.h |
diff --git a/ios/chrome/app/main_controller_private.h b/ios/chrome/app/main_controller_private.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a97856cee0a7927c17a876f3c1a40d55cabc1936 |
--- /dev/null |
+++ b/ios/chrome/app/main_controller_private.h |
@@ -0,0 +1,80 @@ |
+// Copyright 2015 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_APP_MAIN_CONTROLLER_PRIVATE_H_ |
+#define IOS_CHROME_APP_MAIN_CONTROLLER_PRIVATE_H_ |
+ |
+#import "base/ios/block_types.h" |
+#include "components/browsing_data/core/browsing_data_utils.h" |
+#import "ios/chrome/app/application_delegate/browser_launcher.h" |
+#import "ios/chrome/app/main_controller.h" |
+ |
+@class BrowserViewController; |
+@class DeviceSharingManager; |
+class GURL; |
+@class SettingsNavigationController; |
+@class SigninInteractionController; |
+@class TabModel; |
+@protocol TabSwitcher; |
+ |
+namespace ios { |
+class ChromeBrowserState; |
+} |
+ |
+// Private methods and protocols that are made visible here for tests. |
+@interface MainController () |
+ |
+// YES if the last time the app was launched was with a previous version. |
+@property(nonatomic, readonly) BOOL isFirstLaunchAfterUpgrade; |
+ |
+// Presents a promo's navigation controller. |
+- (void)showPromo:(UIViewController*)promo; |
+ |
+// Removes browsing data from |browserState| for datatypes in |mask|. |
+// |browserState| cannot be null and must not be off the record. |
+// |completionHandler| is called when this operation finishes. |
+- (void)removeBrowsingDataFromBrowserState: |
+ (ios::ChromeBrowserState*)browserState |
+ mask:(int)mask |
+ timePeriod:(browsing_data::TimePeriod)timePeriod |
+ completionHandler:(ProceduralBlock)completionHandler; |
+ |
+// Dismisses all modal dialogs then call |completion|. |
+- (void)dismissModalDialogsWithCompletion:(ProceduralBlock)completion; |
+ |
+@end |
+ |
+// Methods that only exist for tests. |
+@interface MainController (TestingOnly) |
+ |
+@property(nonatomic, readonly) DeviceSharingManager* deviceSharingManager; |
+@property(nonatomic, retain) |
+ UIViewController<TabSwitcher>* tabSwitcherController; |
+@property(nonatomic, readonly) |
+ SettingsNavigationController* settingsNavigationController; |
+@property(nonatomic, readonly) |
+ SigninInteractionController* signinInteractionController; |
+ |
+// The top presented view controller that is not currently being dismissed. |
+@property(nonatomic, readonly) UIViewController* topPresentedViewController; |
+ |
+// Tab switcher state. |
+@property(nonatomic, getter=isTabSwitcherActive) BOOL tabSwitcherActive; |
+@property(nonatomic, readonly) BOOL dismissingTabSwitcher; |
+ |
+// Sets up MainController for testing; clears history, closes all tabs and |
+// switches to the main BVC. |completionHandler| is called when MainController |
+// is completely set up for testing. |
+- (void)setUpForTestingWithCompletionHandler:(ProceduralBlock)completionHandler; |
+ |
+// Sets the internal startup state to indicate that the launch was triggered |
+// by an external app opening the given URL. |
+- (void)setStartupParametersWithURL:(const GURL&)launchURL; |
+ |
+// Sets the internal state to indicate that the app has been foregrounded. |
+- (void)setUpAsForegrounded; |
+ |
+@end |
+ |
+#endif // IOS_CHROME_APP_MAIN_CONTROLLER_PRIVATE_H_ |