| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index ce8141951a33d01c60ae6ff4b320cd437e6a992f..05f4a9f2c7c34ef1729f16821a2ae38c18ed7504 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -424,6 +424,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
|
| @@ -718,6 +719,7 @@ RenderFrameImpl::RenderFrameImpl(const CreateParams& params)
|
| manifest_manager_(NULL),
|
| accessibility_mode_(AccessibilityModeOff),
|
| renderer_accessibility_(NULL),
|
| + is_lofi_(false),
|
| weak_factory_(this) {
|
| std::pair<RoutingIDFrameMap::iterator, bool> result =
|
| g_routing_id_frame_map.Get().insert(std::make_pair(routing_id_, this));
|
| @@ -788,9 +790,10 @@ void RenderFrameImpl::SetWebFrame(blink::WebLocalFrame* web_frame) {
|
| frame_ = web_frame;
|
| }
|
|
|
| -void RenderFrameImpl::Initialize() {
|
| +void RenderFrameImpl::Initialize(bool is_lofi) {
|
| is_subframe_ = !!frame_->parent();
|
| is_local_root_ = !frame_->parent() || frame_->parent()->isWebRemoteFrame();
|
| + is_lofi_ = is_lofi;
|
|
|
| #if defined(ENABLE_PLUGINS)
|
| new PepperBrowserConnection(this);
|
| @@ -1995,6 +1998,10 @@ void RenderFrameImpl::AddMessageToConsole(ConsoleMessageLevel level,
|
| devtools_agent_->AddMessageToConsole(level, message);
|
| }
|
|
|
| +bool RenderFrameImpl::IsLoFiOn() {
|
| + return is_lofi_;
|
| +}
|
| +
|
| // blink::WebFrameClient implementation ----------------------------------------
|
|
|
| blink::WebPlugin* RenderFrameImpl::createPlugin(
|
| @@ -2214,7 +2221,7 @@ blink::WebFrame* RenderFrameImpl::createChildFrame(
|
|
|
| // Add the frame to the frame tree and initialize it.
|
| parent->appendChild(web_frame);
|
| - child_render_frame->Initialize();
|
| + child_render_frame->Initialize(is_lofi_);
|
|
|
| return web_frame;
|
| }
|
| @@ -2686,6 +2693,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_lofi_ = extra_data && extra_data->is_lofi();
|
|
|
| if (proxy_routing_id_ != MSG_ROUTING_NONE) {
|
| RenderFrameProxy* proxy =
|
| @@ -3242,6 +3252,7 @@ void RenderFrameImpl::willSendRequest(
|
| WebString custom_user_agent;
|
| WebString requested_with;
|
| scoped_ptr<StreamOverrideParameters> stream_override;
|
| + LoFiState lofi_state = LOFI_DEFAULT;
|
| if (request.extraData()) {
|
| RequestExtraData* old_extra_data =
|
| static_cast<RequestExtraData*>(request.extraData());
|
| @@ -3262,6 +3273,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
|
| @@ -3345,6 +3357,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_lofi_ ? LOFI_ON : LOFI_OFF);
|
| request.setExtraData(extra_data);
|
|
|
| // TODO(creis): Update prefetching to work with out-of-process iframes.
|
|
|