Changeset 271294 in webkit
- Timestamp:
- Jan 8, 2021 7:22:28 AM (19 months ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 9 edited
-
ChangeLog (modified) (1 diff)
-
Shared/WebProcessCreationParameters.cpp (modified) (2 diffs)
-
Shared/WebProcessCreationParameters.h (modified) (1 diff)
-
UIProcess/Cocoa/WebProcessPoolCocoa.mm (modified) (1 diff)
-
UIProcess/Cocoa/WebProcessProxyCocoa.mm (modified) (1 diff)
-
UIProcess/WebProcessProxy.h (modified) (1 diff)
-
WebProcess/WebProcess.h (modified) (1 diff)
-
WebProcess/WebProcess.messages.in (modified) (1 diff)
-
WebProcess/cocoa/WebProcessCocoa.mm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r271292 r271294 1 2021-01-08 Youenn Fablet <youenn@apple.com> 2 3 Service Worker is no longer inspectable 4 https://bugs.webkit.org/show_bug.cgi?id=220406 5 <rdar://problem/72883757> 6 7 Reviewed by Per Arne Vollan. 8 9 We were sending the sandbox extension later when enabling remote inspector. 10 But this is not soon enough for inspecting service workers. 11 For that reason, send the sandbox extension at process init time based on whether develop menu is on or not. 12 13 Manually tested by validating that Develop Menu can list running service workers. 14 15 * Shared/WebProcessCreationParameters.cpp: 16 (WebKit::WebProcessCreationParameters::encode const): 17 (WebKit::WebProcessCreationParameters::decode): 18 * Shared/WebProcessCreationParameters.h: 19 * UIProcess/Cocoa/WebProcessPoolCocoa.mm: 20 (WebKit::WebProcessPool::platformInitializeWebProcess): 21 * UIProcess/Cocoa/WebProcessProxyCocoa.mm: 22 (WebKit::WebProcessProxy::shouldEnableRemoteInspector): 23 (WebKit::WebProcessProxy::enableRemoteInspectorIfNeeded): 24 * UIProcess/WebProcessProxy.h: 25 * WebProcess/WebProcess.h: 26 * WebProcess/WebProcess.messages.in: 27 * WebProcess/cocoa/WebProcessCocoa.mm: 28 (WebKit::WebProcess::platformInitializeWebProcess): 29 (WebKit::WebProcess::enableRemoteWebInspector): 30 1 31 2021-01-08 Chris Lord <clord@igalia.com> 2 32 -
trunk/Source/WebKit/Shared/WebProcessCreationParameters.cpp
r270392 r271294 57 57 encoder << containerTemporaryDirectoryExtensionHandle; 58 58 #endif 59 #if PLATFORM(COCOA) && ENABLE(REMOTE_INSPECTOR) 60 encoder << enableRemoteWebInspectorExtensionHandle; 61 #endif 59 62 encoder << webCoreLoggingChannels; 60 63 encoder << webKitLoggingChannels; … … 237 240 238 241 #endif 242 #if PLATFORM(COCOA) && ENABLE(REMOTE_INSPECTOR) 243 Optional<SandboxExtension::Handle> enableRemoteWebInspectorExtensionHandle; 244 decoder >> enableRemoteWebInspectorExtensionHandle; 245 if (!enableRemoteWebInspectorExtensionHandle) 246 return false; 247 parameters.enableRemoteWebInspectorExtensionHandle = WTFMove(*enableRemoteWebInspectorExtensionHandle); 248 #endif 249 239 250 if (!decoder.decode(parameters.webCoreLoggingChannels)) 240 251 return false; -
trunk/Source/WebKit/Shared/WebProcessCreationParameters.h
r270392 r271294 83 83 SandboxExtension::Handle containerTemporaryDirectoryExtensionHandle; 84 84 #endif 85 #if PLATFORM(COCOA) && ENABLE(REMOTE_INSPECTOR) 86 SandboxExtension::Handle enableRemoteWebInspectorExtensionHandle; 87 #endif 85 88 #if ENABLE(MEDIA_STREAM) 86 89 SandboxExtension::Handle audioCaptureExtensionHandle; -
trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
r271190 r271294 333 333 SandboxExtension::createHandleWithoutResolvingPath(m_resolvedPaths.containerTemporaryDirectory, SandboxExtension::Type::ReadWrite, parameters.containerTemporaryDirectoryExtensionHandle); 334 334 #endif 335 #if PLATFORM(COCOA) && ENABLE(REMOTE_INSPECTOR) 336 if (WebProcessProxy::shouldEnableRemoteInspector()) { 337 SandboxExtension::Handle enableRemoteWebInspectorExtensionHandle; 338 if (SandboxExtension::createHandleForMachLookup("com.apple.webinspector"_s, WTF::nullopt, enableRemoteWebInspectorExtensionHandle)) 339 parameters.enableRemoteWebInspectorExtensionHandle = WTFMove(enableRemoteWebInspectorExtensionHandle); 340 } 341 #endif 335 342 336 343 parameters.fontAllowList = m_fontAllowList; -
trunk/Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm
r270638 r271294 210 210 211 211 #if ENABLE(REMOTE_INSPECTOR) 212 bool WebProcessProxy::shouldEnableRemoteInspector() 213 { 214 #if PLATFORM(IOS_FAMILY) 215 return CFPreferencesGetAppIntegerValue(WIRRemoteInspectorEnabledKey, WIRRemoteInspectorDomainName, nullptr); 216 #else 217 return CFPreferencesGetAppIntegerValue(CFSTR("ShowDevelopMenu"), CFSTR("com.apple.Safari.SandboxBroker"), nullptr); 218 #endif 219 } 220 212 221 void WebProcessProxy::enableRemoteInspectorIfNeeded() 213 222 { 214 #if PLATFORM(IOS_FAMILY) 215 if (!CFPreferencesGetAppIntegerValue(WIRRemoteInspectorEnabledKey, WIRRemoteInspectorDomainName, nullptr)) 216 return; 217 #else 218 if (!CFPreferencesGetAppIntegerValue(CFSTR("ShowDevelopMenu"), CFSTR("com.apple.Safari.SandboxBroker"), nullptr)) 219 return; 220 #endif 221 SandboxExtension::Handle handle; 222 auto auditToken = connection() ? connection()->getAuditToken() : WTF::nullopt; 223 if (SandboxExtension::createHandleForMachLookup("com.apple.webinspector"_s, auditToken, handle)) 224 send(Messages::WebProcess::EnableRemoteWebInspector(handle), 0); 223 if (!shouldEnableRemoteInspector()) 224 return; 225 send(Messages::WebProcess::EnableRemoteWebInspector(), 0); 225 226 } 226 227 #endif -
trunk/Source/WebKit/UIProcess/WebProcessProxy.h
r271205 r271294 408 408 void pageIsBecomingInvisible(WebCore::PageIdentifier); 409 409 410 #if PLATFORM(COCOA) && ENABLE(REMOTE_INSPECTOR) 411 static bool shouldEnableRemoteInspector(); 412 #endif 413 410 414 protected: 411 415 WebProcessProxy(WebProcessPool&, WebsiteDataStore*, IsPrewarmed); -
trunk/Source/WebKit/WebProcess/WebProcess.h
r271190 r271294 319 319 void setMediaMIMETypes(const Vector<String>); 320 320 #if ENABLE(REMOTE_INSPECTOR) 321 void enableRemoteWebInspector( const SandboxExtension::Handle&);321 void enableRemoteWebInspector(); 322 322 #endif 323 323 void unblockServicesRequiredByAccessibility(const SandboxExtension::HandleArray&); -
trunk/Source/WebKit/WebProcess/WebProcess.messages.in
r271190 r271294 134 134 SetMediaMIMETypes(Vector<String> types) 135 135 #if ENABLE(REMOTE_INSPECTOR) 136 EnableRemoteWebInspector( WebKit::SandboxExtension::Handle handle);136 EnableRemoteWebInspector(); 137 137 #endif 138 138 #endif -
trunk/Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
r271214 r271294 261 261 SandboxExtension::consumePermanently(parameters.containerTemporaryDirectoryExtensionHandle); 262 262 #endif 263 #if PLATFORM(COCOA) && ENABLE(REMOTE_INSPECTOR) 264 if (SandboxExtension::consumePermanently(parameters.enableRemoteWebInspectorExtensionHandle)) 265 Inspector::RemoteInspector::setNeedMachSandboxExtension(false); 266 #endif 263 267 #endif 264 268 … … 992 996 993 997 #if ENABLE(REMOTE_INSPECTOR) 994 void WebProcess::enableRemoteWebInspector(const SandboxExtension::Handle& handle) 995 { 996 SandboxExtension::consumePermanently(handle); 997 Inspector::RemoteInspector::setNeedMachSandboxExtension(false); 998 void WebProcess::enableRemoteWebInspector() 999 { 998 1000 Inspector::RemoteInspector::singleton(); 999 1001 }
Note: See TracChangeset
for help on using the changeset viewer.