| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/tab_switcher/tab_switcher_controller.h" | 5 #import "ios/chrome/browser/ui/tab_switcher/tab_switcher_controller.h" |
| 6 | 6 |
| 7 #include "base/ios/block_types.h" | 7 #include "base/ios/block_types.h" |
| 8 #include "base/ios/weak_nsobject.h" | 8 #include "base/ios/weak_nsobject.h" |
| 9 #include "base/mac/scoped_nsobject.h" | 9 #include "base/mac/scoped_nsobject.h" |
| 10 #include "base/metrics/user_metrics.h" | 10 #include "base/metrics/user_metrics.h" |
| (...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 atIndex:(NSUInteger)position | 828 atIndex:(NSUInteger)position |
| 829 transition:(ui::PageTransition)transition | 829 transition:(ui::PageTransition)transition |
| 830 tabModel:(TabModel*)tabModel { | 830 tabModel:(TabModel*)tabModel { |
| 831 web::NavigationManager::WebLoadParams params(URL); | 831 web::NavigationManager::WebLoadParams params(URL); |
| 832 params.referrer = web::Referrer(); | 832 params.referrer = web::Referrer(); |
| 833 params.transition_type = transition; | 833 params.transition_type = transition; |
| 834 | 834 |
| 835 DCHECK(tabModel.browserState); | 835 DCHECK(tabModel.browserState); |
| 836 | 836 |
| 837 base::scoped_nsobject<Tab> tab([[Tab alloc] | 837 base::scoped_nsobject<Tab> tab([[Tab alloc] |
| 838 initWithWindowName:nil | 838 initWithBrowserState:tabModel.browserState |
| 839 opener:nil | 839 opener:nil |
| 840 openedByDOM:NO | 840 openedByDOM:NO |
| 841 model:tabModel | 841 model:tabModel]); |
| 842 browserState:tabModel.browserState]); | |
| 843 [tab webController].webUsageEnabled = tabModel.webUsageEnabled; | 842 [tab webController].webUsageEnabled = tabModel.webUsageEnabled; |
| 844 | 843 |
| 845 ProceduralBlock dismissWithNewTab = ^{ | 844 ProceduralBlock dismissWithNewTab = ^{ |
| 846 NSUInteger tabIndex = position; | 845 NSUInteger tabIndex = position; |
| 847 if (position > tabModel.count) | 846 if (position > tabModel.count) |
| 848 tabIndex = tabModel.count; | 847 tabIndex = tabModel.count; |
| 849 [tabModel insertTab:tab atIndex:tabIndex]; | 848 [tabModel insertTab:tab atIndex:tabIndex]; |
| 850 | 849 |
| 851 if (tabModel.tabUsageRecorder) | 850 if (tabModel.tabUsageRecorder) |
| 852 tabModel.tabUsageRecorder->TabCreatedForSelection(tab); | 851 tabModel.tabUsageRecorder->TabCreatedForSelection(tab); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 892 sync_sessions::OpenTabsUIDelegate* openTabs = | 891 sync_sessions::OpenTabsUIDelegate* openTabs = |
| 893 IOSChromeProfileSyncServiceFactory::GetForBrowserState(_browserState) | 892 IOSChromeProfileSyncServiceFactory::GetForBrowserState(_browserState) |
| 894 ->GetOpenTabsUIDelegate(); | 893 ->GetOpenTabsUIDelegate(); |
| 895 const sessions::SessionTab* toLoad = nullptr; | 894 const sessions::SessionTab* toLoad = nullptr; |
| 896 if (openTabs->GetForeignTab(distantTab->session_tag, distantTab->tab_id, | 895 if (openTabs->GetForeignTab(distantTab->session_tag, distantTab->tab_id, |
| 897 &toLoad)) { | 896 &toLoad)) { |
| 898 TabModel* mainModel = [_tabSwitcherModel mainTabModel]; | 897 TabModel* mainModel = [_tabSwitcherModel mainTabModel]; |
| 899 // Disable user interactions until the tab is inserted to prevent multiple | 898 // Disable user interactions until the tab is inserted to prevent multiple |
| 900 // concurrent tab model updates. | 899 // concurrent tab model updates. |
| 901 [_tabSwitcherView setUserInteractionEnabled:NO]; | 900 [_tabSwitcherView setUserInteractionEnabled:NO]; |
| 902 Tab* tab = [mainModel insertOrUpdateTabWithURL:GURL() | 901 Tab* tab = [mainModel insertTabWithURL:GURL() |
| 903 referrer:web::Referrer() | 902 referrer:web::Referrer() |
| 904 transition:ui::PAGE_TRANSITION_TYPED | 903 transition:ui::PAGE_TRANSITION_TYPED |
| 905 windowName:nil | 904 opener:nil |
| 906 opener:nil | 905 openedByDOM:NO |
| 907 openedByDOM:NO | 906 atIndex:NSNotFound |
| 908 atIndex:NSNotFound | 907 inBackground:NO]; |
| 909 inBackground:NO]; | |
| 910 [tab loadSessionTab:toLoad]; | 908 [tab loadSessionTab:toLoad]; |
| 911 [mainModel setCurrentTab:tab]; | 909 [mainModel setCurrentTab:tab]; |
| 912 | 910 |
| 913 // Reenable touch events. | 911 // Reenable touch events. |
| 914 [_tabSwitcherView setUserInteractionEnabled:YES]; | 912 [_tabSwitcherView setUserInteractionEnabled:YES]; |
| 915 [self | 913 [self |
| 916 tabSwitcherDismissWithModel:mainModel | 914 tabSwitcherDismissWithModel:mainModel |
| 917 animated:YES | 915 animated:YES |
| 918 withCompletion:^{ | 916 withCompletion:^{ |
| 919 [self.delegate tabSwitcherDismissTransitionDidEnd:self]; | 917 [self.delegate tabSwitcherDismissTransitionDidEnd:self]; |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1238 base::UserMetricsAction("MobileTabSwitcherCloseNonIncognitoTab")); | 1236 base::UserMetricsAction("MobileTabSwitcherCloseNonIncognitoTab")); |
| 1239 } | 1237 } |
| 1240 } | 1238 } |
| 1241 | 1239 |
| 1242 - (void)tabSwitcherPanelControllerDidUpdateOverlayViewVisibility: | 1240 - (void)tabSwitcherPanelControllerDidUpdateOverlayViewVisibility: |
| 1243 (TabSwitcherPanelController*)tabSwitcherPanelController { | 1241 (TabSwitcherPanelController*)tabSwitcherPanelController { |
| 1244 [_tabSwitcherView updateOverlayButtonState]; | 1242 [_tabSwitcherView updateOverlayButtonState]; |
| 1245 } | 1243 } |
| 1246 | 1244 |
| 1247 @end | 1245 @end |
| OLD | NEW |