RESOLVED FIXED 189481
Regression(PSON): WebView is blank when navigating back cross-process on iOS
https://bugs.webkit.org/show_bug.cgi?id=189481
Summary Regression(PSON): WebView is blank when navigating back cross-process on iOS
Chris Dumez
Reported 2018-09-10 13:33:31 PDT
WebView is blank when navigating back cross-process on iOS (due to process swap on navigation being enabled).
Attachments
Patch (5.98 KB, patch)
2018-09-10 13:57 PDT, Chris Dumez
no flags
Radar WebKit Bug Importer
Comment 1 2018-09-10 13:34:00 PDT
Chris Dumez
Comment 2 2018-09-10 13:57:45 PDT
Tim Horton
Comment 3 2018-09-10 14:01:24 PDT
Comment on attachment 349325 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=349325&action=review > Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:526 > + if (auto* drawingArea = m_page.drawingArea()) I bet these aren't the only null checks we need. > Source/WebKit/WebProcess/WebPage/WebPage.cpp:6003 > + if (m_isSuspended == suspended) > + return; Suspended just means PSON-y suspension, not e.g. normal process suspension?
Chris Dumez
Comment 4 2018-09-10 14:18:13 PDT
(In reply to Tim Horton from comment #3) > Comment on attachment 349325 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=349325&action=review > > > Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:526 > > + if (auto* drawingArea = m_page.drawingArea()) > > I bet these aren't the only null checks we need. Chances are you are right. Those are the only ones I hit on on Mac and iOS so far though. > > > Source/WebKit/WebProcess/WebPage/WebPage.cpp:6003 > > + if (m_isSuspended == suspended) > > + return; > > Suspended just means PSON-y suspension, not e.g. normal process suspension? PSON-y suspension.
Tim Horton
Comment 5 2018-09-10 14:20:51 PDT
(In reply to Chris Dumez from comment #4) > (In reply to Tim Horton from comment #3) > > Comment on attachment 349325 [details] > > Patch > > > > View in context: > > https://bugs.webkit.org/attachment.cgi?id=349325&action=review > > > > > Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:526 > > > + if (auto* drawingArea = m_page.drawingArea()) > > > > I bet these aren't the only null checks we need. > > Chances are you are right. Those are the only ones I hit on on Mac and iOS > so far though. > > > > > > Source/WebKit/WebProcess/WebPage/WebPage.cpp:6003 > > > + if (m_isSuspended == suspended) > > > + return; > > > > Suspended just means PSON-y suspension, not e.g. normal process suspension? > > PSON-y suspension. Very mysterious, we should probably think about naming these things more independently.
Chris Dumez
Comment 6 2018-09-10 14:22:14 PDT
(In reply to Tim Horton from comment #5) > (In reply to Chris Dumez from comment #4) > > (In reply to Tim Horton from comment #3) > > > Comment on attachment 349325 [details] > > > Patch > > > > > > View in context: > > > https://bugs.webkit.org/attachment.cgi?id=349325&action=review > > > > > > > Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:526 > > > > + if (auto* drawingArea = m_page.drawingArea()) > > > > > > I bet these aren't the only null checks we need. > > > > Chances are you are right. Those are the only ones I hit on on Mac and iOS > > so far though. > > > > > > > > > Source/WebKit/WebProcess/WebPage/WebPage.cpp:6003 > > > > + if (m_isSuspended == suspended) > > > > + return; > > > > > > Suspended just means PSON-y suspension, not e.g. normal process suspension? > > > > PSON-y suspension. > > Very mysterious, we should probably think about naming these things more > independently. I agree, Brady added this and I am not quite sure what he had in mind at the time. I'll clarify the naming in a follow-up.
WebKit Commit Bot
Comment 7 2018-09-10 15:18:08 PDT
Comment on attachment 349325 [details] Patch Clearing flags on attachment: 349325 Committed r235867: <https://trac.webkit.org/changeset/235867>
WebKit Commit Bot
Comment 8 2018-09-10 15:18:10 PDT
All reviewed patches have been landed. Closing bug.
Dawei Fenton (:realdawei)
Comment 9 2018-09-10 16:51:27 PDT
(In reply to WebKit Commit Bot from comment #7) > Comment on attachment 349325 [details] > Patch > > Clearing flags on attachment: 349325 > > Committed r235867: <https://trac.webkit.org/changeset/235867> Seeing API failures on macOS and iOS after this revision sample output: https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/7888/steps/run-api-tests/logs/stdio TestWebKitAPI.ProcessSwap.ProcessReuse Received data during response processing, queuing it. WARNING: The option to always keep swapped web processes alive is active. This is meant for debugging and testing only. Received data during response processing, queuing it. Received data during response processing, queuing it. /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1375 Expected equality of these values: 2u Which is: 2 seenPIDs.size() Which is: 3 /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1378 Expected equality of these values: pid1 Which is: 76466 pid3 Which is: 76470 TestWebKitAPI.ProcessSwap.ProcessReuseeTLDPlus2 Received data during response processing, queuing it. WARNING: The option to always keep swapped web processes alive is active. This is meant for debugging and testing only. Received data during response processing, queuing it. Received data during response processing, queuing it. /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1422 Expected equality of these values: 2u Which is: 2 seenPIDs.size() Which is: 3 /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:1425 Expected equality of these values: pid1 Which is: 76472 pid3
Chris Dumez
Comment 10 2018-09-10 17:19:28 PDT
(In reply to Dawei Fenton (:realdawei) from comment #9) > (In reply to WebKit Commit Bot from comment #7) > > Comment on attachment 349325 [details] > > Patch > > > > Clearing flags on attachment: 349325 > > > > Committed r235867: <https://trac.webkit.org/changeset/235867> > > Seeing API failures on macOS and iOS after this revision > > sample output: > https://build.webkit.org/builders/ > Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/7888/steps/run-api- > tests/logs/stdio > > TestWebKitAPI.ProcessSwap.ProcessReuse > Received data during response processing, queuing it. > WARNING: The option to always keep swapped web processes alive is > active. This is meant for debugging and testing only. > Received data during response processing, queuing it. > Received data during response processing, queuing it. > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1375 > Expected equality of these values: > 2u > Which is: 2 > seenPIDs.size() > Which is: 3 > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1378 > Expected equality of these values: > pid1 > Which is: 76466 > pid3 > Which is: 76470 > > > TestWebKitAPI.ProcessSwap.ProcessReuseeTLDPlus2 > Received data during response processing, queuing it. > WARNING: The option to always keep swapped web processes alive is > active. This is meant for debugging and testing only. > Received data during response processing, queuing it. > Received data during response processing, queuing it. > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1422 > Expected equality of these values: > 2u > Which is: 2 > seenPIDs.size() > Which is: 3 > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1425 > Expected equality of these values: > pid1 > Which is: 76472 > pid3 Odd, I will investigate shortly.
Chris Dumez
Comment 11 2018-09-10 18:36:06 PDT
(In reply to Dawei Fenton (:realdawei) from comment #9) > (In reply to WebKit Commit Bot from comment #7) > > Comment on attachment 349325 [details] > > Patch > > > > Clearing flags on attachment: 349325 > > > > Committed r235867: <https://trac.webkit.org/changeset/235867> > > Seeing API failures on macOS and iOS after this revision > > sample output: > https://build.webkit.org/builders/ > Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/7888/steps/run-api- > tests/logs/stdio > > TestWebKitAPI.ProcessSwap.ProcessReuse > Received data during response processing, queuing it. > WARNING: The option to always keep swapped web processes alive is > active. This is meant for debugging and testing only. > Received data during response processing, queuing it. > Received data during response processing, queuing it. > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1375 > Expected equality of these values: > 2u > Which is: 2 > seenPIDs.size() > Which is: 3 > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1378 > Expected equality of these values: > pid1 > Which is: 76466 > pid3 > Which is: 76470 > > > TestWebKitAPI.ProcessSwap.ProcessReuseeTLDPlus2 > Received data during response processing, queuing it. > WARNING: The option to always keep swapped web processes alive is > active. This is meant for debugging and testing only. > Received data during response processing, queuing it. > Received data during response processing, queuing it. > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1422 > Expected equality of these values: > 2u > Which is: 2 > seenPIDs.size() > Which is: 3 > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > WebKitCocoa/ProcessSwapOnNavigation.mm:1425 > Expected equality of these values: > pid1 > Which is: 76472 > pid3 Follow-up fix in <https://trac.webkit.org/changeset/235880>.
Chris Dumez
Comment 12 2018-09-14 09:52:49 PDT
(In reply to Chris Dumez from comment #11) > (In reply to Dawei Fenton (:realdawei) from comment #9) > > (In reply to WebKit Commit Bot from comment #7) > > > Comment on attachment 349325 [details] > > > Patch > > > > > > Clearing flags on attachment: 349325 > > > > > > Committed r235867: <https://trac.webkit.org/changeset/235867> > > > > Seeing API failures on macOS and iOS after this revision > > > > sample output: > > https://build.webkit.org/builders/ > > Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/7888/steps/run-api- > > tests/logs/stdio > > > > TestWebKitAPI.ProcessSwap.ProcessReuse > > Received data during response processing, queuing it. > > WARNING: The option to always keep swapped web processes alive is > > active. This is meant for debugging and testing only. > > Received data during response processing, queuing it. > > Received data during response processing, queuing it. > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > WebKitCocoa/ProcessSwapOnNavigation.mm:1375 > > Expected equality of these values: > > 2u > > Which is: 2 > > seenPIDs.size() > > Which is: 3 > > > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > WebKitCocoa/ProcessSwapOnNavigation.mm:1378 > > Expected equality of these values: > > pid1 > > Which is: 76466 > > pid3 > > Which is: 76470 > > > > > > TestWebKitAPI.ProcessSwap.ProcessReuseeTLDPlus2 > > Received data during response processing, queuing it. > > WARNING: The option to always keep swapped web processes alive is > > active. This is meant for debugging and testing only. > > Received data during response processing, queuing it. > > Received data during response processing, queuing it. > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > WebKitCocoa/ProcessSwapOnNavigation.mm:1422 > > Expected equality of these values: > > 2u > > Which is: 2 > > seenPIDs.size() > > Which is: 3 > > > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > WebKitCocoa/ProcessSwapOnNavigation.mm:1425 > > Expected equality of these values: > > pid1 > > Which is: 76472 > > pid3 > > Follow-up fix in <https://trac.webkit.org/changeset/235880>. Dawei, do you still see failures after the fix? I see that you just cc'd a few more people.
Dawei Fenton (:realdawei)
Comment 13 2018-09-14 10:11:32 PDT
(In reply to Chris Dumez from comment #12) > (In reply to Chris Dumez from comment #11) > > (In reply to Dawei Fenton (:realdawei) from comment #9) > > > (In reply to WebKit Commit Bot from comment #7) > > > > Comment on attachment 349325 [details] > > > > Patch > > > > > > > > Clearing flags on attachment: 349325 > > > > > > > > Committed r235867: <https://trac.webkit.org/changeset/235867> > > > > > > Seeing API failures on macOS and iOS after this revision > > > > > > sample output: > > > https://build.webkit.org/builders/ > > > Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/7888/steps/run-api- > > > tests/logs/stdio > > > > > > TestWebKitAPI.ProcessSwap.ProcessReuse > > > Received data during response processing, queuing it. > > > WARNING: The option to always keep swapped web processes alive is > > > active. This is meant for debugging and testing only. > > > Received data during response processing, queuing it. > > > Received data during response processing, queuing it. > > > > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > > WebKitCocoa/ProcessSwapOnNavigation.mm:1375 > > > Expected equality of these values: > > > 2u > > > Which is: 2 > > > seenPIDs.size() > > > Which is: 3 > > > > > > > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > > WebKitCocoa/ProcessSwapOnNavigation.mm:1378 > > > Expected equality of these values: > > > pid1 > > > Which is: 76466 > > > pid3 > > > Which is: 76470 > > > > > > > > > TestWebKitAPI.ProcessSwap.ProcessReuseeTLDPlus2 > > > Received data during response processing, queuing it. > > > WARNING: The option to always keep swapped web processes alive is > > > active. This is meant for debugging and testing only. > > > Received data during response processing, queuing it. > > > Received data during response processing, queuing it. > > > > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > > WebKitCocoa/ProcessSwapOnNavigation.mm:1422 > > > Expected equality of these values: > > > 2u > > > Which is: 2 > > > seenPIDs.size() > > > Which is: 3 > > > > > > > > > > > > /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/ > > > WebKitCocoa/ProcessSwapOnNavigation.mm:1425 > > > Expected equality of these values: > > > pid1 > > > Which is: 76472 > > > pid3 > > > > Follow-up fix in <https://trac.webkit.org/changeset/235880>. > > Dawei, do you still see failures after the fix? I see that you just cc'd a > few more people. Sorry about that, we generally cc each other to facilitate tracking...I had forgotten to cc earlier :)
Note You need to log in before you can comment on or make changes to this bug.