Chromium Code Reviews| Index: chrome/browser/tab_contents/render_view_context_menu.cc |
| diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc |
| index 8cb23b524a7e5fe895810a480f0c385e9981ae33..82ea2caad2a24523d33e17c79648b05c07b431c8 100644 |
| --- a/chrome/browser/tab_contents/render_view_context_menu.cc |
| +++ b/chrome/browser/tab_contents/render_view_context_menu.cc |
| @@ -1849,9 +1849,21 @@ void RenderViewContextMenu::OpenURL( |
| const GURL& url, const GURL& referrer, int64 frame_id, |
| WindowOpenDisposition disposition, |
| content::PageTransition transition) { |
| + // Ensure that URL fragment, username and password fields |
|
pauljensen
2013/03/15 21:50:00
Can you move more words onto this line to bring it
mef
2013/03/18 16:42:07
Done.
|
| + // are not sent in the referrer. |
| + GURL sanitized_referrer(referrer); |
| + if (sanitized_referrer.is_valid() && (sanitized_referrer.has_ref() || |
| + sanitized_referrer.has_username() || sanitized_referrer.has_password())) { |
| + GURL::Replacements referrer_mods; |
| + referrer_mods.ClearRef(); |
| + referrer_mods.ClearUsername(); |
| + referrer_mods.ClearPassword(); |
| + sanitized_referrer = sanitized_referrer.ReplaceComponents(referrer_mods); |
| + } |
| + |
| WebContents* new_contents = source_web_contents_->OpenURL(OpenURLParams( |
| - url, content::Referrer(referrer, params_.referrer_policy), disposition, |
| - transition, false)); |
| + url, content::Referrer(sanitized_referrer, params_.referrer_policy), |
| + disposition, transition, false)); |
| if (!new_contents) |
| return; |