Steps to repro:
1. Run Chrome with --enable-features=PageAlmostIdle.
2. Navigate to a invalid domain (e.g. domain-that-doesnt-exist.ca) or to a domain blocked by the administrator.
3. In chrome://discards, observe that the loading state stays LOADING forever, instead of transitioning to LOADED.
Cause:
For a tab to transition to the LOADED state, PageSignalGeneratorImpl must be notified of a main frame navigation commit. This notification is sent by ResourceCoordinatorTabHelper::DidFinishNavigation(). Unfortunately, this method erroneously skips sending this notification when there is a navigation to an error page.
Comment 1 by bugdroid1@chromium.org
, Jun 21 2018