| Index: third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
|
| diff --git a/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp b/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
|
| index c0f801a411d0977f340d5889417a038bcf6e6cb0..96455cdd83e3836f3a58f23a22348cf22f22d3e6 100644
|
| --- a/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
|
| +++ b/third_party/WebKit/Source/core/svg/SVGScriptElement.cpp
|
| @@ -27,6 +27,7 @@
|
| #include "core/dom/ScriptLoader.h"
|
| #include "core/dom/ScriptRunner.h"
|
| #include "core/events/Event.h"
|
| +#include "core/frame/csp/ContentSecurityPolicy.h"
|
|
|
| namespace blink {
|
|
|
| @@ -36,13 +37,7 @@ inline SVGScriptElement::SVGScriptElement(Document& document,
|
| : SVGElement(SVGNames::scriptTag, document),
|
| SVGURIReference(this),
|
| m_loader(
|
| - ScriptLoader::create(this, wasInsertedByParser, alreadyStarted)) {
|
| - if (fastHasAttribute(HTMLNames::nonceAttr)) {
|
| - m_nonce = fastGetAttribute(HTMLNames::nonceAttr);
|
| - if (RuntimeEnabledFeatures::hideNonceContentAttributeEnabled())
|
| - removeAttribute(HTMLNames::nonceAttr);
|
| - }
|
| -}
|
| + ScriptLoader::create(this, wasInsertedByParser, alreadyStarted)) {}
|
|
|
| SVGScriptElement* SVGScriptElement::create(Document& document,
|
| bool insertedByParser) {
|
| @@ -56,6 +51,14 @@ void SVGScriptElement::parseAttribute(
|
| EventTypeNames::error,
|
| createAttributeEventListener(this, params.name, params.newValue,
|
| eventParameterName()));
|
| + } else if (params.name == HTMLNames::nonceAttr) {
|
| + if (params.newValue == ContentSecurityPolicy::getNonceReplacementString())
|
| + return;
|
| + setNonce(params.newValue);
|
| + if (RuntimeEnabledFeatures::hideNonceContentAttributeEnabled()) {
|
| + setAttribute(HTMLNames::nonceAttr,
|
| + ContentSecurityPolicy::getNonceReplacementString());
|
| + }
|
| } else {
|
| SVGElement::parseAttribute(params);
|
| }
|
|
|