Network Loading Refactoring
- Intro
- I (Alex) have been doing a lot of work in it recently - "Its horrible."
- I think we made a mistake using ResourceHandle in WebKit2
- NSURLConnection (Mac) is deprecated
- NSURLSession is the replacement, converting to it now
- fits much better
- Sessions on other ports?
- GTK / EFL - Not sure.
- Another port (Naver Windows) uses the chromium networking stack.
- webkit-dev thread about how to get this working with libsoup => talk to Carlos Garcia
- WebKit2, ResourceLoader proxies to the NetworkProcess
- easy cleanup if we eliminate non-NetworkProcess path
- some loads in WebProcess (ApplicationCache)
Issues
- Confusion
- few people understand how the loaders work (FrameLoader, MainFrameLoader, DocLoader)
- Careful when moving to Sessions
- NSURLConnection hooks may be exposed to WebKit1 Mac APIs, fragile
- Before refactoring, someone has to understand everything
- fix one loader bug and introduce others
- Update the loader diagram http://www.webkit.org/blog-files/loader-diagram.svg
- lots of changes (DocLoader => CachedResourceLoaders)
- main resource is cached now
- ThreadableDocumentLoader => XHR / fetch / workers / background loading
- other loaders (PingLoader)
Goals
- sandbox the web process from making any network requests
- make NetworkProcess mandatory WebKit2
- Memory Cache (Antii)
- want to move work off of the Main Thread in WebProcess (when communicating with NetworkProcess)
- want to improve cooperation between WebProcess and NetworkProcess caches (MemoryCache and NetworkCache)
Last modified
9 years ago
Last modified on Nov 12, 2015, 10:03:13 AM
Note:
See TracWiki
for help on using the wiki.