Commit f2408ea1 authored by edchin's avatar edchin Committed by Commit Bot

[ios] Migrate PrintController to BrowserCoordinator

Bug: 905524
Change-Id: I7856854bada0ef0a0285a4f3b0d362f9c2113f97
Reviewed-on: https://chromium-review.googlesource.com/c/1354781Reviewed-by: default avataredchin <edchin@chromium.org>
Reviewed-by: default avatarRohit Rao <rohitrao@chromium.org>
Reviewed-by: default avatarGauthier Ambard <gambard@chromium.org>
Commit-Queue: edchin <edchin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612221}
parent 95f4c915
...@@ -346,7 +346,6 @@ source_set("ui_internal") { ...@@ -346,7 +346,6 @@ source_set("ui_internal") {
"//ios/chrome/browser/ui/payments", "//ios/chrome/browser/ui/payments",
"//ios/chrome/browser/ui/popup_menu", "//ios/chrome/browser/ui/popup_menu",
"//ios/chrome/browser/ui/presenters", "//ios/chrome/browser/ui/presenters",
"//ios/chrome/browser/ui/print",
"//ios/chrome/browser/ui/qr_scanner:coordinator", "//ios/chrome/browser/ui/qr_scanner:coordinator",
"//ios/chrome/browser/ui/reading_list", "//ios/chrome/browser/ui/reading_list",
"//ios/chrome/browser/ui/sad_tab", "//ios/chrome/browser/ui/sad_tab",
......
...@@ -99,7 +99,6 @@ ...@@ -99,7 +99,6 @@
#import "ios/chrome/browser/tabs/tab_model.h" #import "ios/chrome/browser/tabs/tab_model.h"
#import "ios/chrome/browser/tabs/tab_model_observer.h" #import "ios/chrome/browser/tabs/tab_model_observer.h"
#import "ios/chrome/browser/tabs/tab_private.h" #import "ios/chrome/browser/tabs/tab_private.h"
#import "ios/chrome/browser/tabs/tab_title_util.h"
#import "ios/chrome/browser/tabs/tab_util.h" #import "ios/chrome/browser/tabs/tab_util.h"
#import "ios/chrome/browser/translate/chrome_ios_translate_client.h" #import "ios/chrome/browser/translate/chrome_ios_translate_client.h"
#import "ios/chrome/browser/translate/language_selection_handler.h" #import "ios/chrome/browser/translate/language_selection_handler.h"
...@@ -161,7 +160,6 @@ ...@@ -161,7 +160,6 @@
#import "ios/chrome/browser/ui/payments/payment_request_manager.h" #import "ios/chrome/browser/ui/payments/payment_request_manager.h"
#import "ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.h" #import "ios/chrome/browser/ui/popup_menu/popup_menu_coordinator.h"
#import "ios/chrome/browser/ui/presenters/vertical_animation_container.h" #import "ios/chrome/browser/ui/presenters/vertical_animation_container.h"
#import "ios/chrome/browser/ui/print/print_controller.h"
#import "ios/chrome/browser/ui/reading_list/offline_page_native_content.h" #import "ios/chrome/browser/ui/reading_list/offline_page_native_content.h"
#import "ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.h" #import "ios/chrome/browser/ui/reading_list/reading_list_menu_notifier.h"
#include "ios/chrome/browser/ui/sad_tab/features.h" #include "ios/chrome/browser/ui/sad_tab/features.h"
...@@ -249,7 +247,6 @@ ...@@ -249,7 +247,6 @@
#import "net/base/mac/url_conversions.h" #import "net/base/mac/url_conversions.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "net/ssl/ssl_info.h" #include "net/ssl/ssl_info.h"
#include "net/url_request/url_request_context_getter.h"
#include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/shared_url_loader_factory.h"
#include "third_party/google_toolbox_for_mac/src/iPhone/GTMUIImage+Resize.h" #include "third_party/google_toolbox_for_mac/src/iPhone/GTMUIImage+Resize.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
...@@ -477,9 +474,6 @@ NSString* const kBrowserViewControllerSnackbarCategory = ...@@ -477,9 +474,6 @@ NSString* const kBrowserViewControllerSnackbarCategory =
// Used to display the Find In Page UI. Nil if not visible. // Used to display the Find In Page UI. Nil if not visible.
FindBarControllerIOS* _findBarController; FindBarControllerIOS* _findBarController;
// Used to display the Print UI. Nil if not visible.
PrintController* _printController;
// Adapter to let BVC be the delegate for WebState. // Adapter to let BVC be the delegate for WebState.
std::unique_ptr<web::WebStateDelegateBridge> _webStateDelegate; std::unique_ptr<web::WebStateDelegateBridge> _webStateDelegate;
...@@ -1431,8 +1425,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint ...@@ -1431,8 +1425,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint
} }
[_paymentRequestManager cancelRequest]; [_paymentRequestManager cancelRequest];
[_printController dismissAnimated:YES];
_printController = nil;
[self.dispatcher dismissPopupMenuAnimated:NO]; [self.dispatcher dismissPopupMenuAnimated:NO];
[_contextMenuCoordinator stop]; [_contextMenuCoordinator stop];
...@@ -4373,17 +4365,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint ...@@ -4373,17 +4365,6 @@ applicationCommandEndpoint:(id<ApplicationCommands>)applicationCommandEndpoint
self.currentWebState]]; self.currentWebState]];
} }
- (void)printTab {
if (!_printController) {
_printController = [[PrintController alloc]
initWithContextGetter:_browserState->GetRequestContext()];
}
Tab* currentTab = self.tabModel.currentTab;
[_printController printView:[currentTab viewForPrinting]
withTitle:tab_util::GetTabTitle(currentTab.webState)
viewController:self];
}
- (void)addToReadingList:(ReadingListAddCommand*)command { - (void)addToReadingList:(ReadingListAddCommand*)command {
[self addToReadingListURL:[command URL] title:[command title]]; [self addToReadingListURL:[command URL] title:[command title]];
} }
......
...@@ -48,9 +48,6 @@ class GURL; ...@@ -48,9 +48,6 @@ class GURL;
// Bookmarks the current page. // Bookmarks the current page.
- (void)bookmarkPage; - (void)bookmarkPage;
// Prints the currently active tab.
- (void)printTab;
// Adds a page to the reading list using data in |command|. // Adds a page to the reading list using data in |command|.
- (void)addToReadingList:(ReadingListAddCommand*)command; - (void)addToReadingList:(ReadingListAddCommand*)command;
......
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
// and representative of the contents. // and representative of the contents.
@protocol BrowserCoordinatorCommands @protocol BrowserCoordinatorCommands
// Prints the currently active tab.
- (void)printTab;
// Shows the Reading List UI. // Shows the Reading List UI.
- (void)showReadingList; - (void)showReadingList;
......
...@@ -37,6 +37,7 @@ source_set("main") { ...@@ -37,6 +37,7 @@ source_set("main") {
"//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
"//ios/chrome/browser/ui/download", "//ios/chrome/browser/ui/download",
"//ios/chrome/browser/ui/page_info:coordinator", "//ios/chrome/browser/ui/page_info:coordinator",
"//ios/chrome/browser/ui/print",
"//ios/chrome/browser/ui/qr_scanner:coordinator", "//ios/chrome/browser/ui/qr_scanner:coordinator",
"//ios/chrome/browser/ui/reading_list", "//ios/chrome/browser/ui/reading_list",
"//ios/chrome/browser/ui/recent_tabs", "//ios/chrome/browser/ui/recent_tabs",
...@@ -45,6 +46,7 @@ source_set("main") { ...@@ -45,6 +46,7 @@ source_set("main") {
"//ios/chrome/browser/web:tab_helper_delegates", "//ios/chrome/browser/web:tab_helper_delegates",
"//ios/chrome/browser/web_state_list", "//ios/chrome/browser/web_state_list",
"//ios/public/provider/chrome/browser", "//ios/public/provider/chrome/browser",
"//net",
] ]
public_deps = [ public_deps = [
"//ios/chrome/browser/ui:ui_internal", "//ios/chrome/browser/ui:ui_internal",
......
...@@ -9,9 +9,12 @@ ...@@ -9,9 +9,12 @@
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#import "ios/chrome/browser/app_launcher/app_launcher_abuse_detector.h" #import "ios/chrome/browser/app_launcher/app_launcher_abuse_detector.h"
#import "ios/chrome/browser/app_launcher/app_launcher_tab_helper.h" #import "ios/chrome/browser/app_launcher/app_launcher_tab_helper.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
#import "ios/chrome/browser/download/pass_kit_tab_helper.h" #import "ios/chrome/browser/download/pass_kit_tab_helper.h"
#import "ios/chrome/browser/store_kit/store_kit_coordinator.h" #import "ios/chrome/browser/store_kit/store_kit_coordinator.h"
#import "ios/chrome/browser/store_kit/store_kit_tab_helper.h" #import "ios/chrome/browser/store_kit/store_kit_tab_helper.h"
#import "ios/chrome/browser/tabs/tab.h"
#import "ios/chrome/browser/tabs/tab_title_util.h"
#import "ios/chrome/browser/ui/alert_coordinator/repost_form_coordinator.h" #import "ios/chrome/browser/ui/alert_coordinator/repost_form_coordinator.h"
#import "ios/chrome/browser/ui/app_launcher/app_launcher_coordinator.h" #import "ios/chrome/browser/ui/app_launcher/app_launcher_coordinator.h"
#import "ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.h" #import "ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.h"
...@@ -22,6 +25,7 @@ ...@@ -22,6 +25,7 @@
#import "ios/chrome/browser/ui/commands/command_dispatcher.h" #import "ios/chrome/browser/ui/commands/command_dispatcher.h"
#import "ios/chrome/browser/ui/download/pass_kit_coordinator.h" #import "ios/chrome/browser/ui/download/pass_kit_coordinator.h"
#import "ios/chrome/browser/ui/page_info/page_info_legacy_coordinator.h" #import "ios/chrome/browser/ui/page_info/page_info_legacy_coordinator.h"
#import "ios/chrome/browser/ui/print/print_controller.h"
#import "ios/chrome/browser/ui/qr_scanner/qr_scanner_legacy_coordinator.h" #import "ios/chrome/browser/ui/qr_scanner/qr_scanner_legacy_coordinator.h"
#import "ios/chrome/browser/ui/reading_list/reading_list_coordinator.h" #import "ios/chrome/browser/ui/reading_list/reading_list_coordinator.h"
#import "ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator.h" #import "ios/chrome/browser/ui/recent_tabs/recent_tabs_coordinator.h"
...@@ -30,6 +34,7 @@ ...@@ -30,6 +34,7 @@
#import "ios/chrome/browser/web/repost_form_tab_helper_delegate.h" #import "ios/chrome/browser/web/repost_form_tab_helper_delegate.h"
#include "ios/chrome/browser/web_state_list/web_state_list.h" #include "ios/chrome/browser/web_state_list/web_state_list.h"
#import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h" #import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h"
#include "net/url_request/url_request_context_getter.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."
...@@ -60,6 +65,10 @@ ...@@ -60,6 +65,10 @@
// Coordinator for the PassKit UI presentation. // Coordinator for the PassKit UI presentation.
@property(nonatomic, strong) PassKitCoordinator* passKitCoordinator; @property(nonatomic, strong) PassKitCoordinator* passKitCoordinator;
// Used to display the Print UI. Nil if not visible.
// TODO(crbug.com/910017): Convert to coordinator.
@property(nonatomic, strong) PrintController* printController;
// Coordinator for the QR scanner. // Coordinator for the QR scanner.
@property(nonatomic, strong) QRScannerLegacyCoordinator* qrScannerCoordinator; @property(nonatomic, strong) QRScannerLegacyCoordinator* qrScannerCoordinator;
...@@ -118,6 +127,10 @@ ...@@ -118,6 +127,10 @@
- (void)clearPresentedStateWithCompletion:(ProceduralBlock)completion - (void)clearPresentedStateWithCompletion:(ProceduralBlock)completion
dismissOmnibox:(BOOL)dismissOmnibox { dismissOmnibox:(BOOL)dismissOmnibox {
[self.passKitCoordinator stop]; [self.passKitCoordinator stop];
[self.printController dismissAnimated:YES];
self.printController = nil;
[self.viewController clearPresentedStateWithCompletion:completion [self.viewController clearPresentedStateWithCompletion:completion
dismissOmnibox:dismissOmnibox]; dismissOmnibox:dismissOmnibox];
} }
...@@ -153,6 +166,7 @@ ...@@ -153,6 +166,7 @@
self.appLauncherCoordinator = [[AppLauncherCoordinator alloc] self.appLauncherCoordinator = [[AppLauncherCoordinator alloc]
initWithBaseViewController:self.viewController]; initWithBaseViewController:self.viewController];
self.formInputAccessoryCoordinator = [[FormInputAccessoryCoordinator alloc] self.formInputAccessoryCoordinator = [[FormInputAccessoryCoordinator alloc]
initWithBaseViewController:self.viewController initWithBaseViewController:self.viewController
browserState:self.browserState browserState:self.browserState
...@@ -171,6 +185,8 @@ ...@@ -171,6 +185,8 @@
self.passKitCoordinator = [[PassKitCoordinator alloc] self.passKitCoordinator = [[PassKitCoordinator alloc]
initWithBaseViewController:self.viewController]; initWithBaseViewController:self.viewController];
/* PrintController is created and started by a BrowserCommand */
self.qrScannerCoordinator = [[QRScannerLegacyCoordinator alloc] self.qrScannerCoordinator = [[QRScannerLegacyCoordinator alloc]
initWithBaseViewController:self.viewController]; initWithBaseViewController:self.viewController];
self.qrScannerCoordinator.dispatcher = self.dispatcher; self.qrScannerCoordinator.dispatcher = self.dispatcher;
...@@ -204,6 +220,8 @@ ...@@ -204,6 +220,8 @@
[self.passKitCoordinator stop]; [self.passKitCoordinator stop];
self.passKitCoordinator = nil; self.passKitCoordinator = nil;
self.printController = nil;
[self.qrScannerCoordinator stop]; [self.qrScannerCoordinator stop];
self.qrScannerCoordinator = nil; self.qrScannerCoordinator = nil;
...@@ -223,6 +241,19 @@ ...@@ -223,6 +241,19 @@
self.storeKitCoordinator = nil; self.storeKitCoordinator = nil;
} }
#pragma mark - BrowserCoordinatorCommands
- (void)printTab {
if (!self.printController) {
self.printController = [[PrintController alloc]
initWithContextGetter:self.browserState->GetRequestContext()];
}
Tab* currentTab = self.tabModel.currentTab;
[self.printController printView:[currentTab viewForPrinting]
withTitle:tab_util::GetTabTitle(currentTab.webState)
viewController:self.viewController];
}
- (void)showReadingList { - (void)showReadingList {
self.readingListCoordinator = [[ReadingListCoordinator alloc] self.readingListCoordinator = [[ReadingListCoordinator alloc]
initWithBaseViewController:self.viewController initWithBaseViewController:self.viewController
......
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