Chromium Code Reviews| Index: content/renderer/render_view_impl.cc |
| =================================================================== |
| --- content/renderer/render_view_impl.cc (revision 123532) |
| +++ content/renderer/render_view_impl.cc (working copy) |
| @@ -160,6 +160,7 @@ |
| #include "webkit/glue/webkit_constants.h" |
| #include "webkit/glue/webkit_glue.h" |
| #include "webkit/glue/weburlloader_impl.h" |
| +#include "webkit/glue/weburlresponse_extradata_impl.h" |
| #include "webkit/gpu/webgraphicscontext3d_in_process_impl.h" |
| #include "webkit/media/webmediaplayer_impl.h" |
| #include "webkit/plugins/npapi/plugin_list.h" |
| @@ -269,6 +270,7 @@ |
| using webkit::forms::PasswordFormDomManager; |
| using webkit_glue::AltErrorPageResourceFetcher; |
| using webkit_glue::ResourceFetcher; |
| +using webkit_glue::WebURLResponseExtraDataImpl; |
| //----------------------------------------------------------------------------- |
| @@ -319,13 +321,19 @@ |
| params.navigation_type == ViewMsg_Navigate_Type::RELOAD_IGNORING_CACHE; |
| } |
| -static WebReferrerPolicy getReferrerPolicyFromRequest( |
| +static WebReferrerPolicy GetReferrerPolicyFromRequest( |
|
darin (slow to review)
2012/02/27 16:50:30
Thanks for fixing this.
|
| const WebURLRequest& request) { |
| return request.extraData() ? |
| static_cast<RequestExtraData*>(request.extraData())->referrer_policy() : |
| WebKit::WebReferrerPolicyDefault; |
| } |
| +static WebURLResponseExtraDataImpl* GetExtraDataFromResponse( |
| + const WebURLResponse& response) { |
| + return static_cast<WebURLResponseExtraDataImpl*>( |
| + response.extraData()); |
| +} |
| + |
| NOINLINE static void CrashIntentionally() { |
| // NOTE(shess): Crash directly rather than using NOTREACHED() so |
| // that the signature is easier to triage in crash reports. |
| @@ -1268,7 +1276,7 @@ |
| // would be nice if we could get the real referrer from somewhere. |
| params.referrer = Referrer(GURL( |
| original_request.httpHeaderField(WebString::fromUTF8("Referer"))), |
| - getReferrerPolicyFromRequest(original_request)); |
| + GetReferrerPolicyFromRequest(original_request)); |
| } |
| string16 method = request.httpMethod(); |
| @@ -2183,7 +2191,7 @@ |
| suggested_name)); |
| } else { |
| OpenURL(frame, request.url(), |
| - Referrer(referrer, getReferrerPolicyFromRequest(request)), policy); |
| + Referrer(referrer, GetReferrerPolicyFromRequest(request)), policy); |
| } |
| } |
| @@ -2227,7 +2235,7 @@ |
| if (frame_url.GetOrigin() != url.GetOrigin()) { |
| Referrer referrer( |
| GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))), |
| - getReferrerPolicyFromRequest(request)); |
| + GetReferrerPolicyFromRequest(request)); |
| OpenURL(frame, url, referrer, default_policy); |
| return WebKit::WebNavigationPolicyIgnore; |
| } |
| @@ -2243,7 +2251,7 @@ |
| renderer_preferences_.browser_handles_all_requests) { |
| Referrer referrer( |
| GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))), |
| - getReferrerPolicyFromRequest(request)); |
| + GetReferrerPolicyFromRequest(request)); |
| // Reset these counters as the RenderView could be reused for the next |
| // navigation. |
| page_id_ = -1; |
| @@ -2287,7 +2295,7 @@ |
| if (should_fork) { |
| Referrer referrer( |
| GURL(request.httpHeaderField(WebString::fromUTF8("Referer"))), |
| - getReferrerPolicyFromRequest(request)); |
| + GetReferrerPolicyFromRequest(request)); |
| OpenURL( |
| frame, url, send_referrer ? referrer : Referrer(), default_policy); |
| return WebKit::WebNavigationPolicyIgnore; // Suppress the load here. |
| @@ -2462,7 +2470,7 @@ |
| // If there's no provisional data source, it's a reference fragment |
| // navigation. |
| completed_client_redirect_src_ = Referrer( |
| - from, ds ? getReferrerPolicyFromRequest(ds->request()) : |
| + from, ds ? GetReferrerPolicyFromRequest(ds->request()) : |
| frame->referrerPolicy()); |
| } |
| FOR_EACH_OBSERVER( |
| @@ -3017,6 +3025,13 @@ |
| // Record page load flags. |
| document_state->set_was_fetched_via_spdy(response.wasFetchedViaSPDY()); |
| document_state->set_was_npn_negotiated(response.wasNpnNegotiated()); |
| + WebURLResponseExtraDataImpl* extra_data = GetExtraDataFromResponse(response); |
| + if (extra_data) { |
| + document_state->set_npn_negotiated_protocol( |
| + extra_data->npn_negotiated_protocol()); |
| + } else { |
| + document_state->set_npn_negotiated_protocol(""); |
|
darin (slow to review)
2012/02/27 16:50:30
nit: use std::string() instead. std::string("") l
ramant (doing other things)
2012/02/27 18:11:36
Thanks very much for catching this (I am guilty).
|
| + } |
| document_state->set_was_alternate_protocol_available( |
| response.wasAlternateProtocolAvailable()); |
| document_state->set_was_fetched_via_proxy(response.wasFetchedViaProxy()); |