Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Side by Side Diff: ios/chrome/browser/ui/browser_view_controller.mm

Issue 2615003002: Use ChromeBrowserStateManager instead of BrowserListIOS. (Closed)
Patch Set: Fix ios_chrome_perftests. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ios/chrome/browser/ui/browser_view_controller.h ('k') | ios/chrome/test/app/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/chrome/browser/ui/browser_view_controller.h" 5 #import "ios/chrome/browser/ui/browser_view_controller.h"
6 6
7 #import <AssetsLibrary/AssetsLibrary.h> 7 #import <AssetsLibrary/AssetsLibrary.h>
8 #import <MobileCoreServices/MobileCoreServices.h> 8 #import <MobileCoreServices/MobileCoreServices.h>
9 #import <PassKit/PassKit.h> 9 #import <PassKit/PassKit.h>
10 #import <Photos/Photos.h> 10 #import <Photos/Photos.h>
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 #import "ios/chrome/browser/tabs/tab_model.h" 81 #import "ios/chrome/browser/tabs/tab_model.h"
82 #import "ios/chrome/browser/tabs/tab_model_observer.h" 82 #import "ios/chrome/browser/tabs/tab_model_observer.h"
83 #import "ios/chrome/browser/tabs/tab_snapshotting_delegate.h" 83 #import "ios/chrome/browser/tabs/tab_snapshotting_delegate.h"
84 #import "ios/chrome/browser/ui/activity_services/share_protocol.h" 84 #import "ios/chrome/browser/ui/activity_services/share_protocol.h"
85 #import "ios/chrome/browser/ui/activity_services/share_to_data.h" 85 #import "ios/chrome/browser/ui/activity_services/share_to_data.h"
86 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" 86 #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h"
87 #import "ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.h" 87 #import "ios/chrome/browser/ui/authentication/re_signin_infobar_delegate.h"
88 #import "ios/chrome/browser/ui/background_generator.h" 88 #import "ios/chrome/browser/ui/background_generator.h"
89 #import "ios/chrome/browser/ui/bookmarks/bookmark_interaction_controller.h" 89 #import "ios/chrome/browser/ui/bookmarks/bookmark_interaction_controller.h"
90 #import "ios/chrome/browser/ui/browser_container_view.h" 90 #import "ios/chrome/browser/ui/browser_container_view.h"
91 #import "ios/chrome/browser/ui/browser_list_ios.h"
92 #import "ios/chrome/browser/ui/browser_view_controller_dependency_factory.h" 91 #import "ios/chrome/browser/ui/browser_view_controller_dependency_factory.h"
93 #import "ios/chrome/browser/ui/chrome_web_view_factory.h" 92 #import "ios/chrome/browser/ui/chrome_web_view_factory.h"
94 #import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h" 93 #import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
95 #import "ios/chrome/browser/ui/commands/generic_chrome_command.h" 94 #import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
96 #include "ios/chrome/browser/ui/commands/ios_command_ids.h" 95 #include "ios/chrome/browser/ui/commands/ios_command_ids.h"
97 #import "ios/chrome/browser/ui/commands/open_url_command.h" 96 #import "ios/chrome/browser/ui/commands/open_url_command.h"
98 #import "ios/chrome/browser/ui/commands/reading_list_add_command.h" 97 #import "ios/chrome/browser/ui/commands/reading_list_add_command.h"
99 #import "ios/chrome/browser/ui/commands/show_mail_composer_command.h" 98 #import "ios/chrome/browser/ui/commands/show_mail_composer_command.h"
100 #import "ios/chrome/browser/ui/context_menu/context_menu_coordinator.h" 99 #import "ios/chrome/browser/ui/context_menu/context_menu_coordinator.h"
101 #import "ios/chrome/browser/ui/contextual_search/contextual_search_controller.h" 100 #import "ios/chrome/browser/ui/contextual_search/contextual_search_controller.h"
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 _nativeControllersForTabIDs.reset( 909 _nativeControllersForTabIDs.reset(
911 [[NSMapTable strongToWeakObjectsMapTable] retain]); 910 [[NSMapTable strongToWeakObjectsMapTable] retain]);
912 _dialogPresenter.reset([[DialogPresenter alloc] initWithDelegate:self 911 _dialogPresenter.reset([[DialogPresenter alloc] initWithDelegate:self
913 presentingViewController:self]); 912 presentingViewController:self]);
914 _javaScriptDialogPresenter.reset( 913 _javaScriptDialogPresenter.reset(
915 new JavaScriptDialogPresenterImpl(_dialogPresenter)); 914 new JavaScriptDialogPresenterImpl(_dialogPresenter));
916 _webStateDelegate.reset(new web::WebStateDelegateBridge(self)); 915 _webStateDelegate.reset(new web::WebStateDelegateBridge(self));
917 // TODO(leng): Delay this. 916 // TODO(leng): Delay this.
918 [[UpgradeCenter sharedInstance] registerClient:self]; 917 [[UpgradeCenter sharedInstance] registerClient:self];
919 _inNewTabAnimation = NO; 918 _inNewTabAnimation = NO;
920 BrowserListIOS::AddBrowser(self);
921 if (model && browserState) 919 if (model && browserState)
922 [self updateWithTabModel:model browserState:browserState]; 920 [self updateWithTabModel:model browserState:browserState];
923 if ([[NSUserDefaults standardUserDefaults] 921 if ([[NSUserDefaults standardUserDefaults]
924 boolForKey:@"fullScreenShowAlert"]) { 922 boolForKey:@"fullScreenShowAlert"]) {
925 _fullScreenAlertShown.reset([[NSMutableSet alloc] init]); 923 _fullScreenAlertShown.reset([[NSMutableSet alloc] init]);
926 } 924 }
927 } 925 }
928 return self; 926 return self;
929 } 927 }
930 928
931 - (instancetype)initWithNibName:(NSString*)nibNameOrNil 929 - (instancetype)initWithNibName:(NSString*)nibNameOrNil
932 bundle:(NSBundle*)nibBundleOrNil { 930 bundle:(NSBundle*)nibBundleOrNil {
933 NOTREACHED(); 931 NOTREACHED();
934 return nil; 932 return nil;
935 } 933 }
936 934
937 - (instancetype)initWithCoder:(NSCoder*)aDecoder { 935 - (instancetype)initWithCoder:(NSCoder*)aDecoder {
938 NOTREACHED(); 936 NOTREACHED();
939 return nil; 937 return nil;
940 } 938 }
941 939
942 - (void)dealloc { 940 - (void)dealloc {
943 _tabStripController.reset(); 941 _tabStripController.reset();
944 _infoBarContainer.reset(); 942 _infoBarContainer.reset();
945 _readingListMenuNotifier.reset(); 943 _readingListMenuNotifier.reset();
946 BrowserListIOS::RemoveBrowser(self);
947 _bookmarkModel->RemoveObserver(_bookmarkModelBridge.get()); 944 _bookmarkModel->RemoveObserver(_bookmarkModelBridge.get());
948 [_model removeObserver:self]; 945 [_model removeObserver:self];
949 [[UpgradeCenter sharedInstance] unregisterClient:self]; 946 [[UpgradeCenter sharedInstance] unregisterClient:self];
950 [[NSNotificationCenter defaultCenter] removeObserver:self]; 947 [[NSNotificationCenter defaultCenter] removeObserver:self];
951 [_toolbarController setDelegate:nil]; 948 [_toolbarController setDelegate:nil];
952 if (_voiceSearchController.get()) 949 if (_voiceSearchController.get())
953 _voiceSearchController->SetDelegate(nil); 950 _voiceSearchController->SetDelegate(nil);
954 [_rateThisAppDialog setDelegate:nil]; 951 [_rateThisAppDialog setDelegate:nil];
955 [_model closeAllTabs]; 952 [_model closeAllTabs];
956 [super dealloc]; 953 [super dealloc];
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 [self updateDialogPresenterActiveState]; 1034 [self updateDialogPresenterActiveState];
1038 } else { 1035 } else {
1039 self.dialogPresenter.active = false; 1036 self.dialogPresenter.active = false;
1040 } 1037 }
1041 } 1038 }
1042 1039
1043 - (BOOL)isPlayingTTS { 1040 - (BOOL)isPlayingTTS {
1044 return _voiceSearchController && _voiceSearchController->IsPlayingAudio(); 1041 return _voiceSearchController && _voiceSearchController->IsPlayingAudio();
1045 } 1042 }
1046 1043
1044 - (ios::ChromeBrowserState*)browserState {
1045 return _browserState;
1046 }
1047
1048 - (TabModel*)tabModel {
1049 return _model.get();
1050 }
1051
1047 - (SideSwipeController*)sideSwipeController { 1052 - (SideSwipeController*)sideSwipeController {
1048 if (!_sideSwipeController) { 1053 if (!_sideSwipeController) {
1049 _sideSwipeController.reset([[SideSwipeController alloc] 1054 _sideSwipeController.reset([[SideSwipeController alloc]
1050 initWithTabModel:_model 1055 initWithTabModel:_model
1051 browserState:_browserState]); 1056 browserState:_browserState]);
1052 [_sideSwipeController setSnapshotDelegate:self]; 1057 [_sideSwipeController setSnapshotDelegate:self];
1053 [_sideSwipeController setSwipeDelegate:self]; 1058 [_sideSwipeController setSwipeDelegate:self];
1054 } 1059 }
1055 return _sideSwipeController; 1060 return _sideSwipeController;
1056 } 1061 }
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
1665 [self setActive:NO]; 1670 [self setActive:NO];
1666 // Reset the toolbar opacity in case it was changed for contextual search. 1671 // Reset the toolbar opacity in case it was changed for contextual search.
1667 [self updateToolbarControlsAlpha:1.0]; 1672 [self updateToolbarControlsAlpha:1.0];
1668 [self updateToolbarBackgroundAlpha:1.0]; 1673 [self updateToolbarBackgroundAlpha:1.0];
1669 [_contextualSearchController close]; 1674 [_contextualSearchController close];
1670 _contextualSearchController.reset(); 1675 _contextualSearchController.reset();
1671 [_contextualSearchPanel removeFromSuperview]; 1676 [_contextualSearchPanel removeFromSuperview];
1672 [_contextualSearchMask removeFromSuperview]; 1677 [_contextualSearchMask removeFromSuperview];
1673 [_paymentRequestManager close]; 1678 [_paymentRequestManager close];
1674 _paymentRequestManager.reset(); 1679 _paymentRequestManager.reset();
1675 BrowserListIOS::RemoveBrowser(self);
1676 [_toolbarController browserStateDestroyed]; 1680 [_toolbarController browserStateDestroyed];
1677 [_model browserStateDestroyed]; 1681 [_model browserStateDestroyed];
1678 [_preloadController browserStateDestroyed]; 1682 [_preloadController browserStateDestroyed];
1679 _preloadController.reset(); 1683 _preloadController.reset();
1680 // The file remover needs the browser state, so needs to be destroyed now. 1684 // The file remover needs the browser state, so needs to be destroyed now.
1681 _externalFileRemover.reset(); 1685 _externalFileRemover.reset();
1682 _browserState = nullptr; 1686 _browserState = nullptr;
1683 } 1687 }
1684 1688
1685 - (void)installFakeStatusBar { 1689 - (void)installFakeStatusBar {
(...skipping 1546 matching lines...) Expand 10 before | Expand all | Expand 10 after
3232 // the error on the main thread. 3236 // the error on the main thread.
3233 [self displayPrivacyErrorAlertOnMainQueue:errorMessage]; 3237 [self displayPrivacyErrorAlertOnMainQueue:errorMessage];
3234 } else { 3238 } else {
3235 // TODO(noyau): Ideally I'd like to show an infobar with a link to switch to 3239 // TODO(noyau): Ideally I'd like to show an infobar with a link to switch to
3236 // the photo application. The current behaviour is to create the photo there 3240 // the photo application. The current behaviour is to create the photo there
3237 // but not providing any link to it is suboptimal. That's what Safari is 3241 // but not providing any link to it is suboptimal. That's what Safari is
3238 // doing, and what the PM want, but it doesn't make it right. 3242 // doing, and what the PM want, but it doesn't make it right.
3239 } 3243 }
3240 } 3244 }
3241 3245
3242 #pragma mark - BrowserIOS methods
3243
3244 - (ios::ChromeBrowserState*)browserState {
3245 return _browserState;
3246 }
3247
3248 - (TabModel*)tabModel {
3249 return _model.get();
3250 }
3251
3252 #pragma mark - No-tabs UI methods 3246 #pragma mark - No-tabs UI methods
3253 3247
3254 // Show the No-Tabs UI (hiding normal tab/web ui). 3248 // Show the No-Tabs UI (hiding normal tab/web ui).
3255 - (void)showNoTabsUI { 3249 - (void)showNoTabsUI {
3256 // The No-Tabs UI is only shown on tablet for non-incognito BVCs. (Incognito 3250 // The No-Tabs UI is only shown on tablet for non-incognito BVCs. (Incognito
3257 // mode does not have a No-Tabs UI; the user is simply shown the non-incognito 3251 // mode does not have a No-Tabs UI; the user is simply shown the non-incognito
3258 // BVC when the last incognito tab is closed.) 3252 // BVC when the last incognito tab is closed.)
3259 DCHECK(IsIPadIdiom()); 3253 DCHECK(IsIPadIdiom());
3260 DCHECK(!_isOffTheRecord); 3254 DCHECK(!_isOffTheRecord);
3261 3255
(...skipping 1880 matching lines...) Expand 10 before | Expand all | Expand 10 after
5142 5136
5143 - (UIView*)voiceSearchButton { 5137 - (UIView*)voiceSearchButton {
5144 return _voiceSearchButton; 5138 return _voiceSearchButton;
5145 } 5139 }
5146 5140
5147 - (id<LogoAnimationControllerOwner>)logoAnimationControllerOwner { 5141 - (id<LogoAnimationControllerOwner>)logoAnimationControllerOwner {
5148 return [self currentLogoAnimationControllerOwner]; 5142 return [self currentLogoAnimationControllerOwner];
5149 } 5143 }
5150 5144
5151 @end 5145 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/browser_view_controller.h ('k') | ios/chrome/test/app/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698