summaryrefslogtreecommitdiffstats
path: root/content/browser/frame_host/navigation_controller_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/frame_host/navigation_controller_impl.cc')
-rw-r--r--content/browser/frame_host/navigation_controller_impl.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index 34c05fb..c4b94df 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -831,6 +831,15 @@ bool NavigationControllerImpl::RendererDidNavigate(
new_type == NAVIGATION_TYPE_SAME_PAGE;
ignore_mismatch |= details->type == NAVIGATION_TYPE_SAME_PAGE &&
new_type == NAVIGATION_TYPE_EXISTING_PAGE;
+ // There are mismatches in the field where the new classifier thinks it's
+ // AUTO_SUBFRAME and the old classifier somehow thinks it's NEW or IGNORE. For
+ // IGNORE we know of at least one repro (https://crbug.com/492875), and for
+ // NEW it's not entirely clear what's going on, but we're pretty sure the new
+ // classifier is correct for both cases, so we're letting these mismatches go.
+ ignore_mismatch |= details->type == NAVIGATION_TYPE_NEW_SUBFRAME &&
+ new_type == NAVIGATION_TYPE_AUTO_SUBFRAME;
+ ignore_mismatch |= details->type == NAVIGATION_TYPE_NAV_IGNORE &&
+ new_type == NAVIGATION_TYPE_AUTO_SUBFRAME;
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kSitePerProcess)) {
// In site-per-process mode, the new classifier sometimes correctly