[webkit-dev] libsoup and libcurl networking implementations

Alex Christensen achristensen at apple.com
Fri Jan 18 18:24:08 PST 2019


TL; DR could someone get my patch from https://bugs.webkit.org/show_bug.cgi?id=193580 working on Linux and Windows?

As part of the quest to reduce process-global state especially in the NetworkProcess, I’m moving NetworkStorageSession ownership from a static map to a member variable of the NetworkProcess object.  To accomplish this I eliminated all calls to NetworkStorageSession::storageSession and NetworkStorageSession::defaultStorageSession in WebCore, replacing them by a client call to get a NetworkStorageSession from the WebKit/WebKitLegacy layer in https://trac.webkit.org/r240117 but I did not remove all such calls from the libsoup and libcurl networking implementations.  The call to NetworkStorageSession::defaultStorageSession CurlResourceHandleDelegate.cpp and ResourceHandleCurl.cpp shouldn't be too hard to remove by asking the NetworkingContext for the storage instead of calling the static functions, but the calls in DNSResolveQueueSoup.cpp are a little bit trickier.  On Cocoa platforms, DNS lookup relies on state that is more global than a NetworkSession.  On Linux right now, it seems to use state on the default NetworkStorageSession, which is effectively global right now.  I think the best solution that maintains the status quo right now would be to keep the default NetworkStorageSession global in WebKit2 right now, but that requires a little bit more work than I can do blindly and iteratively with EWS.  I’d appreciate someone with a Linux development machine getting it working.



More information about the webkit-dev mailing list