Changeset 251582 in webkit
- Timestamp:
- Oct 24, 2019, 10:05:54 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r251581 r251582 1 2019-10-24 Alex Christensen <achristensen@webkit.org> 2 3 Add more information to SRI failure console messages 4 https://bugs.webkit.org/show_bug.cgi?id=203383 5 6 Reviewed by Geoff Garen. 7 8 * http/tests/subresource-integrity/sri-enabled-with-setting-expected.txt: 9 * http/tests/subresource-integrity/sri-module-expected.txt: 10 * http/tests/subresource-integrity/sri-script-expected.txt: 11 * http/tests/subresource-integrity/sri-style-expected.txt: 12 1 13 2019-10-24 Devin Rousso <drousso@apple.com> 2 14 -
trunk/LayoutTests/http/tests/subresource-integrity/sri-enabled-with-setting-expected.txt
r216347 r251582 1 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/non-matching-digest.js. Failed integrity metadata check. 2 CONSOLE MESSAGE: line 107: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/style.css. Failed integrity metadata check. 1 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/non-matching-digest.js. Failed integrity metadata check. Content length: 25, Expected content length: 25, Expected metadata: sha256-deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdead 2 CONSOLE MESSAGE: line 107: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/style.css. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha256-deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdead 3 3 4 4 PASS Test that Subresource Integrity's 'integrity' property is exposed on the <link> element. -
trunk/LayoutTests/http/tests/subresource-integrity/sri-module-expected.txt
r223237 r251582 1 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/non-matching-digest-module.js. Failed integrity metadata check. 2 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest-module.js. Failed integrity metadata check. 3 CONSOLE MESSAGE: TypeError: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script-module.js. Failed integrity metadata check. 4 CONSOLE MESSAGE: TypeError: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-creds-script-module.js. Failed integrity metadata check. 1 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/non-matching-digest-module.js. Failed integrity metadata check. Content length: 33, Expected content length: 33, Expected metadata: sha256-cWh9nPfm7/mRbKhzarnRYlsJWz5XTNcsqPFzKEx+zSU= 2 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest-module.js. Failed integrity metadata check. Content length: 29, Expected content length: 29, Expected metadata: sha512-deadbeefspbnUnwooKGNNCb39nvg+EW0O9hDScTXeo/9pVZztLSUYU3LNV6H0lZapo8bCJUpyPPLAzE9fDzpxg== sha256-cWh9nPfm7/mRbKhzarnRYlsJWz5XTNcsqPFzKEx+zSU= 3 CONSOLE MESSAGE: TypeError: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script-module.js. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha256-deadbeefcSLlbFZCj1OACLxTxVck2TOrBTEdUbwz1yU= 4 CONSOLE MESSAGE: TypeError: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-creds-script-module.js. Failed integrity metadata check. Content length: 38, Expected content length: 38, Expected metadata: sha256-deadbeef2S+pTRZgiw3DWrhC6JLDlt2zRyGpwH7unU8= 5 5 CONSOLE MESSAGE: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. 6 6 CONSOLE MESSAGE: TypeError: Cross-origin script load denied by Cross-Origin Resource Sharing policy. 7 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest-module.js. Failed integrity metadata check. 8 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest-module.js. Failed integrity metadata check. 7 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest-module.js. Failed integrity metadata check. Content length: 29, Expected content length: 29, Expected metadata: sha256-cWh9nPfm7_mRbKhzarnRYlsJWz5XTNcsqPFzKEx+zSU= 8 CONSOLE MESSAGE: TypeError: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest-module.js. Failed integrity metadata check. Content length: 29, Expected content length: 29, Expected metadata: sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9e=?foo=bar?spam=eggs 9 9 10 10 PASS Module: Same-origin with correct sha256 hash. -
trunk/LayoutTests/http/tests/subresource-integrity/sri-script-expected.txt
r216347 r251582 1 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/non-matching-digest.js. Failed integrity metadata check. 2 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest.js. Failed integrity metadata check. 3 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script.js. Failed integrity metadata check. 4 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-creds-script.js. Failed integrity metadata check. 1 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/non-matching-digest.js. Failed integrity metadata check. Content length: 25, Expected content length: 25, Expected metadata: sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9e= 2 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest.js. Failed integrity metadata check. Content length: 21, Expected content length: 21, Expected metadata: sha512-deadbeefspbnUnwooKGNNCb39nvg+EW0O9hDScTXeo/9pVZztLSUYU3LNV6H0lZapo8bCJUpyPPLAzE9fDzpxg== sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E= 3 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script.js. Failed integrity metadata check. Content length: 29, Expected content length: 29, Expected metadata: sha256-deadbeefcSLlbFZCj1OACLxTxVck2TOrBTEdUbwz1yU= 4 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-creds-script.js. Failed integrity metadata check. Content length: 30, Expected content length: 30, Expected metadata: sha256-deadbeef2S+pTRZgiw3DWrhC6JLDlt2zRyGpwH7unU8= 5 5 CONSOLE MESSAGE: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. 6 6 CONSOLE MESSAGE: Cross-origin script load denied by Cross-Origin Resource Sharing policy. 7 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script.js. Failed integrity metadata check. 8 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script.js. Failed integrity metadata check. 9 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest.js. Failed integrity metadata check. 10 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest.js. Failed integrity metadata check. 7 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script.js. Failed integrity metadata check. Content length: 29, Expected content length: 29, Expected metadata: sha256-51AjITq701Y0yKSx3/UoIKtIY2UQ9+H8WGyyMuOWOC0= 8 CONSOLE MESSAGE: Cannot load script http://localhost:8000/subresource-integrity/resources/crossorigin-anon-script.js. Failed integrity metadata check. Content length: 29, Expected content length: 29, Expected metadata: sha256-deadbeef01Y0yKSx3/UoIKtIY2UQ9+H8WGyyMuOWOC0= 9 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest.js. Failed integrity metadata check. Content length: 21, Expected content length: 21, Expected metadata: sha256-U9WYDtBWkcHx13+9UKk_3Q5eoqDc4YGxYb07EPWzb9E= 10 CONSOLE MESSAGE: Cannot load script http://127.0.0.1:8000/subresource-integrity/resources/matching-digest.js. Failed integrity metadata check. Content length: 21, Expected content length: 21, Expected metadata: sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9e=?foo=bar?spam=eggs 11 11 12 12 PASS Script: Same-origin with correct sha256 hash. -
trunk/LayoutTests/http/tests/subresource-integrity/sri-style-expected.txt
r216347 r251582 1 CONSOLE MESSAGE: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/style.css?5. Failed integrity metadata check. 2 CONSOLE MESSAGE: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/style.css?9. Failed integrity metadata check. 3 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-anon-style.css?&2. Failed integrity metadata check. 4 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-creds-style.css?&2. Failed integrity metadata check. 1 CONSOLE MESSAGE: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/style.css?5. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha256-deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdead 2 CONSOLE MESSAGE: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/style.css?9. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha512-deadbeef9wXDjd6Wq3H6nPAhI9zOvG7mJkUr03MTxaO+8ztTKnfJif42laL93Be/IF6YYZHHF4esitVYxiwpY2== sha256-CzHgdJ7wOccM8L89n4bhcJMz3F+SPLT7YZk7gyCWUV4= 3 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-anon-style.css?&2. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha256-deadbeefCzHgdJ7wOccM8L89n4bhcJMz3F+SPLT7YZk= 4 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-creds-style.css?&2. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha256-deadbeefCzHgdJ7wOccM8L89n4bhcJMz3F+SPLT7YZk= 5 5 CONSOLE MESSAGE: Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin. 6 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-anon-style.css?&3. Failed integrity metadata check. 7 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-anon-style.css?&4. Failed integrity metadata check. 8 CONSOLE MESSAGE: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/alternate.css?2. Failed integrity metadata check. 6 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-anon-style.css?&3. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha256-CzHgdJ7wOccM8L89n4bhcJMz3F+SPLT7YZk7gyCWUV4= 7 CONSOLE MESSAGE: Cannot load stylesheet http://localhost:8000/subresource-integrity/resources/crossorigin-anon-style.css?&4. Failed integrity metadata check. Content length: 37, Expected content length: 37, Expected metadata: sha256-deadbeefCzHgdJ7wOccM8L89n4bhcJMz3F+SPLT7YZk= 8 CONSOLE MESSAGE: Cannot load stylesheet http://127.0.0.1:8000/subresource-integrity/resources/alternate.css?2. Failed integrity metadata check. Content length: 34, Expected content length: 34, Expected metadata: sha256-fail83bWhnLig+d2VPKrRrTRyhqoDRo1ruGqZLZ0= sha512-failB7ktnzcb6h+kB9CUIuc8qvKIyLpygRJdQSEEycRy74dUsB+Yu9rSjpOPjRUblle8WWX9Gn7v39LK2Oceig== 9 9 10 10 PASS Style: Same-origin with correct sha256 hash -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/integrity-expected.txt
r227471 r251582 1 CONSOLE MESSAGE: line 1: TypeError: Cannot load script http://localhost:8800/html/semantics/scripting-1/the-script-element/module/integrity-mismatches.js. Failed integrity metadata check. 1 CONSOLE MESSAGE: line 1: TypeError: Cannot load script http://localhost:8800/html/semantics/scripting-1/the-script-element/module/integrity-mismatches.js. Failed integrity metadata check. Content length: 93, Expected content length: -1, Expected metadata: sha384-doesnotmatch 2 2 3 3 PASS The integrity attribute must have no affect on inline module scripts -
trunk/LayoutTests/js/dom/modules/module-fetch-failure-not-cached-expected.txt
r224662 r251582 1 CONSOLE MESSAGE: TypeError: Cannot load script module-fetch-failure-not-cached.js. Failed integrity metadata check. 1 CONSOLE MESSAGE: TypeError: Cannot load script module-fetch-failure-not-cached.js. Failed integrity metadata check. Content length: 30, Expected content length: 30, Expected metadata: sha256-badbeef 2 2 3 3 PASS Module fetch failure is not cached in module pipeline -
trunk/Source/WebCore/ChangeLog
r251581 r251582 1 2019-10-24 Alex Christensen <achristensen@webkit.org> 2 3 Add more information to SRI failure console messages 4 https://bugs.webkit.org/show_bug.cgi?id=203383 5 6 Reviewed by Geoff Garen. 7 8 * bindings/js/ScriptModuleLoader.cpp: 9 (WebCore::ScriptModuleLoader::notifyFinished): 10 * dom/LoadableClassicScript.cpp: 11 (WebCore::LoadableClassicScript::notifyFinished): 12 * html/HTMLLinkElement.cpp: 13 (WebCore::HTMLLinkElement::setCSSStyleSheet): 14 * loader/DocumentThreadableLoader.cpp: 15 (WebCore::DocumentThreadableLoader::didFinishLoading): 16 (WebCore::DocumentThreadableLoader::reportIntegrityMetadataError): 17 * loader/DocumentThreadableLoader.h: 18 * loader/SubresourceIntegrity.cpp: 19 (WebCore::integrityMismatchDescription): 20 * loader/SubresourceIntegrity.h: 21 1 22 2019-10-24 Devin Rousso <drousso@apple.com> 2 23 -
trunk/Source/WebCore/bindings/js/ScriptModuleLoader.cpp
r251425 r251582 314 314 if (auto* parameters = loader.parameters()) { 315 315 if (!matchIntegrityMetadata(cachedScript, parameters->integrity())) { 316 promise->reject(TypeError, makeString("Cannot load script ", cachedScript.url().stringCenterEllipsizedToLength(), ". Failed integrity metadata check."));316 promise->reject(TypeError, makeString("Cannot load script ", integrityMismatchDescription(cachedScript, parameters->integrity()))); 317 317 return; 318 318 } -
trunk/Source/WebCore/dom/LoadableClassicScript.cpp
r247509 r251582 111 111 m_error = Error { 112 112 ErrorType::FailedIntegrityCheck, 113 ConsoleMessage { MessageSource::Security, MessageLevel::Error, makeString("Cannot load script ", m_cachedScript->url().stringCenterEllipsizedToLength(), ". Failed integrity metadata check.") }113 ConsoleMessage { MessageSource::Security, MessageLevel::Error, makeString("Cannot load script ", integrityMismatchDescription(resource, m_integrity)) } 114 114 }; 115 115 } -
trunk/Source/WebCore/html/HTMLLinkElement.cpp
r249426 r251582 433 433 434 434 if (!cachedStyleSheet->errorOccurred() && !matchIntegrityMetadata(*cachedStyleSheet, m_integrityMetadataForPendingSheetRequest)) { 435 document().addConsoleMessage(MessageSource::Security, MessageLevel::Error, makeString("Cannot load stylesheet ", cachedStyleSheet->url().stringCenterEllipsizedToLength(), ". Failed integrity metadata check."));435 document().addConsoleMessage(MessageSource::Security, MessageLevel::Error, makeString("Cannot load stylesheet ", integrityMismatchDescription(*cachedStyleSheet, m_integrityMetadataForPendingSheetRequest))); 436 436 437 437 m_loading = false; -
trunk/Source/WebCore/loader/DocumentThreadableLoader.cpp
r250738 r251582 443 443 if (m_delayCallbacksForIntegrityCheck) { 444 444 if (!matchIntegrityMetadata(*m_resource, m_options.integrity)) { 445 reportIntegrityMetadataError( m_resource->url());445 reportIntegrityMetadataError(*m_resource, m_options.integrity); 446 446 return; 447 447 } … … 684 684 } 685 685 686 void DocumentThreadableLoader::reportIntegrityMetadataError(const URL& url)687 { 688 logErrorAndFail(ResourceError(errorDomainWebKitInternal, 0, url, "Failed integrity metadata check."_s, ResourceError::Type::General));686 void DocumentThreadableLoader::reportIntegrityMetadataError(const CachedResource& resource, const String& expectedMetadata) 687 { 688 logErrorAndFail(ResourceError(errorDomainWebKitInternal, 0, resource.url(), makeString("Failed integrity metadata check. "_s, integrityMismatchDescription(resource, expectedMetadata)), ResourceError::Type::General)); 689 689 } 690 690 -
trunk/Source/WebCore/loader/DocumentThreadableLoader.h
r250414 r251582 114 114 void reportContentSecurityPolicyError(const URL&); 115 115 void reportCrossOriginResourceSharingError(const URL&); 116 void reportIntegrityMetadataError(const URL&);116 void reportIntegrityMetadataError(const CachedResource&, const String& expectedMetadata); 117 117 void logErrorAndFail(const ResourceError&); 118 118 -
trunk/Source/WebCore/loader/SubresourceIntegrity.cpp
r239427 r251582 209 209 } 210 210 211 } 211 String integrityMismatchDescription(const CachedResource& resource, const String& integrityMetadata) 212 { 213 StringBuilder builder; 214 215 builder.append(resource.url().stringCenterEllipsizedToLength()); 216 builder.append(". Failed integrity metadata check. "); 217 builder.append("Content length: "); 218 if (auto* resourceBuffer = resource.resourceBuffer()) 219 builder.appendNumber(resourceBuffer->size()); 220 else 221 builder.append("(no content)"); 222 builder.append(", Expected content length: "); 223 builder.appendNumber(resource.response().expectedContentLength()); 224 builder.append(", Expected metadata: "); 225 builder.append(integrityMetadata); 226 227 return builder.toString(); 228 } 229 230 } -
trunk/Source/WebCore/loader/SubresourceIntegrity.h
r216347 r251582 33 33 34 34 bool matchIntegrityMetadata(const CachedResource&, const String& integrityMetadata); 35 String integrityMismatchDescription(const CachedResource&, const String& integrityMetadata); 35 36 36 37 }
Note:
See TracChangeset
for help on using the changeset viewer.