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

Unified Diff: chrome/browser/ui/browser_navigator.cc

Issue 8669014: Fix a bug where redirect chain gets lost on process swap. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: latest Created 9 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/browser_navigator.cc
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
index 9c92019f62d482092e193223593f5f70c15247ca..41e78f10ed79e418fa5e2dd06a31dcb849461763 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -499,7 +499,13 @@ void Navigate(NavigateParams* params) {
if (!HandleNonNavigationAboutURL(url)) {
// Perform the actual navigation, tracking whether it came from the
// renderer.
- if (params->is_renderer_initiated) {
+
+ if (params->transferred_global_request_id != GlobalRequestID()) {
+ params->target_contents->controller().TransferURL(
+ url, params->referrer, params->transition, extra_headers,
+ params->transferred_global_request_id,
+ params->is_renderer_initiated);
+ } else if (params->is_renderer_initiated) {
params->target_contents->controller().LoadURLFromRenderer(
url, params->referrer, params->transition, extra_headers);
} else {
@@ -553,7 +559,12 @@ void Navigate(NavigateParams* params) {
} else if (params->path_behavior == NavigateParams::IGNORE_AND_NAVIGATE &&
target->GetURL() != params->url) {
InitializeExtraHeaders(params, NULL, &extra_headers);
- if (params->is_renderer_initiated) {
+ if (params->transferred_global_request_id != GlobalRequestID()) {
Charlie Reis 2011/12/02 22:38:11 Perhaps we should abstract out this three-clause i
Matt Perry 2011/12/03 00:14:24 Done.
+ target->controller().TransferURL(
+ params->url, params->referrer, params->transition, extra_headers,
+ params->transferred_global_request_id,
+ params->is_renderer_initiated);
+ } else if (params->is_renderer_initiated) {
target->controller().LoadURLFromRenderer(
params->url, params->referrer, params->transition, extra_headers);
} else {

Powered by Google App Engine
This is Rietveld 408576698