Commit 4d486861 authored by Nazerke's avatar Nazerke Committed by Commit Bot

[iOS][coordinator] Modernize Chrome Activity Overlay Coordinator.

This CL modernizes the ChromeActivityOverlayCoordinator to use |browser|
in the initializer. This includes updates in corresponding table view
controllers and unittests.

Bug: 1029346, 1048395
Change-Id: I8f1a642d1c9d4c1daf67c2fedf554fdde969e0d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2089830
Commit-Queue: Nazerke Kalidolda <nazerke@google.com>
Reviewed-by: default avatarMark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748680}
parent 37f074ba
...@@ -11,6 +11,15 @@ ...@@ -11,6 +11,15 @@
// context. // context.
@interface ChromeActivityOverlayCoordinator : ChromeCoordinator @interface ChromeActivityOverlayCoordinator : ChromeCoordinator
// Use -initWithBaseViewController:browser:
- (instancetype)initWithBaseViewController:(UIViewController*)viewController
NS_UNAVAILABLE;
// Use -initWithBaseViewController:browser:
- (instancetype)initWithBaseViewController:(UIViewController*)viewController
browserState:(ChromeBrowserState*)browserState
NS_UNAVAILABLE;
// Text that will be shown above the UIActivityIndicatorView. // Text that will be shown above the UIActivityIndicatorView.
@property(nonatomic, copy) NSString* messageText; @property(nonatomic, copy) NSString* messageText;
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#import "ios/chrome/browser/ui/elements/chrome_activity_overlay_coordinator.h" #import "ios/chrome/browser/ui/elements/chrome_activity_overlay_coordinator.h"
#import "base/test/task_environment.h"
#import "ios/chrome/browser/main/test_browser.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#import "testing/gtest_mac.h" #import "testing/gtest_mac.h"
#include "testing/platform_test.h" #include "testing/platform_test.h"
...@@ -19,10 +21,13 @@ using ChromeActivityOverlayCoordinatorTest = PlatformTest; ...@@ -19,10 +21,13 @@ using ChromeActivityOverlayCoordinatorTest = PlatformTest;
TEST_F(ChromeActivityOverlayCoordinatorTest, StartAndStop) { TEST_F(ChromeActivityOverlayCoordinatorTest, StartAndStop) {
__weak UIView* overlay_view; __weak UIView* overlay_view;
@autoreleasepool { @autoreleasepool {
base::test::TaskEnvironment task_environment_;
UIViewController* base_view_controller = [[UIViewController alloc] init]; UIViewController* base_view_controller = [[UIViewController alloc] init];
std::unique_ptr<Browser> browser_ = std::make_unique<TestBrowser>();
ChromeActivityOverlayCoordinator* coordinator = ChromeActivityOverlayCoordinator* coordinator =
[[ChromeActivityOverlayCoordinator alloc] [[ChromeActivityOverlayCoordinator alloc]
initWithBaseViewController:base_view_controller]; initWithBaseViewController:base_view_controller
browser:browser_.get()];
EXPECT_EQ(0u, [base_view_controller.childViewControllers count]); EXPECT_EQ(0u, [base_view_controller.childViewControllers count]);
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
- (void)start { - (void)start {
self.clearBrowsingDataTableViewController = self.clearBrowsingDataTableViewController =
[[ClearBrowsingDataTableViewController alloc] [[ClearBrowsingDataTableViewController alloc]
initWithBrowserState:self.browser->GetBrowserState()]; initWithBrowser:self.browser];
self.clearBrowsingDataTableViewController.extendedLayoutIncludesOpaqueBars = self.clearBrowsingDataTableViewController.extendedLayoutIncludesOpaqueBars =
YES; YES;
self.clearBrowsingDataTableViewController.delegate = self; self.clearBrowsingDataTableViewController.delegate = self;
......
...@@ -37,6 +37,7 @@ source_set("clear_browsing_data") { ...@@ -37,6 +37,7 @@ source_set("clear_browsing_data") {
"//ios/chrome/browser/browsing_data:feature_flags", "//ios/chrome/browser/browsing_data:feature_flags",
"//ios/chrome/browser/feature_engagement", "//ios/chrome/browser/feature_engagement",
"//ios/chrome/browser/history", "//ios/chrome/browser/history",
"//ios/chrome/browser/main:public",
"//ios/chrome/browser/signin", "//ios/chrome/browser/signin",
"//ios/chrome/browser/sync", "//ios/chrome/browser/sync",
"//ios/chrome/browser/ui:feature_flags", "//ios/chrome/browser/ui:feature_flags",
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
@protocol ApplicationCommands; @protocol ApplicationCommands;
@protocol BrowsingDataCommands; @protocol BrowsingDataCommands;
class ChromeBrowserState; class Browser;
@protocol ClearBrowsingDataUIDelegate; @protocol ClearBrowsingDataUIDelegate;
// TableView for clearing browsing data (including history, // TableView for clearing browsing data (including history,
...@@ -17,9 +17,8 @@ class ChromeBrowserState; ...@@ -17,9 +17,8 @@ class ChromeBrowserState;
@interface ClearBrowsingDataTableViewController @interface ClearBrowsingDataTableViewController
: SettingsRootTableViewController <UIAdaptivePresentationControllerDelegate> : SettingsRootTableViewController <UIAdaptivePresentationControllerDelegate>
// Initializers. |browserState| can't be nil. // Initializers. |browser| can't be nil.
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState - (instancetype)initWithBrowser:(Browser*)browser NS_DESIGNATED_INITIALIZER;
NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithStyle:(UITableViewStyle)style NS_UNAVAILABLE; - (instancetype)initWithStyle:(UITableViewStyle)style NS_UNAVAILABLE;
// Prepares view controller so that -dismissViewControllerAnimated dismisses it. // Prepares view controller so that -dismissViewControllerAnimated dismisses it.
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "ios/chrome/browser/browsing_data/browsing_data_features.h" #include "ios/chrome/browser/browsing_data/browsing_data_features.h"
#include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h" #include "ios/chrome/browser/browsing_data/browsing_data_remove_mask.h"
#include "ios/chrome/browser/chrome_url_constants.h" #include "ios/chrome/browser/chrome_url_constants.h"
#import "ios/chrome/browser/main/browser.h"
#import "ios/chrome/browser/ui/alert_coordinator/action_sheet_coordinator.h" #import "ios/chrome/browser/ui/alert_coordinator/action_sheet_coordinator.h"
#import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
#import "ios/chrome/browser/ui/commands/application_commands.h" #import "ios/chrome/browser/ui/commands/application_commands.h"
...@@ -48,7 +49,10 @@ ...@@ -48,7 +49,10 @@
@property(nonatomic, readonly, strong) ClearBrowsingDataManager* dataManager; @property(nonatomic, readonly, strong) ClearBrowsingDataManager* dataManager;
// Browser state. // Browser state.
@property(nonatomic, assign) ChromeBrowserState* browserState; @property(nonatomic, readonly) ChromeBrowserState* browserState;
// Browser.
@property(nonatomic, readonly) Browser* browser;
// Coordinator that managers a UIAlertController to clear browsing data. // Coordinator that managers a UIAlertController to clear browsing data.
@property(nonatomic, strong) ActionSheetCoordinator* actionSheetCoordinator; @property(nonatomic, strong) ActionSheetCoordinator* actionSheetCoordinator;
...@@ -75,6 +79,7 @@ ...@@ -75,6 +79,7 @@
@synthesize actionSheetCoordinator = _actionSheetCoordinator; @synthesize actionSheetCoordinator = _actionSheetCoordinator;
@synthesize alertCoordinator = _alertCoordinator; @synthesize alertCoordinator = _alertCoordinator;
@synthesize browserState = _browserState; @synthesize browserState = _browserState;
@synthesize browser = _browser;
@synthesize clearBrowsingDataBarButton = _clearBrowsingDataBarButton; @synthesize clearBrowsingDataBarButton = _clearBrowsingDataBarButton;
@synthesize dataManager = _dataManager; @synthesize dataManager = _dataManager;
@synthesize dispatcher = _dispatcher; @synthesize dispatcher = _dispatcher;
...@@ -83,12 +88,13 @@ ...@@ -83,12 +88,13 @@
#pragma mark - ViewController Lifecycle. #pragma mark - ViewController Lifecycle.
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState { - (instancetype)initWithBrowser:(Browser*)browser {
self = [super initWithStyle:UITableViewStylePlain]; self = [super initWithStyle:UITableViewStylePlain];
if (self) { if (self) {
_browserState = browserState; _browser = browser;
_dataManager = _browserState = browser->GetBrowserState();
[[ClearBrowsingDataManager alloc] initWithBrowserState:browserState]; _dataManager = [[ClearBrowsingDataManager alloc]
initWithBrowserState:browser->GetBrowserState()];
_dataManager.consumer = self; _dataManager.consumer = self;
} }
return self; return self;
...@@ -312,7 +318,8 @@ ...@@ -312,7 +318,8 @@
// Show activity indicator modal while removal is happening. // Show activity indicator modal while removal is happening.
self.chromeActivityOverlayCoordinator = self.chromeActivityOverlayCoordinator =
[[ChromeActivityOverlayCoordinator alloc] [[ChromeActivityOverlayCoordinator alloc]
initWithBaseViewController:self.navigationController]; initWithBaseViewController:self.navigationController
browser:_browser];
self.chromeActivityOverlayCoordinator.messageText = self.chromeActivityOverlayCoordinator.messageText =
l10n_util::GetNSStringWithFixup( l10n_util::GetNSStringWithFixup(
IDS_IOS_CLEAR_BROWSING_DATA_ACTIVITY_MODAL); IDS_IOS_CLEAR_BROWSING_DATA_ACTIVITY_MODAL);
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h" #import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class ChromeBrowserState; class Browser;
// The accessibility identifier of the privacy settings collection view. // The accessibility identifier of the privacy settings collection view.
extern NSString* const kPrivacyTableViewId; extern NSString* const kPrivacyTableViewId;
...@@ -15,8 +15,7 @@ extern NSString* const kPrivacyTableViewId; ...@@ -15,8 +15,7 @@ extern NSString* const kPrivacyTableViewId;
@interface PrivacyTableViewController : SettingsRootTableViewController @interface PrivacyTableViewController : SettingsRootTableViewController
// |browserState| cannot be nil // |browserState| cannot be nil
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState - (instancetype)initWithBrowser:(Browser*)browser NS_DESIGNATED_INITIALIZER;
NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithStyle:(UITableViewStyle)style NS_UNAVAILABLE; - (instancetype)initWithStyle:(UITableViewStyle)style NS_UNAVAILABLE;
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/application_context.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#include "ios/chrome/browser/browsing_data/browsing_data_features.h" #include "ios/chrome/browser/browsing_data/browsing_data_features.h"
#import "ios/chrome/browser/main/browser.h"
#import "ios/chrome/browser/ui/commands/open_new_tab_command.h" #import "ios/chrome/browser/ui/commands/open_new_tab_command.h"
#import "ios/chrome/browser/ui/settings/cells/settings_switch_cell.h" #import "ios/chrome/browser/ui/settings/cells/settings_switch_cell.h"
#import "ios/chrome/browser/ui/settings/cells/settings_switch_item.h" #import "ios/chrome/browser/ui/settings/cells/settings_switch_item.h"
...@@ -70,20 +71,24 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services"; ...@@ -70,20 +71,24 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services";
TableViewDetailIconItem* _handoffDetailItem; TableViewDetailIconItem* _handoffDetailItem;
} }
// Browser.
@property(nonatomic, readonly) Browser* browser;
@end @end
@implementation PrivacyTableViewController @implementation PrivacyTableViewController
#pragma mark - Initialization #pragma mark - Initialization
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState { - (instancetype)initWithBrowser:(Browser*)browser {
DCHECK(browserState); DCHECK(browser);
UITableViewStyle style = base::FeatureList::IsEnabled(kSettingsRefresh) UITableViewStyle style = base::FeatureList::IsEnabled(kSettingsRefresh)
? UITableViewStylePlain ? UITableViewStylePlain
: UITableViewStyleGrouped; : UITableViewStyleGrouped;
self = [super initWithStyle:style]; self = [super initWithStyle:style];
if (self) { if (self) {
_browserState = browserState; _browser = browser;
_browserState = browser->GetBrowserState();
self.title = self.title =
l10n_util::GetNSString(IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY); l10n_util::GetNSString(IDS_OPTIONS_ADVANCED_SECTION_TITLE_PRIVACY);
...@@ -210,7 +215,7 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services"; ...@@ -210,7 +215,7 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services";
case ItemTypeClearBrowsingDataClear: { case ItemTypeClearBrowsingDataClear: {
ClearBrowsingDataTableViewController* clearBrowsingDataViewController = ClearBrowsingDataTableViewController* clearBrowsingDataViewController =
[[ClearBrowsingDataTableViewController alloc] [[ClearBrowsingDataTableViewController alloc]
initWithBrowserState:_browserState]; initWithBrowser:_browser];
clearBrowsingDataViewController.delegate = self; clearBrowsingDataViewController.delegate = self;
controller = clearBrowsingDataViewController; controller = clearBrowsingDataViewController;
break; break;
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "components/sync_preferences/pref_service_syncable.h" #include "components/sync_preferences/pref_service_syncable.h"
#include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/application_context.h"
#include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h"
#import "ios/chrome/browser/main/test_browser.h"
#include "ios/chrome/browser/pref_names.h" #include "ios/chrome/browser/pref_names.h"
#include "ios/chrome/browser/prefs/browser_prefs.h" #include "ios/chrome/browser/prefs/browser_prefs.h"
#include "ios/chrome/browser/system_flags.h" #include "ios/chrome/browser/system_flags.h"
...@@ -42,6 +43,8 @@ class PrivacyTableViewControllerTest : public ChromeTableViewControllerTest { ...@@ -42,6 +43,8 @@ class PrivacyTableViewControllerTest : public ChromeTableViewControllerTest {
test_cbs_builder.SetPrefService(CreatePrefService()); test_cbs_builder.SetPrefService(CreatePrefService());
chrome_browser_state_ = test_cbs_builder.Build(); chrome_browser_state_ = test_cbs_builder.Build();
browser_ = std::make_unique<TestBrowser>(chrome_browser_state_.get());
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
initialValueForSpdyProxyEnabled_ = initialValueForSpdyProxyEnabled_ =
[[defaults valueForKey:kSpdyProxyEnabled] copy]; [[defaults valueForKey:kSpdyProxyEnabled] copy];
...@@ -71,13 +74,13 @@ class PrivacyTableViewControllerTest : public ChromeTableViewControllerTest { ...@@ -71,13 +74,13 @@ class PrivacyTableViewControllerTest : public ChromeTableViewControllerTest {
} }
ChromeTableViewController* InstantiateController() override { ChromeTableViewController* InstantiateController() override {
return [[PrivacyTableViewController alloc] return [[PrivacyTableViewController alloc] initWithBrowser:browser_.get()];
initWithBrowserState:chrome_browser_state_.get()];
} }
web::WebTaskEnvironment task_environment_; web::WebTaskEnvironment task_environment_;
IOSChromeScopedTestingLocalState local_state_; IOSChromeScopedTestingLocalState local_state_;
std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; std::unique_ptr<TestChromeBrowserState> chrome_browser_state_;
std::unique_ptr<Browser> browser_;
NSString* initialValueForSpdyProxyEnabled_; NSString* initialValueForSpdyProxyEnabled_;
}; };
......
...@@ -825,8 +825,8 @@ NSString* kDevViewSourceKey = @"DevViewSource"; ...@@ -825,8 +825,8 @@ NSString* kDevViewSourceKey = @"DevViewSource";
initWithPrefs:_browserState->GetPrefs()]; initWithPrefs:_browserState->GetPrefs()];
break; break;
case ItemTypePrivacy: case ItemTypePrivacy:
controller = [[PrivacyTableViewController alloc] controller =
initWithBrowserState:_browserState]; [[PrivacyTableViewController alloc] initWithBrowser:_browser];
break; break;
case ItemTypeLanguageSettings: { case ItemTypeLanguageSettings: {
LanguageSettingsMediator* mediator = LanguageSettingsMediator* mediator =
......
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