OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "ios/web/navigation/navigation_manager_impl.h" | 5 #import "ios/web/navigation/navigation_manager_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
11 #include "base/logging.h" | 11 #include "base/logging.h" |
12 #import "ios/web/navigation/crw_session_controller+private_constructors.h" | 12 #import "ios/web/navigation/crw_session_controller+private_constructors.h" |
13 #import "ios/web/navigation/crw_session_controller.h" | 13 #import "ios/web/navigation/crw_session_controller.h" |
14 #import "ios/web/navigation/navigation_item_impl.h" | 14 #import "ios/web/navigation/navigation_item_impl.h" |
| 15 #import "ios/web/navigation/navigation_item_impl_list.h" |
15 #import "ios/web/navigation/navigation_manager_delegate.h" | 16 #import "ios/web/navigation/navigation_manager_delegate.h" |
16 #include "ios/web/navigation/navigation_manager_facade_delegate.h" | 17 #include "ios/web/navigation/navigation_manager_facade_delegate.h" |
17 #include "ios/web/public/load_committed_details.h" | 18 #include "ios/web/public/load_committed_details.h" |
18 #import "ios/web/public/navigation_item.h" | 19 #import "ios/web/public/navigation_item.h" |
19 #import "ios/web/public/web_client.h" | 20 #import "ios/web/public/web_client.h" |
20 #import "ios/web/public/web_state/web_state.h" | 21 #import "ios/web/public/web_state/web_state.h" |
21 #include "ui/base/page_transition_types.h" | 22 #include "ui/base/page_transition_types.h" |
22 | 23 |
23 #if !defined(__has_feature) || !__has_feature(objc_arc) | 24 #if !defined(__has_feature) || !__has_feature(objc_arc) |
24 #error "This file requires ARC support." | 25 #error "This file requires ARC support." |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 pending_item->SetUserAgentType(UserAgentType::DESKTOP); | 214 pending_item->SetUserAgentType(UserAgentType::DESKTOP); |
214 } | 215 } |
215 override_desktop_user_agent_for_next_pending_item_ = false; | 216 override_desktop_user_agent_for_next_pending_item_ = false; |
216 } | 217 } |
217 | 218 |
218 NavigationItem* NavigationManagerImpl::GetLastUserItem() const { | 219 NavigationItem* NavigationManagerImpl::GetLastUserItem() const { |
219 return [session_controller_ lastUserItem]; | 220 return [session_controller_ lastUserItem]; |
220 } | 221 } |
221 | 222 |
222 NavigationItemList NavigationManagerImpl::GetItems() const { | 223 NavigationItemList NavigationManagerImpl::GetItems() const { |
223 return [session_controller_ items]; | 224 return CreateNavigationItemList([session_controller_ items]); |
224 } | 225 } |
225 | 226 |
226 BrowserState* NavigationManagerImpl::GetBrowserState() const { | 227 BrowserState* NavigationManagerImpl::GetBrowserState() const { |
227 return browser_state_; | 228 return browser_state_; |
228 } | 229 } |
229 | 230 |
230 WebState* NavigationManagerImpl::GetWebState() const { | 231 WebState* NavigationManagerImpl::GetWebState() const { |
231 return delegate_->GetWebState(); | 232 return delegate_->GetWebState(); |
232 } | 233 } |
233 | 234 |
(...skipping 30 matching lines...) Expand all Loading... |
264 BrowserURLRewriter::URLRewriter rewriter) { | 265 BrowserURLRewriter::URLRewriter rewriter) { |
265 DCHECK(rewriter); | 266 DCHECK(rewriter); |
266 if (!transient_url_rewriters_) { | 267 if (!transient_url_rewriters_) { |
267 transient_url_rewriters_.reset( | 268 transient_url_rewriters_.reset( |
268 new std::vector<BrowserURLRewriter::URLRewriter>()); | 269 new std::vector<BrowserURLRewriter::URLRewriter>()); |
269 } | 270 } |
270 transient_url_rewriters_->push_back(rewriter); | 271 transient_url_rewriters_->push_back(rewriter); |
271 } | 272 } |
272 | 273 |
273 int NavigationManagerImpl::GetItemCount() const { | 274 int NavigationManagerImpl::GetItemCount() const { |
274 return [session_controller_ itemCount]; | 275 return [session_controller_ items].size(); |
275 } | 276 } |
276 | 277 |
277 NavigationItem* NavigationManagerImpl::GetItemAtIndex(size_t index) const { | 278 NavigationItem* NavigationManagerImpl::GetItemAtIndex(size_t index) const { |
278 return [session_controller_ itemAtIndex:index]; | 279 return [session_controller_ itemAtIndex:index]; |
279 } | 280 } |
280 | 281 |
281 int NavigationManagerImpl::GetCurrentItemIndex() const { | 282 int NavigationManagerImpl::GetCurrentItemIndex() const { |
282 return [session_controller_ currentNavigationIndex]; | 283 return [session_controller_ currentNavigationIndex]; |
283 } | 284 } |
284 | 285 |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
439 ui::PageTransition transition = GetItemAtIndex(index)->GetTransitionType(); | 440 ui::PageTransition transition = GetItemAtIndex(index)->GetTransitionType(); |
440 return transition & ui::PAGE_TRANSITION_IS_REDIRECT_MASK; | 441 return transition & ui::PAGE_TRANSITION_IS_REDIRECT_MASK; |
441 } | 442 } |
442 | 443 |
443 NavigationItem* NavigationManagerImpl::GetLastCommittedNonAppSpecificItem() | 444 NavigationItem* NavigationManagerImpl::GetLastCommittedNonAppSpecificItem() |
444 const { | 445 const { |
445 int index = GetCurrentItemIndex(); | 446 int index = GetCurrentItemIndex(); |
446 if (index == -1) | 447 if (index == -1) |
447 return nullptr; | 448 return nullptr; |
448 WebClient* client = GetWebClient(); | 449 WebClient* client = GetWebClient(); |
449 NavigationItemList items = [session_controller_ items]; | 450 const ScopedNavigationItemImplList& items = [session_controller_ items]; |
450 while (index >= 0) { | 451 while (index >= 0) { |
451 NavigationItem* item = items[index--]; | 452 NavigationItem* item = items[index--].get(); |
452 if (!client->IsAppSpecificURL(item->GetVirtualURL())) | 453 if (!client->IsAppSpecificURL(item->GetVirtualURL())) |
453 return item; | 454 return item; |
454 } | 455 } |
455 return nullptr; | 456 return nullptr; |
456 } | 457 } |
457 | 458 |
458 } // namespace web | 459 } // namespace web |
OLD | NEW |