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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 2834013002: PlzNavigate: make MHTML iframe load working. (Closed)
Patch Set: rebase Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 5625 matching lines...) Expand 10 before | Expand all | Expand 10 after
5636 } 5636 }
5637 5637
5638 // |navigation_start| must be recorded immediately after dispatching the 5638 // |navigation_start| must be recorded immediately after dispatching the
5639 // beforeunload event. 5639 // beforeunload event.
5640 if (pending_navigation_params_) { 5640 if (pending_navigation_params_) {
5641 pending_navigation_params_->common_params.navigation_start = 5641 pending_navigation_params_->common_params.navigation_start =
5642 base::TimeTicks::Now(); 5642 base::TimeTicks::Now();
5643 } 5643 }
5644 } 5644 }
5645 5645
5646 // When an MHTML Archive is present, it should be used to serve iframe content
5647 // instead of doing a network request.
5648 bool use_archive =
5649 (info.archive_status == NavigationPolicyInfo::ArchiveStatus::Present) &&
5650 !url.SchemeIs(url::kDataScheme);
5651
5646 // PlzNavigate: if the navigation is not synchronous, send it to the browser. 5652 // PlzNavigate: if the navigation is not synchronous, send it to the browser.
5647 // This includes navigations with no request being sent to the network stack. 5653 // This includes navigations with no request being sent to the network stack.
5648 if (IsBrowserSideNavigationEnabled() && 5654 if (IsBrowserSideNavigationEnabled() &&
5649 info.url_request.CheckForBrowserSideNavigation() && 5655 info.url_request.CheckForBrowserSideNavigation() &&
5650 ShouldMakeNetworkRequestForURL(url)) { 5656 ShouldMakeNetworkRequestForURL(url) && !use_archive) {
5651 if (info.default_policy == blink::kWebNavigationPolicyCurrentTab) { 5657 if (info.default_policy == blink::kWebNavigationPolicyCurrentTab) {
5652 // The BeginNavigation() call happens in didStartProvisionalLoad(). We 5658 // The BeginNavigation() call happens in didStartProvisionalLoad(). We
5653 // need to save information about the navigation here. 5659 // need to save information about the navigation here.
5654 pending_navigation_info_.reset(new PendingNavigationInfo(info)); 5660 pending_navigation_info_.reset(new PendingNavigationInfo(info));
5655 return blink::kWebNavigationPolicyHandledByClient; 5661 return blink::kWebNavigationPolicyHandledByClient;
5656 } else { 5662 } else {
5657 LoadURLExternally(info.url_request, info.default_policy); 5663 LoadURLExternally(info.url_request, info.default_policy);
5658 return blink::kWebNavigationPolicyIgnore; 5664 return blink::kWebNavigationPolicyIgnore;
5659 } 5665 }
5660 } 5666 }
(...skipping 1446 matching lines...) Expand 10 before | Expand all | Expand 10 after
7107 policy(info.default_policy), 7113 policy(info.default_policy),
7108 replaces_current_history_item(info.replaces_current_history_item), 7114 replaces_current_history_item(info.replaces_current_history_item),
7109 history_navigation_in_new_child_frame( 7115 history_navigation_in_new_child_frame(
7110 info.is_history_navigation_in_new_child_frame), 7116 info.is_history_navigation_in_new_child_frame),
7111 client_redirect(info.is_client_redirect), 7117 client_redirect(info.is_client_redirect),
7112 cache_disabled(info.is_cache_disabled), 7118 cache_disabled(info.is_cache_disabled),
7113 form(info.form), 7119 form(info.form),
7114 source_location(info.source_location) {} 7120 source_location(info.source_location) {}
7115 7121
7116 } // namespace content 7122 } // namespace content
OLDNEW
« no previous file with comments | « content/common/navigation_params.cc ('k') | third_party/WebKit/LayoutTests/mhtml/cid_in_html_iframe.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698