Moved UI code from RepostFormTabHelper to its delegate (Tab).

Bug: None
Change-Id: I8dcd4fad80ef796bba3502196c71a9807cd52fab
Reviewed-on: https://chromium-review.googlesource.com/634276
Commit-Queue: Eugene But <[email protected]>
Reviewed-by: Mark Cogan <[email protected]>
Cr-Commit-Position: refs/heads/master@{#501800}
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index 8706b29..f27dba8 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -102,6 +102,7 @@
 #import "ios/chrome/browser/ui/activity_services/requirements/activity_service_presentation.h"
 #import "ios/chrome/browser/ui/activity_services/requirements/activity_service_snackbar.h"
 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
+#import "ios/chrome/browser/ui/alert_coordinator/repost_form_coordinator.h"
 #import "ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.h"
 #import "ios/chrome/browser/ui/background_generator.h"
 #import "ios/chrome/browser/ui/bookmarks/bookmark_interaction_controller.h"
@@ -173,6 +174,7 @@
 #import "ios/chrome/browser/web/passkit_dialog_provider.h"
 #include "ios/chrome/browser/web/print_tab_helper.h"
 #import "ios/chrome/browser/web/repost_form_tab_helper.h"
+#import "ios/chrome/browser/web/repost_form_tab_helper_delegate.h"
 #import "ios/chrome/browser/web/sad_tab_tab_helper.h"
 #include "ios/chrome/browser/web/web_state_printer.h"
 #import "ios/chrome/browser/web_state_list/web_state_list.h"
@@ -366,6 +368,7 @@
                                     PassKitDialogProvider,
                                     PreloadControllerDelegate,
                                     QRScannerPresenting,
+                                    RepostFormTabHelperDelegate,
                                     SKStoreProductViewControllerDelegate,
                                     SnapshotOverlayProvider,
                                     StoreKitLauncher,
@@ -541,6 +544,9 @@
 
   // Coordinator for Page Info UI.
   PageInfoLegacyCoordinator* _pageInfoCoordinator;
+
+  // Coordinator for displaying Repost Form dialog.
+  RepostFormCoordinator* _repostFormCoordinator;
 }
 
 // The browser's side swipe controller.  Lazily instantiated on the first call.
@@ -2369,6 +2375,7 @@
   if (!SadTabTabHelper::FromWebState(tab.webState))
     SadTabTabHelper::CreateForWebState(tab.webState, _sadTabCoordinator);
   PrintTabHelper::CreateForWebState(tab.webState, self);
+  RepostFormTabHelper::CreateForWebState(tab.webState, self);
 }
 
 - (void)uninstallDelegatesForTab:(Tab*)tab {
@@ -5099,4 +5106,22 @@
     [self printTab];
 }
 
+#pragma mark - RepostFormTabHelperDelegate
+
+- (void)repostFormTabHelper:(RepostFormTabHelper*)helper
+    presentRepostFromDialogAtPoint:(CGPoint)location
+                 completionHandler:(void (^)(BOOL))completion {
+  _repostFormCoordinator = [[RepostFormCoordinator alloc]
+      initWithBaseViewController:self
+                  dialogLocation:location
+                        webState:helper->web_state()
+               completionHandler:completion];
+  [_repostFormCoordinator start];
+}
+
+- (void)repostFormTabHelperDismissRepostFormDialog:
+    (RepostFormTabHelper*)helper {
+  _repostFormCoordinator = nil;
+}
+
 @end