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 |