Title: [213747] trunk/Source/WebKit2
Revision
213747
Author
achristen...@apple.com
Date
2017-03-10 19:24:30 -0800 (Fri, 10 Mar 2017)

Log Message

Add SPI to set NSURLSessionConfiguration.allowsCellularAccess from _WKProcessPoolConfiguration
https://bugs.webkit.org/show_bug.cgi?id=169500
<rdar://problem/29599569>

Reviewed by Joseph Pecoraro.

* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* NetworkProcess/cocoa/NetworkSessionCocoa.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::globalAllowsCellularAccess):
(WebKit::NetworkSessionCocoa::setAllowsCellularAccess):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration allowsCellularAccess]):
(-[_WKProcessPoolConfiguration setAllowsCellularAccess:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (213746 => 213747)


--- trunk/Source/WebKit2/ChangeLog	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/ChangeLog	2017-03-11 03:24:30 UTC (rev 213747)
@@ -1,5 +1,30 @@
 2017-03-10  Alex Christensen  <achristen...@webkit.org>
 
+        Add SPI to set NSURLSessionConfiguration.allowsCellularAccess from _WKProcessPoolConfiguration
+        https://bugs.webkit.org/show_bug.cgi?id=169500
+        <rdar://problem/29599569>
+
+        Reviewed by Joseph Pecoraro.
+
+        * NetworkProcess/NetworkProcessCreationParameters.cpp:
+        (WebKit::NetworkProcessCreationParameters::encode):
+        (WebKit::NetworkProcessCreationParameters::decode):
+        * NetworkProcess/NetworkProcessCreationParameters.h:
+        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+        (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
+        * NetworkProcess/cocoa/NetworkSessionCocoa.h:
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (WebKit::globalAllowsCellularAccess):
+        (WebKit::NetworkSessionCocoa::setAllowsCellularAccess):
+        (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
+        * UIProcess/API/APIProcessPoolConfiguration.h:
+        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
+        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+        (-[_WKProcessPoolConfiguration allowsCellularAccess]):
+        (-[_WKProcessPoolConfiguration setAllowsCellularAccess:]):
+
+2017-03-10  Alex Christensen  <achristen...@webkit.org>
+
         Don't compile RemoteNetworkingContext when using NetworkSession
         https://bugs.webkit.org/show_bug.cgi?id=169497
 

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcessCreationParameters.cpp (213746 => 213747)


--- trunk/Source/WebKit2/NetworkProcess/NetworkProcessCreationParameters.cpp	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcessCreationParameters.cpp	2017-03-11 03:24:30 UTC (rev 213747)
@@ -76,6 +76,7 @@
     encoder << nsURLCacheDiskCapacity;
     encoder << sourceApplicationBundleIdentifier;
     encoder << sourceApplicationSecondaryIdentifier;
+    encoder << allowsCellularAccess;
 #if PLATFORM(IOS)
     encoder << ctDataConnectionServiceType;
 #endif
@@ -163,6 +164,8 @@
         return false;
     if (!decoder.decode(result.sourceApplicationSecondaryIdentifier))
         return false;
+    if (!decoder.decode(result.allowsCellularAccess))
+        return false;
 #if PLATFORM(IOS)
     if (!decoder.decode(result.ctDataConnectionServiceType))
         return false;

Modified: trunk/Source/WebKit2/NetworkProcess/NetworkProcessCreationParameters.h (213746 => 213747)


--- trunk/Source/WebKit2/NetworkProcess/NetworkProcessCreationParameters.h	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/NetworkProcess/NetworkProcessCreationParameters.h	2017-03-11 03:24:30 UTC (rev 213747)
@@ -84,6 +84,7 @@
     uint64_t nsURLCacheDiskCapacity;
     String sourceApplicationBundleIdentifier;
     String sourceApplicationSecondaryIdentifier;
+    bool allowsCellularAccess { true };
 #if PLATFORM(IOS)
     String ctDataConnectionServiceType;
 #endif

Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm (213746 => 213747)


--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkProcessCocoa.mm	2017-03-11 03:24:30 UTC (rev 213747)
@@ -87,6 +87,7 @@
     NetworkSessionCocoa::setSourceApplicationAuditTokenData(sourceApplicationAuditData());
     NetworkSessionCocoa::setSourceApplicationBundleIdentifier(parameters.sourceApplicationBundleIdentifier);
     NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier(parameters.sourceApplicationSecondaryIdentifier);
+    NetworkSessionCocoa::setAllowsCellularAccess(parameters.allowsCellularAccess);
 #if PLATFORM(IOS)
     NetworkSessionCocoa::setCTDataConnectionServiceType(parameters.ctDataConnectionServiceType);
 #endif

Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.h (213746 => 213747)


--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.h	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.h	2017-03-11 03:24:30 UTC (rev 213747)
@@ -51,6 +51,7 @@
     static void setSourceApplicationAuditTokenData(RetainPtr<CFDataRef>&&);
     static void setSourceApplicationBundleIdentifier(const String&);
     static void setSourceApplicationSecondaryIdentifier(const String&);
+    static void setAllowsCellularAccess(bool);
 #if PLATFORM(IOS)
     static void setCTDataConnectionServiceType(const String&);
 #endif

Modified: trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm (213746 => 213747)


--- trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm	2017-03-11 03:24:30 UTC (rev 213747)
@@ -429,6 +429,12 @@
     return [NSURLSessionConfiguration defaultSessionConfiguration];
 }
 
+static bool& globalAllowsCellularAccess()
+{
+    static bool allowsCellularAccess { true };
+    return allowsCellularAccess;
+}
+
 static LegacyCustomProtocolManager*& globalLegacyCustomProtocolManager()
 {
     static LegacyCustomProtocolManager* customProtocolManager { nullptr };
@@ -488,6 +494,11 @@
     ASSERT(!sessionsCreated);
     globalSourceApplicationSecondaryIdentifier() = identifier;
 }
+    
+void NetworkSessionCocoa::setAllowsCellularAccess(bool value)
+{
+    globalAllowsCellularAccess() = value;
+}
 
 #if PLATFORM(IOS)
 void NetworkSessionCocoa::setCTDataConnectionServiceType(const String& type)
@@ -520,6 +531,9 @@
 
     NSURLSessionConfiguration *configuration = configurationForSessionID(m_sessionID);
 
+    if (!globalAllowsCellularAccess())
+        configuration.allowsCellularAccess = NO;
+    
     if (NetworkCache::singleton().isEnabled())
         configuration.URLCache = nil;
     

Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h (213746 => 213747)


--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.h	2017-03-11 03:24:30 UTC (rev 213747)
@@ -111,6 +111,9 @@
     const WTF::String& sourceApplicationSecondaryIdentifier() const { return m_sourceApplicationSecondaryIdentifier; }
     void setSourceApplicationSecondaryIdentifier(const WTF::String& sourceApplicationSecondaryIdentifier) { m_sourceApplicationSecondaryIdentifier = sourceApplicationSecondaryIdentifier; }
 
+    bool allowsCellularAccess() const { return m_allowsCellularAccess; }
+    void setAllowsCellularAccess(bool allowsCellularAccess) { m_allowsCellularAccess = allowsCellularAccess; }
+    
     bool alwaysRunsAtBackgroundPriority() const { return m_alwaysRunsAtBackgroundPriority; }
     void setAlwaysRunsAtBackgroundPriority(bool alwaysRunsAtBackgroundPriority) { m_alwaysRunsAtBackgroundPriority = alwaysRunsAtBackgroundPriority; }
 
@@ -145,6 +148,7 @@
     Vector<WTF::String> m_overrideLanguages;
     WTF::String m_sourceApplicationBundleIdentifier;
     WTF::String m_sourceApplicationSecondaryIdentifier;
+    bool m_allowsCellularAccess { true };
     bool m_alwaysRunsAtBackgroundPriority { false };
 #if PLATFORM(IOS)
     WTF::String m_ctDataConnectionServiceType;

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h (213746 => 213747)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h	2017-03-11 03:24:30 UTC (rev 213747)
@@ -47,6 +47,7 @@
 @property (nonatomic) BOOL diskCacheSpeculativeValidationEnabled WK_API_AVAILABLE(macosx(10.12), ios(10.0));
 @property (nonatomic, nullable, copy) NSString *sourceApplicationBundleIdentifier WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
 @property (nonatomic, nullable, copy) NSString *sourceApplicationSecondaryIdentifier WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
+@property (nonatomic) BOOL allowsCellularAccess WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
 #if TARGET_OS_IPHONE
 @property (nonatomic, nullable, copy) NSString *CTDataConnectionServiceType WK_API_AVAILABLE(ios(WK_IOS_TBA));
 @property (nonatomic) BOOL alwaysRunsAtBackgroundPriority WK_API_AVAILABLE(ios(WK_IOS_TBA));

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm (213746 => 213747)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm	2017-03-11 02:12:54 UTC (rev 213746)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm	2017-03-11 03:24:30 UTC (rev 213747)
@@ -171,6 +171,16 @@
     _processPoolConfiguration->setSourceApplicationSecondaryIdentifier(sourceApplicationSecondaryIdentifier);
 }
 
+- (BOOL)allowsCellularAccess
+{
+    return _processPoolConfiguration->allowsCellularAccess();
+}
+
+- (void)setAllowsCellularAccess:(BOOL)allowsCellularAccess
+{
+    _processPoolConfiguration->setAllowsCellularAccess(allowsCellularAccess);
+}
+
 #if PLATFORM(IOS)
 - (NSString *)CTDataConnectionServiceType
 {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to