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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 1310743003: Consistently use LoFi for an entire page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 2 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') | no next file » | 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 f0683e73497d8a02c922bdf83544b3bd26e6f42b..23d0fd7e4a6bc7cf1114b73e42c302ab0c16d614 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -428,6 +428,7 @@ WebURLRequest CreateURLRequestForNavigation(
RequestExtraData* extra_data = new RequestExtraData();
extra_data->set_stream_override(stream_override.Pass());
+ extra_data->set_lofi_state(common_params.lofi_state);
megjablon 2015/10/07 02:22:48 I'm finding that setting this extra data here does
request.setExtraData(extra_data);
// Set the ui timestamp for this navigation. Currently the timestamp here is
@@ -494,7 +495,7 @@ CommonNavigationParams MakeCommonNavigationParams(
return CommonNavigationParams(
request->url(), referrer, extra_data->transition_type(),
FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry,
- ui_timestamp, report_type, GURL(), GURL());
+ ui_timestamp, report_type, GURL(), GURL(), LOFI_UNSPECIFIED);
}
#if !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
@@ -721,6 +722,7 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params)
manifest_manager_(NULL),
accessibility_mode_(AccessibilityModeOff),
renderer_accessibility_(NULL),
+ is_using_lofi_(false),
weak_factory_(this) {
std::pair<RoutingIDFrameMap::iterator, bool> result =
g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this));
@@ -795,6 +797,11 @@ void RenderFrameImpl::Initialize() {
is_main_frame_ = !frame_->parent();
is_local_root_ = is_main_frame_ || frame_->parent()->isWebRemoteFrame();
+ RenderFrameImpl* parent_frame = RenderFrameImpl::FromWebFrame(
+ frame_->parent());
+ if (parent_frame)
+ is_using_lofi_ = parent_frame->IsUsingLoFi();
+
bool is_tracing = false;
TRACE_EVENT_CATEGORY_GROUP_ENABLED("navigation", &is_tracing);
if (is_tracing) {
@@ -806,8 +813,6 @@ void RenderFrameImpl::Initialize() {
if (parent_proxy)
parent_id = parent_proxy->routing_id();
} else {
- RenderFrameImpl* parent_frame = RenderFrameImpl::FromWebFrame(
- frame_->parent());
if (parent_frame)
parent_id = parent_frame->GetRoutingID();
}
@@ -2022,6 +2027,10 @@ void RenderFrameImpl::AddMessageToConsole(ConsoleMessageLevel level,
devtools_agent_->AddMessageToConsole(level, message);
}
+bool RenderFrameImpl::IsUsingLoFi() {
+ return is_using_lofi_;
+}
+
// blink::WebFrameClient implementation ----------------------------------------
blink::WebPlugin* RenderFrameImpl::createPlugin(
@@ -2721,6 +2730,9 @@ void RenderFrameImpl::didCommitProvisionalLoad(
DocumentState::FromDataSource(frame->dataSource());
NavigationStateImpl* navigation_state =
static_cast<NavigationStateImpl*>(document_state->navigation_state());
+ WebURLResponseExtraDataImpl* extra_data = GetExtraDataFromResponse(
+ frame->dataSource()->response());
+ is_using_lofi_ = extra_data && extra_data->is_using_lofi();
if (proxy_routing_id_ != MSG_ROUTING_NONE) {
RenderFrameProxy* proxy =
@@ -3285,6 +3297,7 @@ void RenderFrameImpl::willSendRequest(
WebString custom_user_agent;
WebString requested_with;
scoped_ptr<StreamOverrideParameters> stream_override;
+ LoFiState lofi_state = LOFI_UNSPECIFIED;
if (request.extraData()) {
RequestExtraData* old_extra_data =
static_cast<RequestExtraData*>(request.extraData());
@@ -3305,6 +3318,7 @@ void RenderFrameImpl::willSendRequest(
request.setHTTPHeaderField("X-Requested-With", requested_with);
}
stream_override = old_extra_data->TakeStreamOverrideOwnership();
+ lofi_state = old_extra_data->lofi_state();
}
// Add the default accept header for frame request if it has not been set
@@ -3388,6 +3402,14 @@ void RenderFrameImpl::willSendRequest(
navigation_state->start_params().transferred_request_request_id);
extra_data->set_service_worker_provider_id(provider_id);
extra_data->set_stream_override(stream_override.Pass());
+ // TODO(megjablon): Set the navigation params for single image loads to
+ // LOFI_OFF and remove the dependency on ReloadBypassingCache.
+ if (request.cachePolicy() == WebURLRequest::ReloadBypassingCache)
+ extra_data->set_lofi_state(LOFI_OFF);
+ else if (!navigation_state->request_committed())
+ extra_data->set_lofi_state(lofi_state);
+ else
+ extra_data->set_lofi_state(is_using_lofi_ ? LOFI_ON : LOFI_OFF);
request.setExtraData(extra_data);
// TODO(creis): Update prefetching to work with out-of-process iframes.
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698