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

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: nasko comments Created 5 years, 3 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 b2e454f4cdece95127e38118fd56c6f05e9fb887..d5450e7319fc7d53c988a003b6b0092fd0ae4f13 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);
request.setExtraData(extra_data);
// Set the ui timestamp for this navigation. Currently the timestamp here is
@@ -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();
}
@@ -2017,6 +2022,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(
@@ -2716,6 +2725,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 =
@@ -3272,6 +3284,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());
@@ -3292,6 +3305,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
@@ -3375,6 +3389,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 (is_main_frame_)
nasko 2015/10/01 20:13:57 Was this change intentional?
megjablon 2015/10/01 20:20:56 Whoops, nope. Fixed.
+ 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