diff options
author | bengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-21 00:40:45 +0000 |
---|---|---|
committer | bengr@chromium.org <bengr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-21 00:40:45 +0000 |
commit | f050fde24a3e98b1a1a003afb46fc719b46c9c6f (patch) | |
tree | 574a22d1501aaf8d7b6a71ad2ce767e912410731 /content/renderer | |
parent | ed5af1cb0a27c65f1c468498eddf2f325351dc56 (diff) | |
download | chromium_src-f050fde24a3e98b1a1a003afb46fc719b46c9c6f.zip chromium_src-f050fde24a3e98b1a1a003afb46fc719b46c9c6f.tar.gz chromium_src-f050fde24a3e98b1a1a003afb46fc719b46c9c6f.tar.bz2 |
Reload with extra headers.
Added logic to make it possible to have browser-initiated navigations add extra HTTP request headers.
BUG=174457
Review URL: https://chromiumcodereview.appspot.com/12736005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189476 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer')
-rw-r--r-- | content/renderer/render_view_impl.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 1f75f19..1c9044a 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc @@ -3296,6 +3296,7 @@ NavigationState* RenderViewImpl::CreateNavigationStateFromPending() { navigation_state->set_transferred_request_request_id( params.transferred_request_request_id); navigation_state->set_allow_download(params.allow_download); + navigation_state->set_extra_headers(params.extra_headers); } else { navigation_state = NavigationState::CreateContentInitiated(); } @@ -3801,6 +3802,16 @@ void RenderViewImpl::willSendRequest(WebFrame* frame, request.setRequestorID(routing_id_); request.setHasUserGesture(WebUserGestureIndicator::isProcessingUserGesture()); + if (!navigation_state->extra_headers().empty()) { + for (net::HttpUtil::HeadersIterator i( + navigation_state->extra_headers().begin(), + navigation_state->extra_headers().end(), "\n"); + i.GetNext(); ) { + request.setHTTPHeaderField(WebString::fromUTF8(i.name()), + WebString::fromUTF8(i.values())); + } + } + if (!renderer_preferences_.enable_referrers) request.clearHTTPHeaderField("Referer"); } |