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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 18601004: Add the UMA PLT.BeginToFinish{,Doc}_AfterPreconnectRequest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unittest compilation failure Created 7 years, 5 months 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 | « content/renderer/render_frame_impl.h ('k') | webkit/child/weburlrequest_extradata_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 33b167a5397e3608d555a4c7f7d5617ff311066e..fcdab6eecd0db4445d11133bdffb28419bbb53b1 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -490,6 +490,30 @@ void RenderFrameImpl::didUpdateCurrentHistoryItem(WebKit::WebFrame* frame) {
render_view_->didUpdateCurrentHistoryItem(frame);
}
+void RenderFrameImpl::willRequestAfterPreconnect(
+ WebKit::WebFrame* frame,
+ WebKit::WebURLRequest& request) {
+ WebKit::WebReferrerPolicy referrer_policy = WebKit::WebReferrerPolicyDefault;
jochen (gone - plz use gerrit) 2013/12/20 09:02:25 this should be frame->document().referrerPolicy();
+ WebString custom_user_agent;
jochen (gone - plz use gerrit) 2013/12/20 09:02:25 this will never be a non-empty string, so we alway
+
+ if (request.extraData()) {
+ // This will only be called before willSendRequest, so only ExtraData
jochen (gone - plz use gerrit) 2013/12/20 09:02:25 only willSendRequest() ever sets extra data, so th
kouhei (in TOK) 2013/12/20 09:33:34 Pepper also sets this? custom_user_agent only seem
+ // members we have to copy here is on WebURLRequestExtraDataImpl.
+ webkit_glue::WebURLRequestExtraDataImpl* old_extra_data =
+ static_cast<webkit_glue::WebURLRequestExtraDataImpl*>(
+ request.extraData());
+
+ referrer_policy = old_extra_data->referrer_policy();
+ custom_user_agent = old_extra_data->custom_user_agent();
+ }
+
+ bool was_after_preconnect_request = true;
+ // The args after |was_after_preconnect_request| are not used, and set to
+ // correct values at |willSendRequest|.
+ request.setExtraData(new webkit_glue::WebURLRequestExtraDataImpl(
+ referrer_policy, custom_user_agent, was_after_preconnect_request));
jochen (gone - plz use gerrit) 2013/12/20 09:02:25 the request is inspected in RenderFrameImpl::decid
+}
+
void RenderFrameImpl::willSendRequest(
WebKit::WebFrame* frame,
unsigned identifier,
@@ -541,11 +565,14 @@ void RenderFrameImpl::willSendRequest(
// agent. This needs to be done here, after WebKit is through with setting the
// user agent on its own.
WebString custom_user_agent;
+ bool was_after_preconnect_request = false;
if (request.extraData()) {
webkit_glue::WebURLRequestExtraDataImpl* old_extra_data =
static_cast<webkit_glue::WebURLRequestExtraDataImpl*>(
request.extraData());
custom_user_agent = old_extra_data->custom_user_agent();
+ was_after_preconnect_request =
+ old_extra_data->was_after_preconnect_request();
if (!custom_user_agent.isNull()) {
if (custom_user_agent.isEmpty())
@@ -558,6 +585,7 @@ void RenderFrameImpl::willSendRequest(
request.setExtraData(
new RequestExtraData(referrer_policy,
custom_user_agent,
+ was_after_preconnect_request,
(frame == top_frame),
frame->identifier(),
frame->parent() == top_frame,
@@ -569,11 +597,15 @@ void RenderFrameImpl::willSendRequest(
DocumentState* top_document_state =
DocumentState::FromDataSource(top_data_source);
- // TODO(gavinp): separate out prefetching and prerender field trials
- // if the rel=prerender rel type is sticking around.
- if (top_document_state &&
- request.targetType() == WebURLRequest::TargetIsPrefetch)
- top_document_state->set_was_prefetcher(true);
+ if (top_document_state) {
+ // TODO(gavinp): separate out prefetching and prerender field trials
+ // if the rel=prerender rel type is sticking around.
+ if (request.targetType() == WebURLRequest::TargetIsPrefetch)
+ top_document_state->set_was_prefetcher(true);
+
+ if (was_after_preconnect_request)
+ top_document_state->set_was_after_preconnect_request(true);
+ }
// This is an instance where we embed a copy of the routing id
// into the data portion of the message. This can cause problems if we
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | webkit/child/weburlrequest_extradata_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698