| Index: chrome/browser/ui/browser_navigator.cc
|
| diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
|
| index 56d5a287c17169244774f48b3701787151d07357..c8503b244fcdce6d55dbe0c888c078ede799816c 100644
|
| --- a/chrome/browser/ui/browser_navigator.cc
|
| +++ b/chrome/browser/ui/browser_navigator.cc
|
| @@ -495,9 +495,15 @@ void Navigate(NavigateParams* params) {
|
| // Try to handle non-navigational URLs that popup dialogs and such, these
|
| // should not actually navigate.
|
| if (!HandleNonNavigationAboutURL(url)) {
|
| - // Perform the actual navigation.
|
| - params->target_contents->controller().LoadURL(
|
| - url, params->referrer, params->transition, extra_headers);
|
| + // 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);
|
| + }
|
| }
|
| } else {
|
| // |target_contents| was specified non-NULL, and so we assume it has already
|
| @@ -545,8 +551,13 @@ void Navigate(NavigateParams* params) {
|
| } else if (params->path_behavior == NavigateParams::IGNORE_AND_NAVIGATE &&
|
| target->GetURL() != params->url) {
|
| InitializeExtraHeaders(params, NULL, &extra_headers);
|
| - target->controller().LoadURL(
|
| - params->url, params->referrer, params->transition, 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);
|
| + }
|
| }
|
|
|
| // If the singleton tab isn't already selected, select it.
|
|
|