Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 2b20d2bba3a59d5a0a399f4fb0b09aeaa13d09c5..abc90002fa543e6cc7d648268326ce96cc8184bc 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -5598,11 +5598,17 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( |
} |
} |
+ // When an MHTML Archive is present, it should be used to serve iframe content |
+ // instead of doing a network request. |
+ bool use_archive = |
+ (info.archive_status == NavigationPolicyInfo::ArchiveStatus::Present) && |
+ !url.SchemeIs(url::kDataScheme); |
+ |
// PlzNavigate: if the navigation is not synchronous, send it to the browser. |
// This includes navigations with no request being sent to the network stack. |
if (IsBrowserSideNavigationEnabled() && |
info.url_request.CheckForBrowserSideNavigation() && |
- ShouldMakeNetworkRequestForURL(url)) { |
+ ShouldMakeNetworkRequestForURL(url) && !use_archive) { |
nasko
2017/05/03 17:28:39
I'm not sure I follow why we should be sending "ci
arthursonzogni
2017/05/04 14:26:32
See my first answer above.
|
if (info.default_policy == blink::kWebNavigationPolicyCurrentTab) { |
// The BeginNavigation() call happens in didStartProvisionalLoad(). We |
// need to save information about the navigation here. |