| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/crw_session_controller.h" | 5 #import "ios/web/navigation/crw_session_controller.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 _tabId = [[self uniqueID] retain]; | 181 _tabId = [[self uniqueID] retain]; |
| 182 _openerId = nil; | 182 _openerId = nil; |
| 183 _browserState = browserState; | 183 _browserState = browserState; |
| 184 | 184 |
| 185 // Create entries array from list of navigations. | 185 // Create entries array from list of navigations. |
| 186 _entries = [[NSMutableArray alloc] initWithCapacity:scoped_items.size()]; | 186 _entries = [[NSMutableArray alloc] initWithCapacity:scoped_items.size()]; |
| 187 std::vector<web::NavigationItem*> items; | 187 std::vector<web::NavigationItem*> items; |
| 188 scoped_items.release(&items); | 188 scoped_items.release(&items); |
| 189 | 189 |
| 190 for (size_t i = 0; i < items.size(); ++i) { | 190 for (size_t i = 0; i < items.size(); ++i) { |
| 191 scoped_ptr<web::NavigationItem> item(items[i]); | 191 std::unique_ptr<web::NavigationItem> item(items[i]); |
| 192 base::scoped_nsobject<CRWSessionEntry> entry( | 192 base::scoped_nsobject<CRWSessionEntry> entry( |
| 193 [[CRWSessionEntry alloc] initWithNavigationItem:std::move(item)]); | 193 [[CRWSessionEntry alloc] initWithNavigationItem:std::move(item)]); |
| 194 [_entries addObject:entry]; | 194 [_entries addObject:entry]; |
| 195 } | 195 } |
| 196 self.currentNavigationIndex = currentIndex; | 196 self.currentNavigationIndex = currentIndex; |
| 197 // Prior to M34, 0 was used as "no index" instead of -1; adjust for that. | 197 // Prior to M34, 0 was used as "no index" instead of -1; adjust for that. |
| 198 if (![_entries count]) | 198 if (![_entries count]) |
| 199 self.currentNavigationIndex = -1; | 199 self.currentNavigationIndex = -1; |
| 200 if (_currentNavigationIndex >= static_cast<NSInteger>(items.size())) { | 200 if (_currentNavigationIndex >= static_cast<NSInteger>(items.size())) { |
| 201 self.currentNavigationIndex = static_cast<NSInteger>(items.size()) - 1; | 201 self.currentNavigationIndex = static_cast<NSInteger>(items.size()) - 1; |
| (...skipping 664 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 } | 866 } |
| 867 | 867 |
| 868 - (CRWSessionEntry*)sessionEntryWithURL:(const GURL&)url | 868 - (CRWSessionEntry*)sessionEntryWithURL:(const GURL&)url |
| 869 referrer:(const web::Referrer&)referrer | 869 referrer:(const web::Referrer&)referrer |
| 870 transition:(ui::PageTransition)transition | 870 transition:(ui::PageTransition)transition |
| 871 useDesktopUserAgent:(BOOL)useDesktopUserAgent | 871 useDesktopUserAgent:(BOOL)useDesktopUserAgent |
| 872 rendererInitiated:(BOOL)rendererInitiated { | 872 rendererInitiated:(BOOL)rendererInitiated { |
| 873 GURL loaded_url(url); | 873 GURL loaded_url(url); |
| 874 BOOL urlWasRewritten = NO; | 874 BOOL urlWasRewritten = NO; |
| 875 if (_navigationManager) { | 875 if (_navigationManager) { |
| 876 scoped_ptr<std::vector<web::BrowserURLRewriter::URLRewriter>> | 876 std::unique_ptr<std::vector<web::BrowserURLRewriter::URLRewriter>> |
| 877 transientRewriters = _navigationManager->GetTransientURLRewriters(); | 877 transientRewriters = _navigationManager->GetTransientURLRewriters(); |
| 878 if (transientRewriters) { | 878 if (transientRewriters) { |
| 879 urlWasRewritten = web::BrowserURLRewriter::RewriteURLWithWriters( | 879 urlWasRewritten = web::BrowserURLRewriter::RewriteURLWithWriters( |
| 880 &loaded_url, _browserState, *transientRewriters.get()); | 880 &loaded_url, _browserState, *transientRewriters.get()); |
| 881 } | 881 } |
| 882 } | 882 } |
| 883 if (!urlWasRewritten) { | 883 if (!urlWasRewritten) { |
| 884 web::BrowserURLRewriter::GetInstance()->RewriteURLIfNecessary( | 884 web::BrowserURLRewriter::GetInstance()->RewriteURLIfNecessary( |
| 885 &loaded_url, _browserState); | 885 &loaded_url, _browserState); |
| 886 } | 886 } |
| 887 scoped_ptr<web::NavigationItemImpl> item(new web::NavigationItemImpl()); | 887 std::unique_ptr<web::NavigationItemImpl> item(new web::NavigationItemImpl()); |
| 888 item->SetURL(loaded_url); | 888 item->SetURL(loaded_url); |
| 889 item->SetReferrer(referrer); | 889 item->SetReferrer(referrer); |
| 890 item->SetTransitionType(transition); | 890 item->SetTransitionType(transition); |
| 891 item->SetIsOverridingUserAgent(useDesktopUserAgent); | 891 item->SetIsOverridingUserAgent(useDesktopUserAgent); |
| 892 item->set_is_renderer_initiated(rendererInitiated); | 892 item->set_is_renderer_initiated(rendererInitiated); |
| 893 return [[[CRWSessionEntry alloc] initWithNavigationItem:std::move(item)] | 893 return [[[CRWSessionEntry alloc] initWithNavigationItem:std::move(item)] |
| 894 autorelease]; | 894 autorelease]; |
| 895 } | 895 } |
| 896 | 896 |
| 897 @end | 897 @end |
| OLD | NEW |