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);