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

Unified Diff: chrome/browser/net/net_error_tab_helper.cc

Issue 2345913002: Fix NetErrorTabHelper with PlzNavigate. (Closed)
Patch Set: fix NavigationHandle::IsErrorPage for reloads of error pages Created 4 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
Index: chrome/browser/net/net_error_tab_helper.cc
diff --git a/chrome/browser/net/net_error_tab_helper.cc b/chrome/browser/net/net_error_tab_helper.cc
index e590ae9f4453d83fdf74239577834e9dce9ed696..604f53e1134762cd2c3aa615266ab39739adf009 100644
--- a/chrome/browser/net/net_error_tab_helper.cc
+++ b/chrome/browser/net/net_error_tab_helper.cc
@@ -104,78 +104,47 @@ void NetErrorTabHelper::RenderFrameCreated(
CanShowNetworkDiagnosticsDialog()));
}
-void NetErrorTabHelper::DidStartNavigationToPendingEntry(
- const GURL& url,
- content::ReloadType reload_type) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (!is_error_page_)
+void NetErrorTabHelper::DidStartNavigation(
+ content::NavigationHandle* navigation_handle) {
+ if (!navigation_handle->IsInMainFrame())
return;
- // Only record reloads.
- if (reload_type != content::ReloadType::NONE) {
+ if (navigation_handle->IsErrorPage() &&
+ navigation_handle->GetPageTransition() == ui::PAGE_TRANSITION_RELOAD) {
error_page::RecordEvent(
error_page::NETWORK_ERROR_PAGE_BROWSER_INITIATED_RELOAD);
}
-}
-
-void NetErrorTabHelper::DidStartProvisionalLoadForFrame(
- content::RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- bool is_error_page,
- bool is_iframe_srcdoc) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (render_frame_host->GetParent())
- return;
-
- is_error_page_ = is_error_page;
#if BUILDFLAG(ANDROID_JAVA_UI)
- UpdateHasOfflinePages(render_frame_host);
+ UpdateHasOfflinePages(navigation_handle->GetFrameTreeNodeId());
#endif // BUILDFLAG(ANDROID_JAVA_UI)
}
-void NetErrorTabHelper::DidCommitProvisionalLoadForFrame(
- content::RenderFrameHost* render_frame_host,
- const GURL& url,
- PageTransition transition_type) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (render_frame_host->GetParent())
+void NetErrorTabHelper::DidFinishNavigation(
+ content::NavigationHandle* navigation_handle) {
+ if (!navigation_handle->IsInMainFrame())
return;
+ if (IsDnsError(navigation_handle->GetNetErrorCode())) {
+ dns_error_active_ = true;
+ OnMainFrameDnsError();
+ }
+
// Resend status every time an error page commits; this is somewhat spammy,
// but ensures that the status will make it to the real error page, even if
// the link doctor loads a blank intermediate page or the tab switches
// renderer processes.
- if (is_error_page_ && dns_error_active_) {
+ if (navigation_handle->IsErrorPage() && dns_error_active_) {
dns_error_page_committed_ = true;
DVLOG(1) << "Committed error page; resending status.";
SendInfo();
- } else {
+ } else if (navigation_handle->HasCommitted() &&
+ !navigation_handle->IsErrorPage()) {
dns_error_active_ = false;
dns_error_page_committed_ = false;
}
}
-void NetErrorTabHelper::DidFailProvisionalLoad(
- content::RenderFrameHost* render_frame_host,
- const GURL& validated_url,
- int error_code,
- const base::string16& error_description,
- bool was_ignored_by_handler) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
-
- if (render_frame_host->GetParent())
- return;
-
- if (IsDnsError(error_code)) {
- dns_error_active_ = true;
- OnMainFrameDnsError();
- }
-}
-
bool NetErrorTabHelper::OnMessageReceived(
const IPC::Message& message,
content::RenderFrameHost* render_frame_host) {
@@ -296,10 +265,9 @@ void NetErrorTabHelper::RunNetworkDiagnosticsHelper(
}
#if BUILDFLAG(ANDROID_JAVA_UI)
-void NetErrorTabHelper::UpdateHasOfflinePages(
- content::RenderFrameHost* render_frame_host) {
+void NetErrorTabHelper::UpdateHasOfflinePages(int frame_tree_node_id) {
// TODO(chili): remove entirely in M55 if AsyncLoading does not need this.
- SetHasOfflinePages(render_frame_host->GetFrameTreeNodeId(), false);
+ SetHasOfflinePages(frame_tree_node_id, false);
}
void NetErrorTabHelper::SetHasOfflinePages(int frame_tree_node_id,

Powered by Google App Engine
This is Rietveld 408576698