Bug 184899

Summary: Investigate a better heuristic for when to prewarm a process
Product: WebKit Reporter: Saam Barati <saam>
Component: WebKit2Assignee: Saam Barati <saam>
Status: NEW ---    
Severity: Normal CC: achristensen, beidson, cdumez, fpizlo, ggaren, msaboff, rniwa, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=184765

Description Saam Barati 2018-04-23 15:29:37 PDT
Some ideas:
- on the 'load' event
- a timer X ms after the 'load' event.

Or some combination of a timer an load event or first paint.

Perhaps there are other heuristics as well
Comment 1 Saam Barati 2018-04-23 17:23:40 PDT
one way the current heuristic falls down is:
- load "a.com" <-- does prewarm a process
- press a link on "a.com" going to "b.com" <-- uses the prewarmed process
- Go back (to "a.com" <--- does not prewarm a process
- press a link on "a.com" for "c.com" <-- does not use a prewarmed process because one doesn't exist

So we should take into account prewarming a process when using back/forward cache
Comment 2 Saam Barati 2018-04-23 17:26:17 PDT
(In reply to Saam Barati from comment #1)
> one way the current heuristic falls down is:
> - load "a.com" <-- does prewarm a process
> - press a link on "a.com" going to "b.com" <-- uses the prewarmed process
> - Go back (to "a.com" <--- does not prewarm a process
> - press a link on "a.com" for "c.com" <-- does not use a prewarmed process
> because one doesn't exist
> 
> So we should take into account prewarming a process when using back/forward
> cache

actually, I'm off here. Maybe we don't need to do anything, since we do end up using a prewarmed process for "c.com", because "b.com" will prewarm a process
Comment 3 Radar WebKit Bug Importer 2018-05-09 09:52:08 PDT
<rdar://problem/40094910>
Comment 4 Geoffrey Garen 2018-05-09 09:53:24 PDT
I think we also need to merge navigation process prewarming with the process prewarming we already do to speed up launch.
Comment 5 Saam Barati 2018-05-09 10:18:36 PDT
(In reply to Geoffrey Garen from comment #4)
> I think we also need to merge navigation process prewarming with the process
> prewarming we already do to speed up launch.

Merge in what sense? They both call the same codepath if that’s what you mean
Comment 6 Geoffrey Garen 2018-05-09 10:51:59 PDT
> Merge in what sense? They both call the same codepath if that’s what you mean

Yeah, I guess that's what I mean. :P