Commit 9c074de3 authored by Ewann's avatar Ewann Committed by Commit Bot

[iOS] Fix “Done” button on “Clear Browsing Data” dialog

This CL moves ClearBrowsingDataUIDelegate to the privacy coordinator
and adds back his delegate to the ClearBrowsingDataTableViewController.

Bug: 1066846
Change-Id: Id712379d41275b3d7c522687ccb4072b3fd4041e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2134011
Commit-Queue: Ewann Pellé <ewannpv@chromium.org>
Reviewed-by: default avatarGauthier Ambard <gambard@chromium.org>
Cr-Commit-Position: refs/heads/master@{#756278}
parent 1fb4b70e
...@@ -4,23 +4,28 @@ ...@@ -4,23 +4,28 @@
#import "ios/chrome/browser/ui/settings/privacy/privacy_coordinator.h" #import "ios/chrome/browser/ui/settings/privacy/privacy_coordinator.h"
#import "base/mac/foundation_util.h"
#include "ios/chrome/browser/main/browser.h" #include "ios/chrome/browser/main/browser.h"
#import "ios/chrome/browser/ui/commands/browser_commands.h" #import "ios/chrome/browser/ui/commands/browser_commands.h"
#import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h"
#import "ios/chrome/browser/ui/commands/open_new_tab_command.h"
#import "ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_table_view_controller.h" #import "ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_ui_delegate.h"
#import "ios/chrome/browser/ui/settings/privacy/handoff_table_view_controller.h" #import "ios/chrome/browser/ui/settings/privacy/handoff_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/privacy/privacy_navigation_commands.h" #import "ios/chrome/browser/ui/settings/privacy/privacy_navigation_commands.h"
#import "ios/chrome/browser/ui/settings/privacy/privacy_table_view_controller.h" #import "ios/chrome/browser/ui/settings/privacy/privacy_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/settings_navigation_controller.h"
#if !defined(__has_feature) || !__has_feature(objc_arc) #if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support." #error "This file requires ARC support."
#endif #endif
@interface PrivacyCoordinator () < @interface PrivacyCoordinator () <
ClearBrowsingDataUIDelegate,
PrivacyNavigationCommands, PrivacyNavigationCommands,
PrivacyTableViewControllerPresentationDelegate> PrivacyTableViewControllerPresentationDelegate>
@property(nonatomic, strong) CommandDispatcher* dispatcher; @property(nonatomic, strong) id<ApplicationCommands> handler;
@property(nonatomic, strong) PrivacyTableViewController* viewController; @property(nonatomic, strong) PrivacyTableViewController* viewController;
@end @end
...@@ -41,7 +46,8 @@ ...@@ -41,7 +46,8 @@
#pragma mark - ChromeCoordinator #pragma mark - ChromeCoordinator
- (void)start { - (void)start {
self.dispatcher = self.browser->GetCommandDispatcher(); self.handler = HandlerForProtocol(self.browser->GetCommandDispatcher(),
ApplicationCommands);
self.viewController = self.viewController =
[[PrivacyTableViewController alloc] initWithBrowser:self.browser]; [[PrivacyTableViewController alloc] initWithBrowser:self.browser];
...@@ -59,14 +65,6 @@ ...@@ -59,14 +65,6 @@
self.viewController = nil; self.viewController = nil;
} }
#pragma mark - PrivacyTableViewControllerPresentationDelegate
- (void)privacyTableViewControllerViewControllerWasRemoved:
(PrivacyTableViewController*)controller {
DCHECK_EQ(self.viewController, controller);
[self.delegate privacyCoordinatorViewControllerWasRemoved:self];
}
#pragma mark - PrivacyNavigationCommands #pragma mark - PrivacyNavigationCommands
- (void)showHandoff { - (void)showHandoff {
...@@ -83,8 +81,31 @@ ...@@ -83,8 +81,31 @@
[[ClearBrowsingDataTableViewController alloc] [[ClearBrowsingDataTableViewController alloc]
initWithBrowser:self.browser]; initWithBrowser:self.browser];
viewController.dispatcher = self.viewController.dispatcher; viewController.dispatcher = self.viewController.dispatcher;
viewController.delegate = self;
[self.baseNavigationController pushViewController:viewController [self.baseNavigationController pushViewController:viewController
animated:YES]; animated:YES];
} }
#pragma mark - PrivacyTableViewControllerPresentationDelegate
- (void)privacyTableViewControllerViewControllerWasRemoved:
(PrivacyTableViewController*)controller {
DCHECK_EQ(self.viewController, controller);
[self.delegate privacyCoordinatorViewControllerWasRemoved:self];
}
#pragma mark - ClearBrowsingDataUIDelegate
- (void)openURL:(const GURL&)URL {
OpenNewTabCommand* command = [OpenNewTabCommand commandWithURLFromChrome:URL];
[self.handler closeSettingsUIAndOpenURL:command];
}
- (void)dismissClearBrowsingData {
SettingsNavigationController* navigationController =
base::mac::ObjCCastStrict<SettingsNavigationController>(
self.viewController.navigationController);
[navigationController closeSettings];
}
@end @end
...@@ -15,10 +15,8 @@ ...@@ -15,10 +15,8 @@
#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/main/browser.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"
#import "ios/chrome/browser/ui/settings/clear_browsing_data/clear_browsing_data_ui_delegate.h"
#import "ios/chrome/browser/ui/settings/privacy/privacy_navigation_commands.h" #import "ios/chrome/browser/ui/settings/privacy/privacy_navigation_commands.h"
#import "ios/chrome/browser/ui/settings/settings_navigation_controller.h" #import "ios/chrome/browser/ui/settings/settings_navigation_controller.h"
#import "ios/chrome/browser/ui/settings/settings_table_view_controller_constants.h" #import "ios/chrome/browser/ui/settings/settings_table_view_controller_constants.h"
...@@ -57,8 +55,7 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services"; ...@@ -57,8 +55,7 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services";
} // namespace } // namespace
@interface PrivacyTableViewController () <ClearBrowsingDataUIDelegate, @interface PrivacyTableViewController () <PrefObserverDelegate> {
PrefObserverDelegate> {
ChromeBrowserState* _browserState; // weak ChromeBrowserState* _browserState; // weak
// Pref observer to track changes to prefs. // Pref observer to track changes to prefs.
...@@ -223,21 +220,6 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services"; ...@@ -223,21 +220,6 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services";
[tableView deselectRowAtIndexPath:indexPath animated:YES]; [tableView deselectRowAtIndexPath:indexPath animated:YES];
} }
#pragma mark - ClearBrowsingDataUIDelegate
- (void)openURL:(const GURL&)URL {
DCHECK(self.dispatcher);
OpenNewTabCommand* command = [OpenNewTabCommand commandWithURLFromChrome:URL];
[self.dispatcher closeSettingsUIAndOpenURL:command];
}
- (void)dismissClearBrowsingData {
SettingsNavigationController* navigationController =
base::mac::ObjCCastStrict<SettingsNavigationController>(
self.navigationController);
[navigationController closeSettings];
}
#pragma mark - PrefObserverDelegate #pragma mark - PrefObserverDelegate
- (void)onPreferenceChanged:(const std::string&)preferenceName { - (void)onPreferenceChanged:(const std::string&)preferenceName {
......
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