Changeset 230079 in webkit
- Timestamp:
- Mar 29, 2018 1:36:06 PM (6 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r230076 r230079 1 2018-03-29 Youenn Fablet <youenn@apple.com> 2 3 Synchronize SecurityOrigin related scheme registries with NetworkProcess 4 https://bugs.webkit.org/show_bug.cgi?id=184140 5 6 Reviewed by Chris Dumez. 7 8 Add syncing of scheme registries that are used by SecurityOrigin and ContentSecurityPolicy 9 so that we can properly use them in NetworkProcess as we do in WebProcess. 10 The registries that are not synced are: 11 - URLSchemeAsEmptyDocument 12 - URLSchemeDomainRelaxationForbidden 13 - URLSchemeAsCachePartitioned 14 - URLSchemeAsCanDisplayOnlyIfCanRequest 15 16 * NetworkProcess/NetworkProcess.cpp: 17 (WebKit::NetworkProcess::initializeNetworkProcess): 18 (WebKit::NetworkProcess::registerURLSchemeAsSecure const): 19 (WebKit::NetworkProcess::registerURLSchemeAsBypassingContentSecurityPolicy const): 20 (WebKit::NetworkProcess::registerURLSchemeAsLocal const): 21 (WebKit::NetworkProcess::registerURLSchemeAsNoAccess const): 22 (WebKit::NetworkProcess::registerURLSchemeAsDisplayIsolated const): 23 (WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): 24 (WebKit::NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): 25 * NetworkProcess/NetworkProcess.h: 26 * NetworkProcess/NetworkProcess.messages.in: 27 * NetworkProcess/NetworkProcessCreationParameters.cpp: 28 (WebKit::NetworkProcessCreationParameters::encode const): 29 (WebKit::NetworkProcessCreationParameters::decode): 30 * NetworkProcess/NetworkProcessCreationParameters.h: 31 * UIProcess/WebProcessPool.cpp: 32 (WebKit::WebProcessPool::ensureNetworkProcess): 33 (WebKit::WebProcessPool::registerURLSchemeAsSecure): 34 (WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy): 35 (WebKit::WebProcessPool::registerURLSchemeAsLocal): 36 (WebKit::WebProcessPool::registerURLSchemeAsNoAccess): 37 (WebKit::WebProcessPool::registerURLSchemeAsDisplayIsolated): 38 (WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled): 39 (WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest): 40 1 41 2018-03-29 Brent Fulgham <bfulgham@apple.com> 2 42 -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp
r230035 r230079 68 68 #include <WebCore/ResourceRequest.h> 69 69 #include <WebCore/RuntimeApplicationChecks.h> 70 #include <WebCore/SchemeRegistry.h> 70 71 #include <WebCore/SecurityOriginData.h> 71 72 #include <WebCore/SecurityOriginHash.h> … … 272 273 supplement->initialize(parameters); 273 274 275 for (auto& scheme : parameters.urlSchemesRegisteredAsSecure) 276 registerURLSchemeAsSecure(scheme); 277 278 for (auto& scheme : parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy) 279 registerURLSchemeAsBypassingContentSecurityPolicy(scheme); 280 281 for (auto& scheme : parameters.urlSchemesRegisteredAsLocal) 282 registerURLSchemeAsLocal(scheme); 283 284 for (auto& scheme : parameters.urlSchemesRegisteredAsNoAccess) 285 registerURLSchemeAsNoAccess(scheme); 286 287 for (auto& scheme : parameters.urlSchemesRegisteredAsDisplayIsolated) 288 registerURLSchemeAsDisplayIsolated(scheme); 289 290 for (auto& scheme : parameters.urlSchemesRegisteredAsCORSEnabled) 291 registerURLSchemeAsCORSEnabled(scheme); 292 293 for (auto& scheme : parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest) 294 registerURLSchemeAsCanDisplayOnlyIfCanRequest(scheme); 295 274 296 RELEASE_LOG(Process, "%p - NetworkProcess::initializeNetworkProcess: Presenting process = %d", this, WebCore::presentingApplicationPID()); 275 297 } … … 867 889 } 868 890 891 void NetworkProcess::registerURLSchemeAsSecure(const String& scheme) const 892 { 893 SchemeRegistry::registerURLSchemeAsSecure(scheme); 894 } 895 896 void NetworkProcess::registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme) const 897 { 898 SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy(scheme); 899 } 900 901 void NetworkProcess::registerURLSchemeAsLocal(const String& scheme) const 902 { 903 SchemeRegistry::registerURLSchemeAsLocal(scheme); 904 } 905 906 void NetworkProcess::registerURLSchemeAsNoAccess(const String& scheme) const 907 { 908 SchemeRegistry::registerURLSchemeAsNoAccess(scheme); 909 } 910 911 void NetworkProcess::registerURLSchemeAsDisplayIsolated(const String& scheme) const 912 { 913 SchemeRegistry::registerURLSchemeAsDisplayIsolated(scheme); 914 } 915 916 void NetworkProcess::registerURLSchemeAsCORSEnabled(const String& scheme) const 917 { 918 SchemeRegistry::registerURLSchemeAsCORSEnabled(scheme); 919 } 920 921 void NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest(const String& scheme) const 922 { 923 SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest(scheme); 924 } 925 869 926 #if !PLATFORM(COCOA) 870 927 void NetworkProcess::initializeProcess(const ChildProcessInitializationParameters&) -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.h
r229619 r230079 241 241 #endif 242 242 243 void registerURLSchemeAsSecure(const String&) const; 244 void registerURLSchemeAsBypassingContentSecurityPolicy(const String&) const; 245 void registerURLSchemeAsLocal(const String&) const; 246 void registerURLSchemeAsNoAccess(const String&) const; 247 void registerURLSchemeAsDisplayIsolated(const String&) const; 248 void registerURLSchemeAsCORSEnabled(const String&) const; 249 void registerURLSchemeAsCanDisplayOnlyIfCanRequest(const String&) const; 250 243 251 // Connections to WebProcesses. 244 252 Vector<RefPtr<NetworkConnectionToWebProcess>> m_webProcessConnections; -
trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in
r229619 r230079 92 92 93 93 SetSessionIsControlledByAutomation(PAL::SessionID sessionID, bool controlled); 94 95 RegisterURLSchemeAsSecure(String scheme) 96 RegisterURLSchemeAsBypassingContentSecurityPolicy(String scheme) 97 RegisterURLSchemeAsLocal(String scheme) 98 RegisterURLSchemeAsNoAccess(String scheme) 99 RegisterURLSchemeAsDisplayIsolated(String scheme) 100 RegisterURLSchemeAsCORSEnabled(String scheme) 101 RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(String scheme) 94 102 } -
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp
r228905 r230079 108 108 encoder << recordReplayCacheLocation; 109 109 #endif 110 111 encoder << urlSchemesRegisteredAsSecure; 112 encoder << urlSchemesRegisteredAsBypassingContentSecurityPolicy; 113 encoder << urlSchemesRegisteredAsLocal; 114 encoder << urlSchemesRegisteredAsNoAccess; 115 encoder << urlSchemesRegisteredAsDisplayIsolated; 116 encoder << urlSchemesRegisteredAsCORSEnabled; 117 encoder << urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest; 110 118 } 111 119 … … 253 261 #endif 254 262 263 if (!decoder.decode(result.urlSchemesRegisteredAsSecure)) 264 return false; 265 if (!decoder.decode(result.urlSchemesRegisteredAsBypassingContentSecurityPolicy)) 266 return false; 267 if (!decoder.decode(result.urlSchemesRegisteredAsLocal)) 268 return false; 269 if (!decoder.decode(result.urlSchemesRegisteredAsNoAccess)) 270 return false; 271 if (!decoder.decode(result.urlSchemesRegisteredAsDisplayIsolated)) 272 return false; 273 if (!decoder.decode(result.urlSchemesRegisteredAsCORSEnabled)) 274 return false; 275 if (!decoder.decode(result.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest)) 276 return false; 277 255 278 return true; 256 279 } -
trunk/Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h
r228905 r230079 125 125 String recordReplayCacheLocation; 126 126 #endif 127 128 Vector<String> urlSchemesRegisteredAsSecure; 129 Vector<String> urlSchemesRegisteredAsBypassingContentSecurityPolicy; 130 Vector<String> urlSchemesRegisteredAsLocal; 131 Vector<String> urlSchemesRegisteredAsNoAccess; 132 Vector<String> urlSchemesRegisteredAsDisplayIsolated; 133 Vector<String> urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest; 134 Vector<String> urlSchemesRegisteredAsCORSEnabled; 127 135 }; 128 136 -
trunk/Source/WebKit/UIProcess/WebProcessPool.cpp
r230051 r230079 484 484 parameters.presentingApplicationPID = m_configuration->presentingApplicationPID(); 485 485 486 parameters.urlSchemesRegisteredAsSecure = copyToVector(m_schemesToRegisterAsSecure); 487 parameters.urlSchemesRegisteredAsBypassingContentSecurityPolicy = copyToVector(m_schemesToRegisterAsBypassingContentSecurityPolicy); 488 parameters.urlSchemesRegisteredAsLocal = copyToVector(m_schemesToRegisterAsLocal); 489 parameters.urlSchemesRegisteredAsNoAccess = copyToVector(m_schemesToRegisterAsNoAccess); 490 parameters.urlSchemesRegisteredAsDisplayIsolated = copyToVector(m_schemesToRegisterAsDisplayIsolated); 491 parameters.urlSchemesRegisteredAsCORSEnabled = copyToVector(m_schemesToRegisterAsCORSEnabled); 492 parameters.urlSchemesRegisteredAsCanDisplayOnlyIfCanRequest = copyToVector(m_schemesToRegisterAsCanDisplayOnlyIfCanRequest); 493 486 494 // Add any platform specific parameters 487 495 platformInitializeNetworkProcess(parameters); … … 1294 1302 m_schemesToRegisterAsSecure.add(urlScheme); 1295 1303 sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsSecure(urlScheme)); 1304 sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsSecure(urlScheme)); 1296 1305 } 1297 1306 … … 1300 1309 m_schemesToRegisterAsBypassingContentSecurityPolicy.add(urlScheme); 1301 1310 sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsBypassingContentSecurityPolicy(urlScheme)); 1311 sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsBypassingContentSecurityPolicy(urlScheme)); 1302 1312 } 1303 1313 … … 1329 1339 m_schemesToRegisterAsLocal.add(urlScheme); 1330 1340 sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsLocal(urlScheme)); 1341 sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsLocal(urlScheme)); 1331 1342 } 1332 1343 … … 1335 1346 m_schemesToRegisterAsNoAccess.add(urlScheme); 1336 1347 sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsNoAccess(urlScheme)); 1348 sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsNoAccess(urlScheme)); 1337 1349 } 1338 1350 … … 1341 1353 m_schemesToRegisterAsDisplayIsolated.add(urlScheme); 1342 1354 sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsDisplayIsolated(urlScheme)); 1355 sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsDisplayIsolated(urlScheme)); 1343 1356 } 1344 1357 … … 1347 1360 m_schemesToRegisterAsCORSEnabled.add(urlScheme); 1348 1361 sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCORSEnabled(urlScheme)); 1362 sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsCORSEnabled(urlScheme)); 1349 1363 } 1350 1364 … … 1387 1401 m_schemesToRegisterAsCanDisplayOnlyIfCanRequest.add(urlScheme); 1388 1402 sendToAllProcesses(Messages::WebProcess::RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(urlScheme)); 1403 sendToNetworkingProcess(Messages::NetworkProcess::RegisterURLSchemeAsCanDisplayOnlyIfCanRequest(urlScheme)); 1389 1404 } 1390 1405
Note: See TracChangeset
for help on using the changeset viewer.