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 |