libsoup and libcurl networking implementations

# Alex Christensen (4 days ago)

TL; DR could someone get my patch from 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 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.

Contact us to advertise here
# Michael Catanzaro (3 days ago)

I just started on reducing use of NetworkProcessCreationParameters, which is a little trickier than I was expecting. (WebCore::SoupNetworkSession vs. WebKit::NetworkSessionSoup: confusing much?)

I'll look into this too, since it's related.


Want more features?

Request early access to our private beta of readable email premium.