Changeset 247685 in webkit
- Timestamp:
- Jul 22, 2019, 10:19:29 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r247680 r247685 1 2019-07-22 Alex Christensen <achristensen@webkit.org> 2 3 Add SPI _WKProcessPoolConfiguration.javaScriptConfigurationDirectory 4 https://bugs.webkit.org/show_bug.cgi?id=199917 5 6 Reviewed by Sam Weinig. 7 8 * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: 9 * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: 10 (-[_WKProcessPoolConfiguration javaScriptConfigurationDirectory]): 11 (-[_WKProcessPoolConfiguration setJavaScriptConfigurationDirectory:]): 12 * UIProcess/WebProcessPool.cpp: 13 (WebKit::WebProcessPool::sendWebProcessDataStoreParameters): 14 1 15 2019-07-22 Carlos Garcia Campos <cgarcia@igalia.com> 2 16 -
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h
r245294 r247685 46 46 #endif 47 47 48 @property (nonatomic, nullable, copy) NSURL *javaScriptConfigurationDirectory WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)); 49 48 50 // Network Process properties 49 51 // FIXME: These should be be per-session/data store when we support multiple non-persistent sessions/data stores. -
trunk/Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm
r245075 r247685 111 111 } 112 112 113 - (NSURL *)javaScriptConfigurationDirectory 114 { 115 return [NSURL fileURLWithPath:_processPoolConfiguration->javaScriptConfigurationDirectory() isDirectory:YES]; 116 } 117 118 - (void)setJavaScriptConfigurationDirectory:(NSURL *)directory 119 { 120 if (directory && ![directory isFileURL]) 121 [NSException raise:NSInvalidArgumentException format:@"%@ is not a file URL", directory]; 122 _processPoolConfiguration->setJavaScriptConfigurationDirectory(directory.path); 123 } 124 113 125 - (NSArray<NSURL *> *)additionalReadAccessAllowedURLs 114 126 { -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r247270 r247685 891 891 SandboxExtension::createHandleWithoutResolvingPath(parameters.mediaKeyStorageDirectory, SandboxExtension::Type::ReadWrite, parameters.mediaKeyStorageDirectoryExtensionHandle); 892 892 893 if (javaScriptConfigurationFileEnabled()) { 893 894 if (auto& directory = configuration().javaScriptConfigurationDirectory(); !directory.isEmpty()) 895 parameters.javaScriptConfigurationDirectory = directory; 896 if (javaScriptConfigurationFileEnabled()) 894 897 parameters.javaScriptConfigurationDirectory = websiteDataStore.resolvedJavaScriptConfigurationDirectory(); 895 if (!parameters.javaScriptConfigurationDirectory.isEmpty()) 896 SandboxExtension::createHandleWithoutResolvingPath(parameters.javaScriptConfigurationDirectory, SandboxExtension::Type::ReadWrite, parameters.javaScriptConfigurationDirectoryExtensionHandle); 897 } 898 if (!parameters.javaScriptConfigurationDirectory.isEmpty()) 899 SandboxExtension::createHandleWithoutResolvingPath(parameters.javaScriptConfigurationDirectory, SandboxExtension::Type::ReadWrite, parameters.javaScriptConfigurationDirectoryExtensionHandle); 898 900 899 901 parameters.resourceLoadStatisticsEnabled = websiteDataStore.resourceLoadStatisticsEnabled(); -
trunk/Tools/ChangeLog
r247683 r247685 1 2019-07-22 Alex Christensen <achristensen@webkit.org> 2 3 Add SPI _WKProcessPoolConfiguration.javaScriptConfigurationDirectory 4 https://bugs.webkit.org/show_bug.cgi?id=199917 5 6 Reviewed by Sam Weinig. 7 8 * TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm: 9 (TEST): 10 1 11 2019-07-22 Aakash Jain <aakash_jain@apple.com> 2 12 -
trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm
r243427 r247685 25 25 26 26 #import "config.h" 27 28 #import "Utilities.h" 27 29 #import <WebKit/WKFoundation.h> 28 30 #import <WebKit/WKProcessPoolPrivate.h> 29 31 #import <WebKit/_WKProcessPoolConfiguration.h> 30 32 #import <wtf/RetainPtr.h> … … 82 84 EXPECT_EQ([configuration suppressesConnectionTerminationOnSystemChange], [copy suppressesConnectionTerminationOnSystemChange]); 83 85 } 86 87 TEST(WKProcessPoolConfiguration, JavaScriptConfiguration) 88 { 89 NSFileManager *fileManager = [NSFileManager defaultManager]; 90 NSURL *tempDir = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"CustomPathsTest"] isDirectory:YES]; 91 NSError *error = nil; 92 BOOL success = [fileManager createDirectoryAtURL:tempDir withIntermediateDirectories:YES attributes:nil error:&error]; 93 EXPECT_TRUE(success); 94 EXPECT_FALSE(error); 95 96 NSData *contents = [@"" 97 "processName =~ /WebContent/ {\n" 98 "logFile = \"Log.txt\"\n" 99 "jscOptions {\n" 100 "dumpOptions = 1\n" 101 "dumpDFGDisassembly = true\n" 102 "}\n" 103 "}" 104 "" dataUsingEncoding:NSUTF8StringEncoding]; 105 BOOL result = [contents writeToURL:[tempDir URLByAppendingPathComponent:@"JSC.config"] atomically:YES]; 106 EXPECT_TRUE(result); 107 108 auto poolConfiguration = adoptNS([[_WKProcessPoolConfiguration alloc] init]); 109 [poolConfiguration setJavaScriptConfigurationDirectory:tempDir]; 110 auto webViewConfiguration = adoptNS([[WKWebViewConfiguration alloc] init]); 111 [webViewConfiguration setProcessPool:[[[WKProcessPool alloc] _initWithConfiguration:poolConfiguration.get()] autorelease]]; 112 113 auto webView = adoptNS([[WKWebView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) configuration:webViewConfiguration.get()]); 114 [webView loadHTMLString:@"<html>hello</html>" baseURL:[NSURL URLWithString:@"https://webkit.org/"]]; 115 116 NSString *path = [tempDir URLByAppendingPathComponent:@"Log.txt"].path; 117 while (![fileManager fileExistsAtPath:path]) 118 TestWebKitAPI::Util::spinRunLoop(); 119 [fileManager removeItemAtPath:tempDir.path error:&error]; 120 EXPECT_FALSE(error); 121 }
Note:
See TracChangeset
for help on using the changeset viewer.