| OLD | NEW |
| 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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 #include "ios/chrome/grit/ios_strings.h" | 162 #include "ios/chrome/grit/ios_strings.h" |
| 163 #import "ios/net/request_tracker.h" | 163 #import "ios/net/request_tracker.h" |
| 164 #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" | 164 #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" |
| 165 #include "ios/public/provider/chrome/browser/ui/app_rating_prompt.h" | 165 #include "ios/public/provider/chrome/browser/ui/app_rating_prompt.h" |
| 166 #include "ios/public/provider/chrome/browser/ui/default_ios_web_view_factory.h" | 166 #include "ios/public/provider/chrome/browser/ui/default_ios_web_view_factory.h" |
| 167 #import "ios/public/provider/chrome/browser/voice/voice_search_bar.h" | 167 #import "ios/public/provider/chrome/browser/voice/voice_search_bar.h" |
| 168 #import "ios/public/provider/chrome/browser/voice/voice_search_bar_owner.h" | 168 #import "ios/public/provider/chrome/browser/voice/voice_search_bar_owner.h" |
| 169 #include "ios/public/provider/chrome/browser/voice/voice_search_controller.h" | 169 #include "ios/public/provider/chrome/browser/voice/voice_search_controller.h" |
| 170 #include "ios/public/provider/chrome/browser/voice/voice_search_controller_deleg
ate.h" | 170 #include "ios/public/provider/chrome/browser/voice/voice_search_controller_deleg
ate.h" |
| 171 #include "ios/public/provider/chrome/browser/voice/voice_search_provider.h" | 171 #include "ios/public/provider/chrome/browser/voice/voice_search_provider.h" |
| 172 #import "ios/shared/chrome/browser/ui/commands/command_dispatcher.h" |
| 172 #import "ios/shared/chrome/browser/ui/tools_menu/tools_menu_configuration.h" | 173 #import "ios/shared/chrome/browser/ui/tools_menu/tools_menu_configuration.h" |
| 173 #include "ios/web/public/active_state_manager.h" | 174 #include "ios/web/public/active_state_manager.h" |
| 174 #include "ios/web/public/navigation_item.h" | 175 #include "ios/web/public/navigation_item.h" |
| 175 #import "ios/web/public/navigation_manager.h" | 176 #import "ios/web/public/navigation_manager.h" |
| 176 #include "ios/web/public/referrer_util.h" | 177 #include "ios/web/public/referrer_util.h" |
| 177 #include "ios/web/public/ssl_status.h" | 178 #include "ios/web/public/ssl_status.h" |
| 178 #include "ios/web/public/url_scheme_util.h" | 179 #include "ios/web/public/url_scheme_util.h" |
| 179 #include "ios/web/public/user_agent.h" | 180 #include "ios/web/public/user_agent.h" |
| 180 #include "ios/web/public/web_client.h" | 181 #include "ios/web/public/web_client.h" |
| 181 #import "ios/web/public/web_state/context_menu_params.h" | 182 #import "ios/web/public/web_state/context_menu_params.h" |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 | 394 |
| 394 // Handles displaying the context menu for all form factors. | 395 // Handles displaying the context menu for all form factors. |
| 395 ContextMenuCoordinator* _contextMenuCoordinator; | 396 ContextMenuCoordinator* _contextMenuCoordinator; |
| 396 | 397 |
| 397 // Backing object for property of the same name. | 398 // Backing object for property of the same name. |
| 398 DialogPresenter* _dialogPresenter; | 399 DialogPresenter* _dialogPresenter; |
| 399 | 400 |
| 400 // Handles presentation of JavaScript dialogs. | 401 // Handles presentation of JavaScript dialogs. |
| 401 std::unique_ptr<JavaScriptDialogPresenterImpl> _javaScriptDialogPresenter; | 402 std::unique_ptr<JavaScriptDialogPresenterImpl> _javaScriptDialogPresenter; |
| 402 | 403 |
| 404 // Handles command dispatching. |
| 405 CommandDispatcher* _dispatcher; |
| 406 |
| 403 // Keyboard commands provider. It offloads most of the keyboard commands | 407 // Keyboard commands provider. It offloads most of the keyboard commands |
| 404 // management off of the BVC. | 408 // management off of the BVC. |
| 405 KeyCommandsProvider* _keyCommandsProvider; | 409 KeyCommandsProvider* _keyCommandsProvider; |
| 406 | 410 |
| 407 // Calls to |-relinquishedToolbarController| will set this to yes, and calls | 411 // Calls to |-relinquishedToolbarController| will set this to yes, and calls |
| 408 // to |-reparentToolbarController| will reset it to NO. | 412 // to |-reparentToolbarController| will reset it to NO. |
| 409 BOOL _isToolbarControllerRelinquished; | 413 BOOL _isToolbarControllerRelinquished; |
| 410 | 414 |
| 411 // The controller that owns the currently relinquished toolbar controller. | 415 // The controller that owns the currently relinquished toolbar controller. |
| 412 // The reference is weak because it's possible for the toolbar owner to be | 416 // The reference is weak because it's possible for the toolbar owner to be |
| (...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 941 dependencyFactory: | 945 dependencyFactory: |
| 942 (BrowserViewControllerDependencyFactory*)factory { | 946 (BrowserViewControllerDependencyFactory*)factory { |
| 943 self = [super initWithNibName:nil bundle:base::mac::FrameworkBundle()]; | 947 self = [super initWithNibName:nil bundle:base::mac::FrameworkBundle()]; |
| 944 if (self) { | 948 if (self) { |
| 945 DCHECK(factory); | 949 DCHECK(factory); |
| 946 | 950 |
| 947 _dependencyFactory = factory; | 951 _dependencyFactory = factory; |
| 948 _nativeControllersForTabIDs = [NSMapTable strongToWeakObjectsMapTable]; | 952 _nativeControllersForTabIDs = [NSMapTable strongToWeakObjectsMapTable]; |
| 949 _dialogPresenter = [[DialogPresenter alloc] initWithDelegate:self | 953 _dialogPresenter = [[DialogPresenter alloc] initWithDelegate:self |
| 950 presentingViewController:self]; | 954 presentingViewController:self]; |
| 955 _dispatcher = [[CommandDispatcher alloc] init]; |
| 956 [_dispatcher startDispatchingToTarget:self |
| 957 forProtocol:@protocol(UrlLoader)]; |
| 958 [_dispatcher startDispatchingToTarget:self |
| 959 forProtocol:@protocol(WebToolbarDelegate)]; |
| 960 |
| 951 _javaScriptDialogPresenter.reset( | 961 _javaScriptDialogPresenter.reset( |
| 952 new JavaScriptDialogPresenterImpl(_dialogPresenter)); | 962 new JavaScriptDialogPresenterImpl(_dialogPresenter)); |
| 953 _webStateDelegate.reset(new web::WebStateDelegateBridge(self)); | 963 _webStateDelegate.reset(new web::WebStateDelegateBridge(self)); |
| 954 // TODO(leng): Delay this. | 964 // TODO(leng): Delay this. |
| 955 [[UpgradeCenter sharedInstance] registerClient:self]; | 965 [[UpgradeCenter sharedInstance] registerClient:self]; |
| 956 _inNewTabAnimation = NO; | 966 _inNewTabAnimation = NO; |
| 957 if (model && browserState) | 967 if (model && browserState) |
| 958 [self updateWithTabModel:model browserState:browserState]; | 968 [self updateWithTabModel:model browserState:browserState]; |
| 959 if ([[NSUserDefaults standardUserDefaults] | 969 if ([[NSUserDefaults standardUserDefaults] |
| 960 boolForKey:@"fullScreenShowAlert"]) { | 970 boolForKey:@"fullScreenShowAlert"]) { |
| 961 _fullScreenAlertShown = [[NSMutableSet alloc] init]; | 971 _fullScreenAlertShown = [[NSMutableSet alloc] init]; |
| 962 } | 972 } |
| 963 } | 973 } |
| 964 return self; | 974 return self; |
| 965 } | 975 } |
| 966 | 976 |
| 967 - (instancetype)initWithNibName:(NSString*)nibNameOrNil | 977 - (instancetype)initWithNibName:(NSString*)nibNameOrNil |
| 968 bundle:(NSBundle*)nibBundleOrNil { | 978 bundle:(NSBundle*)nibBundleOrNil { |
| 969 NOTREACHED(); | 979 NOTREACHED(); |
| 970 return nil; | 980 return nil; |
| 971 } | 981 } |
| 972 | 982 |
| 973 - (instancetype)initWithCoder:(NSCoder*)aDecoder { | 983 - (instancetype)initWithCoder:(NSCoder*)aDecoder { |
| 974 NOTREACHED(); | 984 NOTREACHED(); |
| 975 return nil; | 985 return nil; |
| 976 } | 986 } |
| 977 | 987 |
| 978 - (void)dealloc { | 988 - (void)dealloc { |
| 989 [_dispatcher stopDispatchingForProtocol:@protocol(OmniboxFocuser)]; |
| 990 [_dispatcher stopDispatchingForProtocol:@protocol(UrlLoader)]; |
| 991 [_dispatcher stopDispatchingForProtocol:@protocol(WebToolbarDelegate)]; |
| 992 |
| 979 _tabStripController = nil; | 993 _tabStripController = nil; |
| 980 _infoBarContainer = nil; | 994 _infoBarContainer = nil; |
| 981 _readingListMenuNotifier = nil; | 995 _readingListMenuNotifier = nil; |
| 982 if (_bookmarkModel) | 996 if (_bookmarkModel) |
| 983 _bookmarkModel->RemoveObserver(_bookmarkModelBridge.get()); | 997 _bookmarkModel->RemoveObserver(_bookmarkModelBridge.get()); |
| 984 [_model removeObserver:self]; | 998 [_model removeObserver:self]; |
| 985 [[UpgradeCenter sharedInstance] unregisterClient:self]; | 999 [[UpgradeCenter sharedInstance] unregisterClient:self]; |
| 986 [[NSNotificationCenter defaultCenter] removeObserver:self]; | 1000 [[NSNotificationCenter defaultCenter] removeObserver:self]; |
| 987 [_toolbarController setDelegate:nil]; | 1001 [_toolbarController setDelegate:nil]; |
| 988 if (_voiceSearchController) | 1002 if (_voiceSearchController) |
| (...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1755 | 1769 |
| 1756 // Create the toolbar model and controller. | 1770 // Create the toolbar model and controller. |
| 1757 _toolbarModelDelegate.reset( | 1771 _toolbarModelDelegate.reset( |
| 1758 new ToolbarModelDelegateIOS([_model webStateList])); | 1772 new ToolbarModelDelegateIOS([_model webStateList])); |
| 1759 _toolbarModelIOS.reset([_dependencyFactory | 1773 _toolbarModelIOS.reset([_dependencyFactory |
| 1760 newToolbarModelIOSWithDelegate:_toolbarModelDelegate.get()]); | 1774 newToolbarModelIOSWithDelegate:_toolbarModelDelegate.get()]); |
| 1761 _toolbarController = [_dependencyFactory | 1775 _toolbarController = [_dependencyFactory |
| 1762 newWebToolbarControllerWithDelegate:self | 1776 newWebToolbarControllerWithDelegate:self |
| 1763 urlLoader:self | 1777 urlLoader:self |
| 1764 preloadProvider:_preloadController]; | 1778 preloadProvider:_preloadController]; |
| 1779 [_dispatcher startDispatchingToTarget:_toolbarController |
| 1780 forProtocol:@protocol(OmniboxFocuser)]; |
| 1765 [_toolbarController setTabCount:[_model count]]; | 1781 [_toolbarController setTabCount:[_model count]]; |
| 1766 if (_voiceSearchController) | 1782 if (_voiceSearchController) |
| 1767 _voiceSearchController->SetDelegate(_toolbarController); | 1783 _voiceSearchController->SetDelegate(_toolbarController); |
| 1768 | 1784 |
| 1769 // If needed, create the tabstrip. | 1785 // If needed, create the tabstrip. |
| 1770 if (IsIPadIdiom()) { | 1786 if (IsIPadIdiom()) { |
| 1771 _tabStripController = | 1787 _tabStripController = |
| 1772 [_dependencyFactory newTabStripControllerWithTabModel:_model]; | 1788 [_dependencyFactory newTabStripControllerWithTabModel:_model]; |
| 1773 _tabStripController.fullscreenDelegate = self; | 1789 _tabStripController.fullscreenDelegate = self; |
| 1774 } | 1790 } |
| (...skipping 1247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3022 if (url_host == kChromeUINewTabHost || url_host == kChromeUIBookmarksHost) { | 3038 if (url_host == kChromeUINewTabHost || url_host == kChromeUIBookmarksHost) { |
| 3023 NewTabPageController* pageController = | 3039 NewTabPageController* pageController = |
| 3024 [[NewTabPageController alloc] initWithUrl:url | 3040 [[NewTabPageController alloc] initWithUrl:url |
| 3025 loader:self | 3041 loader:self |
| 3026 focuser:_toolbarController | 3042 focuser:_toolbarController |
| 3027 ntpObserver:self | 3043 ntpObserver:self |
| 3028 browserState:_browserState | 3044 browserState:_browserState |
| 3029 colorCache:_dominantColorCache | 3045 colorCache:_dominantColorCache |
| 3030 webToolbarDelegate:self | 3046 webToolbarDelegate:self |
| 3031 tabModel:_model | 3047 tabModel:_model |
| 3032 parentViewController:self]; | 3048 parentViewController:self |
| 3049 dispatcher:_dispatcher]; |
| 3033 pageController.swipeRecognizerProvider = self.sideSwipeController; | 3050 pageController.swipeRecognizerProvider = self.sideSwipeController; |
| 3034 | 3051 |
| 3035 // Panel is always NTP for iPhone. | 3052 // Panel is always NTP for iPhone. |
| 3036 NewTabPage::PanelIdentifier panelType = NewTabPage::kMostVisitedPanel; | 3053 NewTabPage::PanelIdentifier panelType = NewTabPage::kMostVisitedPanel; |
| 3037 | 3054 |
| 3038 if (IsIPadIdiom()) { | 3055 if (IsIPadIdiom()) { |
| 3039 // New Tab Page can have multiple panels. Each panel is addressable | 3056 // New Tab Page can have multiple panels. Each panel is addressable |
| 3040 // by a #fragment, e.g. chrome://newtab/#most_visited takes user to | 3057 // by a #fragment, e.g. chrome://newtab/#most_visited takes user to |
| 3041 // the Most Visited page, chrome://newtab/#bookmarks takes user to | 3058 // the Most Visited page, chrome://newtab/#bookmarks takes user to |
| 3042 // the Bookmark Manager, etc. | 3059 // the Bookmark Manager, etc. |
| (...skipping 2125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5168 | 5185 |
| 5169 - (UIView*)voiceSearchButton { | 5186 - (UIView*)voiceSearchButton { |
| 5170 return _voiceSearchButton; | 5187 return _voiceSearchButton; |
| 5171 } | 5188 } |
| 5172 | 5189 |
| 5173 - (id<LogoAnimationControllerOwner>)logoAnimationControllerOwner { | 5190 - (id<LogoAnimationControllerOwner>)logoAnimationControllerOwner { |
| 5174 return [self currentLogoAnimationControllerOwner]; | 5191 return [self currentLogoAnimationControllerOwner]; |
| 5175 } | 5192 } |
| 5176 | 5193 |
| 5177 @end | 5194 @end |
| OLD | NEW |