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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 2694013005: Cleanup blink-side PlzNavigate logic (Closed)
Patch Set: Rebase Created 3 years, 9 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 | « no previous file | third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/embeddedEnforcement/embedding_csp-header.html » ('j') | 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 27feea5a9232767a03c03e19dab6867bbb138bef..88c8dd1e6658a8b2ebbfe8b7090b8cc3587ac699 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -3314,11 +3314,6 @@ void RenderFrameImpl::willSendSubmitEvent(const blink::WebFormElement& form) {
}
void RenderFrameImpl::willSubmitForm(const blink::WebFormElement& form) {
- // With PlzNavigate-enabled, this will be called before a DataSource has been
- // set-up.
- // TODO(clamy): make sure the internal state is properly updated at some
- // point in the navigation.
- if (!IsBrowserSideNavigationEnabled() && !!frame_->provisionalDataSource()) {
DocumentState* document_state =
DocumentState::FromDataSource(frame_->provisionalDataSource());
NavigationStateImpl* navigation_state =
@@ -3336,7 +3331,6 @@ void RenderFrameImpl::willSubmitForm(const blink::WebFormElement& form) {
internal_data->set_searchable_form_url(web_searchable_form_data.url());
internal_data->set_searchable_form_encoding(
web_searchable_form_data.encoding().utf8());
- }
for (auto& observer : observers_)
observer.WillSubmitForm(form);
@@ -5234,9 +5228,21 @@ void RenderFrameImpl::OnFailedNavigation(
// For renderer initiated navigations, we send out a didFailProvisionalLoad()
// notification.
- if (request_params.nav_entry_id == 0)
- didFailProvisionalLoad(frame_, error, blink::WebStandardCommit);
- LoadNavigationErrorPage(failed_request, error, replace, history_entry.get());
+ bool had_provisional_data_source = frame_->provisionalDataSource();
+ if (request_params.nav_entry_id == 0) {
+ didFailProvisionalLoad(
+ frame_, error,
+ replace ? blink::WebHistoryInertCommit : blink::WebStandardCommit);
+ }
+
+ // If we didn't call didFailProvisionalLoad or there wasn't a
+ // provisionalDataSource(), LoadNavigationErrorPage wasn't called, so do it
+ // now.
+ if (request_params.nav_entry_id != 0 || !had_provisional_data_source) {
+ LoadNavigationErrorPage(failed_request, error, replace,
+ history_entry.get());
+ }
+
browser_side_navigation_pending_ = false;
}
@@ -5321,7 +5327,7 @@ WebNavigationPolicy RenderFrameImpl::decidePolicyForNavigation(
GetWebURLRequestHeaders(info.urlRequest), referrer,
info.defaultPolicy, info.replacesCurrentHistoryItem, true);
// Suppress the load in Blink but mark the frame as loading.
- return blink::WebNavigationPolicyHandledByClient;
+ return blink::WebNavigationPolicyHandledByClientForInitialHistory;
} else {
// Client redirects during an initial history load should attempt to
// cancel the history navigation. They will create a provisional
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/security/contentSecurityPolicy/embeddedEnforcement/embedding_csp-header.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698