New issue
Advanced search Search tips

Issue 910309 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Jan 9
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 2
Type: Bug

Blocking:
issue 911694



Sign in to add a comment

Cannot navigate back/forward after session restore in airplane mode

Project Member Reported by danyao@chromium.org, Nov 29

Issue description

Chrome 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.

 
restore_session_in_airplane_mode.MP4
8.6 MB View Download
Blocking: 911694
Blocking: -734150
Cc: danyao@chromium.org
 Issue 910318  has been merged into this issue.
Status: Started (was: Assigned)
Project Member

Comment 5 by bugdroid1@chromium.org, 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

Project Member

Comment 6 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)
Status: Verified (was: Fixed)
Verified on iPad Pro iOS 11.4.1, iPhone XSMAX iOS 12.0.1 on build 73.0.3672.0 Canary

Comment 9 by danyao@chromium.org, Yesterday (38 hours ago)

Issue 841209 has been merged into this issue.

Sign in to add a comment