Chromium Code Reviews| Index: ios/chrome/browser/tabs/tab_model_web_state_list_delegate.mm |
| diff --git a/ios/chrome/browser/tabs/tab_model_web_state_list_delegate.mm b/ios/chrome/browser/tabs/tab_model_web_state_list_delegate.mm |
| index 0c5a4fb5cc0305d262de3fe4d29331e24f881e15..253cf3f3c4f826e0b4a27a48dd9260986e7379e7 100644 |
| --- a/ios/chrome/browser/tabs/tab_model_web_state_list_delegate.mm |
| +++ b/ios/chrome/browser/tabs/tab_model_web_state_list_delegate.mm |
| @@ -5,6 +5,9 @@ |
| #import "ios/chrome/browser/tabs/tab_model_web_state_list_delegate.h" |
| #include "base/logging.h" |
| +#import "ios/chrome/browser/tabs/legacy_tab_helper.h" |
| +#import "ios/chrome/browser/tabs/tab.h" |
| +#import "ios/chrome/browser/tabs/tab_helper_util.h" |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| #error "This file requires ARC support." |
| @@ -17,6 +20,19 @@ TabModelWebStateListDelegate::TabModelWebStateListDelegate(TabModel* tab_model) |
| TabModelWebStateListDelegate::~TabModelWebStateListDelegate() = default; |
| -void TabModelWebStateListDelegate::WillAddWebState(web::WebState* web_state) {} |
| +void TabModelWebStateListDelegate::WillAddWebState(web::WebState* web_state) { |
|
rohitrao (ping after 24h)
2017/03/26 23:21:22
FYI I think I'm going to need to call AttachTabHel
sdefresne
2017/03/28 15:15:05
Ack.
|
| + // Some Tab objects are created outside of TabModel, avoid recreating the |
| + // tab helpers for those Tab objects. |
| + if (!LegacyTabHelper::FromWebState(web_state)) |
| + AttachTabHelpers(web_state); |
| -void TabModelWebStateListDelegate::WebStateDetached(web::WebState* web_state) {} |
| + DCHECK(LegacyTabHelper::FromWebState(web_state)); |
| + Tab* tab = LegacyTabHelper::GetTabForWebState(web_state); |
| + [tab setParentTabModel:tab_model_.get()]; |
| +} |
| + |
| +void TabModelWebStateListDelegate::WebStateDetached(web::WebState* web_state) { |
| + DCHECK(LegacyTabHelper::FromWebState(web_state)); |
| + Tab* tab = LegacyTabHelper::GetTabForWebState(web_state); |
| + [tab setParentTabModel:nil]; |
| +} |