Skip to content

Commit

Permalink
Ship referrerpolicy attribute
Browse files Browse the repository at this point in the history
BUG=490608

Review URL: https://codereview.chromium.org/1755803002

Cr-Commit-Position: refs/heads/master@{#378594}
  • Loading branch information
estark authored and Commit bot committed Mar 1, 2016
1 parent 873a93f commit b5b0ec3
Show file tree
Hide file tree
Showing 13 changed files with 26 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@ html element a
property ping
property port
property protocol
property referrerpolicy
property rel
property rev
property search
Expand All @@ -256,6 +257,7 @@ html element area
property ping
property port
property protocol
property referrerpolicy
property search
property shape
property target
Expand Down Expand Up @@ -519,6 +521,7 @@ html element iframe
property marginHeight
property marginWidth
property name
property referrerpolicy
property sandbox
property scrolling
property src
Expand All @@ -540,6 +543,7 @@ html element img
property name
property naturalHeight
property naturalWidth
property referrerpolicy
property sizes
property src
property srcset
Expand Down Expand Up @@ -1270,6 +1274,7 @@ svg element a
property ping
property port
property protocol
property referrerpolicy
property rel
property rev
property search
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1245,6 +1245,7 @@ interface HTMLAnchorElement : HTMLElement
getter ping
getter port
getter protocol
getter referrerpolicy
getter rel
getter rev
getter search
Expand All @@ -1269,6 +1270,7 @@ interface HTMLAnchorElement : HTMLElement
setter ping
setter port
setter protocol
setter referrerpolicy
setter rel
setter rev
setter search
Expand All @@ -1291,6 +1293,7 @@ interface HTMLAreaElement : HTMLElement
getter ping
getter port
getter protocol
getter referrerpolicy
getter search
getter shape
getter target
Expand All @@ -1309,6 +1312,7 @@ interface HTMLAreaElement : HTMLElement
setter ping
setter port
setter protocol
setter referrerpolicy
setter search
setter shape
setter target
Expand Down Expand Up @@ -1801,6 +1805,7 @@ interface HTMLIFrameElement : HTMLElement
getter marginHeight
getter marginWidth
getter name
getter referrerpolicy
getter sandbox
getter scrolling
getter src
Expand All @@ -1816,6 +1821,7 @@ interface HTMLIFrameElement : HTMLElement
setter marginHeight
setter marginWidth
setter name
setter referrerpolicy
setter sandbox
setter scrolling
setter src
Expand All @@ -1836,6 +1842,7 @@ interface HTMLImageElement : HTMLElement
getter name
getter naturalHeight
getter naturalWidth
getter referrerpolicy
getter sizes
getter src
getter srcset
Expand All @@ -1855,6 +1862,7 @@ interface HTMLImageElement : HTMLElement
setter longDesc
setter lowsrc
setter name
setter referrerpolicy
setter sizes
setter src
setter srcset
Expand Down
3 changes: 1 addition & 2 deletions third_party/WebKit/Source/core/html/HTMLAnchorElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
#include "core/loader/FrameLoaderClient.h"
#include "core/loader/PingLoader.h"
#include "core/page/ChromeClient.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "platform/network/NetworkHints.h"
#include "platform/weborigin/SecurityPolicy.h"

Expand Down Expand Up @@ -338,7 +337,7 @@ void HTMLAnchorElement::handleClick(Event* event)
request.setInputPerfMetricReportPolicy(InputToLoadPerfMetricReportPolicy::ReportLink);

ReferrerPolicy policy;
if (RuntimeEnabledFeatures::referrerPolicyAttributeEnabled() && hasAttribute(referrerpolicyAttr) && SecurityPolicy::referrerPolicyFromString(fastGetAttribute(referrerpolicyAttr), &policy) && !hasRel(RelationNoReferrer)) {
if (hasAttribute(referrerpolicyAttr) && SecurityPolicy::referrerPolicyFromString(fastGetAttribute(referrerpolicyAttr), &policy) && !hasRel(RelationNoReferrer)) {
request.setHTTPReferrer(SecurityPolicy::generateReferrer(policy, completedURL, document().outgoingReferrer()));
}

Expand Down
2 changes: 1 addition & 1 deletion third_party/WebKit/Source/core/html/HTMLAnchorElement.idl
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ interface HTMLAnchorElement : HTMLElement {
// FIXME: readonly attribute DOMTokenList relList;
[Reflect] attribute DOMString hreflang;
[Reflect] attribute DOMString type;
[RuntimeEnabled=ReferrerPolicyAttribute, Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;
[Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;

[ImplementedAs=textContent] attribute DOMString text;

Expand Down
2 changes: 1 addition & 1 deletion third_party/WebKit/Source/core/html/HTMLAreaElement.idl
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ interface HTMLAreaElement : HTMLElement {
// FIXME: ping should be a DOMTokenList.
[Reflect] attribute DOMString ping;
// FIXME: download, rel, relList are missing
[RuntimeEnabled=ReferrerPolicyAttribute, Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;
[Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;

// obsolete members
// https://html.spec.whatwg.org/#HTMLAreaElement-partial
Expand Down
9 changes: 3 additions & 6 deletions third_party/WebKit/Source/core/html/HTMLFrameOwnerElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
#include "core/loader/FrameLoader.h"
#include "core/loader/FrameLoaderClient.h"
#include "core/plugins/PluginView.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "platform/weborigin/SecurityOrigin.h"

namespace blink {
Expand Down Expand Up @@ -297,11 +296,9 @@ bool HTMLFrameOwnerElement::loadOrRedirectSubframe(const KURL& url, const Atomic

FrameLoadRequest frameLoadRequest(&document(), url, "_self", CheckContentSecurityPolicy);

if (RuntimeEnabledFeatures::referrerPolicyAttributeEnabled()) {
ReferrerPolicy policy = referrerPolicyAttribute();
if (policy != ReferrerPolicyDefault)
frameLoadRequest.resourceRequest().setHTTPReferrer(SecurityPolicy::generateReferrer(policy, url, document().outgoingReferrer()));
}
ReferrerPolicy policy = referrerPolicyAttribute();
if (policy != ReferrerPolicyDefault)
frameLoadRequest.resourceRequest().setHTTPReferrer(SecurityPolicy::generateReferrer(policy, url, document().outgoingReferrer()));

return parentFrame->loader().client()->createFrame(frameLoadRequest, frameName, this);
}
Expand Down
2 changes: 1 addition & 1 deletion third_party/WebKit/Source/core/html/HTMLIFrameElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ void HTMLIFrameElement::parseAttribute(const QualifiedName& name, const AtomicSt
} else if (name == sandboxAttr) {
m_sandbox->setValue(value);
UseCounter::count(document(), UseCounter::SandboxViaIFrame);
} else if (RuntimeEnabledFeatures::referrerPolicyAttributeEnabled() && name == referrerpolicyAttr) {
} else if (name == referrerpolicyAttr) {
m_referrerPolicy = ReferrerPolicyDefault;
if (!value.isNull())
SecurityPolicy::referrerPolicyFromString(value, &m_referrerPolicy);
Expand Down
2 changes: 1 addition & 1 deletion third_party/WebKit/Source/core/html/HTMLIFrameElement.idl
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ interface HTMLIFrameElement : HTMLElement {
[CheckSecurity=ReturnValue] readonly attribute Document? contentDocument;
readonly attribute Window? contentWindow;
[CheckSecurity=ReturnValue, RaisesException] Document? getSVGDocument();
[RuntimeEnabled=ReferrerPolicyAttribute, Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;
[Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;


// obsolete members
Expand Down
3 changes: 1 addition & 2 deletions third_party/WebKit/Source/core/html/HTMLImageElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
#include "platform/ContentType.h"
#include "platform/EventDispatchForbiddenScope.h"
#include "platform/MIMETypeRegistry.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "platform/weborigin/SecurityPolicy.h"

namespace blink {
Expand Down Expand Up @@ -284,7 +283,7 @@ void HTMLImageElement::parseAttribute(const QualifiedName& name, const AtomicStr
selectSourceURL(ImageLoader::UpdateIgnorePreviousError);
} else if (name == usemapAttr) {
setIsLink(!value.isNull());
} else if (RuntimeEnabledFeatures::referrerPolicyAttributeEnabled() && name == referrerpolicyAttr) {
} else if (name == referrerpolicyAttr) {
m_referrerPolicy = ReferrerPolicyDefault;
if (!value.isNull())
SecurityPolicy::referrerPolicyFromString(value, &m_referrerPolicy);
Expand Down
2 changes: 1 addition & 1 deletion third_party/WebKit/Source/core/html/HTMLImageElement.idl
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
readonly attribute long naturalHeight;
readonly attribute boolean complete;
readonly attribute DOMString currentSrc;
[RuntimeEnabled=ReferrerPolicyAttribute, Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;
[Reflect, ReflectOnly=("","no-referrer","origin","no-referrer-when-downgrade","origin-when-cross-origin","unsafe-url"), ReflectMissing="", ReflectInvalid=""] attribute DOMString referrerpolicy;

// obsolete members
// https://html.spec.whatwg.org/#HTMLImageElement-partial
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@
#include "core/loader/LinkLoader.h"
#include "platform/ContentType.h"
#include "platform/MIMETypeRegistry.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "platform/TraceEvent.h"
#include "wtf/MainThread.h"

Expand Down Expand Up @@ -209,7 +208,7 @@ class TokenPreloadScanner::StartTagScanner {
return nullptr;

// The element's 'referrerpolicy' attribute (if present) takes precedence over the document's referrer policy.
ReferrerPolicy referrerPolicy = (m_referrerPolicy != ReferrerPolicyDefault && RuntimeEnabledFeatures::referrerPolicyAttributeEnabled()) ? m_referrerPolicy : documentReferrerPolicy;
ReferrerPolicy referrerPolicy = (m_referrerPolicy != ReferrerPolicyDefault) ? m_referrerPolicy : documentReferrerPolicy;
OwnPtr<PreloadRequest> request = PreloadRequest::create(initiatorFor(m_tagImpl), position, m_urlToLoad, predictedBaseURL, type, referrerPolicy, resourceWidth, clientHintsPreferences, requestType);
request->setCrossOrigin(m_crossOrigin);
request->setCharset(charset());
Expand Down Expand Up @@ -262,7 +261,7 @@ class TokenPreloadScanner::StartTagScanner {
m_srcsetImageCandidate = bestFitSourceForSrcsetAttribute(m_mediaValues->devicePixelRatio(), m_sourceSize, m_srcsetAttributeValue);
setUrlToLoad(bestFitSourceForImageAttributes(m_mediaValues->devicePixelRatio(), m_sourceSize, m_imgSrcUrl, m_srcsetImageCandidate), AllowURLReplacement);
}
} else if (!m_referrerPolicySet && RuntimeEnabledFeatures::referrerPolicyAttributeEnabled() && match(attributeName, referrerpolicyAttr) && !attributeValue.isNull()) {
} else if (!m_referrerPolicySet && match(attributeName, referrerpolicyAttr) && !attributeValue.isNull()) {
m_referrerPolicySet = true;
SecurityPolicy::referrerPolicyFromString(attributeValue, &m_referrerPolicy);
}
Expand Down
3 changes: 1 addition & 2 deletions third_party/WebKit/Source/core/loader/ImageLoader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
#include "core/layout/svg/LayoutSVGImage.h"
#include "core/svg/graphics/SVGImage.h"
#include "platform/Logging.h"
#include "platform/RuntimeEnabledFeatures.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "platform/weborigin/SecurityPolicy.h"
#include "public/platform/WebURLRequest.h"
Expand Down Expand Up @@ -309,7 +308,7 @@ void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up
m_loadingImageDocument = false;
}

if (RuntimeEnabledFeatures::referrerPolicyAttributeEnabled() && referrerPolicy != ReferrerPolicyDefault)
if (referrerPolicy != ReferrerPolicyDefault)
resourceRequest.setHTTPReferrer(SecurityPolicy::generateReferrer(referrerPolicy, url, document.outgoingReferrer()));

if (isHTMLPictureElement(element()->parentNode()) || !element()->fastGetAttribute(HTMLNames::srcsetAttr).isNull())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,6 @@ StyleMatchedPropertiesCache status=stable
// be shipped would be enabled. Instead, remove the flag from the shipping
// interface.
ExperimentalStream status=experimental
ReferrerPolicyAttribute status=experimental
Suborigins status=experimental
ThreadedParserDataReceiver
// Many websites disable mouse support when touch APIs are available. We'd
Expand Down

0 comments on commit b5b0ec3

Please sign in to comment.