WebKit Bugzilla
Attachment 370751 Details for
Bug 185550
: Add referrerpolicy attribute support for <script> elements
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185550-20190528182218.patch (text/plain), 21.70 KB, created by
Rob Buis
on 2019-05-28 09:22:19 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Rob Buis
Created:
2019-05-28 09:22:19 PDT
Size:
21.70 KB
patch
obsolete
>Subversion Revision: 245803 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index bd93c7f731b34485699086b5562394b2d486f293..08a7b46241afa58f1ae76fda7ccc81bb9fc9e1ea 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,44 @@ >+2019-05-28 Rob Buis <rbuis@igalia.com> >+ >+ Add referrerpolicy attribute support for <script> elements >+ https://bugs.webkit.org/show_bug.cgi?id=185550 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * bindings/js/CachedModuleScriptLoader.cpp: >+ (WebCore::CachedModuleScriptLoader::load): >+ * bindings/js/CachedScriptFetcher.cpp: >+ (WebCore::CachedScriptFetcher::requestModuleScript const): >+ (WebCore::CachedScriptFetcher::requestScriptWithCache const): >+ * bindings/js/CachedScriptFetcher.h: >+ * dom/LoadableClassicScript.cpp: >+ (WebCore::LoadableClassicScript::load): >+ * dom/LoadableClassicScript.h: >+ * dom/LoadableModuleScript.cpp: >+ (WebCore::LoadableModuleScript::create): >+ (WebCore::LoadableModuleScript::LoadableModuleScript): >+ * dom/LoadableModuleScript.h: >+ * dom/ModuleFetchParameters.h: >+ (WebCore::ModuleFetchParameters::create): >+ (WebCore::ModuleFetchParameters::referrerPolicy const): >+ (WebCore::ModuleFetchParameters::ModuleFetchParameters): >+ * dom/ScriptElement.cpp: >+ (WebCore::ScriptElement::requestClassicScript): >+ (WebCore::ScriptElement::requestModuleScript): >+ * dom/ScriptElement.h: >+ * dom/ScriptElementCachedScriptFetcher.cpp: >+ (WebCore::ScriptElementCachedScriptFetcher::requestModuleScript const): >+ * dom/ScriptElementCachedScriptFetcher.h: >+ * html/HTMLScriptElement.cpp: >+ (WebCore::HTMLScriptElement::setReferrerPolicyForBindings): >+ (WebCore::HTMLScriptElement::referrerPolicyForBindings const): >+ (WebCore::HTMLScriptElement::referrerPolicy const): >+ * html/HTMLScriptElement.h: >+ * html/HTMLScriptElement.idl: >+ * svg/SVGScriptElement.cpp: >+ (WebCore::SVGScriptElement::referrerPolicy const): >+ * svg/SVGScriptElement.h: >+ > 2019-05-27 Takashi Komori <Takashi.Komori@sony.com> > > [CURL] Fix crashing SocketStreamHandle. >diff --git a/Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp b/Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp >index 5fb74e4aba40bef3e015eab7c20a81feba8de608..96c08b3114fc08ec4c33cbb4b078b7aa044fd612 100644 >--- a/Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp >+++ b/Source/WebCore/bindings/js/CachedModuleScriptLoader.cpp >@@ -64,7 +64,7 @@ bool CachedModuleScriptLoader::load(Document& document, const URL& sourceURL) > { > ASSERT(!m_cachedScript); > String integrity = m_parameters ? m_parameters->integrity() : String { }; >- m_cachedScript = m_scriptFetcher->requestModuleScript(document, sourceURL, WTFMove(integrity)); >+ m_cachedScript = m_scriptFetcher->requestModuleScript(document, sourceURL, WTFMove(integrity), m_parameters->referrerPolicy()); > if (!m_cachedScript) > return false; > >diff --git a/Source/WebCore/bindings/js/CachedScriptFetcher.cpp b/Source/WebCore/bindings/js/CachedScriptFetcher.cpp >index 7c87b23938e433e508c0fb80be9c9e6fde382103..da089a622a7ab01da4da270da1e3d8c948a4a501 100644 >--- a/Source/WebCore/bindings/js/CachedScriptFetcher.cpp >+++ b/Source/WebCore/bindings/js/CachedScriptFetcher.cpp >@@ -40,12 +40,12 @@ Ref<CachedScriptFetcher> CachedScriptFetcher::create(const String& charset) > return adoptRef(*new CachedScriptFetcher(charset)); > } > >-CachedResourceHandle<CachedScript> CachedScriptFetcher::requestModuleScript(Document& document, const URL& sourceURL, String&& integrity) const >+CachedResourceHandle<CachedScript> CachedScriptFetcher::requestModuleScript(Document& document, const URL& sourceURL, String&& integrity, const ReferrerPolicy& policy) const > { >- return requestScriptWithCache(document, sourceURL, String { }, WTFMove(integrity)); >+ return requestScriptWithCache(document, sourceURL, String { }, WTFMove(integrity), policy); > } > >-CachedResourceHandle<CachedScript> CachedScriptFetcher::requestScriptWithCache(Document& document, const URL& sourceURL, const String& crossOriginMode, String&& integrity) const >+CachedResourceHandle<CachedScript> CachedScriptFetcher::requestScriptWithCache(Document& document, const URL& sourceURL, const String& crossOriginMode, String&& integrity, const ReferrerPolicy& policy) const > { > if (!document.settings().isScriptEnabled()) > return nullptr; >@@ -56,6 +56,7 @@ CachedResourceHandle<CachedScript> CachedScriptFetcher::requestScriptWithCache(D > options.contentSecurityPolicyImposition = hasKnownNonce ? ContentSecurityPolicyImposition::SkipPolicyCheck : ContentSecurityPolicyImposition::DoPolicyCheck; > options.sameOriginDataURLFlag = SameOriginDataURLFlag::Set; > options.integrity = WTFMove(integrity); >+ options.referrerPolicy = policy; > > auto request = createPotentialAccessControlRequest(sourceURL, document, crossOriginMode, WTFMove(options)); > request.upgradeInsecureRequestIfNeeded(document); >diff --git a/Source/WebCore/bindings/js/CachedScriptFetcher.h b/Source/WebCore/bindings/js/CachedScriptFetcher.h >index d5391c697d7cf4f6f5d4079ca272ef77ea9caba7..8e29e28499f725e050706b31981c04b3f0248d16 100644 >--- a/Source/WebCore/bindings/js/CachedScriptFetcher.h >+++ b/Source/WebCore/bindings/js/CachedScriptFetcher.h >@@ -26,6 +26,7 @@ > #pragma once > > #include "CachedResourceHandle.h" >+#include "ReferrerPolicy.h" > #include <JavaScriptCore/ScriptFetcher.h> > #include <wtf/text/WTFString.h> > >@@ -36,7 +37,7 @@ class Document; > > class CachedScriptFetcher : public JSC::ScriptFetcher { > public: >- virtual CachedResourceHandle<CachedScript> requestModuleScript(Document&, const URL& sourceURL, String&& integrity) const; >+ virtual CachedResourceHandle<CachedScript> requestModuleScript(Document&, const URL& sourceURL, String&& integrity, const ReferrerPolicy&) const; > > static Ref<CachedScriptFetcher> create(const String& charset); > >@@ -54,7 +55,7 @@ protected: > { > } > >- CachedResourceHandle<CachedScript> requestScriptWithCache(Document&, const URL& sourceURL, const String& crossOriginMode, String&& integrity) const; >+ CachedResourceHandle<CachedScript> requestScriptWithCache(Document&, const URL& sourceURL, const String& crossOriginMode, String&& integrity, const ReferrerPolicy&) const; > > private: > String m_nonce; >diff --git a/Source/WebCore/dom/LoadableClassicScript.cpp b/Source/WebCore/dom/LoadableClassicScript.cpp >index d927e95be269a25ae4336a74b00027c1758fe48a..fa185cc9345ec7752757ac4fadf8c2c4d5fac67b 100644 >--- a/Source/WebCore/dom/LoadableClassicScript.cpp >+++ b/Source/WebCore/dom/LoadableClassicScript.cpp >@@ -123,10 +123,10 @@ void LoadableClassicScript::execute(ScriptElement& scriptElement) > scriptElement.executeClassicScript(ScriptSourceCode(m_cachedScript.get(), JSC::SourceProviderSourceType::Program, *this)); > } > >-bool LoadableClassicScript::load(Document& document, const URL& sourceURL) >+bool LoadableClassicScript::load(Document& document, const URL& sourceURL, const ReferrerPolicy& referrerPolicy) > { > ASSERT(!m_cachedScript); >- m_cachedScript = requestScriptWithCache(document, sourceURL, crossOriginMode(), String { m_integrity }); >+ m_cachedScript = requestScriptWithCache(document, sourceURL, crossOriginMode(), String { m_integrity }, referrerPolicy); > if (!m_cachedScript) > return false; > m_cachedScript->addClient(*this); >diff --git a/Source/WebCore/dom/LoadableClassicScript.h b/Source/WebCore/dom/LoadableClassicScript.h >index 067644a47d1f9d902b4e196aaeffa8a6f95d4f0f..bf1abf65974cb1fb040dd6080ccd0aad7025a93b 100644 >--- a/Source/WebCore/dom/LoadableClassicScript.h >+++ b/Source/WebCore/dom/LoadableClassicScript.h >@@ -29,6 +29,7 @@ > #include "CachedResourceHandle.h" > #include "CachedScript.h" > #include "LoadableScript.h" >+#include "ReferrerPolicy.h" > #include <wtf/TypeCasts.h> > > namespace WebCore { >@@ -52,7 +53,7 @@ public: > > void execute(ScriptElement&) final; > >- bool load(Document&, const URL&); >+ bool load(Document&, const URL&, const ReferrerPolicy&); > > private: > LoadableClassicScript(const String& nonce, const String& integrity, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree) >diff --git a/Source/WebCore/dom/LoadableModuleScript.cpp b/Source/WebCore/dom/LoadableModuleScript.cpp >index 322cd3a7392c9bf0e4570d571275daa367748e21..f74e4a71628579ab14f04cb6a1544556522a8faf 100644 >--- a/Source/WebCore/dom/LoadableModuleScript.cpp >+++ b/Source/WebCore/dom/LoadableModuleScript.cpp >@@ -34,14 +34,14 @@ > > namespace WebCore { > >-Ref<LoadableModuleScript> LoadableModuleScript::create(const String& nonce, const String& integrity, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree) >+Ref<LoadableModuleScript> LoadableModuleScript::create(const String& nonce, const String& integrity, const ReferrerPolicy& policy, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree) > { >- return adoptRef(*new LoadableModuleScript(nonce, integrity, crossOriginMode, charset, initiatorName, isInUserAgentShadowTree)); >+ return adoptRef(*new LoadableModuleScript(nonce, integrity, policy, crossOriginMode, charset, initiatorName, isInUserAgentShadowTree)); > } > >-LoadableModuleScript::LoadableModuleScript(const String& nonce, const String& integrity, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree) >+LoadableModuleScript::LoadableModuleScript(const String& nonce, const String& integrity, const ReferrerPolicy& policy, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree) > : LoadableScript(nonce, crossOriginMode, charset, initiatorName, isInUserAgentShadowTree) >- , m_parameters(ModuleFetchParameters::create(integrity)) >+ , m_parameters(ModuleFetchParameters::create(integrity, policy)) > { > } > >diff --git a/Source/WebCore/dom/LoadableModuleScript.h b/Source/WebCore/dom/LoadableModuleScript.h >index 173dca36aa174c3813182490d1aec6f6f7af64d5..8ea6bf99d6bea25cb598266d8cedf105ff2ab188 100644 >--- a/Source/WebCore/dom/LoadableModuleScript.h >+++ b/Source/WebCore/dom/LoadableModuleScript.h >@@ -37,7 +37,7 @@ class LoadableModuleScript final : public LoadableScript { > public: > virtual ~LoadableModuleScript(); > >- static Ref<LoadableModuleScript> create(const String& nonce, const String& integrity, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree); >+ static Ref<LoadableModuleScript> create(const String& nonce, const String& integrity, const ReferrerPolicy&, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree); > > bool isLoaded() const final; > Optional<Error> error() const final; >@@ -60,7 +60,7 @@ public: > UniquedStringImpl* moduleKey() const { return m_moduleKey.get(); } > > private: >- LoadableModuleScript(const String& nonce, const String& integrity, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree); >+ LoadableModuleScript(const String& nonce, const String& integrity, const ReferrerPolicy&, const String& crossOriginMode, const String& charset, const AtomicString& initiatorName, bool isInUserAgentShadowTree); > > Ref<ModuleFetchParameters> m_parameters; > RefPtr<UniquedStringImpl> m_moduleKey; >diff --git a/Source/WebCore/dom/ModuleFetchParameters.h b/Source/WebCore/dom/ModuleFetchParameters.h >index 24849b6f67b2c01e2c91fb9a4733de7ee4b03044..fbc96e043d923934013843682203fa23de41a647 100644 >--- a/Source/WebCore/dom/ModuleFetchParameters.h >+++ b/Source/WebCore/dom/ModuleFetchParameters.h >@@ -31,20 +31,23 @@ namespace WebCore { > > class ModuleFetchParameters : public JSC::ScriptFetchParameters { > public: >- static Ref<ModuleFetchParameters> create(const String& integrity) >+ static Ref<ModuleFetchParameters> create(const String& integrity, const ReferrerPolicy& referrerPolicy) > { >- return adoptRef(*new ModuleFetchParameters(integrity)); >+ return adoptRef(*new ModuleFetchParameters(integrity, referrerPolicy)); > } > > const String& integrity() const { return m_integrity; } >+ const ReferrerPolicy& referrerPolicy() const { return m_referrerPolicy; } > > private: >- ModuleFetchParameters(const String& integrity) >+ ModuleFetchParameters(const String& integrity, const ReferrerPolicy& referrerPolicy) > : m_integrity(integrity) >+ , m_referrerPolicy(referrerPolicy) > { > } > > String m_integrity; >+ ReferrerPolicy m_referrerPolicy; > }; > > } // namespace WebCore >diff --git a/Source/WebCore/dom/ScriptElement.cpp b/Source/WebCore/dom/ScriptElement.cpp >index 063d64d2518518d27580f2d2dafaeca6c6c93d9d..95c8b0791d18210252801f68681f54ae82fe5d72 100644 >--- a/Source/WebCore/dom/ScriptElement.cpp >+++ b/Source/WebCore/dom/ScriptElement.cpp >@@ -288,7 +288,7 @@ bool ScriptElement::requestClassicScript(const String& sourceURL) > scriptCharset(), > m_element.localName(), > m_element.isInUserAgentShadowTree()); >- if (script->load(m_element.document(), m_element.document().completeURL(sourceURL))) { >+ if (script->load(m_element.document(), m_element.document().completeURL(sourceURL), referrerPolicy())) { > m_loadableScript = WTFMove(script); > m_isExternalScript = true; > } >@@ -335,6 +335,7 @@ bool ScriptElement::requestModuleScript(const TextPosition& scriptStartPosition) > auto script = LoadableModuleScript::create( > nonce, > m_element.document().settings().subresourceIntegrityEnabled() ? m_element.attributeWithoutSynchronization(HTMLNames::integrityAttr).string() : emptyString(), >+ referrerPolicy(), > crossOriginMode, > scriptCharset(), > m_element.localName(), >@@ -344,7 +345,7 @@ bool ScriptElement::requestModuleScript(const TextPosition& scriptStartPosition) > return true; > } > >- auto script = LoadableModuleScript::create(nonce, emptyString(), crossOriginMode, scriptCharset(), m_element.localName(), m_element.isInUserAgentShadowTree()); >+ auto script = LoadableModuleScript::create(nonce, emptyString(), referrerPolicy(), crossOriginMode, scriptCharset(), m_element.localName(), m_element.isInUserAgentShadowTree()); > > TextPosition position = m_element.document().isInDocumentWrite() ? TextPosition() : scriptStartPosition; > ScriptSourceCode sourceCode(scriptContent(), URL(m_element.document().url()), position, JSC::SourceProviderSourceType::Module, script.copyRef()); >diff --git a/Source/WebCore/dom/ScriptElement.h b/Source/WebCore/dom/ScriptElement.h >index ac1d7d4dff880fb32ab641d1659b1d422f96ecca..4fed24ce775d8db34feb4403cf9c186fd2943162 100644 >--- a/Source/WebCore/dom/ScriptElement.h >+++ b/Source/WebCore/dom/ScriptElement.h >@@ -23,6 +23,7 @@ > > #include "ContainerNode.h" > #include "LoadableScript.h" >+#include "ReferrerPolicy.h" > #include "UserGestureIndicator.h" > #include <wtf/MonotonicTime.h> > #include <wtf/text/TextPosition.h> >@@ -113,6 +114,7 @@ private: > virtual bool hasDeferAttribute() const = 0; > virtual bool hasSourceAttribute() const = 0; > virtual bool hasNoModuleAttribute() const = 0; >+ virtual ReferrerPolicy referrerPolicy() const = 0; > > Element& m_element; > WTF::OrdinalNumber m_startLineNumber; >diff --git a/Source/WebCore/dom/ScriptElementCachedScriptFetcher.cpp b/Source/WebCore/dom/ScriptElementCachedScriptFetcher.cpp >index 843da203123c1283c089b396bb62b9ae4bd36c6b..ccf71dca95958518e92fc3c2cd975aae711870ba 100644 >--- a/Source/WebCore/dom/ScriptElementCachedScriptFetcher.cpp >+++ b/Source/WebCore/dom/ScriptElementCachedScriptFetcher.cpp >@@ -31,12 +31,12 @@ > > namespace WebCore { > >-CachedResourceHandle<CachedScript> ScriptElementCachedScriptFetcher::requestModuleScript(Document& document, const URL& sourceURL, String&& integrity) const >+CachedResourceHandle<CachedScript> ScriptElementCachedScriptFetcher::requestModuleScript(Document& document, const URL& sourceURL, String&& integrity, const ReferrerPolicy& policy) const > { > // https://github.com/tc39/proposal-dynamic-import/blob/master/HTML Integration.md > // If the fetcher is not module script, credential mode is always "omit". > >- return requestScriptWithCache(document, sourceURL, isClassicScript() ? "omit"_s : m_crossOriginMode, WTFMove(integrity)); >+ return requestScriptWithCache(document, sourceURL, isClassicScript() ? "omit"_s : m_crossOriginMode, WTFMove(integrity), policy); > } > > } >diff --git a/Source/WebCore/dom/ScriptElementCachedScriptFetcher.h b/Source/WebCore/dom/ScriptElementCachedScriptFetcher.h >index 03c3896dbed8e462aa9916d8ac7ba68f90ef3fd6..afb93076f1317b52373c530ffa957d2e2cec7774 100644 >--- a/Source/WebCore/dom/ScriptElementCachedScriptFetcher.h >+++ b/Source/WebCore/dom/ScriptElementCachedScriptFetcher.h >@@ -31,7 +31,7 @@ namespace WebCore { > > class ScriptElementCachedScriptFetcher : public CachedScriptFetcher { > public: >- virtual CachedResourceHandle<CachedScript> requestModuleScript(Document&, const URL& sourceURL, String&& integrity) const; >+ virtual CachedResourceHandle<CachedScript> requestModuleScript(Document&, const URL& sourceURL, String&& integrity, const ReferrerPolicy&) const; > > virtual bool isClassicScript() const = 0; > virtual bool isModuleScript() const = 0; >diff --git a/Source/WebCore/html/HTMLScriptElement.cpp b/Source/WebCore/html/HTMLScriptElement.cpp >index 60610984024c18dcceeb02a78c380d946feeaa74..be83843e3b30865653adf91a3e31d0acfeb63458 100644 >--- a/Source/WebCore/html/HTMLScriptElement.cpp >+++ b/Source/WebCore/html/HTMLScriptElement.cpp >@@ -184,4 +184,42 @@ Ref<Element> HTMLScriptElement::cloneElementWithoutAttributesAndChildren(Documen > return adoptRef(*new HTMLScriptElement(tagQName(), targetDocument, false, alreadyStarted())); > } > >+void HTMLScriptElement::setReferrerPolicyForBindings(const AtomicString& value) >+{ >+ setAttributeWithoutSynchronization(referrerpolicyAttr, value); >+} >+ >+String HTMLScriptElement::referrerPolicyForBindings() const >+{ >+ switch (referrerPolicy()) { >+ case ReferrerPolicy::NoReferrer: >+ return "no-referrer"_s; >+ case ReferrerPolicy::UnsafeUrl: >+ return "unsafe-url"_s; >+ case ReferrerPolicy::Origin: >+ return "origin"_s; >+ case ReferrerPolicy::OriginWhenCrossOrigin: >+ return "origin-when-cross-origin"_s; >+ case ReferrerPolicy::SameOrigin: >+ return "same-origin"_s; >+ case ReferrerPolicy::StrictOrigin: >+ return "strict-origin"_s; >+ case ReferrerPolicy::StrictOriginWhenCrossOrigin: >+ return "strict-origin-when-cross-origin"_s; >+ case ReferrerPolicy::NoReferrerWhenDowngrade: >+ return "no-referrer-when-downgrade"_s; >+ case ReferrerPolicy::EmptyString: >+ return { }; >+ } >+ ASSERT_NOT_REACHED(); >+ return { }; >+} >+ >+ReferrerPolicy HTMLScriptElement::referrerPolicy() const >+{ >+ if (RuntimeEnabledFeatures::sharedFeatures().referrerPolicyAttributeEnabled()) >+ return parseReferrerPolicy(attributeWithoutSynchronization(referrerpolicyAttr), ReferrerPolicySource::ReferrerPolicyAttribute).valueOr(ReferrerPolicy::EmptyString); >+ return ReferrerPolicy::EmptyString; >+} >+ > } >diff --git a/Source/WebCore/html/HTMLScriptElement.h b/Source/WebCore/html/HTMLScriptElement.h >index bd1e3ed2f25ede6d92398715d7914793fde0f516..4a0977f34292851a8d9bfa6cdabe683bb8970372 100644 >--- a/Source/WebCore/html/HTMLScriptElement.h >+++ b/Source/WebCore/html/HTMLScriptElement.h >@@ -44,6 +44,10 @@ public: > WEBCORE_EXPORT void setCrossOrigin(const AtomicString&); > WEBCORE_EXPORT String crossOrigin() const; > >+ void setReferrerPolicyForBindings(const AtomicString&); >+ String referrerPolicyForBindings() const; >+ ReferrerPolicy referrerPolicy() const final; >+ > using HTMLElement::ref; > using HTMLElement::deref; > >diff --git a/Source/WebCore/html/HTMLScriptElement.idl b/Source/WebCore/html/HTMLScriptElement.idl >index cb9e6b14e39eec153c3bc72aafb237555f3562a4..6a7fc601fcb7c23bd5a4af0538a530219498b7e8 100644 >--- a/Source/WebCore/html/HTMLScriptElement.idl >+++ b/Source/WebCore/html/HTMLScriptElement.idl >@@ -31,4 +31,5 @@ interface HTMLScriptElement : HTMLElement { > [Reflect] attribute DOMString nonce; > [CEReactions=NotNeeded, Reflect] attribute boolean noModule; > [CEReactions=NotNeeded, Reflect, EnabledBySetting=SubresourceIntegrity] attribute DOMString integrity; >+ [EnabledAtRuntime=ReferrerPolicyAttribute, ImplementedAs=referrerPolicyForBindings, CEReactions=NotNeeded] attribute DOMString referrerPolicy; > }; >diff --git a/Source/WebCore/svg/SVGScriptElement.cpp b/Source/WebCore/svg/SVGScriptElement.cpp >index 1e09454247ea1aa5e88fc75f790523b906fb3945..7d73f3a81e3bce07cf1d02fc48f5ed45266d7be2 100644 >--- a/Source/WebCore/svg/SVGScriptElement.cpp >+++ b/Source/WebCore/svg/SVGScriptElement.cpp >@@ -101,4 +101,9 @@ Ref<Element> SVGScriptElement::cloneElementWithoutAttributesAndChildren(Document > return adoptRef(*new SVGScriptElement(tagQName(), targetDocument, false, alreadyStarted())); > } > >+ReferrerPolicy SVGScriptElement::referrerPolicy() const >+{ >+ return ReferrerPolicy::EmptyString; >+} >+ > } >diff --git a/Source/WebCore/svg/SVGScriptElement.h b/Source/WebCore/svg/SVGScriptElement.h >index f15f3b7cf6f93af148d5032a10dd2b0167afabaf..8313a2d88d12b5f2f72517cac483bb4906b98dd2 100644 >--- a/Source/WebCore/svg/SVGScriptElement.h >+++ b/Source/WebCore/svg/SVGScriptElement.h >@@ -82,6 +82,8 @@ private: > bool filterOutAnimatableAttribute(const QualifiedName& name) const final { return name == SVGNames::typeAttr; } > #endif > >+ ReferrerPolicy referrerPolicy() const final; >+ > PropertyRegistry m_propertyRegistry { *this }; > Timer m_svgLoadEventTimer; > };
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185550
:
370716
|
370751
|
370759
|
370761
|
370765
|
370768
|
370772
|
370833
|
370835
|
370870
|
370878
|
370884
|
370886
|
370889
|
370892
|
370918
|
370926
|
370928
|
370931
|
370933
|
370936
|
370939
|
374201
|
374204