Title: [232418] branches/safari-605-branch/Source

Diff

Modified: branches/safari-605-branch/Source/WebCore/PAL/ChangeLog (232417 => 232418)


--- branches/safari-605-branch/Source/WebCore/PAL/ChangeLog	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebCore/PAL/ChangeLog	2018-06-01 21:40:58 UTC (rev 232418)
@@ -1,3 +1,16 @@
+2018-06-01  Kocsen Chung  <[email protected]>
+
+        Apply patch. rdar://problem/40688638
+
+    2018-06-01  Alex Christensen  <[email protected]>
+
+            Add WKWebsiteDataStorePrivate._proxyConfiguration SPI
+            ​https://bugs.webkit.org/show_bug.cgi?id=185179
+
+            Reviewed by Andy Estes.
+
+            * pal/spi/cf/CFNetworkSPI.h:
+
 2018-05-02  Jason Marcell  <[email protected]>
 
         Cherry-pick r231242. rdar://problem/39860939

Modified: branches/safari-605-branch/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h (232417 => 232418)


--- branches/safari-605-branch/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h	2018-06-01 21:40:58 UTC (rev 232418)
@@ -105,7 +105,7 @@
 + (void)setAllowsSpecificHTTPSCertificate:(NSArray *)allow forHost:(NSString *)host;
 + (void)setDefaultTimeoutInterval:(NSTimeInterval)seconds;
 - (NSArray *)contentDispositionEncodingFallbackArray;
-- (CFURLRequestRef)_CFURLRequest;
+- (CFMutableURLRequestRef)_CFURLRequest;
 - (id)_initWithCFURLRequest:(CFURLRequestRef)request;
 - (id)_propertyForKey:(NSString *)key;
 - (void)_setProperty:(id)value forKey:(NSString *)key;
@@ -277,6 +277,7 @@
 Boolean _CFHostIsDomainTopLevel(CFStringRef domain);
 void _CFURLRequestCreateArchiveList(CFAllocatorRef, CFURLRequestRef, CFIndex* version, CFTypeRef** objects, CFIndex* objectCount, CFDictionaryRef* protocolProperties);
 CFMutableURLRequestRef _CFURLRequestCreateFromArchiveList(CFAllocatorRef, CFIndex version, CFTypeRef* objects, CFIndex objectCount, CFDictionaryRef protocolProperties);
+void CFURLRequestSetProxySettings(CFMutableURLRequestRef, CFDictionaryRef);
 
 #endif // !PLATFORM(WIN)
 

Modified: branches/safari-605-branch/Source/WebKit/ChangeLog (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/ChangeLog	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/ChangeLog	2018-06-01 21:40:58 UTC (rev 232418)
@@ -1,3 +1,37 @@
+2018-06-01  Kocsen Chung  <[email protected]>
+
+        Apply patch. rdar://problem/40688638
+
+    2018-06-01  Alex Christensen  <[email protected]>
+
+            Add WKWebsiteDataStorePrivate._proxyConfiguration SPI
+           ​https://bugs.webkit.org/show_bug.cgi?id=185179
+
+            Reviewed by Andy Estes.
+
+            * NetworkProcess/NetworkSessionCreationParameters.h:
+            (WebKit::NetworkSessionCreationParameters::encode const):
+            (WebKit::NetworkSessionCreationParameters::decode):
+            * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+            (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded):
+            * NetworkProcess/cocoa/NetworkSessionCocoa.h:
+            * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+            (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
+            * Shared/WebsiteDataStoreParameters.cpp:
+            (WebKit::WebsiteDataStoreParameters::privateSessionParameters):
+            * Shared/cf/ArgumentCodersCF.cpp:
+            (IPC::encode):
+            (IPC::decode):
+            * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
+            (-[WKWebsiteDataStore _setProxyConfiguration:]):
+            (-[WKWebsiteDataStore _proxyConfiguration]):
+            * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
+            * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
+            (WebKit::WebsiteDataStore::parameters):
+            * UIProcess/WebsiteData/WebsiteDataStore.h:
+            (WebKit::WebsiteDataStore::setProxyConfiguration):
+            (WebKit::WebsiteDataStore::proxyConfiguration):
+
 2018-05-31  Kocsen Chung  <[email protected]>
 
         Cherry-pick r232281. rdar://problem/40641066

Modified: branches/safari-605-branch/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h	2018-06-01 21:40:58 UTC (rev 232418)
@@ -30,6 +30,10 @@
 #include <wtf/EnumTraits.h>
 #include <wtf/text/WTFString.h>
 
+#if PLATFORM(COCOA)
+#include "ArgumentCodersCF.h"
+#endif
+
 namespace WebKit {
 
 class LegacyCustomProtocolManager;
@@ -44,6 +48,9 @@
     LegacyCustomProtocolManager* legacyCustomProtocolManager { nullptr };
     String boundInterfaceIdentifier;
     AllowsCellularAccess allowsCellularAccess { AllowsCellularAccess::Yes };
+#if PLATFORM(COCOA)
+    RetainPtr<CFDictionaryRef> proxyConfiguration;
+#endif
 };
 
 inline void NetworkSessionCreationParameters::encode(IPC::Encoder& encoder) const
@@ -51,6 +58,9 @@
     encoder << sessionID;
     encoder << boundInterfaceIdentifier;
     encoder << allowsCellularAccess;
+#if PLATFORM(COCOA)
+    IPC::encode(encoder, proxyConfiguration.get());
+#endif
 }
 
 inline std::optional<NetworkSessionCreationParameters> NetworkSessionCreationParameters::decode(IPC::Decoder& decoder)
@@ -69,7 +79,20 @@
     if (!allowsCellularAccess)
         return std::nullopt;
 
-    return {{ sessionID, nullptr, WTFMove(*boundInterfaceIdentifier), WTFMove(*allowsCellularAccess) }};
+#if PLATFORM(COCOA)
+    RetainPtr<CFDictionaryRef> proxyConfiguration;
+    if (!IPC::decode(decoder, proxyConfiguration))
+        return std::nullopt;
+#endif
+
+    return {{ sessionID
+        , nullptr
+        , WTFMove(*boundInterfaceIdentifier)
+        , WTFMove(*allowsCellularAccess)
+#if PLATFORM(COCOA)
+        , WTFMove(proxyConfiguration)
+#endif
+    }};
 }
 
 } // namespace WebKit

Modified: branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm	2018-06-01 21:40:58 UTC (rev 232418)
@@ -82,7 +82,10 @@
     shouldContentEncodingSniff = true;
 #endif
     auto& cocoaSession = static_cast<NetworkSessionCocoa&>(m_session.get());
-    if (shouldContentSniff && shouldContentEncodingSniff && cocoaSession.m_boundInterfaceIdentifier.isNull())
+    if (shouldContentSniff
+        && shouldContentEncodingSniff
+        && cocoaSession.m_boundInterfaceIdentifier.isNull()
+        && !cocoaSession.m_proxyConfiguration)
         return;
 
     auto mutableRequest = adoptNS([nsRequest mutableCopy]);
@@ -98,6 +101,8 @@
     if (!cocoaSession.m_boundInterfaceIdentifier.isNull())
         [mutableRequest setBoundInterfaceIdentifier:cocoaSession.m_boundInterfaceIdentifier];
 
+    if (cocoaSession.m_proxyConfiguration)
+        CFURLRequestSetProxySettings([mutableRequest _CFURLRequest], cocoaSession.m_proxyConfiguration.get());
     nsRequest = mutableRequest.autorelease();
 }
 

Modified: branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h	2018-06-01 21:40:58 UTC (rev 232418)
@@ -84,6 +84,7 @@
     RetainPtr<WKNetworkSessionDelegate> m_statelessSessionDelegate;
 
     String m_boundInterfaceIdentifier;
+    RetainPtr<CFDictionaryRef> m_proxyConfiguration;
 };
 
 } // namespace WebKit

Modified: branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2018-06-01 21:40:58 UTC (rev 232418)
@@ -653,6 +653,7 @@
 NetworkSessionCocoa::NetworkSessionCocoa(NetworkSessionCreationParameters&& parameters)
     : NetworkSession(parameters.sessionID)
     , m_boundInterfaceIdentifier(parameters.boundInterfaceIdentifier)
+    , m_proxyConfiguration(parameters.proxyConfiguration)
 {
     relaxAdoptionRequirement();
 

Modified: branches/safari-605-branch/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/Shared/WebsiteDataStoreParameters.cpp	2018-06-01 21:40:58 UTC (rev 232418)
@@ -89,7 +89,11 @@
 WebsiteDataStoreParameters WebsiteDataStoreParameters::privateSessionParameters(PAL::SessionID sessionID)
 {
     ASSERT(sessionID.isEphemeral());
-    return { { }, { }, { }, { }, WebsiteDataStore::defaultCacheStoragePerOriginQuota, { }, { sessionID, { }, { }, AllowsCellularAccess::Yes }};
+    return { { }, { }, { }, { }, WebsiteDataStore::defaultCacheStoragePerOriginQuota, { }, { sessionID, { }, { }, AllowsCellularAccess::Yes
+#if PLATFORM(COCOA)
+        , nullptr
+#endif
+    }};
 }
 
 } // namespace WebKit

Modified: branches/safari-605-branch/Source/WebKit/Shared/cf/ArgumentCodersCF.cpp (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/Shared/cf/ArgumentCodersCF.cpp	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/Shared/cf/ArgumentCodersCF.cpp	2018-06-01 21:40:58 UTC (rev 232418)
@@ -408,6 +408,12 @@
 
 void encode(Encoder& encoder, CFDictionaryRef dictionary)
 {
+    if (!dictionary) {
+        encoder << true;
+        return;
+    }
+    encoder << false;
+
     CFIndex size = CFDictionaryGetCount(dictionary);
     Vector<CFTypeRef, 32> keys(size);
     Vector<CFTypeRef, 32> values(size);
@@ -432,6 +438,14 @@
 
 bool decode(Decoder& decoder, RetainPtr<CFDictionaryRef>& result)
 {
+    bool isNull = false;
+    if (!decoder.decode(isNull))
+        return false;
+    if (isNull) {
+        result = nullptr;
+        return true;
+    }
+
     uint64_t size;
     if (!decoder.decode(size))
         return false;

Modified: branches/safari-605-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm	2018-06-01 21:40:58 UTC (rev 232418)
@@ -552,6 +552,16 @@
     WebKit::WebResourceLoadStatisticsTelemetry::setNotifyPagesWhenTelemetryWasCaptured(value);
 }
 
+- (void)_setProxyConfiguration:(NSDictionary *)configuration
+{
+    _websiteDataStore-bsiteDataStore().setProxyConfiguration((CFDictionaryRef)configuration);
+}
+
+- (NSDictionary *)_proxyConfiguration
+{
+    return (NSDictionary *)_websiteDataStore->websiteDataStore().proxyConfiguration();
+}
+
 - (void)_resourceLoadStatisticsSetShouldSubmitTelemetry:(BOOL)value
 {
     auto* store = _websiteDataStore->websiteDataStore().resourceLoadStatistics();

Modified: branches/safari-605-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h	2018-06-01 21:40:58 UTC (rev 232418)
@@ -51,6 +51,7 @@
 
 @property (nonatomic, setter=_setBoundInterfaceIdentifier:) NSString *_boundInterfaceIdentifier WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
 @property (nonatomic, setter=_setAllowsCellularAccess:) BOOL _allowsCellularAccess WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
+@property (nonatomic, setter=_setProxyConfiguration:) NSDictionary *_proxyConfiguration WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
 
 // ResourceLoadStatistics SPI for testing.
 - (void)_resourceLoadStatisticsSetLastSeen:(double)seconds forHost:(NSString *)host WK_API_AVAILABLE(macosx(10.13), ios(11.0));

Modified: branches/safari-605-branch/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm	2018-06-01 21:40:58 UTC (rev 232418)
@@ -55,7 +55,7 @@
     resolveDirectoriesIfNecessary();
 
     WebsiteDataStoreParameters parameters;
-    parameters.networkSessionParameters = { m_sessionID, nullptr, m_boundInterfaceIdentifier, m_allowsCellularAccess };
+    parameters.networkSessionParameters = { m_sessionID, nullptr, m_boundInterfaceIdentifier, m_allowsCellularAccess, m_proxyConfiguration };
 
     auto cookieFile = resolvedCookieStorageFile();
 

Modified: branches/safari-605-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h (232417 => 232418)


--- branches/safari-605-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h	2018-06-01 21:28:40 UTC (rev 232417)
+++ branches/safari-605-branch/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h	2018-06-01 21:40:58 UTC (rev 232418)
@@ -159,6 +159,10 @@
     void setAllowsCellularAccess(AllowsCellularAccess allows) { m_allowsCellularAccess = allows; }
     AllowsCellularAccess allowsCellularAccess() { return m_allowsCellularAccess; }
 
+#if PLATFORM(COCOA)
+    void setProxyConfiguration(CFDictionaryRef configuration) { m_proxyConfiguration = figuration; }
+    CFDictionaryRef proxyConfiguration() { return m_proxyConfiguration.get(); }
+#endif
     static void allowWebsiteDataRecordsForAllOrigins();
 
 private:
@@ -205,6 +209,7 @@
 #if PLATFORM(COCOA)
     Vector<uint8_t> m_uiProcessCookieStorageIdentifier;
     RetainPtr<CFHTTPCookieStorageRef> m_cfCookieStorage;
+    RetainPtr<CFDictionaryRef> m_proxyConfiguration;
 #endif
     HashSet<WebCore::Cookie> m_pendingCookies;
     
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to