Chromium Code Reviews| Index: third_party/WebKit/Source/core/dom/PendingScript.cpp |
| diff --git a/third_party/WebKit/Source/core/dom/PendingScript.cpp b/third_party/WebKit/Source/core/dom/PendingScript.cpp |
| index 8b3ca3a15d83bc71a05b987ed471057cc4e28f1c..64b64d3ba63bc6d6391264ab6f2fac9a2f8534f3 100644 |
| --- a/third_party/WebKit/Source/core/dom/PendingScript.cpp |
| +++ b/third_party/WebKit/Source/core/dom/PendingScript.cpp |
| @@ -150,9 +150,15 @@ void PendingScript::notifyFinished(Resource* resource) |
| // integrity attribute isn't empty in addition to checking if the |
| // resource has empty integrity metadata. |
| if (!integrityAttr.isEmpty() && !scriptResource->integrityMetadata().isEmpty()) { |
| - if (!scriptResource->integrityAlreadyChecked() && resource->resourceBuffer()) { |
| - scriptResource->setIntegrityAlreadyChecked(true); |
| + ScriptIntegrityDisposition disposition = scriptResource->integrityDisposition(); |
| + if (disposition == IntegrityFailed) { |
| + // TODO(jww): This should probably also generate a console |
| + // message identical to the one produced by |
| + // CheckSubresourceIntegrity below. |
| + m_integrityFailure = true; |
| + } else if (disposition == IntegrityNotChecked && resource->resourceBuffer()) { |
| m_integrityFailure = !SubresourceIntegrity::CheckSubresourceIntegrity(scriptResource->integrityMetadata(), *m_element, resource->resourceBuffer()->data(), resource->resourceBuffer()->size(), resource->url(), *resource); |
| + scriptResource->setIntegrityAlreadyChecked(!m_integrityFailure); |
|
dcheng
2016/02/09 01:12:46
I don't think it's obvious from the callsite that
jww
2016/02/09 04:38:50
Done.
|
| } |
| } |
| } |