== 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)