Cannot navigate back/forward after session restore in airplane mode |
|||||
Issue descriptionChrome version: 72.0.3612.0 Ensure #slim-navigation-manager is enabled in chrome://flags Steps to reproduce: (1) In a new tab, visit any page, e.g. https://wikipedia.org. (2) Navigate to another page, e.g. https://github.com (3) Force quit the app (4) Turn on airplane mode (5) Relaunch the app => URL bar shows github.com (6) Tap back => URL bar shows wikipedia.org (7) Tap forward Expected result: URL bar should show github.com Actual result: URL bar shows wikipedia.org Video attached.
,
Dec 4
,
Jan 7
,
Jan 8
,
Jan 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/918fe8a8d00f719e98b85b4df0630ca3c6baee32 commit 918fe8a8d00f719e98b85b4df0630ca3c6baee32 Author: Danyao Wang <danyao@chromium.org> Date: Tue Jan 08 20:15:59 2019 [Nav Experiment] Add an inttest for restore session. This CL adds test case for restoring session to an online web page. A subsequent CL will add test case for restoring session to an offline web page. Bug: 910309 Change-Id: Ib205f0b7a6721f4e0721f1a905cbd527e5e5d133 Reviewed-on: https://chromium-review.googlesource.com/c/1398301 Commit-Queue: Danyao Wang <danyao@chromium.org> Reviewed-by: Eugene But <eugenebut@chromium.org> Cr-Commit-Position: refs/heads/master@{#620855} [modify] https://crrev.com/918fe8a8d00f719e98b85b4df0630ca3c6baee32/ios/web/web_state/web_state_observer_inttest.mm
,
Jan 8
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bd703bd73c872fca3d7d7095be31ebe7cf820ac9 commit bd703bd73c872fca3d7d7095be31ebe7cf820ac9 Author: Danyao Wang <danyao@chromium.org> Date: Tue Jan 08 20:32:11 2019 [Nav Experiment] Force reload when traversing restored session history. In airplane mode, back/forward navigations between restored session entries are same-document naivigations as far as WKWebView is concerned. onload() or onpopstate() are not triggered on the client side to redirect to the actual target URL. It looks like user is stuck on one error page. Forcing a reload in webViewLoadingStateDidChange fixes the problem. However, webViewLoadingStateDidChange can only detect browser-initiated back/forward navigation because renderer-initiated back/forward navigation doesn't yet have a NavigationContext created at this point. This is OK because there is no way to trigger renderer-intiated back/forward navigation when restoring session in airplane mode. Bug: 910309 Change-Id: I4e5312ebdb62605001c1de5aeb45e94cb4c5f9ba Reviewed-on: https://chromium-review.googlesource.com/c/1399046 Commit-Queue: Danyao Wang <danyao@chromium.org> Reviewed-by: Eugene But <eugenebut@chromium.org> Cr-Commit-Position: refs/heads/master@{#620863} [modify] https://crrev.com/bd703bd73c872fca3d7d7095be31ebe7cf820ac9/ios/web/navigation/error_retry_state_machine.mm [modify] https://crrev.com/bd703bd73c872fca3d7d7095be31ebe7cf820ac9/ios/web/navigation/error_retry_state_machine_unittest.mm [modify] https://crrev.com/bd703bd73c872fca3d7d7095be31ebe7cf820ac9/ios/web/web_state/ui/crw_web_controller.mm
,
Jan 9
,
Jan 15
Verified on iPad Pro iOS 11.4.1, iPhone XSMAX iOS 12.0.1 on build 73.0.3672.0 Canary
,
Yesterday
(38 hours ago)
Issue 841209 has been merged into this issue. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by danyao@chromium.org
, Dec 4