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 @@
#import "ios/chrome/browser/ui/settings/privacy/privacy_coordinator.h"
#import "base/mac/foundation_util.h"
#include "ios/chrome/browser/main/browser.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/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_ui_delegate.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_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/settings_navigation_controller.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
@interface PrivacyCoordinator () <
ClearBrowsingDataUIDelegate,
PrivacyNavigationCommands,
PrivacyTableViewControllerPresentationDelegate>
@property(nonatomic, strong) CommandDispatcher* dispatcher;
@property(nonatomic, strong) id<ApplicationCommands> handler;
@property(nonatomic, strong) PrivacyTableViewController* viewController;
@end
......@@ -41,7 +46,8 @@
#pragma mark - ChromeCoordinator
- (void)start {
self.dispatcher = self.browser->GetCommandDispatcher();
self.handler = HandlerForProtocol(self.browser->GetCommandDispatcher(),
ApplicationCommands);
self.viewController =
[[PrivacyTableViewController alloc] initWithBrowser:self.browser];
......@@ -59,14 +65,6 @@
self.viewController = nil;
}
#pragma mark - PrivacyTableViewControllerPresentationDelegate
- (void)privacyTableViewControllerViewControllerWasRemoved:
(PrivacyTableViewController*)controller {
DCHECK_EQ(self.viewController, controller);
[self.delegate privacyCoordinatorViewControllerWasRemoved:self];
}
#pragma mark - PrivacyNavigationCommands
- (void)showHandoff {
......@@ -83,8 +81,31 @@
[[ClearBrowsingDataTableViewController alloc]
initWithBrowser:self.browser];
viewController.dispatcher = self.viewController.dispatcher;
viewController.delegate = self;
[self.baseNavigationController pushViewController:viewController
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
......@@ -15,10 +15,8 @@
#include "ios/chrome/browser/browser_state/chrome_browser_state.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/settings/cells/settings_switch_cell.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/settings_navigation_controller.h"
#import "ios/chrome/browser/ui/settings/settings_table_view_controller_constants.h"
......@@ -57,8 +55,7 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services";
} // namespace
@interface PrivacyTableViewController () <ClearBrowsingDataUIDelegate,
PrefObserverDelegate> {
@interface PrivacyTableViewController () <PrefObserverDelegate> {
ChromeBrowserState* _browserState; // weak
// Pref observer to track changes to prefs.
......@@ -223,21 +220,6 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services";
[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
- (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