-
Justin Cohen authored
Session restore uses history.pushState to inject URLs and titles into each WKWebView session. For large numbers of pages, this can generate a very large number of IPC calls. iOS 12.2 introduced IPC throttling that can delay the async pushState calls before the sync history.go call. This was worked around via a check to see when all the push state calls are correctly processed. iOS14 introduced an optimization which breaks the above mentioned workaround. Instead, this change uses our own IPC call to native code (which will be enqueued to the end of the IPC queue) to finalize session restore. The effect is faster restore for the average case, but slightly slower restore for the edge case of a large numbers of pages. Bug: 1127521, 1126863 Change-Id: Ibb70008afef312897e8165e06f16ed5c03808b38 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2407332 Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by:
Gauthier Ambard <gambard@chromium.org> Reviewed-by:
Mike Dougherty <michaeldo@chromium.org> Reviewed-by:
Ali Juma <ajuma@chromium.org> Reviewed-by:
Eugene But <eugenebut@chromium.org> Cr-Commit-Position: refs/heads/master@{#806721}
d3b760ac