Index: third_party/WebKit/LayoutTests/external/wpt/referrer-policy/spec.src.json |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/referrer-policy/spec.src.json b/third_party/WebKit/LayoutTests/external/wpt/referrer-policy/spec.src.json |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6d76af2f6f3221a9ea4a9e86d86f6ab95e6d9472 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/referrer-policy/spec.src.json |
@@ -0,0 +1,638 @@ |
+{ |
+ "specification": [ |
+ { |
+ "name": "unset-referrer-policy", |
+ "title": "Referrer Policy is not explicitly defined", |
+ "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", |
+ "referrer_policy": null, |
+ "test_expansion": [ |
+ { |
+ "name": "insecure-protocol", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "upgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "downgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "omitted" |
+ }, |
+ { |
+ "name": "secure-protocol", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "no-referrer", |
+ "title": "Referrer Policy is set to 'no-referrer'", |
+ "description": "Check that sub-resource never gets the referrer URL.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", |
+ "referrer_policy": "no-referrer", |
+ "test_expansion": [ |
+ { |
+ "name": "generic", |
+ "expansion": "default", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "omitted" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "no-referrer-when-downgrade", |
+ "title": "Referrer Policy is set to 'no-referrer-when-downgrade'", |
+ "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", |
+ "referrer_policy": "no-referrer-when-downgrade", |
+ "test_expansion": [ |
+ { |
+ "name": "insecure-protocol", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "upgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "downgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "omitted" |
+ }, |
+ { |
+ "name": "secure-protocol", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "origin", |
+ "title": "Referrer Policy is set to 'origin'", |
+ "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", |
+ "referrer_policy": "origin", |
+ "test_expansion": [ |
+ { |
+ "name": "generic", |
+ "expansion": "default", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "same-origin", |
+ "title": "Referrer Policy is set to 'same-origin'", |
+ "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", |
+ "referrer_policy": "same-origin", |
+ "test_expansion": [ |
+ { |
+ "name": "same-origin-insecure", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "same-origin-secure-default", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "same-origin-insecure", |
+ "expansion": "override", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "swap-origin-redirect", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "omitted" |
+ }, |
+ { |
+ "name": "cross-origin", |
+ "expansion": "default", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "cross-origin", |
+ "subresource": "*", |
+ "referrer_url": "omitted" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "origin-when-cross-origin", |
+ "title": "Referrer Policy is set to 'origin-when-cross-origin'", |
+ "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", |
+ "referrer_policy": "origin-when-cross-origin", |
+ "test_expansion": [ |
+ { |
+ "name": "same-origin-insecure", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "same-origin-secure-default", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "same-origin-upgrade", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "same-origin-downgrade", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "same-origin-insecure", |
+ "expansion": "override", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "swap-origin-redirect", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "cross-origin", |
+ "expansion": "default", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "cross-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "strict-origin", |
+ "title": "Referrer Policy is set to 'strict-origin'", |
+ "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", |
+ "referrer_policy": "strict-origin", |
+ "test_expansion": [ |
+ { |
+ "name": "insecure-protocol", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "upgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "downgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "omitted" |
+ }, |
+ { |
+ "name": "secure-protocol", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "strict-origin-when-cross-origin", |
+ "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'", |
+ "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", |
+ "referrer_policy": "strict-origin-when-cross-origin", |
+ "test_expansion": [ |
+ { |
+ "name": "same-insecure", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "same-insecure", |
+ "expansion": "override", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "swap-origin-redirect", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "cross-insecure", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "cross-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "upgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "http", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "downgrade-protocol", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "http", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "omitted" |
+ }, |
+ { |
+ "name": "same-secure", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ }, |
+ { |
+ "name": "same-secure", |
+ "expansion": "override", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "swap-origin-redirect", |
+ "origin": "same-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ }, |
+ { |
+ "name": "cross-secure", |
+ "expansion": "default", |
+ "source_protocol": "https", |
+ "target_protocol": "https", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "cross-origin", |
+ "subresource": "*", |
+ "referrer_url": "origin" |
+ } |
+ ] |
+ }, |
+ { |
+ "name": "unsafe-url", |
+ "title": "Referrer Policy is set to 'unsafe-url'", |
+ "description": "Check that all sub-resources get the stripped referrer URL.", |
+ "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", |
+ "referrer_policy": "unsafe-url", |
+ "test_expansion": [ |
+ { |
+ "name": "generic", |
+ "expansion": "default", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["http-rp", "meta-referrer", "attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "stripped-referrer" |
+ } |
+ ] |
+ } |
+ ], |
+ |
+ "excluded_tests":[ |
+ { |
+ "name": "cross-origin-workers", |
+ "expansion": "*", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "redirection": "*", |
+ "delivery_method": "*", |
+ "origin": "cross-origin", |
+ "subresource": "worker-request", |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "upgraded-protocol-workers", |
+ "expansion": "*", |
+ "source_protocol": "http", |
+ "target_protocol": "https", |
+ "delivery_method": "*", |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "worker-request", |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "mixed-content-insecure-subresources", |
+ "expansion": "*", |
+ "source_protocol": "https", |
+ "target_protocol": "http", |
+ "delivery_method": "*", |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "elements-not-supporting-attr-referrer", |
+ "expansion": "*", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["attr-referrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": [ |
+ "script-tag", |
+ "xhr-request", |
+ "worker-request", |
+ "fetch-request" |
+ ], |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "elements-not-supporting-rel-noreferrer", |
+ "expansion": "*", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": ["rel-noreferrer"], |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": [ |
+ "iframe-tag", |
+ "img-tag", |
+ "script-tag", |
+ "xhr-request", |
+ "worker-request", |
+ "fetch-request", |
+ "area-tag" |
+ ], |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "area-tag", |
+ "expansion": "*", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": "*", |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "area-tag", |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "worker-requests-with-swap-origin-redirect", |
+ "expansion": "*", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": "*", |
+ "redirection": "swap-origin-redirect", |
+ "origin": "*", |
+ "subresource": ["worker-request"], |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "overhead-for-redirection", |
+ "expansion": "*", |
+ "source_protocol": "*", |
+ "target_protocol": "*", |
+ "delivery_method": "*", |
+ "redirection": ["keep-origin-redirect", "swap-origin-redirect"], |
+ "origin": "*", |
+ "subresource": ["a-tag", "area-tag"], |
+ "referrer_url": "*" |
+ }, |
+ { |
+ "name": "source-https-unsupported-by-web-platform-tests-runners", |
+ "expansion": "*", |
+ "source_protocol": "https", |
+ "target_protocol": "*", |
+ "delivery_method": "*", |
+ "redirection": "*", |
+ "origin": "*", |
+ "subresource": "*", |
+ "referrer_url": "*" |
+ } |
+ ], |
+ |
+ "referrer_policy_schema": [ |
+ null, |
+ "no-referrer", |
+ "no-referrer-when-downgrade", |
+ "same-origin", |
+ "origin", |
+ "origin-when-cross-origin", |
+ "strict-origin", |
+ "strict-origin-when-cross-origin", |
+ "unsafe-url" |
+ ], |
+ |
+ "test_expansion_schema": { |
+ "expansion": [ |
+ "default", |
+ "override" |
+ ], |
+ |
+ "delivery_method": [ |
+ "http-rp", |
+ "meta-referrer", |
+ "attr-referrer", |
+ "rel-noreferrer" |
+ ], |
+ |
+ "origin": [ |
+ "same-origin", |
+ "cross-origin" |
+ ], |
+ |
+ "source_protocol": [ |
+ "http", |
+ "https" |
+ ], |
+ |
+ "target_protocol": [ |
+ "http", |
+ "https" |
+ ], |
+ |
+ "redirection": [ |
+ "no-redirect", |
+ "keep-origin-redirect", |
+ "swap-origin-redirect" |
+ ], |
+ |
+ "subresource": [ |
+ "iframe-tag", |
+ "img-tag", |
+ "script-tag", |
+ "a-tag", |
+ "area-tag", |
+ "xhr-request", |
+ "worker-request", |
+ "fetch-request" |
+ ], |
+ |
+ "referrer_url": [ |
+ "omitted", |
+ "origin", |
+ "stripped-referrer" |
+ ] |
+ }, |
+ |
+ "subresource_path": { |
+ "a-tag": "/referrer-policy/generic/subresource/document.py", |
+ "area-tag": "/referrer-policy/generic/subresource/document.py", |
+ "fetch-request": "/referrer-policy/generic/subresource/xhr.py", |
+ "iframe-tag": "/referrer-policy/generic/subresource/document.py", |
+ "img-tag": "/referrer-policy/generic/subresource/image.py", |
+ "script-tag": "/referrer-policy/generic/subresource/script.py", |
+ "worker-request": "/referrer-policy/generic/subresource/worker.py", |
+ "xhr-request": "/referrer-policy/generic/subresource/xhr.py" |
+ } |
+} |