Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: content/renderer/render_view_impl.cc

Issue 971653004: Remove the FrameMsg_Navigate_Params (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@history-params
Patch Set: Addressed Nasko's comments Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #include "content/renderer/render_view_impl.h" 5 #include "content/renderer/render_view_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 2109 matching lines...) Expand 10 before | Expand all | Expand 10 after
2120 return renderer_preferences_.accept_languages; 2120 return renderer_preferences_.accept_languages;
2121 } 2121 }
2122 2122
2123 void RenderViewImpl::didCreateDataSource(WebLocalFrame* frame, 2123 void RenderViewImpl::didCreateDataSource(WebLocalFrame* frame,
2124 WebDataSource* ds) { 2124 WebDataSource* ds) {
2125 bool content_initiated = !pending_navigation_params_.get(); 2125 bool content_initiated = !pending_navigation_params_.get();
2126 2126
2127 // Make sure any previous redirect URLs end up in our new data source. 2127 // Make sure any previous redirect URLs end up in our new data source.
2128 if (pending_navigation_params_.get()) { 2128 if (pending_navigation_params_.get()) {
2129 for (std::vector<GURL>::const_iterator i = 2129 for (std::vector<GURL>::const_iterator i =
2130 pending_navigation_params_->redirects.begin(); 2130 pending_navigation_params_->commit_params.redirects.begin();
2131 i != pending_navigation_params_->redirects.end(); ++i) { 2131 i != pending_navigation_params_->commit_params.redirects.end(); ++i) {
2132 ds->appendRedirect(*i); 2132 ds->appendRedirect(*i);
2133 } 2133 }
2134 } 2134 }
2135 2135
2136 DocumentState* document_state = DocumentState::FromDataSource(ds); 2136 DocumentState* document_state = DocumentState::FromDataSource(ds);
2137 if (!document_state) { 2137 if (!document_state) {
2138 document_state = new DocumentState; 2138 document_state = new DocumentState;
2139 ds->setExtraData(document_state); 2139 ds->setExtraData(document_state);
2140 if (!content_initiated) 2140 if (!content_initiated)
2141 PopulateDocumentStateFromPending(document_state); 2141 PopulateDocumentStateFromPending(document_state);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
2214 NOTREACHED(); 2214 NOTREACHED();
2215 } 2215 }
2216 } 2216 }
2217 2217
2218 FOR_EACH_OBSERVER( 2218 FOR_EACH_OBSERVER(
2219 RenderViewObserver, observers_, DidCreateDataSource(frame, ds)); 2219 RenderViewObserver, observers_, DidCreateDataSource(frame, ds));
2220 } 2220 }
2221 2221
2222 void RenderViewImpl::PopulateDocumentStateFromPending( 2222 void RenderViewImpl::PopulateDocumentStateFromPending(
2223 DocumentState* document_state) { 2223 DocumentState* document_state) {
2224 const FrameMsg_Navigate_Params& params = *pending_navigation_params_.get(); 2224 document_state->set_request_time(
2225 document_state->set_request_time(params.request_time); 2225 pending_navigation_params_->commit_params.request_time);
2226 2226
2227 InternalDocumentStateData* internal_data = 2227 InternalDocumentStateData* internal_data =
2228 InternalDocumentStateData::FromDocumentState(document_state); 2228 InternalDocumentStateData::FromDocumentState(document_state);
2229 2229
2230 if (!params.common_params.url.SchemeIs(url::kJavaScriptScheme) && 2230 if (!pending_navigation_params_->common_params.url.SchemeIs(
2231 params.common_params.navigation_type == FrameMsg_Navigate_Type::RESTORE) { 2231 url::kJavaScriptScheme) &&
2232 pending_navigation_params_->common_params.navigation_type ==
2233 FrameMsg_Navigate_Type::RESTORE) {
2232 // We're doing a load of a page that was restored from the last session. By 2234 // We're doing a load of a page that was restored from the last session. By
2233 // default this prefers the cache over loading (LOAD_PREFERRING_CACHE) which 2235 // default this prefers the cache over loading (LOAD_PREFERRING_CACHE) which
2234 // can result in stale data for pages that are set to expire. We explicitly 2236 // can result in stale data for pages that are set to expire. We explicitly
2235 // override that by setting the policy here so that as necessary we load 2237 // override that by setting the policy here so that as necessary we load
2236 // from the network. 2238 // from the network.
2237 // 2239 //
2238 // TODO(davidben): Remove this in favor of passing a cache policy to the 2240 // TODO(davidben): Remove this in favor of passing a cache policy to the
2239 // loadHistoryItem call in OnNavigate. That requires not overloading 2241 // loadHistoryItem call in OnNavigate. That requires not overloading
2240 // UseProtocolCachePolicy to mean both "normal load" and "determine cache 2242 // UseProtocolCachePolicy to mean both "normal load" and "determine cache
2241 // policy based on load type, etc". 2243 // policy based on load type, etc".
2242 internal_data->set_cache_policy_override( 2244 internal_data->set_cache_policy_override(
2243 WebURLRequest::UseProtocolCachePolicy); 2245 WebURLRequest::UseProtocolCachePolicy);
2244 } 2246 }
2245 2247
2246 if (IsReload(params.common_params.navigation_type)) 2248 if (IsReload(pending_navigation_params_->common_params.navigation_type))
2247 document_state->set_load_type(DocumentState::RELOAD); 2249 document_state->set_load_type(DocumentState::RELOAD);
2248 else if (params.history_params.page_state.IsValid()) 2250 else if (pending_navigation_params_->history_params.page_state.IsValid())
2249 document_state->set_load_type(DocumentState::HISTORY_LOAD); 2251 document_state->set_load_type(DocumentState::HISTORY_LOAD);
2250 else 2252 else
2251 document_state->set_load_type(DocumentState::NORMAL_LOAD); 2253 document_state->set_load_type(DocumentState::NORMAL_LOAD);
2252 2254
2253 internal_data->set_is_overriding_user_agent( 2255 internal_data->set_is_overriding_user_agent(
2254 params.commit_params.is_overriding_user_agent); 2256 pending_navigation_params_->commit_params.is_overriding_user_agent);
2255 internal_data->set_must_reset_scroll_and_scale_state( 2257 internal_data->set_must_reset_scroll_and_scale_state(
2256 params.common_params.navigation_type == 2258 pending_navigation_params_->common_params.navigation_type ==
2257 FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL); 2259 FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL);
2258 document_state->set_can_load_local_resources(params.can_load_local_resources); 2260 document_state->set_can_load_local_resources(
2261 pending_navigation_params_->commit_params.can_load_local_resources);
2259 } 2262 }
2260 2263
2261 NavigationState* RenderViewImpl::CreateNavigationStateFromPending() { 2264 NavigationState* RenderViewImpl::CreateNavigationStateFromPending() {
2262 const FrameMsg_Navigate_Params& params = *pending_navigation_params_.get();
2263 NavigationState* navigation_state = NULL; 2265 NavigationState* navigation_state = NULL;
2264 2266
2265 // A navigation resulting from loading a javascript URL should not be treated 2267 // A navigation resulting from loading a javascript URL should not be treated
2266 // as a browser initiated event. Instead, we want it to look as if the page 2268 // as a browser initiated event. Instead, we want it to look as if the page
2267 // initiated any load resulting from JS execution. 2269 // initiated any load resulting from JS execution.
2268 if (!params.common_params.url.SchemeIs(url::kJavaScriptScheme)) { 2270 if (!pending_navigation_params_->common_params.url.SchemeIs(
2271 url::kJavaScriptScheme)) {
2269 navigation_state = NavigationState::CreateBrowserInitiated( 2272 navigation_state = NavigationState::CreateBrowserInitiated(
2270 params.history_params.page_id, 2273 pending_navigation_params_->history_params.page_id,
2271 params.history_params.pending_history_list_offset, 2274 pending_navigation_params_->history_params.pending_history_list_offset,
2272 params.history_params.should_clear_history_list, 2275 pending_navigation_params_->history_params.should_clear_history_list,
2273 params.common_params.transition); 2276 pending_navigation_params_->common_params.transition);
2274 navigation_state->set_should_replace_current_entry( 2277 navigation_state->set_allow_download(
2275 params.should_replace_current_entry); 2278 pending_navigation_params_->common_params.allow_download);
2276 navigation_state->set_transferred_request_child_id( 2279 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
2277 params.transferred_request_child_id); 2280 switches::kEnableBrowserSideNavigation)) {
2278 navigation_state->set_transferred_request_request_id( 2281 navigation_state->set_should_replace_current_entry(
2279 params.transferred_request_request_id); 2282 pending_navigation_params_->start_params
2280 navigation_state->set_allow_download(params.common_params.allow_download); 2283 .should_replace_current_entry);
2281 navigation_state->set_extra_headers(params.extra_headers); 2284 navigation_state->set_transferred_request_child_id(
2285 pending_navigation_params_->start_params
2286 .transferred_request_child_id);
2287 navigation_state->set_transferred_request_request_id(
2288 pending_navigation_params_->start_params
2289 .transferred_request_request_id);
2290 navigation_state->set_extra_headers(
2291 pending_navigation_params_->start_params.extra_headers);
2292 }
2282 } else { 2293 } else {
2283 navigation_state = NavigationState::CreateContentInitiated(); 2294 navigation_state = NavigationState::CreateContentInitiated();
2284 } 2295 }
2285 return navigation_state; 2296 return navigation_state;
2286 } 2297 }
2287 2298
2288 void RenderViewImpl::didChangeIcon(WebLocalFrame* frame, 2299 void RenderViewImpl::didChangeIcon(WebLocalFrame* frame,
2289 WebIconURL::Type icon_type) { 2300 WebIconURL::Type icon_type) {
2290 if (frame->parent()) 2301 if (frame->parent())
2291 return; 2302 return;
(...skipping 1724 matching lines...) Expand 10 before | Expand all | Expand 10 after
4016 std::vector<gfx::Size> sizes; 4027 std::vector<gfx::Size> sizes;
4017 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes); 4028 ConvertToFaviconSizes(icon_urls[i].sizes(), &sizes);
4018 if (!url.isEmpty()) 4029 if (!url.isEmpty())
4019 urls.push_back( 4030 urls.push_back(
4020 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes)); 4031 FaviconURL(url, ToFaviconType(icon_urls[i].iconType()), sizes));
4021 } 4032 }
4022 SendUpdateFaviconURL(urls); 4033 SendUpdateFaviconURL(urls);
4023 } 4034 }
4024 4035
4025 } // namespace content 4036 } // namespace content
OLDNEW
« content/renderer/render_frame_impl.cc ('K') | « content/renderer/render_view_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698