RESOLVED FIXED 201225
[PSON] Bump the WebPage's identifier every time we process-swap
https://bugs.webkit.org/show_bug.cgi?id=201225
Summary [PSON] Bump the WebPage's identifier every time we process-swap
Chris Dumez
Reported 2019-08-28 10:22:49 PDT
Bump the WebPage's identifier every time we process-swap. This will avoid confusion with IPC messages when swapping back and forth between WebContent process. This will also allow us to keep a suspended WebPage (for PageCache) in a WebProcess that is used for a new load of the same WebPageProxy.
Attachments
WIP Patch (32.43 KB, patch)
2019-08-29 10:31 PDT, Chris Dumez
no flags
WIP Patch (33.26 KB, patch)
2019-08-29 10:36 PDT, Chris Dumez
no flags
WIP Patch (47.91 KB, patch)
2019-08-29 12:17 PDT, Chris Dumez
no flags
WIP Patch (53.39 KB, patch)
2019-08-29 12:40 PDT, Chris Dumez
no flags
WIP Patch (95.47 KB, patch)
2019-08-29 13:32 PDT, Chris Dumez
no flags
WIP Patch (95.45 KB, patch)
2019-08-29 13:38 PDT, Chris Dumez
no flags
WIP Patch (100.84 KB, patch)
2019-08-29 14:38 PDT, Chris Dumez
no flags
Patch (113.06 KB, patch)
2019-08-29 14:52 PDT, Chris Dumez
no flags
Patch (112.69 KB, patch)
2019-08-29 15:24 PDT, Chris Dumez
no flags
Patch (116.42 KB, patch)
2019-08-29 16:00 PDT, Chris Dumez
no flags
Tim Horton
Comment 1 2019-08-28 10:27:45 PDT
🥳
Alex Christensen
Comment 2 2019-08-28 11:02:50 PDT
Does this mean there will no longer be two WebPages in the same process with the same identifier? What are we going to do about things in the NetworkProcess that use a PageIdentifier (such as ResourceLoadStatistics)?
Chris Dumez
Comment 3 2019-08-29 09:38:31 PDT
(In reply to Alex Christensen from comment #2) > Does this mean there will no longer be two WebPages in the same process with > the same identifier? We already closed the previous page if it had the same identifier as the new page. That said, the old page could indeed still live for a while after getting closed. Once we bump page ids, this should no longer happen, and we also would not need to close the previous page in the process if it is useful (e.g. for page cache). > What are we going to do about things in the NetworkProcess that use a > PageIdentifier (such as ResourceLoadStatistics)? That's a good question, I need to look into those particular cases. My best is that they would need to use PageIdentifier and not WebPageProxyIdentifier since they are associated with specific WebCore loads.
Chris Dumez
Comment 4 2019-08-29 10:31:21 PDT
Created attachment 377595 [details] WIP Patch
Chris Dumez
Comment 5 2019-08-29 10:36:40 PDT
Created attachment 377596 [details] WIP Patch
Chris Dumez
Comment 6 2019-08-29 12:17:34 PDT
Created attachment 377606 [details] WIP Patch
Chris Dumez
Comment 7 2019-08-29 12:40:40 PDT
Created attachment 377612 [details] WIP Patch
Chris Dumez
Comment 8 2019-08-29 13:32:28 PDT
Created attachment 377619 [details] WIP Patch
Chris Dumez
Comment 9 2019-08-29 13:38:19 PDT
Created attachment 377622 [details] WIP Patch
Chris Dumez
Comment 10 2019-08-29 14:38:57 PDT
Created attachment 377627 [details] WIP Patch
Chris Dumez
Comment 11 2019-08-29 14:52:29 PDT
Chris Dumez
Comment 12 2019-08-29 15:24:47 PDT
Chris Dumez
Comment 13 2019-08-29 16:00:13 PDT
Chris Dumez
Comment 14 2019-08-29 19:42:06 PDT
Comment on attachment 377646 [details] Patch Ready for review.
Antti Koivisto
Comment 15 2019-08-30 09:26:15 PDT
Comment on attachment 377646 [details] Patch Looks like good progress. As discussed, it would be good to eventually have WebPageProxy with the same lifetime as the WebPage, and have a separate (browsing context) object that stays the same over navigations. The current WebPageProxyIdentifier would then become the identifier of the latter object.
Chris Dumez
Comment 16 2019-08-30 09:34:46 PDT
Comment on attachment 377646 [details] Patch Clearing flags on attachment: 377646 Committed r249329: <https://trac.webkit.org/changeset/249329>
Chris Dumez
Comment 17 2019-08-30 09:34:47 PDT
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 18 2019-08-30 09:35:16 PDT
Note You need to log in before you can comment on or make changes to this bug.