Created attachment 378740 [details] Test case Steps to reproduce (from https://bugs.chromium.org/p/chromium/issues/detail?id=1003803): 1) Visit the attached test page. Notice the counter gets updated once every 10 frames using rAF. 2) Navigate away, either by clicking on the button or just by typing a URL in the usual way. 3) Go back to the first page. Expected result: The counter resumes updating. Actual result: The counter is either frozen or updates very slowly (e.g., only updates while pinch-zooming and then stops again). This seems to be related to the fact the test case only updates the page once every 10 rAF callbacks; if I change this to update the page on every rAF, the bug no longer repros.
Created attachment 378742 [details] Test case It also seems important that the URL used in Step 2 is cross-origin wrt the URL from step 1.
That suggests that it's PSON-related.
<rdar://problem/55350854>
Can you confirm this is with an iOS 13.1 beta? This is what I can gather from the Chromium bug but it would be nice for this bug to contain the configuration.
(In reply to Antoine Quint from comment #4) > Can you confirm this is with an iOS 13.1 beta? This is what I can gather > from the Chromium bug but it would be nice for this bug to contain the > configuration. This reproduces in iOS 13.1 beta 3, but also reproduces in iOS 13.0. However, it does not reproduce in iOS 12.4.
Debugging this a bit, we're stuck in a state where RenderingUpdateScheduler::isScheduled is true, but RenderingUpdateScheduler::displayRefreshFired never gets called.
Ok, I can reproduce with the test case attached, thanks. I will investigate. It does not likely related to PSON although, PSON really did not change much in iOS 13.
I have a fix, working on an automated test.
Created attachment 378904 [details] Patch
Comment on attachment 378904 [details] Patch r=me
Comment on attachment 378904 [details] Patch Attachment 378904 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/13037841 New failing tests: http/tests/navigation/page-cache-requestAnimationFrame.html
Created attachment 378918 [details] Archive of layout-test-results from ews214 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews214 Port: win-future Platform: CYGWIN_NT-10.0-17763-3.0.5-338.x86_64-x86_64-64bit
Comment on attachment 378904 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=378904&action=review > LayoutTests/http/tests/navigation/page-cache-requestAnimationFrame.html:1 > +<!-- webkit-test-runner [ enablePageCache=true ] --> I need to add support for this to DRT so the test passes for WebKit1. Will do so before landing.
Created attachment 378966 [details] Patch
Comment on attachment 378966 [details] Patch Clearing flags on attachment: 378966 Committed r249961: <https://trac.webkit.org/changeset/249961>
All reviewed patches have been landed. Closing bug.
Reopening for follow-up since this introduced crashes.
Created attachment 379276 [details] Patch
Comment on attachment 379276 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=379276&action=review > LayoutTests/http/tests/navigation/page-cache-requestAnimationFrame.html:42 > + }, 100); This is ... not ideal, but OK
Comment on attachment 379276 [details] Patch Clearing flags on attachment: 379276 Committed r250165: <https://trac.webkit.org/changeset/250165>