| 1 | == Network Loading Refactoring == |
| 2 | |
| 3 | - Intro |
| 4 | - I (Alex) have been doing a lot of work in it recently - "Its horrible." |
| 5 | - I think we made a mistake using ResourceHandle in WebKit2 |
| 6 | - NSURLConnection (Mac) is deprecated |
| 7 | - NSURLSession is the replacement, converting to it now |
| 8 | - fits much better |
| 9 | |
| 10 | - Sessions on other ports? |
| 11 | - GTK / EFL - Not sure. |
| 12 | - Another port (Samsung Windows) uses the chromium networking stack. |
| 13 | - webkit-dev thread about how to get this working with libsoup => talk to Carlos Garcia |
| 14 | |
| 15 | - WebKit2, ResourceLoader proxies to the NetworkProcess |
| 16 | - easy cleanup if we eliminate non-NetworkProcess path |
| 17 | - some loads in WebProcess (ApplicationCache) |
| 18 | |
| 19 | == Issues == |
| 20 | |
| 21 | - Confusion |
| 22 | - few people understand how the loaders work (FrameLoader, MainFrameLoader, DocLoader) |
| 23 | - Careful when moving to Sessions |
| 24 | - NSURLConnection hooks may be exposed to WebKit1 Mac APIs, fragile |
| 25 | - Before refactoring, someone has to understand everything |
| 26 | - fix one loader bug and introduce others |
| 27 | - Update the loader diagram http://www.webkit.org/blog-files/loader-diagram.svg |
| 28 | - lots of changes (DocLoader => CachedResourceLoaders) |
| 29 | - main resource is cached now |
| 30 | - ThreadableDocumentLoader => XHR / fetch / workers / background loading |
| 31 | - other loaders (PingLoader) |
| 32 | |
| 33 | == Goals == |
| 34 | |
| 35 | - sandbox the web process from making any network requests |
| 36 | - make NetworkProcess mandatory WebKit2 |
| 37 | - Memory Cache (Antii) |
| 38 | - want to move work off of the Main Thread in WebProcess (when communicating with NetworkProcess) |
| 39 | - want to improve cooperation between WebProcess and NetworkProcess caches (MemoryCache and NetworkCache) |