| 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 /* | 5 /* |
| 6 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 6 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
| 7 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 7 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
| 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. | 8 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. |
| 9 * (http://www.torchmobile.com/) | 9 * (http://www.torchmobile.com/) |
| 10 * | 10 * |
| (...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1094 // entry instead of looking at the pending entry, because the pending entry | 1094 // entry instead of looking at the pending entry, because the pending entry |
| 1095 // does not have any subframe history items. | 1095 // does not have any subframe history items. |
| 1096 if (is_in_page && GetLastCommittedEntry()) { | 1096 if (is_in_page && GetLastCommittedEntry()) { |
| 1097 FrameNavigationEntry* frame_entry = new FrameNavigationEntry( | 1097 FrameNavigationEntry* frame_entry = new FrameNavigationEntry( |
| 1098 params.frame_unique_name, params.item_sequence_number, | 1098 params.frame_unique_name, params.item_sequence_number, |
| 1099 params.document_sequence_number, rfh->GetSiteInstance(), nullptr, | 1099 params.document_sequence_number, rfh->GetSiteInstance(), nullptr, |
| 1100 params.url, params.referrer, params.method, params.post_id); | 1100 params.url, params.referrer, params.method, params.post_id); |
| 1101 new_entry = GetLastCommittedEntry()->CloneAndReplace( | 1101 new_entry = GetLastCommittedEntry()->CloneAndReplace( |
| 1102 frame_entry, true, rfh->frame_tree_node(), | 1102 frame_entry, true, rfh->frame_tree_node(), |
| 1103 delegate_->GetFrameTree()->root()); | 1103 delegate_->GetFrameTree()->root()); |
| 1104 if (new_entry->GetURL().GetOrigin() != params.url.GetOrigin()) { |
| 1105 // TODO(jam): we had one report of this with a URL that was redirecting to |
| 1106 // only tildes. Until we understand that better, don't copy the cert in |
| 1107 // this case. |
| 1108 new_entry->GetSSL() = SSLStatus(); |
| 1109 } |
| 1104 | 1110 |
| 1105 // We expect |frame_entry| to be owned by |new_entry|. This should never | 1111 // We expect |frame_entry| to be owned by |new_entry|. This should never |
| 1106 // fail, because it's the main frame. | 1112 // fail, because it's the main frame. |
| 1107 CHECK(frame_entry->HasOneRef()); | 1113 CHECK(frame_entry->HasOneRef()); |
| 1108 | 1114 |
| 1109 update_virtual_url = new_entry->update_virtual_url_with_url(); | 1115 update_virtual_url = new_entry->update_virtual_url_with_url(); |
| 1110 } | 1116 } |
| 1111 | 1117 |
| 1112 // Only make a copy of the pending entry if it is appropriate for the new page | 1118 // Only make a copy of the pending entry if it is appropriate for the new page |
| 1113 // that was just loaded. Verify this by checking if the entry corresponds | 1119 // that was just loaded. Verify this by checking if the entry corresponds |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 | 1211 |
| 1206 // TODO(creis): Classify location.replace as NEW_PAGE instead of EXISTING_PAGE | 1212 // TODO(creis): Classify location.replace as NEW_PAGE instead of EXISTING_PAGE |
| 1207 // in https://crbug.com/596707. | 1213 // in https://crbug.com/596707. |
| 1208 | 1214 |
| 1209 NavigationEntryImpl* entry; | 1215 NavigationEntryImpl* entry; |
| 1210 if (params.intended_as_new_entry) { | 1216 if (params.intended_as_new_entry) { |
| 1211 // This was intended as a new entry but the pending entry was lost in the | 1217 // This was intended as a new entry but the pending entry was lost in the |
| 1212 // meanwhile and no new page was created. We are stuck at the last committed | 1218 // meanwhile and no new page was created. We are stuck at the last committed |
| 1213 // entry. | 1219 // entry. |
| 1214 entry = GetLastCommittedEntry(); | 1220 entry = GetLastCommittedEntry(); |
| 1221 CHECK(!is_in_page); |
| 1222 entry->GetSSL() = handle->ssl_status(); |
| 1215 } else if (params.nav_entry_id) { | 1223 } else if (params.nav_entry_id) { |
| 1216 // This is a browser-initiated navigation (back/forward/reload). | 1224 // This is a browser-initiated navigation (back/forward/reload). |
| 1217 entry = GetEntryWithUniqueID(params.nav_entry_id); | 1225 entry = GetEntryWithUniqueID(params.nav_entry_id); |
| 1218 | 1226 |
| 1219 if (is_in_page) { | 1227 if (is_in_page) { |
| 1220 // There's no SSLStatus in the NavigationHandle for in-page navigations, | 1228 // There's no SSLStatus in the NavigationHandle for in-page navigations, |
| 1221 // so normally we leave |entry|'s SSLStatus as is. However if this was a | 1229 // so normally we leave |entry|'s SSLStatus as is. However if this was a |
| 1222 // restored in-page navigation entry, then it won't have an SSLStatus. So | 1230 // restored in-page navigation entry, then it won't have an SSLStatus. So |
| 1223 // we need to copy over the SSLStatus from the entry that navigated it. | 1231 // we need to copy over the SSLStatus from the entry that navigated it. |
| 1224 NavigationEntryImpl* last_entry = GetLastCommittedEntry(); | 1232 NavigationEntryImpl* last_entry = GetLastCommittedEntry(); |
| (...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2147 } | 2155 } |
| 2148 } | 2156 } |
| 2149 } | 2157 } |
| 2150 | 2158 |
| 2151 void NavigationControllerImpl::SetGetTimestampCallbackForTest( | 2159 void NavigationControllerImpl::SetGetTimestampCallbackForTest( |
| 2152 const base::Callback<base::Time()>& get_timestamp_callback) { | 2160 const base::Callback<base::Time()>& get_timestamp_callback) { |
| 2153 get_timestamp_callback_ = get_timestamp_callback; | 2161 get_timestamp_callback_ = get_timestamp_callback; |
| 2154 } | 2162 } |
| 2155 | 2163 |
| 2156 } // namespace content | 2164 } // namespace content |
| OLD | NEW |