Changeset 271482 in webkit
- Timestamp:
- Jan 14, 2021, 7:31:19 AM (6 years ago)
- Location:
- trunk/Source
- Files:
-
- 7 edited
-
WTF/ChangeLog (modified) (1 diff)
-
WTF/wtf/PlatformUse.h (modified) (1 diff)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/GPUProcess/GPUProcess.cpp (modified) (1 diff)
-
WebKit/GPUProcess/GPUProcessCreationParameters.cpp (modified) (2 diffs)
-
WebKit/GPUProcess/GPUProcessCreationParameters.h (modified) (1 diff)
-
WebKit/UIProcess/GPU/GPUProcessProxy.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r271468 r271482 1 2021-01-14 Per Arne Vollan <pvollan@apple.com> 2 3 [GPUP][iOS] Create sandbox extensions for cache and temp directory 4 https://bugs.webkit.org/show_bug.cgi?id=220595 5 <rdar://problem/72450307> 6 7 Reviewed by Chris Dumez. 8 9 Add USE define for using sandbox extensions to grant access to cache and temp directory. 10 11 * wtf/PlatformUse.h: 12 1 13 2021-01-13 Myles C. Maxfield <mmaxfield@apple.com> 2 14 -
trunk/Source/WTF/wtf/PlatformUse.h
r271267 r271482 327 327 #define USE_OPENXR 0 328 328 #endif 329 330 #if PLATFORM(IOS_FAMILY) 331 #define USE_SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS 1 332 #endif -
trunk/Source/WebKit/ChangeLog
r271479 r271482 1 2021-01-14 Per Arne Vollan <pvollan@apple.com> 2 3 [GPUP][iOS] Create sandbox extensions for cache and temp directory 4 https://bugs.webkit.org/show_bug.cgi?id=220595 5 <rdar://problem/72450307> 6 7 Reviewed by Chris Dumez. 8 9 Create sandbox extensions for GPU process access to cache and temp directory. 10 11 * GPUProcess/GPUProcess.cpp: 12 (WebKit::GPUProcess::initializeGPUProcess): 13 * GPUProcess/GPUProcessCreationParameters.cpp: 14 (WebKit::GPUProcessCreationParameters::encode const): 15 (WebKit::GPUProcessCreationParameters::decode): 16 * GPUProcess/GPUProcessCreationParameters.h: 17 * UIProcess/GPU/GPUProcessProxy.cpp: 18 (WebKit::GPUProcessProxy::GPUProcessProxy): 19 1 20 2021-01-13 Tim Horton <timothy_horton@apple.com> 2 21 -
trunk/Source/WebKit/GPUProcess/GPUProcess.cpp
r270720 r271482 144 144 #endif 145 145 146 #if USE(SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS) 147 SandboxExtension::consumePermanently(parameters.containerCachesDirectoryExtensionHandle); 148 SandboxExtension::consumePermanently(parameters.containerTemporaryDirectoryExtensionHandle); 149 #endif 150 146 151 #if HAVE(VISIBILITY_PROPAGATION_VIEW) 147 152 m_contextForVisibilityPropagation = LayerHostingContext::createForExternalHostingProcess({ -
trunk/Source/WebKit/GPUProcess/GPUProcessCreationParameters.cpp
r257385 r271482 51 51 #endif 52 52 encoder << parentPID; 53 54 #if USE(SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS) 55 encoder << containerCachesDirectoryExtensionHandle; 56 encoder << containerTemporaryDirectoryExtensionHandle; 57 #endif 53 58 } 54 59 … … 69 74 if (!decoder.decode(result.parentPID)) 70 75 return false; 76 77 #if USE(SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS) 78 Optional<SandboxExtension::Handle> containerCachesDirectoryExtensionHandle; 79 decoder >> containerCachesDirectoryExtensionHandle; 80 if (!containerCachesDirectoryExtensionHandle) 81 return false; 82 result.containerCachesDirectoryExtensionHandle = WTFMove(*containerCachesDirectoryExtensionHandle); 83 84 Optional<SandboxExtension::Handle> containerTemporaryDirectoryExtensionHandle; 85 decoder >> containerTemporaryDirectoryExtensionHandle; 86 if (!containerTemporaryDirectoryExtensionHandle) 87 return false; 88 result.containerTemporaryDirectoryExtensionHandle = WTFMove(*containerTemporaryDirectoryExtensionHandle); 89 #endif 90 71 91 return true; 72 92 } -
trunk/Source/WebKit/GPUProcess/GPUProcessCreationParameters.h
r260025 r271482 50 50 ProcessID parentPID; 51 51 52 #if USE(SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS) 53 SandboxExtension::Handle containerCachesDirectoryExtensionHandle; 54 SandboxExtension::Handle containerTemporaryDirectoryExtensionHandle; 55 #endif 56 52 57 void encode(IPC::Encoder&) const; 53 58 static WARN_UNUSED_RETURN bool decode(IPC::Decoder&, GPUProcessCreationParameters&); -
trunk/Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
r270415 r271482 50 50 #endif 51 51 52 #if USE(SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS) 53 #include "SandboxUtilities.h" 54 #include <wtf/FileSystem.h> 55 #endif 56 52 57 #define MESSAGE_CHECK(assertion) MESSAGE_CHECK_BASE(assertion, this->connection()) 53 58 … … 106 111 return singleton().get(); 107 112 } 113 114 #if USE(SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS) 115 static String gpuProcessCachesDirectory() 116 { 117 String path = pathForProcessContainer() + "/Library/Caches/com.apple.WebKit.GPU/"; 118 path = stringByResolvingSymlinksInPath(path); 119 120 FileSystem::makeAllDirectories(path); 121 122 return path; 123 } 124 #endif 108 125 109 126 GPUProcessProxy::GPUProcessProxy() … … 133 150 parameters.parentPID = getCurrentProcessID(); 134 151 152 #if USE(SANDBOX_EXTENSIONS_FOR_CACHE_AND_TEMP_DIRECTORY_ACCESS) 153 auto containerCachesDirectory = resolveAndCreateReadWriteDirectoryForSandboxExtension(gpuProcessCachesDirectory()); 154 auto containerTemporaryDirectory = resolveAndCreateReadWriteDirectoryForSandboxExtension(WebProcessPool::containerTemporaryDirectory()); 155 156 if (!containerCachesDirectory.isEmpty()) 157 SandboxExtension::createHandleWithoutResolvingPath(containerCachesDirectory, SandboxExtension::Type::ReadWrite, parameters.containerCachesDirectoryExtensionHandle); 158 159 if (!containerTemporaryDirectory.isEmpty()) 160 SandboxExtension::createHandleWithoutResolvingPath(containerTemporaryDirectory, SandboxExtension::Type::ReadWrite, parameters.containerTemporaryDirectoryExtensionHandle); 161 #endif 162 135 163 // Initialize the GPU process. 136 164 send(Messages::GPUProcess::InitializeGPUProcess(parameters), 0);
Note:
See TracChangeset
for help on using the changeset viewer.