New issue
Advanced search Search tips
Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jan 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: iOS
Pri: 1
Type: Bug

Blocking:
issue 734150



Sign in to add a comment
link

Issue 877671: The app should behave normally during slim navigation manager's session restoration

Reported by eugene...@chromium.org, Aug 24 Project Member

Issue description

Slim-navigation-manager introduces the new way of session restoration which is asynchronous and can potentially affect the user experience in a negative way. It may take 10 seconds to restore navigation history on iPad 4, and during session restoration the app should behave normally.

Doc:
https://docs.google.com/document/d/1-FspOR40MdAddruPioTzgSq6OwGDetEIrwBNFTDlej4/edit
 

Comment 1 by bugdroid1@chromium.org, Aug 24

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/473889440c8c5b5ce95f716a8afb4a81ee874cac

commit 473889440c8c5b5ce95f716a8afb4a81ee874cac
Author: Eugene But <eugenebut@google.com>
Date: Fri Aug 24 23:14:39 2018

Disallow back forward navigations during async session restoration.

Slim Navigation Manager asynchronously restores the session. During
session restoration it's not possible to perform back-forward
navigation. This change prevents all delta navigations until the session
is restored.

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I801a99182582118862d03796532588f1495de9c6
Reviewed-on: https://chromium-review.googlesource.com/1187677
Reviewed-by: Kurt Horimoto <kkhorimoto@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586041}
[modify] https://crrev.com/473889440c8c5b5ce95f716a8afb4a81ee874cac/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/473889440c8c5b5ce95f716a8afb4a81ee874cac/ios/web/web_state/web_state_unittest.mm

Comment 2 by bugdroid1@chromium.org, Aug 25

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/137088adbd5d4f01d9a1b2bde2ac69cd01146a3b

commit 137088adbd5d4f01d9a1b2bde2ac69cd01146a3b
Author: Eugene But <eugenebut@chromium.org>
Date: Sat Aug 25 05:49:42 2018

Limit maximum session restoration size to 75.

This change only affects SlimNavigationManager. SlimNavigationManager
uses pushState JS API for restoring the session. WKWebView does not
allow pushing more than 100 items per 30 seconds. Limiting max session
size to 75 will allow web pages to use push state calls.

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: Ia16c4bc88f3b42b638b895daef542cf8e086c33f
Reviewed-on: https://chromium-review.googlesource.com/1187551
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Kurt Horimoto <kkhorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586124}
[modify] https://crrev.com/137088adbd5d4f01d9a1b2bde2ac69cd01146a3b/ios/web/navigation/wk_navigation_util.h
[modify] https://crrev.com/137088adbd5d4f01d9a1b2bde2ac69cd01146a3b/ios/web/navigation/wk_navigation_util.mm
[modify] https://crrev.com/137088adbd5d4f01d9a1b2bde2ac69cd01146a3b/ios/web/navigation/wk_navigation_util_unittest.mm
[modify] https://crrev.com/137088adbd5d4f01d9a1b2bde2ac69cd01146a3b/ios/web/web_state/web_state_unittest.mm

Comment 3 by bugdroid1@chromium.org, Sep 11

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a61ae0a894f673027d08f1bbd236699461e289ee

commit a61ae0a894f673027d08f1bbd236699461e289ee
Author: Eugene But <eugenebut@google.com>
Date: Tue Sep 11 20:47:22 2018

Extended WebStateTest.RestoreLargeSession.

Updated test case to verify more WebState and NavigationManager
properties.

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: If05a25202b8433e7633015f7da73f9cc4d9d8e64
Reviewed-on: https://chromium-review.googlesource.com/1218282
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590456}
[modify] https://crrev.com/a61ae0a894f673027d08f1bbd236699461e289ee/ios/web/web_state/web_state_unittest.mm

Comment 4 by danyao@chromium.org, Sep 12

Labels: ReleaseBlock-Stable

Comment 5 by bugdroid1@chromium.org, Sep 15

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/162d543c7fe0f081fd9732e0cbc9c5d363f8a141

commit 162d543c7fe0f081fd9732e0cbc9c5d363f8a141
Author: Eugene But <eugenebut@google.com>
Date: Sat Sep 15 00:12:50 2018

Add Web.RestoreNavigationItemCount UMA histogram.

Logs the number of items Navigation Manager was requested to restore.
100 is logged when the number of navigation items is greater than 100.
This is just a requested count and actual number of restored items can
be smaller.

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: Id528320cfae35a04c9199d21ff14d5ff72c0aed2
Reviewed-on: https://chromium-review.googlesource.com/1225697
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Danyao Wang <danyao@chromium.org>
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591532}
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/ios/web/navigation/legacy_navigation_manager_impl.mm
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/ios/web/navigation/navigation_manager_impl.h
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/ios/web/navigation/navigation_manager_impl.mm
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/ios/web/navigation/navigation_manager_impl_unittest.mm
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/ios/web/navigation/wk_based_navigation_manager_impl_unittest.mm
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/ios/web/web_state/web_state_unittest.mm
[modify] https://crrev.com/162d543c7fe0f081fd9732e0cbc9c5d363f8a141/tools/metrics/histograms/histograms.xml

Comment 6 by bugdroid1@chromium.org, Sep 18

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0a62e24e859682d94cb672b63e8e8219db12db78

commit 0a62e24e859682d94cb672b63e8e8219db12db78
Author: Eugene But <eugenebut@chromium.org>
Date: Tue Sep 18 20:35:32 2018

Fix IOS.RestoreNavigationItemCount histogram name.

Follow up for http://crrev.com/c/1225697/6/ios/web/navigation/navigation_manager_impl.mm#21

R=mpearson@chromium.org

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I390bef0562886d5f02469a184ddb6c86f3f62563
Reviewed-on: https://chromium-review.googlesource.com/1229617
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592178}
[modify] https://crrev.com/0a62e24e859682d94cb672b63e8e8219db12db78/ios/web/navigation/navigation_manager_impl.mm
[modify] https://crrev.com/0a62e24e859682d94cb672b63e8e8219db12db78/tools/metrics/histograms/histograms.xml

Comment 7 by bugdroid1@chromium.org, Sep 18

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b8d83e5b059e4dae4027bb189cf6eb20221df01

commit 7b8d83e5b059e4dae4027bb189cf6eb20221df01
Author: Eugene But <eugenebut@google.com>
Date: Tue Sep 18 20:37:19 2018

Update NavigationManagerImpl::WillRestore comments.

Remove comment related to UMA_HISTOGRAM_COUNTS_100 which used to say
about UMA_HISTOGRAM_EXACT_LINEAR limitations.

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I5ccd18c22386d82fd7669494700654221eecdfbe
Reviewed-on: https://chromium-review.googlesource.com/1230933
Reviewed-by: Mark Pearson <mpearson@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592180}
[modify] https://crrev.com/7b8d83e5b059e4dae4027bb189cf6eb20221df01/ios/web/navigation/navigation_manager_impl.mm

Comment 8 by bugdroid1@chromium.org, Sep 19

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ef16b01f40390d9242f1a055b7281e7a4788b3c

commit 8ef16b01f40390d9242f1a055b7281e7a4788b3c
Author: Eugene But <eugenebut@google.com>
Date: Wed Sep 19 00:06:21 2018

Add WebStateObserverTest.RestoreSession test.

This test verifies that no WebStateObserver callbacks are called during
restoration.

Removed superfluous DCHECK from GetNavigationItemImplAtIndex().

Bug:  877671 ,  812253 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: Ic4db92fec8204fd8fe92da9a19ea6f16cc3a32a3
Reviewed-on: https://chromium-review.googlesource.com/1189124
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Danyao Wang <danyao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592275}
[modify] https://crrev.com/8ef16b01f40390d9242f1a055b7281e7a4788b3c/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/8ef16b01f40390d9242f1a055b7281e7a4788b3c/ios/web/web_state/web_state_observer_inttest.mm

Comment 9 by bugdroid1@chromium.org, Sep 20

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/26fa7eb64bddff0e040cf1a65c23914396a07b2f

commit 26fa7eb64bddff0e040cf1a65c23914396a07b2f
Author: Eugene But <eugenebut@google.com>
Date: Thu Sep 20 23:19:24 2018

Log UMA for session restoration time.

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I1ab57a336a1cccd169f311c1d64db813cd4a1250
Reviewed-on: https://chromium-review.googlesource.com/1232615
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Danyao Wang <danyao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592994}
[modify] https://crrev.com/26fa7eb64bddff0e040cf1a65c23914396a07b2f/ios/web/navigation/wk_based_navigation_manager_impl.h
[modify] https://crrev.com/26fa7eb64bddff0e040cf1a65c23914396a07b2f/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/26fa7eb64bddff0e040cf1a65c23914396a07b2f/ios/web/web_state/web_state_unittest.mm

Comment 10 by bugdroid1@chromium.org, Sep 24

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a9d0aa54d940395d2fcb8d74a6e241346cf16913

commit a9d0aa54d940395d2fcb8d74a6e241346cf16913
Author: Eugene But <eugenebut@google.com>
Date: Mon Sep 24 21:31:02 2018

Do not set WebState::IsLoading() for wk-internal URLs.

Sessions restoration should not trigger web state observer callbacks.
Also updated the tests to wait for web state observer callbacks
from the last page load.

Bug:  877671 
Cq-Include-Trybots: luci.chromium.try:ios-simulator-cronet;luci.chromium.try:ios-simulator-full-configs
Change-Id: I0ae13d40e106dc7ad344518c31258db7ab110b0e
Reviewed-on: https://chromium-review.googlesource.com/1238378
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593692}
[modify] https://crrev.com/a9d0aa54d940395d2fcb8d74a6e241346cf16913/ios/web/web_state/ui/crw_web_controller.mm
[modify] https://crrev.com/a9d0aa54d940395d2fcb8d74a6e241346cf16913/ios/web/web_state/web_state_observer_inttest.mm

Comment 11 by bugdroid1@chromium.org, Oct 1

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea4a445b0cbbf5668ea7c9b4c7a014ed89ef7d4a

commit ea4a445b0cbbf5668ea7c9b4c7a014ed89ef7d4a
Author: Eugene But <eugenebut@chromium.org>
Date: Mon Oct 01 19:30:40 2018

Add IOS.RestoreNavigationItemTime to histograms.xml.

UMA logging added here:
https://chromium-review.googlesource.com/1232615

Bug:  877671 
Change-Id: Icf550ec0dd047462fcf385a7fbf830099c487407
Reviewed-on: https://chromium-review.googlesource.com/1238470
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595503}
[modify] https://crrev.com/ea4a445b0cbbf5668ea7c9b4c7a014ed89ef7d4a/tools/metrics/histograms/histograms.xml

Comment 12 by eugene...@chromium.org, Oct 8

Labels: -M-71 M-72

Comment 13 by danyao@chromium.org, Nov 2

Labels: Proj-WKBackForwardListBlocker

Comment 14 by danyao@chromium.org, Nov 2

Labels: -ReleaseBlock-Stable -M-72

Comment 15 by eugene...@chromium.org, Nov 19

Blockedon: 734150

Comment 16 by eugene...@chromium.org, Nov 19

Blocking: 734150

Comment 17 by eugene...@chromium.org, Nov 19

Blockedon: -734150

Comment 18 by bugdroid1@chromium.org, Nov 26

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4957ab99a2d679d9a146e2e544718563f96d0322

commit 4957ab99a2d679d9a146e2e544718563f96d0322
Author: Eugene But <eugenebut@chromium.org>
Date: Mon Nov 26 20:27:42 2018

Load last committed item after session restoration is complete.

Additionally fixed extra WebStateObserver::TitleWasSet calls.

This makes session restoration behavior similar for both legacy
and slim navigation managers.

Bug:  877671 
Change-Id: I2c0265914ed1a6738335efd031f752db9c0a295f
Reviewed-on: https://chromium-review.googlesource.com/c/1347316
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610935}
[modify] https://crrev.com/4957ab99a2d679d9a146e2e544718563f96d0322/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/4957ab99a2d679d9a146e2e544718563f96d0322/ios/web/web_state/ui/crw_web_controller.mm
[modify] https://crrev.com/4957ab99a2d679d9a146e2e544718563f96d0322/ios/web/web_state/web_state_observer_inttest.mm

Comment 19 by bugdroid1@chromium.org, Nov 28

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/26b56a0754c03b41c865d03d11189b969e25185a

commit 26b56a0754c03b41c865d03d11189b969e25185a
Author: Eugene But <eugenebut@google.com>
Date: Wed Nov 28 16:26:49 2018

WebState::GetLoadingProgress returns 0 during the session restoration.

Also added NavigationManagerImpl::IsRestoreSessionInProgress method, so
WebStateImpl knows about in-progress restoration and can behave
accordinly.

Bug:  877671 
Change-Id: Ic16391b8ba6a2a5742dee7c3fe91bc05c79d25fc
Reviewed-on: https://chromium-review.googlesource.com/c/1352413
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611725}
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/navigation/legacy_navigation_manager_impl.h
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/navigation/legacy_navigation_manager_impl.mm
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/navigation/navigation_manager_impl.h
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/navigation/navigation_manager_impl_unittest.mm
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/navigation/wk_based_navigation_manager_impl.h
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/navigation/wk_based_navigation_manager_impl_unittest.mm
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/web_state/web_state_impl.mm
[modify] https://crrev.com/26b56a0754c03b41c865d03d11189b969e25185a/ios/web/web_state/web_state_unittest.mm

Comment 20 by bugdroid1@chromium.org, Nov 29

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a0e783fed88917e9b387865c145abc7d495ad332

commit a0e783fed88917e9b387865c145abc7d495ad332
Author: Eugene But <eugenebut@google.com>
Date: Thu Nov 29 20:36:29 2018

Do not interrupt session restoration with Stop or Reload.

Made Stop and Reload no-op during session restoration. For embedder
WebState should behave as idle during session restoration, so ignoring
Reload and Stop is fine. Reload will eventually happen after the
restoration is complete and stop should be actually no-op for an idle
WebState.

Bug:  877671 
Change-Id: I14c4b1d06122aad03406510c9b3e3d57d80e5f93
Reviewed-on: https://chromium-review.googlesource.com/c/1354035
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612342}
[modify] https://crrev.com/a0e783fed88917e9b387865c145abc7d495ad332/ios/web/navigation/navigation_manager_impl.mm
[modify] https://crrev.com/a0e783fed88917e9b387865c145abc7d495ad332/ios/web/web_state/web_state_impl.mm
[modify] https://crrev.com/a0e783fed88917e9b387865c145abc7d495ad332/ios/web/web_state/web_state_unittest.mm

Comment 21 by bugdroid1@chromium.org, Dec 4

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9c124df52c38b4598a44f07598feff7a1a24faf4

commit 9c124df52c38b4598a44f07598feff7a1a24faf4
Author: Eugene But <eugenebut@google.com>
Date: Tue Dec 04 01:14:27 2018

Return empty array from GetBackwardItems and GetForwardItems during session restoration.

This will prevent showing Back And Forward items in the app UI.

Bug:  877671 
Change-Id: I93f7868847a58e82d70fc01ebfb11a3a7d30399a
Reviewed-on: https://chromium-review.googlesource.com/c/1356982
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613369}
[modify] https://crrev.com/9c124df52c38b4598a44f07598feff7a1a24faf4/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/9c124df52c38b4598a44f07598feff7a1a24faf4/ios/web/web_state/web_state_unittest.mm

Comment 22 by bugdroid1@chromium.org, Dec 5

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2ee3b922ed5a24e527fce005f02d0ce767811112

commit 2ee3b922ed5a24e527fce005f02d0ce767811112
Author: Eugene But <eugenebut@google.com>
Date: Wed Dec 05 20:48:32 2018

Pretend there is no last committed item during the session restoration.

During session restoration GetLastCommittedItem() will return null,
GetLastCommittedItemIndex() will return -1 and GetLastCommittedURL()
will return empty URL.

This way embedder will not assume that WebState is usable during the
session restoration.

This CL only changes behavior for GetLastCommittedItem() and
GetLastCommittedItemIndex(). GetLastCommittedItemImpl() and
GetLastCommittedItemIndexImpl() are going to return last known
committed value.

Bug:  877671 
Change-Id: Icfb16486daf79a9b579adb8360e1801f8aa0a0a0
Reviewed-on: https://chromium-review.googlesource.com/c/1359040
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614090}
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/navigation/legacy_navigation_manager_impl.h
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/navigation/legacy_navigation_manager_impl.mm
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/navigation/navigation_manager_impl.h
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/navigation/navigation_manager_impl.mm
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/navigation/wk_based_navigation_manager_impl.h
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/public/navigation_manager.h
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/web_state/ui/crw_web_controller.mm
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/web_state/web_state_observer_inttest.mm
[modify] https://crrev.com/2ee3b922ed5a24e527fce005f02d0ce767811112/ios/web/web_state/web_state_unittest.mm

Comment 23 by bugdroid1@chromium.org, Dec 6

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1b8b0c79967271555e0d197b0ac874d2c61bd641

commit 1b8b0c79967271555e0d197b0ac874d2c61bd641
Author: Eugene But <eugenebut@google.com>
Date: Thu Dec 06 17:51:40 2018

Verify correctness of WebState::GetTitle during session restore.

Cached title is returned during restoration and URL hostname is returned
right after restoration is complete, but before the page finishes load.

Bug:  877671 
Change-Id: Ie7375a3c0c47a77417f1d10bb4bb0d48d6127da1
Reviewed-on: https://chromium-review.googlesource.com/c/1363968
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614407}
[modify] https://crrev.com/1b8b0c79967271555e0d197b0ac874d2c61bd641/ios/web/web_state/web_state_unittest.mm

Comment 24 by bugdroid1@chromium.org, Dec 7

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/112172d28d486c5d9776c794b89413bf6f314cd7

commit 112172d28d486c5d9776c794b89413bf6f314cd7
Author: Eugene But <eugenebut@google.com>
Date: Thu Dec 06 21:37:37 2018

Do not leak WK internal URL from pending item.

Extend WebStateTest.RestoreLargeSession test to verify that during
session restoration GetPendingItemIndex() returns -1 and
GetPendingItem() returns null.

Pending Item will appear after first post-restore navigation is
started, which happens before session restoration is considered
complete. Session restoration is complete after first post-restore
navigation is finished.

Bug:  877671 
Change-Id: Iec922bc71a0101e14a7d12cca6c53a039d71674e
Reviewed-on: https://chromium-review.googlesource.com/c/1363958
Commit-Queue: Eugene But <eugenebut@chromium.org>
Reviewed-by: Danyao Wang <danyao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#614499}
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/legacy_navigation_manager_impl.h
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/legacy_navigation_manager_impl.mm
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/navigation_manager_impl.h
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/navigation_manager_impl.mm
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/navigation_manager_impl_unittest.mm
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/navigation_manager_util.mm
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/wk_based_navigation_manager_impl.h
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/navigation/wk_based_navigation_manager_impl_unittest.mm
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/web_state/ui/crw_web_controller.mm
[modify] https://crrev.com/112172d28d486c5d9776c794b89413bf6f314cd7/ios/web/web_state/web_state_unittest.mm

Comment 25 by bugdroid1@chromium.org, Dec 11

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff4212ebff9798db95b1842fc7550a833c516fdb

commit ff4212ebff9798db95b1842fc7550a833c516fdb
Author: Eugene But <eugenebut@google.com>
Date: Tue Dec 11 22:48:04 2018

Do not interrupt session restoration with LoadURLWithParams.

Add WebStateTest.CallLoadURLWithParamsDuringSessionRestore test to
verify that LoadURLWithParams call does not interupt the session
restoration and that URL is eventually loaded when restoration is
complete.

Bug:  877671 
Change-Id: I1a326fea25ca175436af348e487d15183f6385c1
Reviewed-on: https://chromium-review.googlesource.com/c/1368652
Reviewed-by: Danyao Wang <danyao@chromium.org>
Commit-Queue: Eugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615705}
[modify] https://crrev.com/ff4212ebff9798db95b1842fc7550a833c516fdb/ios/web/navigation/navigation_manager_impl.h
[modify] https://crrev.com/ff4212ebff9798db95b1842fc7550a833c516fdb/ios/web/navigation/wk_based_navigation_manager_impl.h
[modify] https://crrev.com/ff4212ebff9798db95b1842fc7550a833c516fdb/ios/web/navigation/wk_based_navigation_manager_impl.mm
[modify] https://crrev.com/ff4212ebff9798db95b1842fc7550a833c516fdb/ios/web/web_state/ui/crw_web_controller.mm
[modify] https://crrev.com/ff4212ebff9798db95b1842fc7550a833c516fdb/ios/web/web_state/web_state_unittest.mm

Comment 26 by bugdroid, Jan 23

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ccf6be4686093ade39c87b4afc36cf95cceabca0

commit ccf6be4686093ade39c87b4afc36cf95cceabca0
Author: Eugene But <eugenebut@google.com>
Date: Wed Jan 23 23:11:53 2019

Improve session restore performance.

Session restoration completion code was moved from
didCommitNavigation to didStartProvisionalNavigation.
This change will allow the user to start interacting with
web contents without waiting until the first post-restore
navigation is complete.

There will be no committed URL until the first post-restore
navigation is complete, but user should be able to load new
pages and perform back forward navigations.

Bug:  877671 
Change-Id: Iceeeff857aee36bf4151f247815c0705ac377e73
Reviewed-on: https://chromium-review.googlesource.com/c/1407909
Commit-Queue: Eugene But <eugenebut@chromium.org>
Auto-Submit: Eugene But <eugenebut@chromium.org>
Reviewed-by: Danyao Wang <danyao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#625400}

Comment 27 by eugene...@chromium.org, Jan 26

Status: Fixed (was: Started)

Sign in to add a comment