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

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

Issue 10704048: [RDS] Reloads a page using the original request URL (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Adding unit test & removing public function Created 8 years, 5 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 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 if (data_source) { 349 if (data_source) {
350 DocumentState* document_state = DocumentState::FromDataSource(data_source); 350 DocumentState* document_state = DocumentState::FromDataSource(data_source);
351 if (document_state) 351 if (document_state)
352 document_state->set_alt_error_page_fetcher(NULL); 352 document_state->set_alt_error_page_fetcher(NULL);
353 } 353 }
354 } 354 }
355 355
356 static bool IsReload(const ViewMsg_Navigate_Params& params) { 356 static bool IsReload(const ViewMsg_Navigate_Params& params) {
357 return 357 return
358 params.navigation_type == ViewMsg_Navigate_Type::RELOAD || 358 params.navigation_type == ViewMsg_Navigate_Type::RELOAD ||
359 params.navigation_type == ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE; 359 params.navigation_type == ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE ||
360 params.navigation_type ==
361 ViewMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL;
360 } 362 }
361 363
362 static WebReferrerPolicy GetReferrerPolicyFromRequest( 364 static WebReferrerPolicy GetReferrerPolicyFromRequest(
363 WebFrame* frame, 365 WebFrame* frame,
364 const WebURLRequest& request) { 366 const WebURLRequest& request) {
365 return request.extraData() ? 367 return request.extraData() ?
366 static_cast<RequestExtraData*>(request.extraData())->referrer_policy() : 368 static_cast<RequestExtraData*>(request.extraData())->referrer_policy() :
367 frame->document().referrerPolicy(); 369 frame->document().referrerPolicy();
368 } 370 }
369 371
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
1036 } 1038 }
1037 1039
1038 pending_navigation_params_.reset(new ViewMsg_Navigate_Params); 1040 pending_navigation_params_.reset(new ViewMsg_Navigate_Params);
1039 *pending_navigation_params_.get() = params; 1041 *pending_navigation_params_.get() = params;
1040 1042
1041 // If we are reloading, then WebKit will use the history state of the current 1043 // If we are reloading, then WebKit will use the history state of the current
1042 // page, so we should just ignore any given history state. Otherwise, if we 1044 // page, so we should just ignore any given history state. Otherwise, if we
1043 // have history state, then we need to navigate to it, which corresponds to a 1045 // have history state, then we need to navigate to it, which corresponds to a
1044 // back/forward navigation event. 1046 // back/forward navigation event.
1045 if (is_reload) { 1047 if (is_reload) {
1048 bool reload_original_url =
1049 (params.navigation_type ==
1050 ViewMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL);
1046 bool ignore_cache = (params.navigation_type == 1051 bool ignore_cache = (params.navigation_type ==
1047 ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE); 1052 ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE);
1048 main_frame->reload(ignore_cache); 1053
1054 if (reload_original_url)
1055 main_frame->reloadWithOverrideURL(params.url, true);
1056 else
1057 main_frame->reload(ignore_cache);
1049 } else if (!params.state.empty()) { 1058 } else if (!params.state.empty()) {
1050 // We must know the page ID of the page we are navigating back to. 1059 // We must know the page ID of the page we are navigating back to.
1051 DCHECK_NE(params.page_id, -1); 1060 DCHECK_NE(params.page_id, -1);
1052 main_frame->loadHistoryItem( 1061 main_frame->loadHistoryItem(
1053 webkit_glue::HistoryItemFromString(params.state)); 1062 webkit_glue::HistoryItemFromString(params.state));
1054 } else { 1063 } else {
1055 // Navigate to the given URL. 1064 // Navigate to the given URL.
1056 WebURLRequest request(params.url); 1065 WebURLRequest request(params.url);
1057 1066
1058 // A session history navigation should have been accompanied by state. 1067 // A session history navigation should have been accompanied by state.
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 string16 method = request.httpMethod(); 1454 string16 method = request.httpMethod();
1446 if (EqualsASCII(method, "POST")) { 1455 if (EqualsASCII(method, "POST")) {
1447 params.is_post = true; 1456 params.is_post = true;
1448 params.post_id = ExtractPostId(item); 1457 params.post_id = ExtractPostId(item);
1449 } 1458 }
1450 1459
1451 // Send the user agent override back. 1460 // Send the user agent override back.
1452 params.is_overriding_user_agent = 1461 params.is_overriding_user_agent =
1453 document_state->is_overriding_user_agent(); 1462 document_state->is_overriding_user_agent();
1454 1463
1464 // Track the URL of the original request.
1465 params.original_request_url = original_request.url();
1466
1455 // Save some histogram data so we can compute the average memory used per 1467 // Save some histogram data so we can compute the average memory used per
1456 // page load of the glyphs. 1468 // page load of the glyphs.
1457 UMA_HISTOGRAM_COUNTS_10000("Memory.GlyphPagesPerLoad", 1469 UMA_HISTOGRAM_COUNTS_10000("Memory.GlyphPagesPerLoad",
1458 webkit_glue::GetGlyphPageCount()); 1470 webkit_glue::GetGlyphPageCount());
1459 1471
1460 // This message needs to be sent before any of allowScripts(), 1472 // This message needs to be sent before any of allowScripts(),
1461 // allowImages(), allowPlugins() is called for the new page, so that when 1473 // allowImages(), allowPlugins() is called for the new page, so that when
1462 // these functions send a ViewHostMsg_ContentBlocked message, it arrives 1474 // these functions send a ViewHostMsg_ContentBlocked message, it arrives
1463 // after the ViewHostMsg_FrameNavigate message. 1475 // after the ViewHostMsg_FrameNavigate message.
1464 Send(new ViewHostMsg_FrameNavigate(routing_id_, params)); 1476 Send(new ViewHostMsg_FrameNavigate(routing_id_, params));
(...skipping 4205 matching lines...) Expand 10 before | Expand all | Expand 10 after
5670 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const { 5682 bool RenderViewImpl::WebWidgetHandlesCompositorScheduling() const {
5671 return !!RenderThreadImpl::current()->compositor_thread(); 5683 return !!RenderThreadImpl::current()->compositor_thread();
5672 } 5684 }
5673 5685
5674 void RenderViewImpl::OnJavaBridgeInit() { 5686 void RenderViewImpl::OnJavaBridgeInit() {
5675 DCHECK(!java_bridge_dispatcher_); 5687 DCHECK(!java_bridge_dispatcher_);
5676 #if defined(ENABLE_JAVA_BRIDGE) 5688 #if defined(ENABLE_JAVA_BRIDGE)
5677 java_bridge_dispatcher_ = new JavaBridgeDispatcher(this); 5689 java_bridge_dispatcher_ = new JavaBridgeDispatcher(this);
5678 #endif 5690 #endif
5679 } 5691 }
OLDNEW
« content/public/test/test_renderer_host.h ('K') | « content/public/test/test_renderer_host.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698