| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "ios/chrome/browser/sessions/tab_restore_service_delegate_provider_impl
.h" | |
| 6 | |
| 7 #include "components/sessions/core/live_tab_context.h" | |
| 8 #include "components/sessions/ios/ios_live_tab.h" | |
| 9 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" | |
| 10 #include "ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios.h" | |
| 11 #include "ios/chrome/browser/sessions/tab_restore_service_delegate_impl_ios_fact
ory.h" | |
| 12 #include "ios/chrome/browser/tabs/tab.h" | |
| 13 #include "ios/chrome/browser/tabs/tab_model.h" | |
| 14 #include "ios/chrome/browser/ui/browser_ios.h" | |
| 15 #include "ios/chrome/browser/ui/browser_list_ios.h" | |
| 16 #import "ios/web/public/web_state/web_state.h" | |
| 17 | |
| 18 namespace ios_internal { | |
| 19 | |
| 20 TabRestoreServiceDelegateProviderImpl::TabRestoreServiceDelegateProviderImpl() { | |
| 21 } | |
| 22 | |
| 23 TabRestoreServiceDelegateProviderImpl:: | |
| 24 ~TabRestoreServiceDelegateProviderImpl() {} | |
| 25 | |
| 26 sessions::LiveTabContext* TabRestoreServiceDelegateProviderImpl::Create( | |
| 27 ios::ChromeBrowserState* browser_state) { | |
| 28 return TabRestoreServiceDelegateImplIOSFactory::GetForBrowserState( | |
| 29 browser_state); | |
| 30 } | |
| 31 | |
| 32 sessions::LiveTabContext* | |
| 33 TabRestoreServiceDelegateProviderImpl::FindContextWithID(int32_t desired_id) { | |
| 34 for (BrowserListIOS::const_iterator iter = BrowserListIOS::begin(); | |
| 35 iter != BrowserListIOS::end(); ++iter) { | |
| 36 id<BrowserIOS> browser = *iter; | |
| 37 if ([browser tabModel].sessionID.id() == desired_id) { | |
| 38 return TabRestoreServiceDelegateImplIOSFactory::GetForBrowserState( | |
| 39 [browser browserState]); | |
| 40 } | |
| 41 } | |
| 42 return NULL; | |
| 43 } | |
| 44 | |
| 45 sessions::LiveTabContext* | |
| 46 TabRestoreServiceDelegateProviderImpl::FindContextForTab( | |
| 47 const sessions::LiveTab* tab) { | |
| 48 const sessions::IOSLiveTab* requested_tab = | |
| 49 static_cast<const sessions::IOSLiveTab*>(tab); | |
| 50 for (BrowserListIOS::const_iterator iter = BrowserListIOS::begin(); | |
| 51 iter != BrowserListIOS::end(); ++iter) { | |
| 52 id<BrowserIOS> browser = *iter; | |
| 53 for (Tab* current_tab in [browser tabModel]) { | |
| 54 if (current_tab.webState && | |
| 55 current_tab.webState == requested_tab->web_state()) { | |
| 56 return TabRestoreServiceDelegateImplIOSFactory::GetForBrowserState( | |
| 57 [browser browserState]); | |
| 58 } | |
| 59 } | |
| 60 } | |
| 61 return NULL; | |
| 62 } | |
| 63 | |
| 64 } // namespace ios_internal | |
| OLD | NEW |