When loading a big media file (eg: a 180MB MP4 file) the NetworkProcess downloads the whole file before handing it out to the WebProcess. Further debugging showed that the m_bufferingTimer in NetworkResourceLoader (responsible of sending the downloaded data to the WebProcess via IPC) is triggered several times but eventually stops calling bufferingTimerFired() after the timer deadline has passed. The main thread SharedTimer is starved. This starvation happens because the AsyncIONetwork and DiskCacheRead priorities are higher (have lower values in RunLoopSourcePriority.h) than the MainThreadSharedTimer one.
Created attachment 367043 [details] Patch
Comment on attachment 367043 [details] Patch I think it's time to re-consider using the same priorities than the GTK port, note that fdo backend stopped using -70 for their sources. But yes, in the meantime this patch looks good to me. Thanks!
Comment on attachment 367043 [details] Patch Clearing flags on attachment: 367043 Committed r244108: <https://trac.webkit.org/changeset/244108>
All reviewed patches have been landed. Closing bug.