Title: [213854] trunk/Source/WebKit2
Revision
213854
Author
[email protected]
Date
2017-03-13 10:51:53 -0700 (Mon, 13 Mar 2017)

Log Message

Add iOS plumbing to WebProcess to enable _javascript_Core configuration and logging
https://bugs.webkit.org/show_bug.cgi?id=169489

Reviewed by Geoffrey Garen.

Added new preference for enabling the use of a _javascript_ configuration file
in iOS builds.  The preference is used to enable the processing of the
configuration file.

(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
* UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
* UIProcess/API/APIWebsiteDataStore.h:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
(API::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::setJavaScriptConfigurationFileEnabledFromDefaults):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
* UIProcess/WebProcessPool.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (213853 => 213854)


--- trunk/Source/WebKit2/ChangeLog	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/ChangeLog	2017-03-13 17:51:53 UTC (rev 213854)
@@ -1,3 +1,28 @@
+2017-03-13  Michael Saboff  <[email protected]>
+
+        Add iOS plumbing to WebProcess to enable _javascript_Core configuration and logging
+        https://bugs.webkit.org/show_bug.cgi?id=169489
+
+        Reviewed by Geoffrey Garen.
+
+        Added new preference for enabling the use of a _javascript_ configuration file
+        in iOS builds.  The preference is used to enable the processing of the
+        configuration file.
+
+        (API::ProcessPoolConfiguration::ProcessPoolConfiguration):
+        * UIProcess/API/APIWebsiteDataStore.cpp:
+        (API::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
+        * UIProcess/API/APIWebsiteDataStore.h:
+        * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
+        (API::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
+        (API::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
+        (API::WebsiteDataStore::defaultDataStoreConfiguration):
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::setJavaScriptConfigurationFileEnabledFromDefaults):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::createNewWebProcess):
+        * UIProcess/WebProcessPool.h:
+
 2017-03-13  Zan Dobersek  <[email protected]>
 
         [WK2] Move AcceleratedSurface files under WebProcess/WebPage/CoordinatedGraphics

Modified: trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp (213853 => 213854)


--- trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/UIProcess/API/APIProcessPoolConfiguration.cpp	2017-03-13 17:51:53 UTC (rev 213854)
@@ -82,7 +82,7 @@
     , m_localStorageDirectory(WebsiteDataStore::defaultLocalStorageDirectory())
     , m_webSQLDatabaseDirectory(WebsiteDataStore::defaultWebSQLDatabaseDirectory())
     , m_mediaKeysStorageDirectory(WebsiteDataStore::defaultMediaKeysStorageDirectory())
-    , m_javaScriptConfigurationDirectory("")
+    , m_javaScriptConfigurationDirectory(WebsiteDataStore::defaultJavaScriptConfigurationDirectory())
 {
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp (213853 => 213854)


--- trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.cpp	2017-03-13 17:51:53 UTC (rev 213854)
@@ -149,6 +149,12 @@
     // FIXME: Implement. https://bugs.webkit.org/show_bug.cgi?id=156369 and https://bugs.webkit.org/show_bug.cgi?id=156370
     return String();
 }
+
+String WebsiteDataStore::defaultJavaScriptConfigurationDirectory()
+{
+    // FIXME: Implement.
+    return String();
+}
 #endif
 
 }

Modified: trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h (213853 => 213854)


--- trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/UIProcess/API/APIWebsiteDataStore.h	2017-03-13 17:51:53 UTC (rev 213854)
@@ -60,12 +60,16 @@
     static String defaultWebSQLDatabaseDirectory();
     static String defaultResourceLoadStatisticsDirectory();
 
+    static String defaultJavaScriptConfigurationDirectory();
+
     static WebKit::WebsiteDataStore::Configuration defaultDataStoreConfiguration();
 
 private:
+    enum ShouldCreateDirectory { CreateDirectory, DontCreateDirectory };
+
     WebsiteDataStore();
 
-    static String tempDirectoryFileSystemRepresentation(const String& directoryName);
+    static String tempDirectoryFileSystemRepresentation(const String& directoryName, ShouldCreateDirectory shouldCreateDirectory = CreateDirectory);
     static String cacheDirectoryFileSystemRepresentation(const String& directoryName);
     static String websiteDataDirectoryFileSystemRepresentation(const String& directoryName);
 

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm (213853 => 213854)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm	2017-03-13 17:51:53 UTC (rev 213854)
@@ -87,8 +87,13 @@
     return websiteDataDirectoryFileSystemRepresentation("ResourceLoadStatistics");
 }
 
-String WebsiteDataStore::tempDirectoryFileSystemRepresentation(const String& directoryName)
+String WebsiteDataStore::defaultJavaScriptConfigurationDirectory()
 {
+    return tempDirectoryFileSystemRepresentation("_javascript_CoreDebug", DontCreateDirectory);
+}
+
+String WebsiteDataStore::tempDirectoryFileSystemRepresentation(const String& directoryName, ShouldCreateDirectory shouldCreateDirectory)
+{
     static dispatch_once_t onceToken;
     static NSURL *tempURL;
     
@@ -108,7 +113,9 @@
     });
     
     NSURL *url = "" URLByAppendingPathComponent:directoryName isDirectory:YES];
-    if (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:nullptr])
+
+    if (shouldCreateDirectory == CreateDirectory
+        && (![[NSFileManager defaultManager] createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:nullptr]))
         LOG_ERROR("Failed to create directory %@", url);
     
     return url.absoluteURL.path.fileSystemRepresentation;
@@ -183,6 +190,8 @@
     configuration.localStorageDirectory = defaultLocalStorageDirectory();
     configuration.mediaKeysStorageDirectory = defaultMediaKeysStorageDirectory();
     configuration.resourceLoadStatisticsDirectory = defaultResourceLoadStatisticsDirectory();
+    
+    configuration._javascript_ConfigurationDirectory = defaultJavaScriptConfigurationDirectory();
 
     return configuration;
 }

Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (213853 => 213854)


--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm	2017-03-13 17:51:53 UTC (rev 213854)
@@ -490,6 +490,15 @@
 #endif
 }
 
+#if PLATFORM(IOS)
+void WebProcessPool::setJavaScriptConfigurationFileEnabledFromDefaults()
+{
+    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+    setJavaScriptConfigurationFileEnabled([defaults boolForKey:@"WebKitJavaScriptCoreUseConfigFile"]);
+}
+#endif
+
 bool WebProcessPool::isNetworkCacheEnabled()
 {
 #if ENABLE(NETWORK_CACHE)

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (213853 => 213854)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2017-03-13 17:51:53 UTC (rev 213854)
@@ -599,6 +599,10 @@
     if (!parameters.mediaKeyStorageDirectory.isEmpty())
         SandboxExtension::createHandleWithoutResolvingPath(parameters.mediaKeyStorageDirectory, SandboxExtension::ReadWrite, parameters.mediaKeyStorageDirectoryExtensionHandle);
 
+#if PLATFORM(IOS)
+    setJavaScriptConfigurationFileEnabledFromDefaults();
+#endif
+
     if (_javascript_ConfigurationFileEnabled()) {
         parameters._javascript_ConfigurationDirectory = websiteDataStore ? websiteDataStore->resolvedJavaScriptConfigurationDirectory() : String();
         if (!parameters._javascript_ConfigurationDirectory.isEmpty())

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (213853 => 213854)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2017-03-13 17:42:19 UTC (rev 213853)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2017-03-13 17:51:53 UTC (rev 213854)
@@ -278,6 +278,10 @@
     
     bool _javascript_ConfigurationFileEnabled() { return m_javaScriptConfigurationFileEnabled; }
     void setJavaScriptConfigurationFileEnabled(bool flag);
+#if PLATFORM(IOS)
+    void setJavaScriptConfigurationFileEnabledFromDefaults();
+#endif
+
     void garbageCollectJavaScriptObjects();
     void setJavaScriptGarbageCollectorTimerEnabled(bool flag);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to