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

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: conditional disabling 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
« no previous file with comments | « chrome/browser/ui/browser_navigator.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..ac4f2efa7c0c253d3beaa815632e024be551c86d 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -242,6 +242,24 @@ Profile* GetSourceProfile(browser::NavigateParams* params,
return params->browser->profile();
}
+void LoadURLInContents(TabContents* target_contents,
+ const GURL& url,
+ browser::NavigateParams* params,
+ const std::string& extra_headers) {
+ if (params->transferred_global_request_id != GlobalRequestID()) {
+ 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) {
+ target_contents->controller().LoadURLFromRenderer(
+ url, params->referrer, params->transition, extra_headers);
+ } else {
+ target_contents->controller().LoadURL(
+ url, params->referrer, params->transition, extra_headers);
+ }
+
+}
// This class makes sure the Browser object held in |params| is made visible
// by the time it goes out of scope, provided |params| wants it to be shown.
@@ -499,13 +517,9 @@ void Navigate(NavigateParams* params) {
if (!HandleNonNavigationAboutURL(url)) {
// Perform the actual navigation, tracking whether it came from the
// renderer.
- if (params->is_renderer_initiated) {
- params->target_contents->controller().LoadURLFromRenderer(
- url, params->referrer, params->transition, extra_headers);
- } else {
- params->target_contents->controller().LoadURL(
- url, params->referrer, params->transition, extra_headers);
- }
+
+ LoadURLInContents(params->target_contents->tab_contents(),
+ url, params, extra_headers);
}
} else {
// |target_contents| was specified non-NULL, and so we assume it has already
@@ -553,13 +567,7 @@ 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) {
- target->controller().LoadURLFromRenderer(
- params->url, params->referrer, params->transition, extra_headers);
- } else {
- target->controller().LoadURL(
- params->url, params->referrer, params->transition, extra_headers);
- }
+ LoadURLInContents(target, params->url, params, extra_headers);
}
// If the singleton tab isn't already selected, select it.
« no previous file with comments | « chrome/browser/ui/browser_navigator.h ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698