| 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 |