| Index: ios/chrome/browser/tabs/tab_model.mm
|
| diff --git a/ios/chrome/browser/tabs/tab_model.mm b/ios/chrome/browser/tabs/tab_model.mm
|
| index 59558dc28447387c06cd6b179542cc6f9e360903..91d1237e03bf0983f64f1ba8c4978c0f6c0ac565 100644
|
| --- a/ios/chrome/browser/tabs/tab_model.mm
|
| +++ b/ios/chrome/browser/tabs/tab_model.mm
|
| @@ -194,22 +194,6 @@ Tab* GetOpenerForTab(id<NSFastEnumeration> tabs, Tab* tab) {
|
| // Returns YES if tab URL host indicates that tab is an NTP tab.
|
| - (BOOL)isNTPTab:(Tab*)tab;
|
|
|
| -// Opens a tab at the specified URL and registers its JS-supplied window name if
|
| -// appropriate. For certain transition types, will consult the order controller
|
| -// and thus may only use |index| as a hint. |parentTab| may be nil if there
|
| -// is no parent associated with this new tab, as may |windowName| if not
|
| -// applicable. |openedByDOM| is YES if the page was opened by DOM.
|
| -// The |index| parameter can be set to
|
| -// TabModelConstants::kTabPositionAutomatically if the caller doesn't have a
|
| -// preference for the position of the tab.
|
| -- (Tab*)insertTabWithLoadParams:
|
| - (const web::NavigationManager::WebLoadParams&)params
|
| - windowName:(NSString*)windowName
|
| - opener:(Tab*)parentTab
|
| - openedByDOM:(BOOL)openedByDOM
|
| - atIndex:(NSUInteger)index
|
| - inBackground:(BOOL)inBackground;
|
| -
|
| // Call to switch the selected tab. Broadcasts about the change in selection.
|
| // It's ok for |newTab| to be nil in case the last tab is going away. In that
|
| // case, the "tab deselected" notification gets sent, but no corresponding
|
| @@ -425,17 +409,6 @@ Tab* GetOpenerForTab(id<NSFastEnumeration> tabs, Tab* tab) {
|
| return static_cast<NSUInteger>(index);
|
| }
|
|
|
| -- (Tab*)tabWithWindowName:(NSString*)windowName {
|
| - if (!windowName)
|
| - return nil;
|
| - for (Tab* tab in self) {
|
| - if ([windowName isEqualToString:tab.windowName]) {
|
| - return tab;
|
| - }
|
| - }
|
| - return nil;
|
| -}
|
| -
|
| - (Tab*)nextTabWithOpener:(Tab*)tab afterTab:(Tab*)afterTab {
|
| int startIndex = WebStateList::kInvalidIndex;
|
| if (afterTab)
|
| @@ -476,57 +449,59 @@ Tab* GetOpenerForTab(id<NSFastEnumeration> tabs, Tab* tab) {
|
| return opener ? LegacyTabHelper::GetTabForWebState(opener) : nil;
|
| }
|
|
|
| -- (Tab*)insertOrUpdateTabWithURL:(const GURL&)URL
|
| - referrer:(const web::Referrer&)referrer
|
| - transition:(ui::PageTransition)transition
|
| - windowName:(NSString*)windowName
|
| - opener:(Tab*)parentTab
|
| - openedByDOM:(BOOL)openedByDOM
|
| - atIndex:(NSUInteger)index
|
| - inBackground:(BOOL)inBackground {
|
| +- (Tab*)insertTabWithURL:(const GURL&)URL
|
| + referrer:(const web::Referrer&)referrer
|
| + transition:(ui::PageTransition)transition
|
| + opener:(Tab*)parentTab
|
| + openedByDOM:(BOOL)openedByDOM
|
| + atIndex:(NSUInteger)index
|
| + inBackground:(BOOL)inBackground {
|
| web::NavigationManager::WebLoadParams params(URL);
|
| params.referrer = referrer;
|
| params.transition_type = transition;
|
| - return [self insertOrUpdateTabWithLoadParams:params
|
| - windowName:windowName
|
| - opener:parentTab
|
| - openedByDOM:openedByDOM
|
| - atIndex:index
|
| - inBackground:inBackground];
|
| + return [self insertTabWithLoadParams:params
|
| + opener:parentTab
|
| + openedByDOM:openedByDOM
|
| + atIndex:index
|
| + inBackground:inBackground];
|
| }
|
|
|
| -- (Tab*)insertOrUpdateTabWithLoadParams:
|
| - (const web::NavigationManager::WebLoadParams&)loadParams
|
| - windowName:(NSString*)windowName
|
| - opener:(Tab*)parentTab
|
| - openedByDOM:(BOOL)openedByDOM
|
| - atIndex:(NSUInteger)index
|
| - inBackground:(BOOL)inBackground {
|
| - // Find the tab for the given window name. If found, load with
|
| - // |originalParams| in it, otherwise create a new tab for it.
|
| - Tab* tab = [self tabWithWindowName:windowName];
|
| - if (tab) {
|
| - // Updating a tab shouldn't be possible with web usage suspended, since
|
| - // whatever page would be driving it should also be suspended.
|
| - DCHECK(webUsageEnabled_);
|
| -
|
| - web::NavigationManager::WebLoadParams updatedParams(loadParams);
|
| - updatedParams.is_renderer_initiated = (parentTab != nil);
|
| - [tab.webController loadWithParams:updatedParams];
|
| -
|
| - // Force the page to start loading even if it's in the background.
|
| - [tab.webController triggerPendingLoad];
|
| -
|
| - if (!inBackground)
|
| - [self setCurrentTab:tab];
|
| - } else {
|
| - tab = [self insertTabWithLoadParams:loadParams
|
| - windowName:windowName
|
| - opener:parentTab
|
| - openedByDOM:openedByDOM
|
| - atIndex:index
|
| - inBackground:inBackground];
|
| - }
|
| +- (Tab*)insertTabWithLoadParams:
|
| + (const web::NavigationManager::WebLoadParams&)params
|
| + opener:(Tab*)parentTab
|
| + openedByDOM:(BOOL)openedByDOM
|
| + atIndex:(NSUInteger)index
|
| + inBackground:(BOOL)inBackground {
|
| + DCHECK(_browserState);
|
| + base::scoped_nsobject<Tab> tab([[Tab alloc] initWithBrowserState:_browserState
|
| + opener:parentTab
|
| + openedByDOM:openedByDOM
|
| + model:self]);
|
| + [tab webController].webUsageEnabled = webUsageEnabled_;
|
| +
|
| + [self insertTab:tab
|
| + atIndex:index
|
| + opener:parentTab
|
| + transition:params.transition_type];
|
| +
|
| + if (!inBackground && _tabUsageRecorder)
|
| + _tabUsageRecorder->TabCreatedForSelection(tab);
|
| +
|
| + [[tab webController] loadWithParams:params];
|
| + // Force the page to start loading even if it's in the background.
|
| + if (webUsageEnabled_)
|
| + [[tab webController] triggerPendingLoad];
|
| + NSDictionary* userInfo = @{
|
| + kTabModelTabKey : tab,
|
| + kTabModelOpenInBackgroundKey : @(inBackground),
|
| + };
|
| + [[NSNotificationCenter defaultCenter]
|
| + postNotificationName:kTabModelNewTabWillOpenNotification
|
| + object:self
|
| + userInfo:userInfo];
|
| +
|
| + if (!inBackground)
|
| + [self setCurrentTab:tab];
|
|
|
| return tab;
|
| }
|
| @@ -542,7 +517,6 @@ Tab* GetOpenerForTab(id<NSFastEnumeration> tabs, Tab* tab) {
|
| // Tabs open by DOM are always renderer initiated.
|
| params.is_renderer_initiated = openedByDOM;
|
| return [self insertTabWithLoadParams:params
|
| - windowName:nil
|
| opener:parentTab
|
| openedByDOM:openedByDOM
|
| atIndex:index
|
| @@ -877,49 +851,6 @@ Tab* GetOpenerForTab(id<NSFastEnumeration> tabs, Tab* tab) {
|
| return host == kChromeUINewTabHost || host == kChromeUIBookmarksHost;
|
| }
|
|
|
| -- (Tab*)insertTabWithLoadParams:
|
| - (const web::NavigationManager::WebLoadParams&)params
|
| - windowName:(NSString*)windowName
|
| - opener:(Tab*)parentTab
|
| - openedByDOM:(BOOL)openedByDOM
|
| - atIndex:(NSUInteger)index
|
| - inBackground:(BOOL)inBackground {
|
| - DCHECK(_browserState);
|
| - base::scoped_nsobject<Tab> tab([[Tab alloc]
|
| - initWithWindowName:windowName
|
| - opener:parentTab
|
| - openedByDOM:openedByDOM
|
| - model:self
|
| - browserState:_browserState]);
|
| - [tab webController].webUsageEnabled = webUsageEnabled_;
|
| -
|
| - [self insertTab:tab
|
| - atIndex:index
|
| - opener:parentTab
|
| - transition:params.transition_type];
|
| -
|
| - if (!inBackground && _tabUsageRecorder)
|
| - _tabUsageRecorder->TabCreatedForSelection(tab);
|
| -
|
| - [[tab webController] loadWithParams:params];
|
| - // Force the page to start loading even if it's in the background.
|
| - if (webUsageEnabled_)
|
| - [[tab webController] triggerPendingLoad];
|
| - NSDictionary* userInfo = @{
|
| - kTabModelTabKey : tab,
|
| - kTabModelOpenInBackgroundKey : @(inBackground),
|
| - };
|
| - [[NSNotificationCenter defaultCenter]
|
| - postNotificationName:kTabModelNewTabWillOpenNotification
|
| - object:self
|
| - userInfo:userInfo];
|
| -
|
| - if (!inBackground)
|
| - [self setCurrentTab:tab];
|
| -
|
| - return tab;
|
| -}
|
| -
|
| - (void)changeSelectedTabFrom:(Tab*)oldTab
|
| to:(Tab*)newTab
|
| persistState:(BOOL)persist {
|
| @@ -1110,28 +1041,22 @@ Tab* GetOpenerForTab(id<NSFastEnumeration> tabs, Tab* tab) {
|
|
|
| @implementation TabModel (PrivateForTestingOnly)
|
|
|
| -- (Tab*)addTabWithURL:(const GURL&)URL
|
| - referrer:(const web::Referrer&)referrer
|
| - windowName:(NSString*)windowName {
|
| +- (Tab*)addTabWithURL:(const GURL&)URL referrer:(const web::Referrer&)referrer {
|
| return [self insertTabWithURL:URL
|
| referrer:referrer
|
| - windowName:windowName
|
| opener:nil
|
| atIndex:self.count];
|
| }
|
|
|
| - (Tab*)insertTabWithURL:(const GURL&)URL
|
| referrer:(const web::Referrer&)referrer
|
| - windowName:(NSString*)windowName
|
| opener:(Tab*)parentTab
|
| atIndex:(NSUInteger)index {
|
| DCHECK(_browserState);
|
| - base::scoped_nsobject<Tab> tab([[Tab alloc]
|
| - initWithWindowName:windowName
|
| - opener:parentTab
|
| - openedByDOM:NO
|
| - model:self
|
| - browserState:_browserState]);
|
| + base::scoped_nsobject<Tab> tab([[Tab alloc] initWithBrowserState:_browserState
|
| + opener:parentTab
|
| + openedByDOM:NO
|
| + model:self]);
|
| web::NavigationManager::WebLoadParams params(URL);
|
| params.referrer = referrer;
|
| params.transition_type = ui::PAGE_TRANSITION_TYPED;
|
|
|