Changeset 264283 in webkit
- Timestamp:
- Jul 12, 2020, 11:53:53 AM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 6 edited
-
ChangeLog (modified) (1 diff)
-
NetworkProcess/NetworkResourceLoadParameters.cpp (modified) (1 diff)
-
UIProcess/Cocoa/WebPageProxyCocoa.mm (modified) (2 diffs)
-
UIProcess/WebPageProxy.cpp (modified) (10 diffs)
-
UIProcess/WebProcessProxy.cpp (modified) (2 diffs)
-
WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r264271 r264283 1 2020-07-12 Darin Adler <darin@apple.com> 2 3 REGRESSION (r261152): 9 blocks of critical sandboxing code disabled because they are guarded with HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN) 4 https://bugs.webkit.org/show_bug.cgi?id=214233 5 6 Reviewed by Per Arne Vollan. 7 8 * NetworkProcess/NetworkResourceLoadParameters.cpp: 9 (WebKit::NetworkResourceLoadParameters::encode const): Remove #if HAVE. 10 * UIProcess/Cocoa/WebPageProxyCocoa.mm: 11 (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Ditto. 12 * UIProcess/WebPageProxy.cpp: 13 (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): Ditto. 14 (WebKit::WebPageProxy::loadRequestWithNavigationShared): Ditto. 15 (WebKit::WebPageProxy::loadFile): Ditto. 16 * UIProcess/WebProcessProxy.cpp: 17 (WebKit::WebProcessProxy::shouldSendPendingMessage): Ditto. 18 * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: 19 (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): Ditto. 20 1 21 2020-07-11 Darin Adler <darin@apple.com> 2 22 -
trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp
r262994 r264283 67 67 if (request.url().isLocalFile()) { 68 68 SandboxExtension::Handle requestSandboxExtension; 69 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)69 #if ENABLE(SANDBOX_EXTENSIONS) 70 70 if (networkProcessAuditToken) 71 71 SandboxExtension::createHandleForReadByAuditToken(request.url().fileSystemPath(), *networkProcessAuditToken, requestSandboxExtension); 72 72 else 73 73 SandboxExtension::createHandle(request.url().fileSystemPath(), SandboxExtension::Type::ReadOnly, requestSandboxExtension); 74 #else75 SandboxExtension::createHandle(request.url().fileSystemPath(), SandboxExtension::Type::ReadOnly, requestSandboxExtension);76 74 #endif 77 75 encoder << requestSandboxExtension; -
trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
r263774 r264283 185 185 BOOL isDirectory; 186 186 if ([[NSFileManager defaultManager] fileExistsAtPath:files[0] isDirectory:&isDirectory] && !isDirectory) { 187 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)188 187 ASSERT(process().connection() && process().connection()->getAuditToken()); 189 188 if (process().connection() && process().connection()->getAuditToken()) … … 191 190 else 192 191 SandboxExtension::createHandle("/", SandboxExtension::Type::ReadOnly, fileReadHandle); 193 #else194 SandboxExtension::createHandle("/", SandboxExtension::Type::ReadOnly, fileReadHandle);195 #endif196 192 willAcquireUniversalFileReadSandboxExtension(m_process); 197 193 } -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r264224 r264283 1181 1181 } 1182 1182 1183 #if !ENABLE(SANDBOX_EXTENSIONS) 1184 1185 void WebPageProxy::maybeInitializeSandboxExtensionHandle(WebProcessProxy&, const URL&, const URL&, SandboxExtension::Handle&, bool) 1186 { 1187 } 1188 1189 #else 1190 1183 1191 void WebPageProxy::maybeInitializeSandboxExtensionHandle(WebProcessProxy& process, const URL& url, const URL& resourceDirectoryURL, SandboxExtension::Handle& sandboxExtensionHandle, bool checkAssumedReadAccessToResourceURL) 1184 1192 { … … 1186 1194 return; 1187 1195 1188 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)1189 1196 // If the process is still launching then it does not have a PID yet. We will take care of creating the sandbox extension 1190 1197 // once the process has finished launching. 1191 1198 if (process.isLaunching() || process.wasTerminated()) 1192 1199 return; 1193 #endif1194 1200 1195 1201 if (!resourceDirectoryURL.isEmpty()) { … … 1197 1203 return; 1198 1204 1199 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)1200 1205 ASSERT(process.connection() && process.connection()->getAuditToken()); 1201 1206 bool createdExtension = false; … … 1209 1214 return; 1210 1215 } 1211 #else1212 if (SandboxExtension::createHandle(resourceDirectoryURL.fileSystemPath(), SandboxExtension::Type::ReadOnly, sandboxExtensionHandle)) {1213 process.assumeReadAccessToBaseURL(*this, resourceDirectoryURL.string());1214 return;1215 }1216 #endif1217 1216 } 1218 1217 … … 1223 1222 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!WebKit::isInspectorPage(*this)); 1224 1223 1225 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)1226 1224 ASSERT(process.connection() && process.connection()->getAuditToken()); 1227 1225 bool createdExtension = false; … … 1235 1233 return; 1236 1234 } 1237 #else1238 if (SandboxExtension::createHandle("/", SandboxExtension::Type::ReadOnly, sandboxExtensionHandle)) {1239 willAcquireUniversalFileReadSandboxExtension(process);1240 return;1241 }1242 #endif1243 1235 1244 1236 #if PLATFORM(COCOA) … … 1252 1244 if (basePath.isNull()) 1253 1245 return; 1254 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)1255 1246 if (process.connection() && process.connection()->getAuditToken()) 1256 1247 createdExtension = SandboxExtension::createHandleForReadByAuditToken(basePath, *(process.connection()->getAuditToken()), sandboxExtensionHandle); … … 1260 1251 if (createdExtension) 1261 1252 process.assumeReadAccessToBaseURL(*this, baseURL.string()); 1262 #else 1263 if (SandboxExtension::createHandle(basePath, SandboxExtension::Type::ReadOnly, sandboxExtensionHandle)) 1264 process.assumeReadAccessToBaseURL(*this, baseURL.string()); 1265 #endif 1266 } 1253 } 1254 1255 #endif 1267 1256 1268 1257 #if !PLATFORM(COCOA) 1258 1269 1259 void WebPageProxy::addPlatformLoadParameters(WebProcessProxy&, LoadParameters&) 1270 1260 { 1271 1261 } 1262 1272 1263 #endif 1273 1264 … … 1330 1321 navigation.setIsLoadedWithNavigationShared(true); 1331 1322 1332 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)1333 1323 if (!process->isLaunching() || !url.isLocalFile()) 1334 1324 process->send(Messages::WebPage::LoadRequest(loadParameters), webPageID); 1335 1325 else 1336 1326 process->send(Messages::WebPage::LoadRequestWaitingForProcessLaunch(loadParameters, m_pageLoadState.resourceDirectoryURL(), m_identifier, true), webPageID); 1337 #else1338 process->send(Messages::WebPage::LoadRequest(loadParameters), webPageID);1339 #endif1340 1327 process->startResponsivenessTimer(); 1341 1328 } … … 1388 1375 addPlatformLoadParameters(m_process, loadParameters); 1389 1376 1390 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)1391 1377 if (m_process->isLaunching()) 1392 1378 send(Messages::WebPage::LoadRequestWaitingForProcessLaunch(loadParameters, resourceDirectoryURL, m_identifier, checkAssumedReadAccessToResourceURL)); 1393 1379 else 1394 1380 send(Messages::WebPage::LoadRequest(loadParameters)); 1395 #else1396 send(Messages::WebPage::LoadRequest(loadParameters));1397 #endif1398 1381 m_process->startResponsivenessTimer(); 1399 1382 -
trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp
r264178 r264283 359 359 bool WebProcessProxy::shouldSendPendingMessage(const PendingMessage& message) 360 360 { 361 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)362 361 if (message.encoder->messageName() == IPC::MessageName::WebPage_LoadRequestWaitingForProcessLaunch) { 363 362 auto buffer = message.encoder->buffer(); … … 377 376 return false; 378 377 } 379 #endif380 378 return true; 381 379 } -
trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
r264021 r264283 140 140 { 141 141 Optional<SandboxExtension::Handle> sandboxExtensionHandle; 142 143 #if ENABLE(SANDBOX_EXTENSIONS) 142 144 if (url.isLocalFile()) { 143 145 SandboxExtension::Handle handle; … … 145 147 146 148 auto createExtension = [&] { 147 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)148 149 if (auto auditToken = m_manager.gpuProcessConnection().auditToken()) 149 150 return SandboxExtension::createHandleForReadByAuditToken(fileSystemPath, auditToken.value(), handle); 150 #endif151 152 151 return SandboxExtension::createHandle(fileSystemPath, SandboxExtension::Type::ReadOnly, handle); 153 152 }; … … 162 161 sandboxExtensionHandle = WTFMove(handle); 163 162 } 163 #endif 164 164 165 165 connection().sendWithAsyncReply(Messages::RemoteMediaPlayerProxy::Load(url, sandboxExtensionHandle, contentType, keySystem), [weakThis = makeWeakPtr(*this)](auto&& configuration) {
Note:
See TracChangeset
for help on using the changeset viewer.