From 36e4886da1c0b1ea04e9ddcfd266380ed9ea53d8 Mon Sep 17 00:00:00 2001 From: Tim van der Lippe Date: Thu, 29 May 2025 13:26:27 +0200 Subject: [PATCH] Implement basics of link preloading (#37036) These changes allow a minimal set of checks for font-src CSP checks to pass. Part of #4577 Part of #35035 --------- Signed-off-by: Tim van der Lippe --- components/net/lib.rs | 1 - components/net/tests/main.rs | 1 - components/script/dom/element.rs | 34 +- components/script/dom/htmlimageelement.rs | 32 +- components/script/dom/htmllinkelement.rs | 336 ++++++++- .../webidls/HTMLLinkElement.webidl | 2 +- components/shared/net/lib.rs | 1 + .../{ => shared}/net/mime_classifier.rs | 77 ++- .../{ => shared}/net/tests/mime_classifier.rs | 2 +- .../application/font-woff/test.wof | 0 .../parsable_mime/application/ogg/small.ogg | Bin .../parsable_mime/application/pdf/test.pdf | 312 ++++----- .../application/postscript/test.ps | 0 .../vnd.ms-fontobject/vnd.ms-fontobject | Bin .../parsable_mime/application/x-gzip/test.gz | Bin .../application/x-rar-compressed/test.rar | Bin .../parsable_mime/application/zip/test.zip | 0 .../tests/parsable_mime/audio/aiff/test.aif | Bin .../tests/parsable_mime/audio/basic/test.au | Bin .../tests/parsable_mime/audio/midi/test.mid | Bin .../tests/parsable_mime/audio/mpeg/test.mp3 | Bin .../tests/parsable_mime/audio/wave/test.wav | Bin .../tests/parsable_mime/image/bmp/test.bmp | Bin .../net/tests/parsable_mime/image/gif/test87a | Bin .../tests/parsable_mime/image/gif/test89a.gif | Bin .../tests/parsable_mime/image/jpeg/test.jpg | Bin .../tests/parsable_mime/image/png/test.png | Bin .../tests/parsable_mime/image/webp/test.webp | Bin .../tests/parsable_mime/image/x-icon/test.ico | Bin .../image/x-icon/test_cursor.ico | Bin .../text/html/text_html_a_20.html | 0 .../text/html/text_html_a_20_u.html | 0 .../text/html/text_html_a_3e.html | 0 .../text/html/text_html_a_3e_u.html | 0 .../text/html/text_html_b_20.html | 0 .../text/html/text_html_b_20_u.html | 0 .../text/html/text_html_b_3e.html | 0 .../text/html/text_html_b_3e_u.html | 0 .../text/html/text_html_body_20.html | 0 .../text/html/text_html_body_20_u.html | 0 .../text/html/text_html_body_3e.html | 0 .../text/html/text_html_body_3e_u.html | 0 .../text/html/text_html_br_20.html | 0 .../text/html/text_html_br_20_u.html | 0 .../text/html/text_html_br_3e.html | 0 .../text/html/text_html_br_3e_u.html | 0 .../text/html/text_html_comment_20.html | 0 .../text/html/text_html_comment_20_u.html | 0 .../text/html/text_html_comment_3e.html | 0 .../text/html/text_html_comment_3e_u.html | 0 .../text/html/text_html_div_20.html | 0 .../text/html/text_html_div_20_u.html | 0 .../text/html/text_html_div_3e.html | 0 .../text/html/text_html_div_3e_u.html | 0 .../text/html/text_html_doctype_20.html | 0 .../text/html/text_html_doctype_20_u.html | 0 .../text/html/text_html_doctype_3e.html | 0 .../text/html/text_html_doctype_3e_u.html | 0 .../text/html/text_html_font_20.html | 0 .../text/html/text_html_font_20_u.html | 0 .../text/html/text_html_font_3e.html | 0 .../text/html/text_html_font_3e_u.html | 0 .../text/html/text_html_h1_20.html | 0 .../text/html/text_html_h1_20_u.html | 0 .../text/html/text_html_h1_3e.html | 0 .../text/html/text_html_h1_3e_u.html | 0 .../text/html/text_html_head_20.html | 0 .../text/html/text_html_head_20_u.html | 0 .../text/html/text_html_head_3e.html | 0 .../text/html/text_html_head_3e_u.html | 0 .../text/html/text_html_iframe_20.html | 0 .../text/html/text_html_iframe_20_u.html | 0 .../text/html/text_html_iframe_3e.html | 0 .../text/html/text_html_iframe_3e_u.html | 0 .../text/html/text_html_p_20.html | 0 .../text/html/text_html_p_20_u.html | 0 .../text/html/text_html_p_3e.html | 0 .../text/html/text_html_p_3e_u.html | 0 .../text/html/text_html_page_20.html | 0 .../text/html/text_html_page_20_u.html | 0 .../text/html/text_html_page_3e.html | 0 .../text/html/text_html_page_3e_u.html | 0 .../text/html/text_html_script_20.html | 0 .../text/html/text_html_script_20_u.html | 0 .../text/html/text_html_script_3e.html | 0 .../text/html/text_html_script_3e_u.html | 0 .../text/html/text_html_style_20.html | 0 .../text/html/text_html_style_20_u.html | 0 .../text/html/text_html_style_3e.html | 0 .../text/html/text_html_style_3e_u.html | 0 .../text/html/text_html_table_20.html | 0 .../text/html/text_html_table_20_u.html | 0 .../text/html/text_html_table_3e.html | 0 .../text/html/text_html_table_3e_u.html | 0 .../text/html/text_html_title_20.html | 0 .../text/html/text_html_title_20_u.html | 0 .../text/html/text_html_title_3e.html | 0 .../text/html/text_html_title_3e_u.html | 0 .../parsable_mime/text/plain/utf16bebom.txt | Bin .../parsable_mime/text/plain/utf16lebom.txt | Bin .../parsable_mime/text/plain/utf8bom.txt | 0 .../tests/parsable_mime/text/xml/feed.atom | 0 .../net/tests/parsable_mime/text/xml/feed.rss | 300 ++++---- .../tests/parsable_mime/text/xml/rdf_rss.xml | 0 .../parsable_mime/text/xml/rdf_rss_ko_1.xml | 0 .../parsable_mime/text/xml/rdf_rss_ko_2.xml | 0 .../parsable_mime/text/xml/rdf_rss_ko_3.xml | 0 .../parsable_mime/text/xml/rdf_rss_ko_4.xml | 0 .../net/tests/parsable_mime/text/xml/test.xml | 0 .../tests/parsable_mime/unknown/binary_file | Bin .../net/tests/parsable_mime/unknown/open_type | 0 .../tests/parsable_mime/unknown/true_type.ttf | Bin .../unknown/true_type_collection.ttc | 0 .../tests/parsable_mime/video/avi/test.avi | Bin .../tests/parsable_mime/video/mp4/test.mp4 | Bin .../tests/parsable_mime/video/webm/test.webm | Bin servo-tidy.toml | 2 +- tests/wpt/include.ini | 2 + tests/wpt/meta/MANIFEST.json | 2 +- .../font-src/font-match-allowed.sub.html.ini | 4 - .../font-mismatch-blocked.sub.html.ini | 4 - .../font-src/font-none-blocked.sub.html.ini | 4 - .../font-src/font-self-allowed.html.ini | 4 - .../background-attachment-353.html.ini | 2 +- .../background-image-first-letter.html.ini | 2 +- .../background-image-first-line.html.ini | 2 +- ...led-as-html-nosniff.tentative.sub.html.ini | 3 +- ...-link-prefetch.https.optional.sub.html.ini | 6 - .../fetch/metadata/preload.https.sub.html.ini | 64 +- .../redirect-http-upgrade.sub.html.ini | 3 - .../redirect-https-downgrade.sub.html.ini | 3 - .../meta/html/dom/idlharness.https.html.ini | 6 - .../html/dom/reflection-metadata.html.ini | 642 ------------------ ...a-does-not-block-render.tentative.html.ini | 3 - ...sheet-nomatch-media.tentative.sub.html.ini | 3 - ...nk-stylesheet-media.tentative.sub.html.ini | 3 - .../meta/preload/download-resources.html.ini | 3 + ...ynamic-adding-preload-imagesrcset.html.ini | 3 + .../preload/dynamic-adding-preload.html.ini | 3 + .../link-header-modulepreload.html.ini | 4 + .../link-header-on-subresource.html.ini | 3 + .../link-header-preload-delay-onload.html.ini | 3 + .../link-header-preload-imagesrcset.html.ini | 3 + .../link-header-preload-non-html.html.ini | 15 + .../link-header-preload-nonce.html.ini | 3 + .../meta/preload/link-header-preload.html.ini | 3 + .../meta/preload/modulepreload-as.html.ini | 82 +++ .../modulepreload-sri-importmap.html.ini | 3 + .../meta/preload/modulepreload-sri.html.ini | 3 + tests/wpt/meta/preload/modulepreload.html.ini | 85 +++ tests/wpt/meta/preload/onerror-event.html.ini | 3 + tests/wpt/meta/preload/onload-event.html.ini | 3 + tests/wpt/meta/preload/preconnect.html.ini | 4 + .../meta/preload/prefetch-document.html.ini | 6 + .../wpt/meta/preload/preload-csp.sub.html.ini | 3 + .../preload/preload-default-csp.sub.html.ini | 3 + .../meta/preload/preload-error.sub.html.ini | 102 +++ .../preload/preload-font-crossorigin.html.ini | 12 + .../meta/preload/preload-in-data-doc.html.ini | 2 + .../meta/preload/preload-nonce.sub.html.ini | 3 + ...licy-subresource-header.tentative.html.ini | 594 ++++++++++++++++ .../preload/preload-referrer-policy.html.ini | 589 ++++++++++++++++ .../preload-resource-match.https.html.ini | 148 ++++ .../preload-strict-dynamic.sub.html.ini | 3 + .../preload-time-to-fetch.https.html.ini | 9 + .../meta/preload/preload-type-match.html.ini | 21 + .../meta/preload/preload-with-type.html.ini | 3 + tests/wpt/meta/preload/preload-xhr.html.ini | 6 + ...single-download-late-used-preload.html.ini | 3 + .../preload/single-download-preload.html.ini | 3 + .../subresource-integrity-font.html.ini | 69 ++ .../preload/subresource-integrity.html.ini | 195 ++++++ .../meta/preload/supported-as-values.html.ini | 43 ++ tests/wpt/tests/preload/preload-csp.sub.html | 6 +- 174 files changed, 2814 insertions(+), 1097 deletions(-) rename components/{ => shared}/net/mime_classifier.rs (93%) rename components/{ => shared}/net/tests/mime_classifier.rs (99%) rename components/{ => shared}/net/tests/parsable_mime/application/font-woff/test.wof (100%) rename components/{ => shared}/net/tests/parsable_mime/application/ogg/small.ogg (100%) rename components/{ => shared}/net/tests/parsable_mime/application/pdf/test.pdf (95%) rename components/{ => shared}/net/tests/parsable_mime/application/postscript/test.ps (100%) rename components/{ => shared}/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject (100%) rename components/{ => shared}/net/tests/parsable_mime/application/x-gzip/test.gz (100%) rename components/{ => shared}/net/tests/parsable_mime/application/x-rar-compressed/test.rar (100%) rename components/{ => shared}/net/tests/parsable_mime/application/zip/test.zip (100%) rename components/{ => shared}/net/tests/parsable_mime/audio/aiff/test.aif (100%) rename components/{ => shared}/net/tests/parsable_mime/audio/basic/test.au (100%) rename components/{ => shared}/net/tests/parsable_mime/audio/midi/test.mid (100%) rename components/{ => shared}/net/tests/parsable_mime/audio/mpeg/test.mp3 (100%) rename components/{ => shared}/net/tests/parsable_mime/audio/wave/test.wav (100%) rename components/{ => shared}/net/tests/parsable_mime/image/bmp/test.bmp (100%) rename components/{ => shared}/net/tests/parsable_mime/image/gif/test87a (100%) rename components/{ => shared}/net/tests/parsable_mime/image/gif/test89a.gif (100%) rename components/{ => shared}/net/tests/parsable_mime/image/jpeg/test.jpg (100%) rename components/{ => shared}/net/tests/parsable_mime/image/png/test.png (100%) rename components/{ => shared}/net/tests/parsable_mime/image/webp/test.webp (100%) rename components/{ => shared}/net/tests/parsable_mime/image/x-icon/test.ico (100%) rename components/{ => shared}/net/tests/parsable_mime/image/x-icon/test_cursor.ico (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_a_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_a_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_a_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_a_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_b_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_b_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_b_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_b_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_body_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_body_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_body_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_body_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_br_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_br_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_br_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_br_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_comment_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_comment_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_comment_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_div_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_div_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_div_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_div_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_doctype_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_doctype_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_font_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_font_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_font_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_font_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_h1_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_h1_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_h1_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_head_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_head_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_head_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_head_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_iframe_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_iframe_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_p_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_p_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_p_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_p_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_page_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_page_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_page_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_page_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_script_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_script_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_script_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_script_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_style_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_style_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_style_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_style_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_table_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_table_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_table_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_table_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_title_20.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_title_20_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_title_3e.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/html/text_html_title_3e_u.html (100%) rename components/{ => shared}/net/tests/parsable_mime/text/plain/utf16bebom.txt (100%) rename components/{ => shared}/net/tests/parsable_mime/text/plain/utf16lebom.txt (100%) rename components/{ => shared}/net/tests/parsable_mime/text/plain/utf8bom.txt (100%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/feed.atom (100%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/feed.rss (98%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/rdf_rss.xml (100%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml (100%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml (100%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml (100%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml (100%) rename components/{ => shared}/net/tests/parsable_mime/text/xml/test.xml (100%) rename components/{ => shared}/net/tests/parsable_mime/unknown/binary_file (100%) rename components/{ => shared}/net/tests/parsable_mime/unknown/open_type (100%) rename components/{ => shared}/net/tests/parsable_mime/unknown/true_type.ttf (100%) rename components/{ => shared}/net/tests/parsable_mime/unknown/true_type_collection.ttc (100%) rename components/{ => shared}/net/tests/parsable_mime/video/avi/test.avi (100%) rename components/{ => shared}/net/tests/parsable_mime/video/mp4/test.mp4 (100%) rename components/{ => shared}/net/tests/parsable_mime/video/webm/test.webm (100%) delete mode 100644 tests/wpt/meta/content-security-policy/font-src/font-match-allowed.sub.html.ini delete mode 100644 tests/wpt/meta/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini delete mode 100644 tests/wpt/meta/content-security-policy/font-src/font-none-blocked.sub.html.ini delete mode 100644 tests/wpt/meta/content-security-policy/font-src/font-self-allowed.html.ini delete mode 100644 tests/wpt/meta/html/semantics/document-metadata/interactions-of-styling-and-scripting/link-stylesheet-with-non-match-media-does-not-block-render.tentative.html.ini delete mode 100644 tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-nomatch-media.tentative.sub.html.ini delete mode 100644 tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html.ini create mode 100644 tests/wpt/meta/preload/download-resources.html.ini create mode 100644 tests/wpt/meta/preload/dynamic-adding-preload-imagesrcset.html.ini create mode 100644 tests/wpt/meta/preload/dynamic-adding-preload.html.ini create mode 100644 tests/wpt/meta/preload/link-header-modulepreload.html.ini create mode 100644 tests/wpt/meta/preload/link-header-on-subresource.html.ini create mode 100644 tests/wpt/meta/preload/link-header-preload-delay-onload.html.ini create mode 100644 tests/wpt/meta/preload/link-header-preload-imagesrcset.html.ini create mode 100644 tests/wpt/meta/preload/link-header-preload-non-html.html.ini create mode 100644 tests/wpt/meta/preload/link-header-preload-nonce.html.ini create mode 100644 tests/wpt/meta/preload/link-header-preload.html.ini create mode 100644 tests/wpt/meta/preload/modulepreload-as.html.ini create mode 100644 tests/wpt/meta/preload/modulepreload-sri-importmap.html.ini create mode 100644 tests/wpt/meta/preload/modulepreload-sri.html.ini create mode 100644 tests/wpt/meta/preload/modulepreload.html.ini create mode 100644 tests/wpt/meta/preload/onerror-event.html.ini create mode 100644 tests/wpt/meta/preload/onload-event.html.ini create mode 100644 tests/wpt/meta/preload/preconnect.html.ini create mode 100644 tests/wpt/meta/preload/prefetch-document.html.ini create mode 100644 tests/wpt/meta/preload/preload-csp.sub.html.ini create mode 100644 tests/wpt/meta/preload/preload-default-csp.sub.html.ini create mode 100644 tests/wpt/meta/preload/preload-error.sub.html.ini create mode 100644 tests/wpt/meta/preload/preload-font-crossorigin.html.ini create mode 100644 tests/wpt/meta/preload/preload-in-data-doc.html.ini create mode 100644 tests/wpt/meta/preload/preload-nonce.sub.html.ini create mode 100644 tests/wpt/meta/preload/preload-referrer-policy-subresource-header.tentative.html.ini create mode 100644 tests/wpt/meta/preload/preload-referrer-policy.html.ini create mode 100644 tests/wpt/meta/preload/preload-resource-match.https.html.ini create mode 100644 tests/wpt/meta/preload/preload-strict-dynamic.sub.html.ini create mode 100644 tests/wpt/meta/preload/preload-time-to-fetch.https.html.ini create mode 100644 tests/wpt/meta/preload/preload-type-match.html.ini create mode 100644 tests/wpt/meta/preload/preload-with-type.html.ini create mode 100644 tests/wpt/meta/preload/preload-xhr.html.ini create mode 100644 tests/wpt/meta/preload/single-download-late-used-preload.html.ini create mode 100644 tests/wpt/meta/preload/single-download-preload.html.ini create mode 100644 tests/wpt/meta/preload/subresource-integrity-font.html.ini create mode 100644 tests/wpt/meta/preload/subresource-integrity.html.ini create mode 100644 tests/wpt/meta/preload/supported-as-values.html.ini diff --git a/components/net/lib.rs b/components/net/lib.rs index 0576c017e59..b236f2bc784 100644 --- a/components/net/lib.rs +++ b/components/net/lib.rs @@ -16,7 +16,6 @@ pub mod http_cache; pub mod http_loader; pub mod image_cache; pub mod local_directory_listing; -pub mod mime_classifier; pub mod protocols; pub mod request_interceptor; pub mod resource_thread; diff --git a/components/net/tests/main.rs b/components/net/tests/main.rs index ba58c4a4c1d..77bc11d4c61 100644 --- a/components/net/tests/main.rs +++ b/components/net/tests/main.rs @@ -14,7 +14,6 @@ mod filemanager_thread; mod hsts; mod http_cache; mod http_loader; -mod mime_classifier; mod resource_thread; mod subresource_integrity; diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index dbf0f14ab68..af8dbebd20e 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -13,7 +13,7 @@ use std::str::FromStr; use std::{fmt, mem}; use content_security_policy as csp; -use cssparser::match_ignore_ascii_case; +use cssparser::{Parser as CssParser, ParserInput as CssParserInput, match_ignore_ascii_case}; use devtools_traits::AttrInfo; use dom_struct::dom_struct; use embedder_traits::InputMethodType; @@ -36,6 +36,8 @@ use style::applicable_declarations::ApplicableDeclarationBlock; use style::attr::{AttrValue, LengthOrPercentageOrAuto}; use style::context::QuirksMode; use style::invalidation::element::restyle_hints::RestyleHint; +use style::media_queries::MediaList; +use style::parser::ParserContext as CssParserContext; use style::properties::longhands::{ self, background_image, border_spacing, font_family, font_size, }; @@ -50,13 +52,14 @@ use style::selector_parser::{ }; use style::shared_lock::{Locked, SharedRwLock}; use style::stylesheets::layer_rule::LayerOrder; -use style::stylesheets::{CssRuleType, UrlExtraData}; +use style::stylesheets::{CssRuleType, Origin as CssOrigin, UrlExtraData}; use style::values::computed::Overflow; use style::values::generics::NonNegative; use style::values::generics::position::PreferredRatio; use style::values::generics::ratio::Ratio; use style::values::{AtomIdent, AtomString, CSSFloat, computed, specified}; use style::{ArcSlice, CaseSensitivityExt, dom_apis, thread_state}; +use style_traits::ParsingMode as CssParsingMode; use stylo_atoms::Atom; use stylo_dom::ElementState; use xml5ever::serialize::TraversalScope::{ @@ -781,6 +784,33 @@ impl Element { .registered_intersection_observers .retain(|reg_obs| *reg_obs.observer != *observer) } + + /// + pub(crate) fn matches_environment(&self, media_query: &str) -> bool { + let document = self.owner_document(); + let quirks_mode = document.quirks_mode(); + let document_url_data = UrlExtraData(document.url().get_arc()); + // FIXME(emilio): This should do the same that we do for other media + // lists regarding the rule type and such, though it doesn't really + // matter right now... + // + // Also, ParsingMode::all() is wrong, and should be DEFAULT. + let context = CssParserContext::new( + CssOrigin::Author, + &document_url_data, + Some(CssRuleType::Style), + CssParsingMode::all(), + quirks_mode, + /* namespaces = */ Default::default(), + None, + None, + ); + let mut parser_input = CssParserInput::new(media_query); + let mut parser = CssParser::new(&mut parser_input); + let media_list = MediaList::parse(&context, &mut parser); + let result = media_list.evaluate(document.window().layout().device(), quirks_mode); + result + } } /// diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index b9819000556..b1258c42cce 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -34,9 +34,8 @@ use servo_url::ServoUrl; use servo_url::origin::MutableOrigin; use style::attr::{AttrValue, LengthOrPercentageOrAuto, parse_integer, parse_length}; use style::context::QuirksMode; -use style::media_queries::MediaList; use style::parser::ParserContext; -use style::stylesheets::{CssRuleType, Origin, UrlExtraData}; +use style::stylesheets::{CssRuleType, Origin}; use style::values::specified::AbsoluteLength; use style::values::specified::length::{Length, NoCalcLength}; use style::values::specified::source_size_list::SourceSizeList; @@ -678,7 +677,7 @@ impl HTMLImageElement { // Step 4.6 if let Some(x) = element.get_attribute(&ns!(), &local_name!("media")) { - if !self.matches_environment(x.value().to_string()) { + if !elem.matches_environment(&x.value()) { continue; } } @@ -722,33 +721,6 @@ impl HTMLImageElement { result } - /// - fn matches_environment(&self, media_query: String) -> bool { - let document = self.owner_document(); - let quirks_mode = document.quirks_mode(); - let document_url_data = UrlExtraData(document.url().get_arc()); - // FIXME(emilio): This should do the same that we do for other media - // lists regarding the rule type and such, though it doesn't really - // matter right now... - // - // Also, ParsingMode::all() is wrong, and should be DEFAULT. - let context = ParserContext::new( - Origin::Author, - &document_url_data, - Some(CssRuleType::Style), - ParsingMode::all(), - quirks_mode, - /* namespaces = */ Default::default(), - None, - None, - ); - let mut parserInput = ParserInput::new(&media_query); - let mut parser = Parser::new(&mut parserInput); - let media_list = MediaList::parse(&context, &mut parser); - let result = media_list.evaluate(document.window().layout().device(), quirks_mode); - result - } - /// fn normalise_source_densities(&self, source_set: &mut SourceSet, width: Option) { // Step 1 diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index f4e7683cf2a..41edb2c22d3 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -5,6 +5,7 @@ use std::borrow::{Borrow, ToOwned}; use std::cell::Cell; use std::default::Default; +use std::str::FromStr; use base::id::WebViewId; use content_security_policy as csp; @@ -12,6 +13,8 @@ use dom_struct::dom_struct; use embedder_traits::EmbedderMsg; use html5ever::{LocalName, Prefix, local_name, ns}; use js::rust::HandleObject; +use mime::Mime; +use net_traits::mime_classifier::{MediaType, MimeClassifier}; use net_traits::policy_container::PolicyContainer; use net_traits::request::{ CorsSettings, Destination, Initiator, InsecureRequestsPolicy, Referrer, RequestBuilder, @@ -22,7 +25,7 @@ use net_traits::{ ResourceTimingType, }; use servo_arc::Arc; -use servo_url::ServoUrl; +use servo_url::{ImmutableOrigin, ServoUrl}; use style::attr::AttrValue; use style::stylesheets::Stylesheet; use stylo_atoms::Atom; @@ -78,6 +81,7 @@ struct LinkProcessingOptions { policy_container: PolicyContainer, source_set: Option<()>, base_url: ServoUrl, + origin: ImmutableOrigin, insecure_requests_policy: InsecureRequestsPolicy, has_trustworthy_ancestor_origin: bool, // Some fields that we don't need yet are missing @@ -113,6 +117,10 @@ pub(crate) struct HTMLLinkElement { request_generation_id: Cell, /// is_explicitly_enabled: Cell, + /// Whether the previous type matched with the destination + previous_type_matched: Cell, + /// Whether the previous media environment matched with the media query + previous_media_environment_matched: Cell, } impl HTMLLinkElement { @@ -133,6 +141,8 @@ impl HTMLLinkElement { any_failed_load: Cell::new(false), request_generation_id: Cell::new(RequestGenerationId(0)), is_explicitly_enabled: Cell::new(false), + previous_type_matched: Cell::new(true), + previous_media_environment_matched: Cell::new(true), } } @@ -236,7 +246,7 @@ impl VirtualMethods for HTMLLinkElement { return; } - if !self.upcast::().is_connected() || is_removal { + if !self.upcast::().is_connected() { return; } match *local_name { @@ -245,6 +255,12 @@ impl VirtualMethods for HTMLLinkElement { .set(LinkRelations::for_element(self.upcast())); }, local_name!("href") => { + if is_removal { + return; + } + // https://html.spec.whatwg.org/multipage/#link-type-stylesheet + // When the href attribute of the link element of an external resource link + // that is already browsing-context connected is changed. if self.relations.get().contains(LinkRelations::STYLESHEET) { self.handle_stylesheet_url(&attr.value()); } @@ -254,9 +270,19 @@ impl VirtualMethods for HTMLLinkElement { self.handle_favicon_url(&attr.value(), &sizes); } + // https://html.spec.whatwg.org/multipage/#link-type-prefetch + // When the href attribute of the link element of an external resource link + // that is already browsing-context connected is changed. if self.relations.get().contains(LinkRelations::PREFETCH) { self.fetch_and_process_prefetch_link(&attr.value()); } + + // https://html.spec.whatwg.org/multipage/#link-type-preload + // When the href attribute of the link element of an external resource link + // that is already browsing-context connected is changed. + if self.relations.get().contains(LinkRelations::PRELOAD) { + self.handle_preload_url(); + } }, local_name!("sizes") if self.relations.get().contains(LinkRelations::ICON) => { if let Some(ref href) = get_attr(self.upcast(), &local_name!("href")) { @@ -264,9 +290,73 @@ impl VirtualMethods for HTMLLinkElement { } }, local_name!("crossorigin") => { + // https://html.spec.whatwg.org/multipage/#link-type-prefetch + // When the crossorigin attribute of the link element of an external resource link + // that is already browsing-context connected is set, changed, or removed. if self.relations.get().contains(LinkRelations::PREFETCH) { self.fetch_and_process_prefetch_link(&attr.value()); } + + // https://html.spec.whatwg.org/multipage/#link-type-stylesheet + // When the crossorigin attribute of the link element of an external resource link + // that is already browsing-context connected is set, changed, or removed. + if self.relations.get().contains(LinkRelations::STYLESHEET) { + self.handle_stylesheet_url(&attr.value()); + } + }, + local_name!("as") => { + // https://html.spec.whatwg.org/multipage/#link-type-preload + // When the as attribute of the link element of an external resource link + // that is already browsing-context connected is changed. + if self.relations.get().contains(LinkRelations::PRELOAD) { + if let AttributeMutation::Set(Some(_)) = mutation { + self.handle_preload_url(); + } + } + }, + local_name!("type") => { + // https://html.spec.whatwg.org/multipage/#link-type-stylesheet + // When the type attribute of the link element of an external resource link that + // is already browsing-context connected is set or changed to a value that does + // not or no longer matches the Content-Type metadata of the previous obtained + // external resource, if any. + // + // TODO: Match Content-Type metadata to check if it needs to be updated + if self.relations.get().contains(LinkRelations::STYLESHEET) { + self.handle_stylesheet_url(&attr.value()); + } + + // https://html.spec.whatwg.org/multipage/#link-type-preload + // When the type attribute of the link element of an external resource link that + // is already browsing-context connected, but was previously not obtained due to + // the type attribute specifying an unsupported type for the request destination, + // is set, removed, or changed. + if self.relations.get().contains(LinkRelations::PRELOAD) && + !self.previous_type_matched.get() + { + self.handle_preload_url(); + } + }, + local_name!("media") => { + // https://html.spec.whatwg.org/multipage/#link-type-preload + // When the media attribute of the link element of an external resource link that + // is already browsing-context connected, but was previously not obtained due to + // the media attribute not matching the environment, is changed or removed. + if self.relations.get().contains(LinkRelations::PRELOAD) && + !self.previous_media_environment_matched.get() + { + match mutation { + AttributeMutation::Removed | AttributeMutation::Set(Some(_)) => { + self.handle_preload_url() + }, + _ => {}, + }; + } + + let matches_media_environment = + self.upcast::().matches_environment(&attr.value()); + self.previous_media_environment_matched + .set(matches_media_environment); }, _ => {}, } @@ -307,6 +397,10 @@ impl VirtualMethods for HTMLLinkElement { if relations.contains(LinkRelations::PREFETCH) { self.fetch_and_process_prefetch_link(&href); } + + if relations.contains(LinkRelations::PRELOAD) { + self.handle_preload_url(); + } } } } @@ -325,6 +419,14 @@ impl VirtualMethods for HTMLLinkElement { } impl HTMLLinkElement { + fn compute_destination_for_attribute(&self) -> Destination { + let element = self.upcast::(); + element + .get_attribute(&ns!(), &local_name!("as")) + .map(|attr| translate_a_preload_destination(&attr.value())) + .unwrap_or(Destination::None) + } + /// fn processing_options(&self) -> LinkProcessingOptions { let element = self.upcast::(); @@ -333,10 +435,7 @@ impl HTMLLinkElement { let document = self.upcast::().owner_doc(); // Step 2. Let options be a new link processing options - let destination = element - .get_attribute(&ns!(), &local_name!("as")) - .map(|attr| translate_a_preload_destination(&attr.value())) - .unwrap_or(Destination::None); + let destination = self.compute_destination_for_attribute(); let mut options = LinkProcessingOptions { href: String::new(), @@ -348,6 +447,7 @@ impl HTMLLinkElement { referrer_policy: referrer_policy_for_element(element), policy_container: document.policy_container().to_owned(), source_set: None, // FIXME + origin: document.borrow().origin().immutable().to_owned(), base_url: document.borrow().base_url(), insecure_requests_policy: document.insecure_requests_policy(), has_trustworthy_ancestor_origin: document.has_trustworthy_ancestor_or_current_origin(), @@ -446,6 +546,10 @@ impl HTMLLinkElement { None => "", }; + if !element.matches_environment(mq_str) { + return; + } + let media = MediaList::parse_media_list(mq_str, document.window()); let im_attribute = element.get_attribute(&ns!(), &local_name!("integrity")); @@ -458,8 +562,6 @@ impl HTMLLinkElement { self.request_generation_id .set(self.request_generation_id.get().increment()); - // TODO: #8085 - Don't load external stylesheets if the node's mq - // doesn't match. let loader = StylesheetLoader::for_element(self.upcast()); loader.load( StylesheetContextSource::LinkElement { media: Some(media) }, @@ -494,6 +596,133 @@ impl HTMLLinkElement { Err(e) => debug!("Parsing url {} failed: {}", href, e), } } + + /// + fn handle_preload_url(&self) { + // Step 1. Update the source set for el. + // TODO + // Step 2. Let options be the result of creating link options from el. + let options = self.processing_options(); + // Step 3. Preload options, with the following steps given a response response: + // Step 3.1 If response is a network error, fire an event named error at el. + // Otherwise, fire an event named load at el. + self.preload(options); + } + + /// + fn preload(&self, options: LinkProcessingOptions) { + // Step 1. If options's type doesn't match options's destination, then return. + let type_matches_destination: bool = + HTMLLinkElement::type_matches_destination(&options.link_type, options.destination); + self.previous_type_matched.set(type_matches_destination); + if !type_matches_destination { + return; + } + // Step 2. If options's destination is "image" and options's source set is not null, + // then set options's href to the result of selecting an image source from options's source set. + // TODO + // Step 3. Let request be the result of creating a link request given options. + let url = options.base_url.clone(); + let Some(request) = options.create_link_request(self.owner_window().webview_id()) else { + // Step 4. If request is null, then return. + return; + }; + let document = self.upcast::().owner_doc(); + // Step 5. Let unsafeEndTime be 0. + // TODO + // Step 6. Let entry be a new preload entry whose integrity metadata is options's integrity. + // TODO + // Step 7. Let key be the result of creating a preload key given request. + // TODO + // Step 8. If options's document is "pending", then set request's initiator type to "early hint". + // TODO + // Step 9. Let controller be null. + // Step 10. Let reportTiming given a Document document be to report timing for controller + // given document's relevant global object. + // Step 11. Set controller to the result of fetching request, with processResponseConsumeBody + // set to the following steps given a response response and null, failure, or a byte sequence bodyBytes: + let fetch_context = PreloadContext { + url, + link: Trusted::new(self), + resource_timing: ResourceFetchTiming::new(ResourceTimingType::Resource), + }; + document.fetch_background(request.clone(), fetch_context); + } + + /// + fn type_matches_destination(mime_type: &str, destination: Option) -> bool { + // Step 1. If type is an empty string, then return true. + if mime_type.is_empty() { + return true; + } + // Step 2. If destination is "fetch", then return true. + // + // Fetch is handled as an empty string destination in the spec: + // https://fetch.spec.whatwg.org/#concept-potential-destination-translate + let Some(destination) = destination else { + return false; + }; + if destination == Destination::None { + return true; + } + // Step 3. Let mimeTypeRecord be the result of parsing type. + let Ok(mime_type_record) = Mime::from_str(mime_type) else { + // Step 4. If mimeTypeRecord is failure, then return false. + return false; + }; + // Step 5. If mimeTypeRecord is not supported by the user agent, then return false. + // + // We currently don't check if we actually support the mime type. Only if we can classify + // it according to the spec. + let Some(mime_type) = MimeClassifier::get_media_type(&mime_type_record) else { + return false; + }; + // Step 6. If any of the following are true: + if + // destination is "audio" or "video", and mimeTypeRecord is an audio or video MIME type; + ((destination == Destination::Audio || destination == Destination::Video) && + mime_type == MediaType::AudioVideo) + // destination is a script-like destination and mimeTypeRecord is a JavaScript MIME type; + || (destination.is_script_like() && mime_type == MediaType::JavaScript) + // destination is "image" and mimeTypeRecord is an image MIME type; + || (destination == Destination::Image && mime_type == MediaType::Image) + // destination is "font" and mimeTypeRecord is a font MIME type; + || (destination == Destination::Font && mime_type == MediaType::Font) + // destination is "json" and mimeTypeRecord is a JSON MIME type; + || (destination == Destination::Json && mime_type == MediaType::Json) + // destination is "style" and mimeTypeRecord's essence is text/css; or + || (destination == Destination::Style && mime_type_record == mime::TEXT_CSS) + // destination is "track" and mimeTypeRecord's essence is text/vtt, + || (destination == Destination::Track && mime_type_record.essence_str() == "text/vtt") + { + // then return true. + return true; + } + // Step 7. Return false. + false + } + + fn fire_event_after_response(&self, response: Result) { + if response.is_err() { + self.upcast::() + .fire_event(atom!("error"), CanGc::note()); + } else { + // TODO(35035): Figure out why we need to queue a task for the load event. Otherwise + // the performance timing data hasn't been saved yet, which fails several preload + // WPT tests that assume that performance timing information is available when + // the load event is fired. + let this = Trusted::new(self); + self.owner_global() + .task_manager() + .performance_timeline_task_source() + .queue(task!(preload_load_event: move || { + let this = this.root(); + this + .upcast::() + .fire_event(atom!("load"), CanGc::note()); + })); + } + } } impl StylesheetOwner for HTMLLinkElement { @@ -552,6 +781,21 @@ impl HTMLLinkElementMethods for HTMLLinkElement { .set_tokenlist_attribute(&local_name!("rel"), rel, can_gc); } + // https://html.spec.whatwg.org/multipage/#dom-link-as + make_enumerated_getter!( + As, + "as", + "fetch" | "audio" | "audioworklet" | "document" | "embed" | "font" | "frame" + | "iframe" | "image" | "json" | "manifest" | "object" | "paintworklet" + | "report" | "script" | "serviceworker" | "sharedworker" | "style" | "track" + | "video" | "webidentity" | "worker" | "xslt", + missing => "", + invalid => "" + ); + + // https://html.spec.whatwg.org/multipage/#dom-link-as + make_setter!(SetAs, "as"); + // https://html.spec.whatwg.org/multipage/#dom-link-media make_getter!(Media, "media"); @@ -689,6 +933,8 @@ impl LinkProcessingOptions { self.has_trustworthy_ancestor_origin, self.policy_container, ) + .initiator(Initiator::Link) + .origin(self.origin) .integrity_metadata(self.integrity) .cryptographic_nonce_metadata(self.cryptographic_nonce_metadata) .referrer_policy(self.referrer_policy); @@ -795,3 +1041,77 @@ impl PreInvoke for PrefetchContext { true } } + +struct PreloadContext { + /// The `` element that caused this preload operation + link: Trusted, + + resource_timing: ResourceFetchTiming, + + /// The url being preloaded + url: ServoUrl, +} + +impl FetchResponseListener for PreloadContext { + fn process_request_body(&mut self, _: RequestId) {} + + fn process_request_eof(&mut self, _: RequestId) {} + + fn process_response( + &mut self, + _: RequestId, + fetch_metadata: Result, + ) { + _ = fetch_metadata; + } + + fn process_response_chunk(&mut self, _: RequestId, chunk: Vec) { + _ = chunk; + } + + /// Step 3.1 of + fn process_response_eof( + &mut self, + _: RequestId, + response: Result, + ) { + self.link.root().fire_event_after_response(response); + } + + fn resource_timing_mut(&mut self) -> &mut ResourceFetchTiming { + &mut self.resource_timing + } + + fn resource_timing(&self) -> &ResourceFetchTiming { + &self.resource_timing + } + + fn submit_resource_timing(&mut self) { + submit_timing(self, CanGc::note()) + } + + fn process_csp_violations(&mut self, _request_id: RequestId, violations: Vec) { + let global = &self.resource_timing_global(); + global.report_csp_violations(violations, None); + } +} + +impl ResourceTimingListener for PreloadContext { + fn resource_timing_information(&self) -> (InitiatorType, ServoUrl) { + ( + InitiatorType::LocalName(self.url.clone().into_string()), + self.url.clone(), + ) + } + + fn resource_timing_global(&self) -> DomRoot { + self.link.root().upcast::().owner_doc().global() + } +} + +impl PreInvoke for PreloadContext { + fn should_invoke(&self) -> bool { + // Preload requests are never aborted. + true + } +} diff --git a/components/script_bindings/webidls/HTMLLinkElement.webidl b/components/script_bindings/webidls/HTMLLinkElement.webidl index 9182ef393f8..db858a022c2 100644 --- a/components/script_bindings/webidls/HTMLLinkElement.webidl +++ b/components/script_bindings/webidls/HTMLLinkElement.webidl @@ -13,7 +13,7 @@ interface HTMLLinkElement : HTMLElement { attribute DOMString? crossOrigin; [CEReactions] attribute DOMString rel; - // [CEReactions] attribute DOMString as; + [CEReactions] attribute DOMString as; [SameObject, PutForwards=value] readonly attribute DOMTokenList relList; [CEReactions] attribute DOMString media; diff --git a/components/shared/net/lib.rs b/components/shared/net/lib.rs index 0126bdbcd80..0a490fa3bcf 100644 --- a/components/shared/net/lib.rs +++ b/components/shared/net/lib.rs @@ -40,6 +40,7 @@ pub mod blob_url_store; pub mod filemanager_thread; pub mod http_status; pub mod image_cache; +pub mod mime_classifier; pub mod policy_container; pub mod pub_domains; pub mod quality; diff --git a/components/net/mime_classifier.rs b/components/shared/net/mime_classifier.rs similarity index 93% rename from components/net/mime_classifier.rs rename to components/shared/net/mime_classifier.rs index a98c4428b87..7e5408ba56e 100644 --- a/components/net/mime_classifier.rs +++ b/components/shared/net/mime_classifier.rs @@ -3,7 +3,8 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use mime::{self, Mime}; -use net_traits::LoadContext; + +use crate::LoadContext; pub struct MimeClassifier { image_classifier: GroupedClassifier, @@ -16,11 +17,15 @@ pub struct MimeClassifier { font_classifier: GroupedClassifier, } +#[derive(PartialEq)] pub enum MediaType { Xml, Html, AudioVideo, Image, + JavaScript, + Json, + Font, } pub enum ApacheBugFlag { @@ -99,7 +104,11 @@ impl MimeClassifier { Some(MediaType::AudioVideo) => { self.audio_video_classifier.classify(data) }, - Some(MediaType::Xml) | None => None, + Some(MediaType::JavaScript) | + Some(MediaType::Font) | + Some(MediaType::Json) | + Some(MediaType::Xml) | + None => None, } .unwrap_or(supplied_type.clone()) }, @@ -215,20 +224,24 @@ impl MimeClassifier { .expect("BinaryOrPlaintextClassifier always succeeds") } + /// fn is_xml(mt: &Mime) -> bool { mt.suffix() == Some(mime::XML) || - (mt.type_() == mime::APPLICATION && mt.subtype() == mime::XML) || - (mt.type_() == mime::TEXT && mt.subtype() == mime::XML) + *mt == mime::TEXT_XML || + (mt.type_() == mime::APPLICATION && mt.subtype() == mime::XML) } + /// fn is_html(mt: &Mime) -> bool { - mt.type_() == mime::TEXT && mt.subtype() == mime::HTML + *mt == mime::TEXT_HTML } + /// fn is_image(mt: &Mime) -> bool { mt.type_() == mime::IMAGE } + /// fn is_audio_video(mt: &Mime) -> bool { mt.type_() == mime::AUDIO || mt.type_() == mime::VIDEO || @@ -241,7 +254,53 @@ impl MimeClassifier { mt.type_() == mime::STAR && mt.subtype() == mime::STAR } - fn get_media_type(mime: &Mime) -> Option { + /// + fn is_javascript(mt: &Mime) -> bool { + (mt.type_() == mime::APPLICATION && + (["ecmascript", "javascript", "x-ecmascript", "x-javascript"] + .contains(&mt.subtype().as_str()))) || + (mt.type_() == mime::TEXT && + ([ + "ecmascript", + "javascript", + "javascript1.0", + "javascript1.1", + "javascript1.2", + "javascript1.3", + "javascript1.4", + "javascript1.5", + "jscript", + "livescript", + "x-ecmascript", + "x-javascript", + ] + .contains(&mt.subtype().as_str()))) + } + + /// + fn is_json(mt: &Mime) -> bool { + mt.suffix() == Some(mime::JSON) || + (mt.subtype() == mime::JSON && + (mt.type_() == mime::APPLICATION || mt.type_() == mime::TEXT)) + } + + /// + fn is_font(mt: &Mime) -> bool { + mt.type_() == mime::FONT || + (mt.type_() == mime::APPLICATION && + ([ + "font-cff", + "font-off", + "font-sfnt", + "font-ttf", + "font-woff", + "vnd.ms-fontobject", + "vnd.ms-opentype", + ] + .contains(&mt.subtype().as_str()))) + } + + pub fn get_media_type(mime: &Mime) -> Option { if MimeClassifier::is_xml(mime) { Some(MediaType::Xml) } else if MimeClassifier::is_html(mime) { @@ -250,6 +309,12 @@ impl MimeClassifier { Some(MediaType::Image) } else if MimeClassifier::is_audio_video(mime) { Some(MediaType::AudioVideo) + } else if MimeClassifier::is_javascript(mime) { + Some(MediaType::JavaScript) + } else if MimeClassifier::is_font(mime) { + Some(MediaType::Font) + } else if MimeClassifier::is_json(mime) { + Some(MediaType::Json) } else { None } diff --git a/components/net/tests/mime_classifier.rs b/components/shared/net/tests/mime_classifier.rs similarity index 99% rename from components/net/tests/mime_classifier.rs rename to components/shared/net/tests/mime_classifier.rs index b4e6ae6e9ab..79a122ac8bf 100644 --- a/components/net/tests/mime_classifier.rs +++ b/components/shared/net/tests/mime_classifier.rs @@ -8,8 +8,8 @@ use std::io::{self, Read}; use std::path::{self, PathBuf}; use mime::{self, Mime}; -use net::mime_classifier::{ApacheBugFlag, MimeClassifier, Mp4Matcher, NoSniffFlag}; use net_traits::LoadContext; +use net_traits::mime_classifier::{ApacheBugFlag, MimeClassifier, Mp4Matcher, NoSniffFlag}; fn read_file(path: &path::Path) -> io::Result> { let mut file = File::open(path)?; diff --git a/components/net/tests/parsable_mime/application/font-woff/test.wof b/components/shared/net/tests/parsable_mime/application/font-woff/test.wof similarity index 100% rename from components/net/tests/parsable_mime/application/font-woff/test.wof rename to components/shared/net/tests/parsable_mime/application/font-woff/test.wof diff --git a/components/net/tests/parsable_mime/application/ogg/small.ogg b/components/shared/net/tests/parsable_mime/application/ogg/small.ogg similarity index 100% rename from components/net/tests/parsable_mime/application/ogg/small.ogg rename to components/shared/net/tests/parsable_mime/application/ogg/small.ogg diff --git a/components/net/tests/parsable_mime/application/pdf/test.pdf b/components/shared/net/tests/parsable_mime/application/pdf/test.pdf similarity index 95% rename from components/net/tests/parsable_mime/application/pdf/test.pdf rename to components/shared/net/tests/parsable_mime/application/pdf/test.pdf index e7c6e62775f..055169fe34b 100644 --- a/components/net/tests/parsable_mime/application/pdf/test.pdf +++ b/components/shared/net/tests/parsable_mime/application/pdf/test.pdf @@ -1,157 +1,157 @@ -%PDF-1.2 -% - -9 0 obj -<< -/Length 10 0 R -/Filter /FlateDecode ->> -stream +%PDF-1.2 +% + +9 0 obj +<< +/Length 10 0 R +/Filter /FlateDecode +>> +stream H͐J0 {f$Mn-[&jeۤ ~$}ɅIjs~X-],$Y)'Nu1!V?? -b1Rbb҉H[TD:#&حXi$qnf]a{أq|JLs]QIj%9`঺Uitez$OeBĒүR@zܗg< -endstream -endobj -10 0 obj -246 -endobj -4 0 obj -<< -/Type /Page -/Parent 5 0 R -/Resources << -/Font << -/F0 6 0 R -/F1 7 0 R ->> -/ProcSet 2 0 R ->> -/Contents 9 0 R ->> -endobj -6 0 obj -<< -/Type /Font -/Subtype /TrueType -/Name /F0 -/BaseFont /Arial -/Encoding /WinAnsiEncoding ->> -endobj -7 0 obj -<< -/Type /Font -/Subtype /TrueType -/Name /F1 -/BaseFont /BookAntiqua,Bold -/FirstChar 31 -/LastChar 255 -/Widths [ 750 250 278 402 606 500 889 833 227 333 333 444 606 250 333 250 -296 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 -444 747 778 667 722 833 611 556 833 833 389 389 778 611 1000 833 -833 611 833 722 611 667 778 778 1000 667 667 667 333 606 333 606 -500 333 500 611 444 611 500 389 556 611 333 333 611 333 889 611 -556 611 611 389 444 333 611 556 833 500 556 500 310 606 310 606 -750 500 750 333 500 500 1000 500 500 333 1000 611 389 1000 750 750 -750 750 278 278 500 500 606 500 1000 333 998 444 389 833 750 750 -667 250 278 500 500 606 500 606 500 333 747 438 500 606 333 747 -500 400 549 361 361 333 576 641 250 333 361 488 500 889 890 889 -444 778 778 778 778 778 778 1000 722 611 611 611 611 389 389 389 -389 833 833 833 833 833 833 833 606 833 778 778 778 778 667 611 -611 500 500 500 500 500 500 778 444 500 500 500 500 333 333 333 -333 556 611 556 556 556 556 556 549 556 611 611 611 611 556 611 -556 ] -/Encoding /WinAnsiEncoding -/FontDescriptor 8 0 R ->> -endobj -8 0 obj -<< -/Type /FontDescriptor -/FontName /BookAntiqua,Bold -/Flags 16418 -/FontBBox [ -250 -260 1236 930 ] -/MissingWidth 750 -/StemV 146 -/StemH 146 -/ItalicAngle 0 -/CapHeight 930 -/XHeight 651 -/Ascent 930 -/Descent 260 -/Leading 210 -/MaxWidth 1030 -/AvgWidth 460 ->> -endobj -2 0 obj -[ /PDF /Text ] -endobj -5 0 obj -<< -/Kids [4 0 R ] -/Count 1 -/Type /Pages -/MediaBox [ 0 0 612 792 ] ->> -endobj -1 0 obj -<< -/Creator (1725.fm) -/CreationDate (1-Jan-3 18:15PM) -/Title (1725.PDF) -/Author (Unknown) -/Producer (Acrobat PDFWriter 3.02 for Windows) -/Keywords () -/Subject () ->> -endobj -3 0 obj -<< -/Pages 5 0 R -/Type /Catalog -/DefaultGray 11 0 R -/DefaultRGB 12 0 R ->> -endobj -11 0 obj -[/CalGray -<< -/WhitePoint [0.9505 1 1.0891 ] -/Gamma 0.2468 ->> -] -endobj -12 0 obj -[/CalRGB -<< -/WhitePoint [0.9505 1 1.0891 ] -/Gamma [0.2468 0.2468 0.2468 ] -/Matrix [0.4361 0.2225 0.0139 0.3851 0.7169 0.0971 0.1431 0.0606 0.7141 ] ->> -] -endobj -xref -0 13 -0000000000 65535 f -0000002172 00000 n -0000002046 00000 n -0000002363 00000 n -0000000375 00000 n -0000002080 00000 n -0000000518 00000 n -0000000633 00000 n -0000001760 00000 n -0000000021 00000 n -0000000352 00000 n -0000002460 00000 n -0000002548 00000 n -trailer -<< -/Size 13 -/Root 3 0 R -/Info 1 0 R -/ID [<47149510433dd4882f05f8c124223734><47149510433dd4882f05f8c124223734>] ->> -startxref -2726 -%%EOF +b1Rbb҉H[TD:#&حXi$qnf]a{أq|JLs]QIj%9`঺Uitez$OeBĒүR@zܗg< +endstream +endobj +10 0 obj +246 +endobj +4 0 obj +<< +/Type /Page +/Parent 5 0 R +/Resources << +/Font << +/F0 6 0 R +/F1 7 0 R +>> +/ProcSet 2 0 R +>> +/Contents 9 0 R +>> +endobj +6 0 obj +<< +/Type /Font +/Subtype /TrueType +/Name /F0 +/BaseFont /Arial +/Encoding /WinAnsiEncoding +>> +endobj +7 0 obj +<< +/Type /Font +/Subtype /TrueType +/Name /F1 +/BaseFont /BookAntiqua,Bold +/FirstChar 31 +/LastChar 255 +/Widths [ 750 250 278 402 606 500 889 833 227 333 333 444 606 250 333 250 +296 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 +444 747 778 667 722 833 611 556 833 833 389 389 778 611 1000 833 +833 611 833 722 611 667 778 778 1000 667 667 667 333 606 333 606 +500 333 500 611 444 611 500 389 556 611 333 333 611 333 889 611 +556 611 611 389 444 333 611 556 833 500 556 500 310 606 310 606 +750 500 750 333 500 500 1000 500 500 333 1000 611 389 1000 750 750 +750 750 278 278 500 500 606 500 1000 333 998 444 389 833 750 750 +667 250 278 500 500 606 500 606 500 333 747 438 500 606 333 747 +500 400 549 361 361 333 576 641 250 333 361 488 500 889 890 889 +444 778 778 778 778 778 778 1000 722 611 611 611 611 389 389 389 +389 833 833 833 833 833 833 833 606 833 778 778 778 778 667 611 +611 500 500 500 500 500 500 778 444 500 500 500 500 333 333 333 +333 556 611 556 556 556 556 556 549 556 611 611 611 611 556 611 +556 ] +/Encoding /WinAnsiEncoding +/FontDescriptor 8 0 R +>> +endobj +8 0 obj +<< +/Type /FontDescriptor +/FontName /BookAntiqua,Bold +/Flags 16418 +/FontBBox [ -250 -260 1236 930 ] +/MissingWidth 750 +/StemV 146 +/StemH 146 +/ItalicAngle 0 +/CapHeight 930 +/XHeight 651 +/Ascent 930 +/Descent 260 +/Leading 210 +/MaxWidth 1030 +/AvgWidth 460 +>> +endobj +2 0 obj +[ /PDF /Text ] +endobj +5 0 obj +<< +/Kids [4 0 R ] +/Count 1 +/Type /Pages +/MediaBox [ 0 0 612 792 ] +>> +endobj +1 0 obj +<< +/Creator (1725.fm) +/CreationDate (1-Jan-3 18:15PM) +/Title (1725.PDF) +/Author (Unknown) +/Producer (Acrobat PDFWriter 3.02 for Windows) +/Keywords () +/Subject () +>> +endobj +3 0 obj +<< +/Pages 5 0 R +/Type /Catalog +/DefaultGray 11 0 R +/DefaultRGB 12 0 R +>> +endobj +11 0 obj +[/CalGray +<< +/WhitePoint [0.9505 1 1.0891 ] +/Gamma 0.2468 +>> +] +endobj +12 0 obj +[/CalRGB +<< +/WhitePoint [0.9505 1 1.0891 ] +/Gamma [0.2468 0.2468 0.2468 ] +/Matrix [0.4361 0.2225 0.0139 0.3851 0.7169 0.0971 0.1431 0.0606 0.7141 ] +>> +] +endobj +xref +0 13 +0000000000 65535 f +0000002172 00000 n +0000002046 00000 n +0000002363 00000 n +0000000375 00000 n +0000002080 00000 n +0000000518 00000 n +0000000633 00000 n +0000001760 00000 n +0000000021 00000 n +0000000352 00000 n +0000002460 00000 n +0000002548 00000 n +trailer +<< +/Size 13 +/Root 3 0 R +/Info 1 0 R +/ID [<47149510433dd4882f05f8c124223734><47149510433dd4882f05f8c124223734>] +>> +startxref +2726 +%%EOF diff --git a/components/net/tests/parsable_mime/application/postscript/test.ps b/components/shared/net/tests/parsable_mime/application/postscript/test.ps similarity index 100% rename from components/net/tests/parsable_mime/application/postscript/test.ps rename to components/shared/net/tests/parsable_mime/application/postscript/test.ps diff --git a/components/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject b/components/shared/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject similarity index 100% rename from components/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject rename to components/shared/net/tests/parsable_mime/application/vnd.ms-fontobject/vnd.ms-fontobject diff --git a/components/net/tests/parsable_mime/application/x-gzip/test.gz b/components/shared/net/tests/parsable_mime/application/x-gzip/test.gz similarity index 100% rename from components/net/tests/parsable_mime/application/x-gzip/test.gz rename to components/shared/net/tests/parsable_mime/application/x-gzip/test.gz diff --git a/components/net/tests/parsable_mime/application/x-rar-compressed/test.rar b/components/shared/net/tests/parsable_mime/application/x-rar-compressed/test.rar similarity index 100% rename from components/net/tests/parsable_mime/application/x-rar-compressed/test.rar rename to components/shared/net/tests/parsable_mime/application/x-rar-compressed/test.rar diff --git a/components/net/tests/parsable_mime/application/zip/test.zip b/components/shared/net/tests/parsable_mime/application/zip/test.zip similarity index 100% rename from components/net/tests/parsable_mime/application/zip/test.zip rename to components/shared/net/tests/parsable_mime/application/zip/test.zip diff --git a/components/net/tests/parsable_mime/audio/aiff/test.aif b/components/shared/net/tests/parsable_mime/audio/aiff/test.aif similarity index 100% rename from components/net/tests/parsable_mime/audio/aiff/test.aif rename to components/shared/net/tests/parsable_mime/audio/aiff/test.aif diff --git a/components/net/tests/parsable_mime/audio/basic/test.au b/components/shared/net/tests/parsable_mime/audio/basic/test.au similarity index 100% rename from components/net/tests/parsable_mime/audio/basic/test.au rename to components/shared/net/tests/parsable_mime/audio/basic/test.au diff --git a/components/net/tests/parsable_mime/audio/midi/test.mid b/components/shared/net/tests/parsable_mime/audio/midi/test.mid similarity index 100% rename from components/net/tests/parsable_mime/audio/midi/test.mid rename to components/shared/net/tests/parsable_mime/audio/midi/test.mid diff --git a/components/net/tests/parsable_mime/audio/mpeg/test.mp3 b/components/shared/net/tests/parsable_mime/audio/mpeg/test.mp3 similarity index 100% rename from components/net/tests/parsable_mime/audio/mpeg/test.mp3 rename to components/shared/net/tests/parsable_mime/audio/mpeg/test.mp3 diff --git a/components/net/tests/parsable_mime/audio/wave/test.wav b/components/shared/net/tests/parsable_mime/audio/wave/test.wav similarity index 100% rename from components/net/tests/parsable_mime/audio/wave/test.wav rename to components/shared/net/tests/parsable_mime/audio/wave/test.wav diff --git a/components/net/tests/parsable_mime/image/bmp/test.bmp b/components/shared/net/tests/parsable_mime/image/bmp/test.bmp similarity index 100% rename from components/net/tests/parsable_mime/image/bmp/test.bmp rename to components/shared/net/tests/parsable_mime/image/bmp/test.bmp diff --git a/components/net/tests/parsable_mime/image/gif/test87a b/components/shared/net/tests/parsable_mime/image/gif/test87a similarity index 100% rename from components/net/tests/parsable_mime/image/gif/test87a rename to components/shared/net/tests/parsable_mime/image/gif/test87a diff --git a/components/net/tests/parsable_mime/image/gif/test89a.gif b/components/shared/net/tests/parsable_mime/image/gif/test89a.gif similarity index 100% rename from components/net/tests/parsable_mime/image/gif/test89a.gif rename to components/shared/net/tests/parsable_mime/image/gif/test89a.gif diff --git a/components/net/tests/parsable_mime/image/jpeg/test.jpg b/components/shared/net/tests/parsable_mime/image/jpeg/test.jpg similarity index 100% rename from components/net/tests/parsable_mime/image/jpeg/test.jpg rename to components/shared/net/tests/parsable_mime/image/jpeg/test.jpg diff --git a/components/net/tests/parsable_mime/image/png/test.png b/components/shared/net/tests/parsable_mime/image/png/test.png similarity index 100% rename from components/net/tests/parsable_mime/image/png/test.png rename to components/shared/net/tests/parsable_mime/image/png/test.png diff --git a/components/net/tests/parsable_mime/image/webp/test.webp b/components/shared/net/tests/parsable_mime/image/webp/test.webp similarity index 100% rename from components/net/tests/parsable_mime/image/webp/test.webp rename to components/shared/net/tests/parsable_mime/image/webp/test.webp diff --git a/components/net/tests/parsable_mime/image/x-icon/test.ico b/components/shared/net/tests/parsable_mime/image/x-icon/test.ico similarity index 100% rename from components/net/tests/parsable_mime/image/x-icon/test.ico rename to components/shared/net/tests/parsable_mime/image/x-icon/test.ico diff --git a/components/net/tests/parsable_mime/image/x-icon/test_cursor.ico b/components/shared/net/tests/parsable_mime/image/x-icon/test_cursor.ico similarity index 100% rename from components/net/tests/parsable_mime/image/x-icon/test_cursor.ico rename to components/shared/net/tests/parsable_mime/image/x-icon/test_cursor.ico diff --git a/components/net/tests/parsable_mime/text/html/text_html_a_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_a_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_a_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_a_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_a_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_a_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_a_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_a_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_a_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_a_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_a_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_a_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_a_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_a_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_a_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_a_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_b_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_b_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_b_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_b_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_b_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_b_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_b_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_b_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_b_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_b_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_b_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_b_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_b_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_b_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_b_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_b_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_body_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_body_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_body_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_body_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_body_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_body_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_body_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_body_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_body_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_body_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_body_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_body_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_body_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_body_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_body_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_body_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_br_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_br_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_br_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_br_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_br_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_br_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_br_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_br_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_br_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_br_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_br_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_br_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_br_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_br_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_br_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_br_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_comment_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_comment_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_comment_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_comment_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_comment_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_comment_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_comment_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_comment_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_comment_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_comment_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_comment_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_comment_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_comment_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_div_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_div_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_div_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_div_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_div_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_div_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_div_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_div_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_div_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_div_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_div_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_div_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_div_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_div_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_div_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_div_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_doctype_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_doctype_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_doctype_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_doctype_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_doctype_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_doctype_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_doctype_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_doctype_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_doctype_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_doctype_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_font_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_font_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_font_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_font_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_font_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_font_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_font_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_font_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_font_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_font_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_font_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_font_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_font_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_font_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_font_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_font_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_h1_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_h1_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_h1_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_h1_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_h1_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_h1_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_h1_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_h1_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_h1_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_h1_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_h1_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_h1_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_h1_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_head_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_head_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_head_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_head_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_head_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_head_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_head_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_head_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_head_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_head_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_head_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_head_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_head_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_head_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_head_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_head_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_iframe_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_iframe_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_iframe_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_iframe_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_iframe_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_iframe_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_iframe_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_iframe_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_iframe_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_iframe_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_p_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_p_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_p_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_p_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_p_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_p_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_p_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_p_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_p_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_p_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_p_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_p_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_p_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_p_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_p_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_p_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_page_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_page_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_page_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_page_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_page_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_page_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_page_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_page_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_page_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_page_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_page_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_page_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_page_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_page_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_page_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_page_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_script_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_script_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_script_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_script_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_script_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_script_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_script_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_script_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_script_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_script_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_script_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_script_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_script_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_script_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_script_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_script_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_style_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_style_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_style_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_style_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_style_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_style_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_style_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_style_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_style_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_style_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_style_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_style_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_style_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_style_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_style_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_style_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_table_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_table_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_table_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_table_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_table_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_table_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_table_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_table_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_table_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_table_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_table_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_table_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_table_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_table_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_table_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_table_3e_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_title_20.html b/components/shared/net/tests/parsable_mime/text/html/text_html_title_20.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_title_20.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_title_20.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_title_20_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_title_20_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_title_20_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_title_20_u.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_title_3e.html b/components/shared/net/tests/parsable_mime/text/html/text_html_title_3e.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_title_3e.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_title_3e.html diff --git a/components/net/tests/parsable_mime/text/html/text_html_title_3e_u.html b/components/shared/net/tests/parsable_mime/text/html/text_html_title_3e_u.html similarity index 100% rename from components/net/tests/parsable_mime/text/html/text_html_title_3e_u.html rename to components/shared/net/tests/parsable_mime/text/html/text_html_title_3e_u.html diff --git a/components/net/tests/parsable_mime/text/plain/utf16bebom.txt b/components/shared/net/tests/parsable_mime/text/plain/utf16bebom.txt similarity index 100% rename from components/net/tests/parsable_mime/text/plain/utf16bebom.txt rename to components/shared/net/tests/parsable_mime/text/plain/utf16bebom.txt diff --git a/components/net/tests/parsable_mime/text/plain/utf16lebom.txt b/components/shared/net/tests/parsable_mime/text/plain/utf16lebom.txt similarity index 100% rename from components/net/tests/parsable_mime/text/plain/utf16lebom.txt rename to components/shared/net/tests/parsable_mime/text/plain/utf16lebom.txt diff --git a/components/net/tests/parsable_mime/text/plain/utf8bom.txt b/components/shared/net/tests/parsable_mime/text/plain/utf8bom.txt similarity index 100% rename from components/net/tests/parsable_mime/text/plain/utf8bom.txt rename to components/shared/net/tests/parsable_mime/text/plain/utf8bom.txt diff --git a/components/net/tests/parsable_mime/text/xml/feed.atom b/components/shared/net/tests/parsable_mime/text/xml/feed.atom similarity index 100% rename from components/net/tests/parsable_mime/text/xml/feed.atom rename to components/shared/net/tests/parsable_mime/text/xml/feed.atom diff --git a/components/net/tests/parsable_mime/text/xml/feed.rss b/components/shared/net/tests/parsable_mime/text/xml/feed.rss similarity index 98% rename from components/net/tests/parsable_mime/text/xml/feed.rss rename to components/shared/net/tests/parsable_mime/text/xml/feed.rss index 9dc94d32b51..57ea10d5b4e 100644 --- a/components/net/tests/parsable_mime/text/xml/feed.rss +++ b/components/shared/net/tests/parsable_mime/text/xml/feed.rss @@ -1,151 +1,151 @@ - - - - FeedForAll Sample Feed - RSS is a fascinating technology. The uses for RSS are expanding daily. Take a closer look at how various industries are using the benefits of RSS in their businesses. - http://www.feedforall.com/industry-solutions.htm - Computers/Software/Internet/Site Management/Content Management - Copyright 2004 NotePage, Inc. - http://blogs.law.harvard.edu/tech/rss - en-us - Tue, 19 Oct 2004 13:39:14 -0400 - marketing@feedforall.com - Tue, 19 Oct 2004 13:38:55 -0400 - webmaster@feedforall.com - FeedForAll Beta1 (0.0.1.8) - - http://www.feedforall.com/ffalogo48x48.gif - FeedForAll Sample Feed - http://www.feedforall.com/industry-solutions.htm - FeedForAll Sample Feed - 48 - 48 - - - RSS Solutions for Restaurants - <b>FeedForAll </b>helps Restaurant's communicate with customers. Let your customers know the latest specials or events.<br> -<br> -RSS feed uses include:<br> -<i><font color="#FF0000">Daily Specials <br> -Entertainment <br> -Calendar of Events </i></font> - http://www.feedforall.com/restaurant.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:09:11 -0400 - - - RSS Solutions for Schools and Colleges - FeedForAll helps Educational Institutions communicate with students about school wide activities, events, and schedules.<br> -<br> -RSS feed uses include:<br> -<i><font color="#0000FF">Homework Assignments <br> -School Cancellations <br> -Calendar of Events <br> -Sports Scores <br> -Clubs/Organization Meetings <br> -Lunches Menus </i></font> - http://www.feedforall.com/schools.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:09:09 -0400 - - - RSS Solutions for Computer Service Companies - FeedForAll helps Computer Service Companies communicate with clients about cyber security and related issues. <br> -<br> -Uses include:<br> -<i><font color="#0000FF">Cyber Security Alerts <br> -Specials<br> -Job Postings </i></font> - http://www.feedforall.com/computer-service.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:09:07 -0400 - - - RSS Solutions for Governments - FeedForAll helps Governments communicate with the general public about positions on various issues, and keep the community aware of changes in important legislative issues. <b><i><br> -</b></i><br> -RSS uses Include:<br> -<i><font color="#00FF00">Legislative Calendar<br> -Votes<br> -Bulletins</i></font> - http://www.feedforall.com/government.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:09:05 -0400 - - - RSS Solutions for Politicians - FeedForAll helps Politicians communicate with the general public about positions on various issues, and keep the community notified of their schedule. <br> -<br> -Uses Include:<br> -<i><font color="#FF0000">Blogs<br> -Speaking Engagements <br> -Statements<br> - </i></font> - http://www.feedforall.com/politics.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:09:03 -0400 - - - RSS Solutions for Meteorologists - FeedForAll helps Meteorologists communicate with the general public about storm warnings and weather alerts, in specific regions. Using RSS meteorologists are able to quickly disseminate urgent and life threatening weather warnings. <br> -<br> -Uses Include:<br> -<i><font color="#0000FF">Weather Alerts<br> -Plotting Storms<br> -School Cancellations </i></font> - http://www.feedforall.com/weather.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:09:01 -0400 - - - RSS Solutions for Realtors & Real Estate Firms - FeedForAll helps Realtors and Real Estate companies communicate with clients informing them of newly available properties, and open house announcements. RSS helps to reach a targeted audience and spread the word in an inexpensive, professional manner. <font color="#0000FF"><br> -</font><br> -Feeds can be used for:<br> -<i><font color="#FF0000">Open House Dates<br> -New Properties For Sale<br> -Mortgage Rates</i></font> - http://www.feedforall.com/real-estate.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:08:59 -0400 - - - RSS Solutions for Banks / Mortgage Companies - FeedForAll helps <b>Banks, Credit Unions and Mortgage companies</b> communicate with the general public about rate changes in a prompt and professional manner. <br> -<br> -Uses include:<br> -<i><font color="#0000FF">Mortgage Rates<br> -Foreign Exchange Rates <br> -Bank Rates<br> -Specials</i></font> - http://www.feedforall.com/banks.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:08:57 -0400 - - - RSS Solutions for Law Enforcement - <b>FeedForAll</b> helps Law Enforcement Professionals communicate with the general public and other agencies in a prompt and efficient manner. Using RSS police are able to quickly disseminate urgent and life threatening information. <br> -<br> -Uses include:<br> -<i><font color="#0000FF">Amber Alerts<br> -Sex Offender Community Notification <br> -Weather Alerts <br> -Scheduling <br> -Security Alerts <br> -Police Report <br> -Meetings</i></font> - http://www.feedforall.com/law-enforcement.htm - Computers/Software/Internet/Site Management/Content Management - http://www.feedforall.com/forum - Tue, 19 Oct 2004 11:08:56 -0400 - - + + + + FeedForAll Sample Feed + RSS is a fascinating technology. The uses for RSS are expanding daily. Take a closer look at how various industries are using the benefits of RSS in their businesses. + http://www.feedforall.com/industry-solutions.htm + Computers/Software/Internet/Site Management/Content Management + Copyright 2004 NotePage, Inc. + http://blogs.law.harvard.edu/tech/rss + en-us + Tue, 19 Oct 2004 13:39:14 -0400 + marketing@feedforall.com + Tue, 19 Oct 2004 13:38:55 -0400 + webmaster@feedforall.com + FeedForAll Beta1 (0.0.1.8) + + http://www.feedforall.com/ffalogo48x48.gif + FeedForAll Sample Feed + http://www.feedforall.com/industry-solutions.htm + FeedForAll Sample Feed + 48 + 48 + + + RSS Solutions for Restaurants + <b>FeedForAll </b>helps Restaurant's communicate with customers. Let your customers know the latest specials or events.<br> +<br> +RSS feed uses include:<br> +<i><font color="#FF0000">Daily Specials <br> +Entertainment <br> +Calendar of Events </i></font> + http://www.feedforall.com/restaurant.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:09:11 -0400 + + + RSS Solutions for Schools and Colleges + FeedForAll helps Educational Institutions communicate with students about school wide activities, events, and schedules.<br> +<br> +RSS feed uses include:<br> +<i><font color="#0000FF">Homework Assignments <br> +School Cancellations <br> +Calendar of Events <br> +Sports Scores <br> +Clubs/Organization Meetings <br> +Lunches Menus </i></font> + http://www.feedforall.com/schools.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:09:09 -0400 + + + RSS Solutions for Computer Service Companies + FeedForAll helps Computer Service Companies communicate with clients about cyber security and related issues. <br> +<br> +Uses include:<br> +<i><font color="#0000FF">Cyber Security Alerts <br> +Specials<br> +Job Postings </i></font> + http://www.feedforall.com/computer-service.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:09:07 -0400 + + + RSS Solutions for Governments + FeedForAll helps Governments communicate with the general public about positions on various issues, and keep the community aware of changes in important legislative issues. <b><i><br> +</b></i><br> +RSS uses Include:<br> +<i><font color="#00FF00">Legislative Calendar<br> +Votes<br> +Bulletins</i></font> + http://www.feedforall.com/government.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:09:05 -0400 + + + RSS Solutions for Politicians + FeedForAll helps Politicians communicate with the general public about positions on various issues, and keep the community notified of their schedule. <br> +<br> +Uses Include:<br> +<i><font color="#FF0000">Blogs<br> +Speaking Engagements <br> +Statements<br> + </i></font> + http://www.feedforall.com/politics.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:09:03 -0400 + + + RSS Solutions for Meteorologists + FeedForAll helps Meteorologists communicate with the general public about storm warnings and weather alerts, in specific regions. Using RSS meteorologists are able to quickly disseminate urgent and life threatening weather warnings. <br> +<br> +Uses Include:<br> +<i><font color="#0000FF">Weather Alerts<br> +Plotting Storms<br> +School Cancellations </i></font> + http://www.feedforall.com/weather.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:09:01 -0400 + + + RSS Solutions for Realtors & Real Estate Firms + FeedForAll helps Realtors and Real Estate companies communicate with clients informing them of newly available properties, and open house announcements. RSS helps to reach a targeted audience and spread the word in an inexpensive, professional manner. <font color="#0000FF"><br> +</font><br> +Feeds can be used for:<br> +<i><font color="#FF0000">Open House Dates<br> +New Properties For Sale<br> +Mortgage Rates</i></font> + http://www.feedforall.com/real-estate.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:08:59 -0400 + + + RSS Solutions for Banks / Mortgage Companies + FeedForAll helps <b>Banks, Credit Unions and Mortgage companies</b> communicate with the general public about rate changes in a prompt and professional manner. <br> +<br> +Uses include:<br> +<i><font color="#0000FF">Mortgage Rates<br> +Foreign Exchange Rates <br> +Bank Rates<br> +Specials</i></font> + http://www.feedforall.com/banks.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:08:57 -0400 + + + RSS Solutions for Law Enforcement + <b>FeedForAll</b> helps Law Enforcement Professionals communicate with the general public and other agencies in a prompt and efficient manner. Using RSS police are able to quickly disseminate urgent and life threatening information. <br> +<br> +Uses include:<br> +<i><font color="#0000FF">Amber Alerts<br> +Sex Offender Community Notification <br> +Weather Alerts <br> +Scheduling <br> +Security Alerts <br> +Police Report <br> +Meetings</i></font> + http://www.feedforall.com/law-enforcement.htm + Computers/Software/Internet/Site Management/Content Management + http://www.feedforall.com/forum + Tue, 19 Oct 2004 11:08:56 -0400 + + \ No newline at end of file diff --git a/components/net/tests/parsable_mime/text/xml/rdf_rss.xml b/components/shared/net/tests/parsable_mime/text/xml/rdf_rss.xml similarity index 100% rename from components/net/tests/parsable_mime/text/xml/rdf_rss.xml rename to components/shared/net/tests/parsable_mime/text/xml/rdf_rss.xml diff --git a/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml b/components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml similarity index 100% rename from components/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml rename to components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_1.xml diff --git a/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml b/components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml similarity index 100% rename from components/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml rename to components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_2.xml diff --git a/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml b/components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml similarity index 100% rename from components/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml rename to components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_3.xml diff --git a/components/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml b/components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml similarity index 100% rename from components/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml rename to components/shared/net/tests/parsable_mime/text/xml/rdf_rss_ko_4.xml diff --git a/components/net/tests/parsable_mime/text/xml/test.xml b/components/shared/net/tests/parsable_mime/text/xml/test.xml similarity index 100% rename from components/net/tests/parsable_mime/text/xml/test.xml rename to components/shared/net/tests/parsable_mime/text/xml/test.xml diff --git a/components/net/tests/parsable_mime/unknown/binary_file b/components/shared/net/tests/parsable_mime/unknown/binary_file similarity index 100% rename from components/net/tests/parsable_mime/unknown/binary_file rename to components/shared/net/tests/parsable_mime/unknown/binary_file diff --git a/components/net/tests/parsable_mime/unknown/open_type b/components/shared/net/tests/parsable_mime/unknown/open_type similarity index 100% rename from components/net/tests/parsable_mime/unknown/open_type rename to components/shared/net/tests/parsable_mime/unknown/open_type diff --git a/components/net/tests/parsable_mime/unknown/true_type.ttf b/components/shared/net/tests/parsable_mime/unknown/true_type.ttf similarity index 100% rename from components/net/tests/parsable_mime/unknown/true_type.ttf rename to components/shared/net/tests/parsable_mime/unknown/true_type.ttf diff --git a/components/net/tests/parsable_mime/unknown/true_type_collection.ttc b/components/shared/net/tests/parsable_mime/unknown/true_type_collection.ttc similarity index 100% rename from components/net/tests/parsable_mime/unknown/true_type_collection.ttc rename to components/shared/net/tests/parsable_mime/unknown/true_type_collection.ttc diff --git a/components/net/tests/parsable_mime/video/avi/test.avi b/components/shared/net/tests/parsable_mime/video/avi/test.avi similarity index 100% rename from components/net/tests/parsable_mime/video/avi/test.avi rename to components/shared/net/tests/parsable_mime/video/avi/test.avi diff --git a/components/net/tests/parsable_mime/video/mp4/test.mp4 b/components/shared/net/tests/parsable_mime/video/mp4/test.mp4 similarity index 100% rename from components/net/tests/parsable_mime/video/mp4/test.mp4 rename to components/shared/net/tests/parsable_mime/video/mp4/test.mp4 diff --git a/components/net/tests/parsable_mime/video/webm/test.webm b/components/shared/net/tests/parsable_mime/video/webm/test.webm similarity index 100% rename from components/net/tests/parsable_mime/video/webm/test.webm rename to components/shared/net/tests/parsable_mime/video/webm/test.webm diff --git a/servo-tidy.toml b/servo-tidy.toml index f716e85175f..9281d287867 100644 --- a/servo-tidy.toml +++ b/servo-tidy.toml @@ -6,7 +6,7 @@ check-alphabetical-order = true [ignore] # Files that are ignored for all tidy and lint checks. files = [ - "./components/net/tests/parsable_mime/text", + "./components/shared/net/tests/parsable_mime/text", "./resources/hsts_preload.fstmap", "./tests/wpt/meta/MANIFEST.json", "./tests/wpt/mozilla/meta/MANIFEST.json", diff --git a/tests/wpt/include.ini b/tests/wpt/include.ini index 8ea1e50b8d0..70a3408cb72 100644 --- a/tests/wpt/include.ini +++ b/tests/wpt/include.ini @@ -204,6 +204,8 @@ skip: true skip: false [pointerevents] skip: false +[preload] + skip: false [quirks] skip: false [referrer-policy] diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 5d8fb80f5c8..0e367d5653e 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -773801,7 +773801,7 @@ ] ], "preload-csp.sub.html": [ - "a1b57b78b415f76678064ff9e00d32a4f6d14f6c", + "2238d6cafe80ff7733ea34d5ef365790b9f7a8df", [ null, {} diff --git a/tests/wpt/meta/content-security-policy/font-src/font-match-allowed.sub.html.ini b/tests/wpt/meta/content-security-policy/font-src/font-match-allowed.sub.html.ini deleted file mode 100644 index 6c90dc5033b..00000000000 --- a/tests/wpt/meta/content-security-policy/font-src/font-match-allowed.sub.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[font-match-allowed.sub.html] - expected: TIMEOUT - [Test font loads if it matches font-src.] - expected: TIMEOUT diff --git a/tests/wpt/meta/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini b/tests/wpt/meta/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini deleted file mode 100644 index 39efa2c9cb2..00000000000 --- a/tests/wpt/meta/content-security-policy/font-src/font-mismatch-blocked.sub.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[font-mismatch-blocked.sub.html] - expected: TIMEOUT - [Test font does not load if it does not match font-src.] - expected: TIMEOUT diff --git a/tests/wpt/meta/content-security-policy/font-src/font-none-blocked.sub.html.ini b/tests/wpt/meta/content-security-policy/font-src/font-none-blocked.sub.html.ini deleted file mode 100644 index 911f745bb2c..00000000000 --- a/tests/wpt/meta/content-security-policy/font-src/font-none-blocked.sub.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[font-none-blocked.sub.html] - expected: TIMEOUT - [Test font does not load if it does not match font-src.] - expected: TIMEOUT diff --git a/tests/wpt/meta/content-security-policy/font-src/font-self-allowed.html.ini b/tests/wpt/meta/content-security-policy/font-src/font-self-allowed.html.ini deleted file mode 100644 index 3f0903770c4..00000000000 --- a/tests/wpt/meta/content-security-policy/font-src/font-self-allowed.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[font-self-allowed.html] - expected: TIMEOUT - [Test font loads if it matches font-src.] - expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-backgrounds/background-attachment-353.html.ini b/tests/wpt/meta/css/css-backgrounds/background-attachment-353.html.ini index 83ae5d7a9f7..d1af9d7d555 100644 --- a/tests/wpt/meta/css/css-backgrounds/background-attachment-353.html.ini +++ b/tests/wpt/meta/css/css-backgrounds/background-attachment-353.html.ini @@ -1,2 +1,2 @@ [background-attachment-353.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/css/css-backgrounds/background-image-first-letter.html.ini b/tests/wpt/meta/css/css-backgrounds/background-image-first-letter.html.ini index 68e18ef1217..97d17f09f95 100644 --- a/tests/wpt/meta/css/css-backgrounds/background-image-first-letter.html.ini +++ b/tests/wpt/meta/css/css-backgrounds/background-image-first-letter.html.ini @@ -1,2 +1,2 @@ [background-image-first-letter.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/css/css-backgrounds/background-image-first-line.html.ini b/tests/wpt/meta/css/css-backgrounds/background-image-first-line.html.ini index 994c6756cf8..98e9448ed30 100644 --- a/tests/wpt/meta/css/css-backgrounds/background-image-first-line.html.ini +++ b/tests/wpt/meta/css/css-backgrounds/background-image-first-line.html.ini @@ -1,2 +1,2 @@ [background-image-first-line.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/fetch/corb/preload-image-png-mislabeled-as-html-nosniff.tentative.sub.html.ini b/tests/wpt/meta/fetch/corb/preload-image-png-mislabeled-as-html-nosniff.tentative.sub.html.ini index 1dec4fdbf06..de37955f1db 100644 --- a/tests/wpt/meta/fetch/corb/preload-image-png-mislabeled-as-html-nosniff.tentative.sub.html.ini +++ b/tests/wpt/meta/fetch/corb/preload-image-png-mislabeled-as-html-nosniff.tentative.sub.html.ini @@ -1,4 +1,3 @@ [preload-image-png-mislabeled-as-html-nosniff.tentative.sub.html] - expected: TIMEOUT [preload-image-png-mislabeled-as-html-nosniff] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html.ini b/tests/wpt/meta/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html.ini index ccb5ced4fc0..2222dc3f7ec 100644 --- a/tests/wpt/meta/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html.ini +++ b/tests/wpt/meta/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html.ini @@ -1,7 +1,4 @@ [element-link-prefetch.https.optional.sub.html] - [sec-fetch-site - Same origin no attributes] - expected: FAIL - [sec-fetch-site - Cross-site no attributes] expected: FAIL @@ -17,9 +14,6 @@ [sec-fetch-site - Cross-Site -> Cross-Site no attributes] expected: FAIL - [sec-fetch-site - Same-Origin -> Same Origin no attributes] - expected: FAIL - [sec-fetch-site - Same-Origin -> Cross-Site no attributes] expected: FAIL diff --git a/tests/wpt/meta/fetch/metadata/preload.https.sub.html.ini b/tests/wpt/meta/fetch/metadata/preload.https.sub.html.ini index 5c423a2c6bf..3f8cb0d64a7 100644 --- a/tests/wpt/meta/fetch/metadata/preload.https.sub.html.ini +++ b/tests/wpt/meta/fetch/metadata/preload.https.sub.html.ini @@ -1,55 +1,27 @@ [preload.https.sub.html] - expected: TIMEOUT - [] - expected: TIMEOUT + [preload fetch www.not-web-platform.test:8443: sec-fetch-site] + expected: FAIL - [] - expected: TIMEOUT + [preload image www.not-web-platform.test:8443: sec-fetch-site] + expected: FAIL - [] - expected: TIMEOUT + [preload style www.not-web-platform.test:8443: sec-fetch-dest] + expected: FAIL - [] - expected: TIMEOUT + [preload style www.not-web-platform.test:8443: sec-fetch-site] + expected: FAIL - [] - expected: TIMEOUT + [preload font www.not-web-platform.test:8443: sec-fetch-site] + expected: FAIL - [] - expected: TIMEOUT + [preload script www.not-web-platform.test:8443: sec-fetch-site] + expected: FAIL - [] - expected: TIMEOUT + [preload track www.not-web-platform.test:8443: sec-fetch-site] + expected: FAIL - [] - expected: TIMEOUT + [preload style www.web-platform.test:8443: sec-fetch-dest] + expected: FAIL - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT - - [] - expected: TIMEOUT + [preload style web-platform.test:8443: sec-fetch-dest] + expected: FAIL diff --git a/tests/wpt/meta/fetch/metadata/redirect/redirect-http-upgrade.sub.html.ini b/tests/wpt/meta/fetch/metadata/redirect/redirect-http-upgrade.sub.html.ini index 838ccf7fc7f..0bce8ad0a33 100644 --- a/tests/wpt/meta/fetch/metadata/redirect/redirect-http-upgrade.sub.html.ini +++ b/tests/wpt/meta/fetch/metadata/redirect/redirect-http-upgrade.sub.html.ini @@ -6,9 +6,6 @@ [Http upgrade object] expected: NOTRUN - [Http upgrade preload] - expected: TIMEOUT - [Http upgrade stylesheet] expected: NOTRUN diff --git a/tests/wpt/meta/fetch/metadata/redirect/redirect-https-downgrade.sub.html.ini b/tests/wpt/meta/fetch/metadata/redirect/redirect-https-downgrade.sub.html.ini index 6520313bed7..7e6e1b76e96 100644 --- a/tests/wpt/meta/fetch/metadata/redirect/redirect-https-downgrade.sub.html.ini +++ b/tests/wpt/meta/fetch/metadata/redirect/redirect-https-downgrade.sub.html.ini @@ -6,9 +6,6 @@ [Https downgrade object] expected: NOTRUN - [Https downgrade preload] - expected: TIMEOUT - [Https downgrade stylesheet] expected: NOTRUN diff --git a/tests/wpt/meta/html/dom/idlharness.https.html.ini b/tests/wpt/meta/html/dom/idlharness.https.html.ini index 981cd249aa6..81d2aa5b8a5 100644 --- a/tests/wpt/meta/html/dom/idlharness.https.html.ini +++ b/tests/wpt/meta/html/dom/idlharness.https.html.ini @@ -5389,9 +5389,6 @@ [HTMLBaseElement interface: document.createElement("base") must inherit property "target" with the proper type] expected: FAIL - [HTMLLinkElement interface: attribute as] - expected: FAIL - [HTMLLinkElement interface: attribute sizes] expected: FAIL @@ -5407,9 +5404,6 @@ [HTMLLinkElement interface: attribute fetchPriority] expected: FAIL - [HTMLLinkElement interface: document.createElement("link") must inherit property "as" with the proper type] - expected: FAIL - [HTMLLinkElement interface: document.createElement("link") must inherit property "sizes" with the proper type] expected: FAIL diff --git a/tests/wpt/meta/html/dom/reflection-metadata.html.ini b/tests/wpt/meta/html/dom/reflection-metadata.html.ini index 8e95b7fd3c1..c9d71a7f87c 100644 --- a/tests/wpt/meta/html/dom/reflection-metadata.html.ini +++ b/tests/wpt/meta/html/dom/reflection-metadata.html.ini @@ -881,648 +881,6 @@ [link.tabIndex: IDL set to -2147483648] expected: FAIL - [link.as: typeof IDL attribute] - expected: FAIL - - [link.as: IDL get with DOM attribute unset] - expected: FAIL - - [link.as: setAttribute() to ""] - expected: FAIL - - [link.as: setAttribute() to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] - expected: FAIL - - [link.as: setAttribute() to undefined] - expected: FAIL - - [link.as: setAttribute() to 7] - expected: FAIL - - [link.as: setAttribute() to 1.5] - expected: FAIL - - [link.as: setAttribute() to "5%"] - expected: FAIL - - [link.as: setAttribute() to "+100"] - expected: FAIL - - [link.as: setAttribute() to ".5"] - expected: FAIL - - [link.as: setAttribute() to true] - expected: FAIL - - [link.as: setAttribute() to false] - expected: FAIL - - [link.as: setAttribute() to object "[object Object\]"] - expected: FAIL - - [link.as: setAttribute() to NaN] - expected: FAIL - - [link.as: setAttribute() to Infinity] - expected: FAIL - - [link.as: setAttribute() to -Infinity] - expected: FAIL - - [link.as: setAttribute() to "\\0"] - expected: FAIL - - [link.as: setAttribute() to null] - expected: FAIL - - [link.as: setAttribute() to object "test-toString"] - expected: FAIL - - [link.as: setAttribute() to object "test-valueOf"] - expected: FAIL - - [link.as: setAttribute() to "fetch"] - expected: FAIL - - [link.as: setAttribute() to "xfetch"] - expected: FAIL - - [link.as: setAttribute() to "fetch\\0"] - expected: FAIL - - [link.as: setAttribute() to "etch"] - expected: FAIL - - [link.as: setAttribute() to "FETCH"] - expected: FAIL - - [link.as: setAttribute() to "audio"] - expected: FAIL - - [link.as: setAttribute() to "xaudio"] - expected: FAIL - - [link.as: setAttribute() to "audio\\0"] - expected: FAIL - - [link.as: setAttribute() to "udio"] - expected: FAIL - - [link.as: setAttribute() to "AUDIO"] - expected: FAIL - - [link.as: setAttribute() to "document"] - expected: FAIL - - [link.as: setAttribute() to "xdocument"] - expected: FAIL - - [link.as: setAttribute() to "document\\0"] - expected: FAIL - - [link.as: setAttribute() to "ocument"] - expected: FAIL - - [link.as: setAttribute() to "DOCUMENT"] - expected: FAIL - - [link.as: setAttribute() to "embed"] - expected: FAIL - - [link.as: setAttribute() to "xembed"] - expected: FAIL - - [link.as: setAttribute() to "embed\\0"] - expected: FAIL - - [link.as: setAttribute() to "mbed"] - expected: FAIL - - [link.as: setAttribute() to "EMBED"] - expected: FAIL - - [link.as: setAttribute() to "font"] - expected: FAIL - - [link.as: setAttribute() to "xfont"] - expected: FAIL - - [link.as: setAttribute() to "font\\0"] - expected: FAIL - - [link.as: setAttribute() to "ont"] - expected: FAIL - - [link.as: setAttribute() to "FONT"] - expected: FAIL - - [link.as: setAttribute() to "image"] - expected: FAIL - - [link.as: setAttribute() to "ximage"] - expected: FAIL - - [link.as: setAttribute() to "image\\0"] - expected: FAIL - - [link.as: setAttribute() to "mage"] - expected: FAIL - - [link.as: setAttribute() to "IMAGE"] - expected: FAIL - - [link.as: setAttribute() to "manifest"] - expected: FAIL - - [link.as: setAttribute() to "xmanifest"] - expected: FAIL - - [link.as: setAttribute() to "manifest\\0"] - expected: FAIL - - [link.as: setAttribute() to "anifest"] - expected: FAIL - - [link.as: setAttribute() to "MANIFEST"] - expected: FAIL - - [link.as: setAttribute() to "manifeſt"] - expected: FAIL - - [link.as: setAttribute() to "object"] - expected: FAIL - - [link.as: setAttribute() to "xobject"] - expected: FAIL - - [link.as: setAttribute() to "object\\0"] - expected: FAIL - - [link.as: setAttribute() to "bject"] - expected: FAIL - - [link.as: setAttribute() to "OBJECT"] - expected: FAIL - - [link.as: setAttribute() to "report"] - expected: FAIL - - [link.as: setAttribute() to "xreport"] - expected: FAIL - - [link.as: setAttribute() to "report\\0"] - expected: FAIL - - [link.as: setAttribute() to "eport"] - expected: FAIL - - [link.as: setAttribute() to "REPORT"] - expected: FAIL - - [link.as: setAttribute() to "script"] - expected: FAIL - - [link.as: setAttribute() to "xscript"] - expected: FAIL - - [link.as: setAttribute() to "script\\0"] - expected: FAIL - - [link.as: setAttribute() to "cript"] - expected: FAIL - - [link.as: setAttribute() to "SCRIPT"] - expected: FAIL - - [link.as: setAttribute() to "ſcript"] - expected: FAIL - - [link.as: setAttribute() to "sharedworker"] - expected: FAIL - - [link.as: setAttribute() to "xsharedworker"] - expected: FAIL - - [link.as: setAttribute() to "sharedworker\\0"] - expected: FAIL - - [link.as: setAttribute() to "haredworker"] - expected: FAIL - - [link.as: setAttribute() to "SHAREDWORKER"] - expected: FAIL - - [link.as: setAttribute() to "sharedworKer"] - expected: FAIL - - [link.as: setAttribute() to "ſharedworker"] - expected: FAIL - - [link.as: setAttribute() to "style"] - expected: FAIL - - [link.as: setAttribute() to "xstyle"] - expected: FAIL - - [link.as: setAttribute() to "style\\0"] - expected: FAIL - - [link.as: setAttribute() to "tyle"] - expected: FAIL - - [link.as: setAttribute() to "STYLE"] - expected: FAIL - - [link.as: setAttribute() to "ſtyle"] - expected: FAIL - - [link.as: setAttribute() to "track"] - expected: FAIL - - [link.as: setAttribute() to "xtrack"] - expected: FAIL - - [link.as: setAttribute() to "track\\0"] - expected: FAIL - - [link.as: setAttribute() to "rack"] - expected: FAIL - - [link.as: setAttribute() to "TRACK"] - expected: FAIL - - [link.as: setAttribute() to "tracK"] - expected: FAIL - - [link.as: setAttribute() to "video"] - expected: FAIL - - [link.as: setAttribute() to "xvideo"] - expected: FAIL - - [link.as: setAttribute() to "video\\0"] - expected: FAIL - - [link.as: setAttribute() to "ideo"] - expected: FAIL - - [link.as: setAttribute() to "VIDEO"] - expected: FAIL - - [link.as: setAttribute() to "worker"] - expected: FAIL - - [link.as: setAttribute() to "xworker"] - expected: FAIL - - [link.as: setAttribute() to "worker\\0"] - expected: FAIL - - [link.as: setAttribute() to "orker"] - expected: FAIL - - [link.as: setAttribute() to "WORKER"] - expected: FAIL - - [link.as: setAttribute() to "worKer"] - expected: FAIL - - [link.as: setAttribute() to "xslt"] - expected: FAIL - - [link.as: setAttribute() to "xxslt"] - expected: FAIL - - [link.as: setAttribute() to "xslt\\0"] - expected: FAIL - - [link.as: setAttribute() to "slt"] - expected: FAIL - - [link.as: setAttribute() to "XSLT"] - expected: FAIL - - [link.as: setAttribute() to "xſlt"] - expected: FAIL - - [link.as: IDL set to ""] - expected: FAIL - - [link.as: IDL set to " \\0\\x01\\x02\\x03\\x04\\x05\\x06\\x07 \\b\\t\\n\\v\\f\\r\\x0e\\x0f \\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17 \\x18\\x19\\x1a\\x1b\\x1c\\x1d\\x1e\\x1f foo "] - expected: FAIL - - [link.as: IDL set to undefined] - expected: FAIL - - [link.as: IDL set to 7] - expected: FAIL - - [link.as: IDL set to 1.5] - expected: FAIL - - [link.as: IDL set to "5%"] - expected: FAIL - - [link.as: IDL set to "+100"] - expected: FAIL - - [link.as: IDL set to ".5"] - expected: FAIL - - [link.as: IDL set to true] - expected: FAIL - - [link.as: IDL set to false] - expected: FAIL - - [link.as: IDL set to object "[object Object\]"] - expected: FAIL - - [link.as: IDL set to NaN] - expected: FAIL - - [link.as: IDL set to Infinity] - expected: FAIL - - [link.as: IDL set to -Infinity] - expected: FAIL - - [link.as: IDL set to "\\0"] - expected: FAIL - - [link.as: IDL set to null] - expected: FAIL - - [link.as: IDL set to object "test-toString"] - expected: FAIL - - [link.as: IDL set to object "test-valueOf"] - expected: FAIL - - [link.as: IDL set to "fetch"] - expected: FAIL - - [link.as: IDL set to "xfetch"] - expected: FAIL - - [link.as: IDL set to "fetch\\0"] - expected: FAIL - - [link.as: IDL set to "etch"] - expected: FAIL - - [link.as: IDL set to "FETCH"] - expected: FAIL - - [link.as: IDL set to "audio"] - expected: FAIL - - [link.as: IDL set to "xaudio"] - expected: FAIL - - [link.as: IDL set to "audio\\0"] - expected: FAIL - - [link.as: IDL set to "udio"] - expected: FAIL - - [link.as: IDL set to "AUDIO"] - expected: FAIL - - [link.as: IDL set to "document"] - expected: FAIL - - [link.as: IDL set to "xdocument"] - expected: FAIL - - [link.as: IDL set to "document\\0"] - expected: FAIL - - [link.as: IDL set to "ocument"] - expected: FAIL - - [link.as: IDL set to "DOCUMENT"] - expected: FAIL - - [link.as: IDL set to "embed"] - expected: FAIL - - [link.as: IDL set to "xembed"] - expected: FAIL - - [link.as: IDL set to "embed\\0"] - expected: FAIL - - [link.as: IDL set to "mbed"] - expected: FAIL - - [link.as: IDL set to "EMBED"] - expected: FAIL - - [link.as: IDL set to "font"] - expected: FAIL - - [link.as: IDL set to "xfont"] - expected: FAIL - - [link.as: IDL set to "font\\0"] - expected: FAIL - - [link.as: IDL set to "ont"] - expected: FAIL - - [link.as: IDL set to "FONT"] - expected: FAIL - - [link.as: IDL set to "image"] - expected: FAIL - - [link.as: IDL set to "ximage"] - expected: FAIL - - [link.as: IDL set to "image\\0"] - expected: FAIL - - [link.as: IDL set to "mage"] - expected: FAIL - - [link.as: IDL set to "IMAGE"] - expected: FAIL - - [link.as: IDL set to "manifest"] - expected: FAIL - - [link.as: IDL set to "xmanifest"] - expected: FAIL - - [link.as: IDL set to "manifest\\0"] - expected: FAIL - - [link.as: IDL set to "anifest"] - expected: FAIL - - [link.as: IDL set to "MANIFEST"] - expected: FAIL - - [link.as: IDL set to "manifeſt"] - expected: FAIL - - [link.as: IDL set to "object"] - expected: FAIL - - [link.as: IDL set to "xobject"] - expected: FAIL - - [link.as: IDL set to "object\\0"] - expected: FAIL - - [link.as: IDL set to "bject"] - expected: FAIL - - [link.as: IDL set to "OBJECT"] - expected: FAIL - - [link.as: IDL set to "report"] - expected: FAIL - - [link.as: IDL set to "xreport"] - expected: FAIL - - [link.as: IDL set to "report\\0"] - expected: FAIL - - [link.as: IDL set to "eport"] - expected: FAIL - - [link.as: IDL set to "REPORT"] - expected: FAIL - - [link.as: IDL set to "script"] - expected: FAIL - - [link.as: IDL set to "xscript"] - expected: FAIL - - [link.as: IDL set to "script\\0"] - expected: FAIL - - [link.as: IDL set to "cript"] - expected: FAIL - - [link.as: IDL set to "SCRIPT"] - expected: FAIL - - [link.as: IDL set to "ſcript"] - expected: FAIL - - [link.as: IDL set to "sharedworker"] - expected: FAIL - - [link.as: IDL set to "xsharedworker"] - expected: FAIL - - [link.as: IDL set to "sharedworker\\0"] - expected: FAIL - - [link.as: IDL set to "haredworker"] - expected: FAIL - - [link.as: IDL set to "SHAREDWORKER"] - expected: FAIL - - [link.as: IDL set to "sharedworKer"] - expected: FAIL - - [link.as: IDL set to "ſharedworker"] - expected: FAIL - - [link.as: IDL set to "style"] - expected: FAIL - - [link.as: IDL set to "xstyle"] - expected: FAIL - - [link.as: IDL set to "style\\0"] - expected: FAIL - - [link.as: IDL set to "tyle"] - expected: FAIL - - [link.as: IDL set to "STYLE"] - expected: FAIL - - [link.as: IDL set to "ſtyle"] - expected: FAIL - - [link.as: IDL set to "track"] - expected: FAIL - - [link.as: IDL set to "xtrack"] - expected: FAIL - - [link.as: IDL set to "track\\0"] - expected: FAIL - - [link.as: IDL set to "rack"] - expected: FAIL - - [link.as: IDL set to "TRACK"] - expected: FAIL - - [link.as: IDL set to "tracK"] - expected: FAIL - - [link.as: IDL set to "video"] - expected: FAIL - - [link.as: IDL set to "xvideo"] - expected: FAIL - - [link.as: IDL set to "video\\0"] - expected: FAIL - - [link.as: IDL set to "ideo"] - expected: FAIL - - [link.as: IDL set to "VIDEO"] - expected: FAIL - - [link.as: IDL set to "worker"] - expected: FAIL - - [link.as: IDL set to "xworker"] - expected: FAIL - - [link.as: IDL set to "worker\\0"] - expected: FAIL - - [link.as: IDL set to "orker"] - expected: FAIL - - [link.as: IDL set to "WORKER"] - expected: FAIL - - [link.as: IDL set to "worKer"] - expected: FAIL - - [link.as: IDL set to "xslt"] - expected: FAIL - - [link.as: IDL set to "xxslt"] - expected: FAIL - - [link.as: IDL set to "xslt\\0"] - expected: FAIL - - [link.as: IDL set to "slt"] - expected: FAIL - - [link.as: IDL set to "XSLT"] - expected: FAIL - - [link.as: IDL set to "xſlt"] - expected: FAIL - [meta.accessKey: typeof IDL attribute] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/document-metadata/interactions-of-styling-and-scripting/link-stylesheet-with-non-match-media-does-not-block-render.tentative.html.ini b/tests/wpt/meta/html/semantics/document-metadata/interactions-of-styling-and-scripting/link-stylesheet-with-non-match-media-does-not-block-render.tentative.html.ini deleted file mode 100644 index 9d0ab013981..00000000000 --- a/tests/wpt/meta/html/semantics/document-metadata/interactions-of-styling-and-scripting/link-stylesheet-with-non-match-media-does-not-block-render.tentative.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[link-stylesheet-with-non-match-media-does-not-block-render.tentative.html] - [\n Delayed Stylesheet imported using link tag should not block rendering\n or JS execution when media doesn't match.\n] - expected: FAIL diff --git a/tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-nomatch-media.tentative.sub.html.ini b/tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-nomatch-media.tentative.sub.html.ini deleted file mode 100644 index c80bd7eb511..00000000000 --- a/tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-nomatch-media.tentative.sub.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[link-rel-stylesheet-nomatch-media.tentative.sub.html] - [Speculative parsing, document.write(): link-rel-stylesheet-nomatch-media] - expected: FAIL diff --git a/tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html.ini b/tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html.ini deleted file mode 100644 index 931c0b1404f..00000000000 --- a/tests/wpt/meta/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[meta-viewport-link-stylesheet-media.tentative.sub.html] - [Speculative parsing, document.write(): meta-viewport-link-stylesheet-media] - expected: FAIL diff --git a/tests/wpt/meta/preload/download-resources.html.ini b/tests/wpt/meta/preload/download-resources.html.ini new file mode 100644 index 00000000000..6b2bd865fec --- /dev/null +++ b/tests/wpt/meta/preload/download-resources.html.ini @@ -0,0 +1,3 @@ +[download-resources.html] + [Makes sure that preloaded resources are downloaded] + expected: FAIL diff --git a/tests/wpt/meta/preload/dynamic-adding-preload-imagesrcset.html.ini b/tests/wpt/meta/preload/dynamic-adding-preload-imagesrcset.html.ini new file mode 100644 index 00000000000..923561e98e5 --- /dev/null +++ b/tests/wpt/meta/preload/dynamic-adding-preload-imagesrcset.html.ini @@ -0,0 +1,3 @@ +[dynamic-adding-preload-imagesrcset.html] + [Makes sure that a dynamically added preload with imagesrcset works] + expected: FAIL diff --git a/tests/wpt/meta/preload/dynamic-adding-preload.html.ini b/tests/wpt/meta/preload/dynamic-adding-preload.html.ini new file mode 100644 index 00000000000..0b703747277 --- /dev/null +++ b/tests/wpt/meta/preload/dynamic-adding-preload.html.ini @@ -0,0 +1,3 @@ +[dynamic-adding-preload.html] + [Makes sure that a dynamically added preloaded resource is downloaded] + expected: FAIL diff --git a/tests/wpt/meta/preload/link-header-modulepreload.html.ini b/tests/wpt/meta/preload/link-header-modulepreload.html.ini new file mode 100644 index 00000000000..4e8264c6c5b --- /dev/null +++ b/tests/wpt/meta/preload/link-header-modulepreload.html.ini @@ -0,0 +1,4 @@ +[link-header-modulepreload.html] + expected: TIMEOUT + [test that a header-preloaded module is loaded and consumed] + expected: TIMEOUT diff --git a/tests/wpt/meta/preload/link-header-on-subresource.html.ini b/tests/wpt/meta/preload/link-header-on-subresource.html.ini new file mode 100644 index 00000000000..ec8493325f0 --- /dev/null +++ b/tests/wpt/meta/preload/link-header-on-subresource.html.ini @@ -0,0 +1,3 @@ +[link-header-on-subresource.html] + [Makes sure that Link headers on subresources preload resources] + expected: FAIL diff --git a/tests/wpt/meta/preload/link-header-preload-delay-onload.html.ini b/tests/wpt/meta/preload/link-header-preload-delay-onload.html.ini new file mode 100644 index 00000000000..cd896c20cb8 --- /dev/null +++ b/tests/wpt/meta/preload/link-header-preload-delay-onload.html.ini @@ -0,0 +1,3 @@ +[link-header-preload-delay-onload.html] + [Makes sure that Link headers preload resources and block window.onload after resource discovery] + expected: FAIL diff --git a/tests/wpt/meta/preload/link-header-preload-imagesrcset.html.ini b/tests/wpt/meta/preload/link-header-preload-imagesrcset.html.ini new file mode 100644 index 00000000000..72652ff5764 --- /dev/null +++ b/tests/wpt/meta/preload/link-header-preload-imagesrcset.html.ini @@ -0,0 +1,3 @@ +[link-header-preload-imagesrcset.html] + [Makes sure that Link headers preload images with imagesrcset/imagesizes attributes.] + expected: FAIL diff --git a/tests/wpt/meta/preload/link-header-preload-non-html.html.ini b/tests/wpt/meta/preload/link-header-preload-non-html.html.ini new file mode 100644 index 00000000000..a69945adc84 --- /dev/null +++ b/tests/wpt/meta/preload/link-header-preload-non-html.html.ini @@ -0,0 +1,15 @@ +[link-header-preload-non-html.html] + [XHTML documents should respect preload Link headers] + expected: FAIL + + [plain text documents should respect preload Link headers] + expected: FAIL + + [image documents should respect preload Link headers] + expected: FAIL + + [media documents should respect preload Link headers] + expected: FAIL + + [invalid image documents should respect preload Link headers] + expected: FAIL diff --git a/tests/wpt/meta/preload/link-header-preload-nonce.html.ini b/tests/wpt/meta/preload/link-header-preload-nonce.html.ini new file mode 100644 index 00000000000..39ba1868a86 --- /dev/null +++ b/tests/wpt/meta/preload/link-header-preload-nonce.html.ini @@ -0,0 +1,3 @@ +[link-header-preload-nonce.html] + [with nonce] + expected: FAIL diff --git a/tests/wpt/meta/preload/link-header-preload.html.ini b/tests/wpt/meta/preload/link-header-preload.html.ini new file mode 100644 index 00000000000..d78be2ed518 --- /dev/null +++ b/tests/wpt/meta/preload/link-header-preload.html.ini @@ -0,0 +1,3 @@ +[link-header-preload.html] + [Makes sure that Link headers preload resources] + expected: FAIL diff --git a/tests/wpt/meta/preload/modulepreload-as.html.ini b/tests/wpt/meta/preload/modulepreload-as.html.ini new file mode 100644 index 00000000000..e35893aefd7 --- /dev/null +++ b/tests/wpt/meta/preload/modulepreload-as.html.ini @@ -0,0 +1,82 @@ +[modulepreload-as.html] + expected: TIMEOUT + [Modulepreload with as=""] + expected: TIMEOUT + + [Modulepreload with as="audio"] + expected: NOTRUN + + [Modulepreload with as="audioworklet"] + expected: NOTRUN + + [Modulepreload with as="document"] + expected: NOTRUN + + [Modulepreload with as="embed"] + expected: NOTRUN + + [Modulepreload with as="font"] + expected: NOTRUN + + [Modulepreload with as="frame"] + expected: NOTRUN + + [Modulepreload with as="iframe"] + expected: NOTRUN + + [Modulepreload with as="image"] + expected: NOTRUN + + [Modulepreload with as="json"] + expected: NOTRUN + + [Modulepreload with as="manifest"] + expected: NOTRUN + + [Modulepreload with as="object"] + expected: NOTRUN + + [Modulepreload with as="paintworklet"] + expected: NOTRUN + + [Modulepreload with as="report"] + expected: NOTRUN + + [Modulepreload with as="script"] + expected: NOTRUN + + [Modulepreload with as="serviceworker"] + expected: NOTRUN + + [Modulepreload with as="sharedworker"] + expected: NOTRUN + + [Modulepreload with as="style"] + expected: NOTRUN + + [Modulepreload with as="track"] + expected: NOTRUN + + [Modulepreload with as="video"] + expected: NOTRUN + + [Modulepreload with as="webidentity"] + expected: NOTRUN + + [Modulepreload with as="worker"] + expected: NOTRUN + + [Modulepreload with as="xslt"] + expected: NOTRUN + + [Modulepreload with as="fetch"] + expected: NOTRUN + + [Modulepreload with as="invalid-dest"] + expected: NOTRUN + + [Modulepreload with as="iMaGe"] + expected: NOTRUN + + [Modulepreload with as="sCrIpT"] + expected: NOTRUN diff --git a/tests/wpt/meta/preload/modulepreload-sri-importmap.html.ini b/tests/wpt/meta/preload/modulepreload-sri-importmap.html.ini new file mode 100644 index 00000000000..8fa5f224ea7 --- /dev/null +++ b/tests/wpt/meta/preload/modulepreload-sri-importmap.html.ini @@ -0,0 +1,3 @@ +[modulepreload-sri-importmap.html] + [Script should not be loaded if modulepreload's integrity is invalid] + expected: FAIL diff --git a/tests/wpt/meta/preload/modulepreload-sri.html.ini b/tests/wpt/meta/preload/modulepreload-sri.html.ini new file mode 100644 index 00000000000..afd8f2285da --- /dev/null +++ b/tests/wpt/meta/preload/modulepreload-sri.html.ini @@ -0,0 +1,3 @@ +[modulepreload-sri.html] + [Script should not be loaded if modulepreload's integrity is invalid] + expected: FAIL diff --git a/tests/wpt/meta/preload/modulepreload.html.ini b/tests/wpt/meta/preload/modulepreload.html.ini new file mode 100644 index 00000000000..2caa1eb2d78 --- /dev/null +++ b/tests/wpt/meta/preload/modulepreload.html.ini @@ -0,0 +1,85 @@ +[modulepreload.html] + expected: TIMEOUT + [link rel=modulepreload] + expected: TIMEOUT + + [same-origin link rel=modulepreload crossorigin=anonymous] + expected: NOTRUN + + [same-origin link rel=modulepreload crossorigin=use-credentials] + expected: NOTRUN + + [cross-origin link rel=modulepreload] + expected: NOTRUN + + [cross-origin link rel=modulepreload crossorigin=anonymous] + expected: NOTRUN + + [cross-origin link rel=modulepreload crossorigin=use-credentials] + expected: NOTRUN + + [link rel=modulepreload with submodules] + expected: NOTRUN + + [link rel=modulepreload for a module with syntax error] + expected: NOTRUN + + [link rel=modulepreload for a module with network error] + expected: NOTRUN + + [link rel=modulepreload with bad href attribute] + expected: NOTRUN + + [link rel=modulepreload as=script] + expected: NOTRUN + + [link rel=modulepreload with non-script-like as= value (image)] + expected: NOTRUN + + [link rel=modulepreload with non-script-like as= value (xslt)] + expected: NOTRUN + + [link rel=modulepreload with integrity match] + expected: NOTRUN + + [link rel=modulepreload with integrity match2] + expected: NOTRUN + + [link rel=modulepreload with integrity mismatch] + expected: NOTRUN + + [link rel=modulepreload with integrity mismatch2] + expected: NOTRUN + + [link rel=modulepreload with integrity mismatch3] + expected: NOTRUN + + [multiple link rel=modulepreload with same href] + expected: NOTRUN + + [multiple link rel=modulepreload with child module before parent] + expected: NOTRUN + + [link rel=modulepreload with matching media] + expected: NOTRUN + + [link rel=modulepreload with non-matching media] + expected: NOTRUN + + [link rel=modulepreload with empty media] + expected: NOTRUN + + [link rel=modulepreload with empty href] + expected: NOTRUN + + [link rel=modulepreload with empty href and invalid as= value] + expected: NOTRUN + + [link rel=modulepreload and script with non-matching crossorigin values] + expected: NOTRUN + + [link rel=modulepreload and script with non-matching crossorigin values2] + expected: NOTRUN + + [link rel=modulepreload and non-module script] + expected: NOTRUN diff --git a/tests/wpt/meta/preload/onerror-event.html.ini b/tests/wpt/meta/preload/onerror-event.html.ini new file mode 100644 index 00000000000..d328fee9519 --- /dev/null +++ b/tests/wpt/meta/preload/onerror-event.html.ini @@ -0,0 +1,3 @@ +[onerror-event.html] + [Makes sure that preloaded resources trigger the onerror event] + expected: FAIL diff --git a/tests/wpt/meta/preload/onload-event.html.ini b/tests/wpt/meta/preload/onload-event.html.ini new file mode 100644 index 00000000000..61f512cf25e --- /dev/null +++ b/tests/wpt/meta/preload/onload-event.html.ini @@ -0,0 +1,3 @@ +[onload-event.html] + [Makes sure that preloaded resources trigger the onload event] + expected: FAIL diff --git a/tests/wpt/meta/preload/preconnect.html.ini b/tests/wpt/meta/preload/preconnect.html.ini new file mode 100644 index 00000000000..f1f30712a4f --- /dev/null +++ b/tests/wpt/meta/preload/preconnect.html.ini @@ -0,0 +1,4 @@ +[preconnect.html] + expected: TIMEOUT + [Test that preconnect reduces connection time to zero] + expected: TIMEOUT diff --git a/tests/wpt/meta/preload/prefetch-document.html.ini b/tests/wpt/meta/preload/prefetch-document.html.ini new file mode 100644 index 00000000000..e79d094c754 --- /dev/null +++ b/tests/wpt/meta/preload/prefetch-document.html.ini @@ -0,0 +1,6 @@ +[prefetch-document.html] + [same-site different-origin document prefetch without 'as' should not be consumed] + expected: FAIL + + [different-site document prefetch without 'as' should not be consumed] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-csp.sub.html.ini b/tests/wpt/meta/preload/preload-csp.sub.html.ini new file mode 100644 index 00000000000..caf5ac5c562 --- /dev/null +++ b/tests/wpt/meta/preload/preload-csp.sub.html.ini @@ -0,0 +1,3 @@ +[preload-csp.sub.html] + [Preload requests are blocked by CSP.] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-default-csp.sub.html.ini b/tests/wpt/meta/preload/preload-default-csp.sub.html.ini new file mode 100644 index 00000000000..c44096ef973 --- /dev/null +++ b/tests/wpt/meta/preload/preload-default-csp.sub.html.ini @@ -0,0 +1,3 @@ +[preload-default-csp.sub.html] + [Preload requests are blocked by CSP ("default-src 'none').] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-error.sub.html.ini b/tests/wpt/meta/preload/preload-error.sub.html.ini new file mode 100644 index 00000000000..11cddb179c3 --- /dev/null +++ b/tests/wpt/meta/preload/preload-error.sub.html.ini @@ -0,0 +1,102 @@ +[preload-error.sub.html] + [404 (image): main] + expected: FAIL + + [CORS-error (image): main] + expected: FAIL + + [CSP-error (image): preload events] + expected: FAIL + + [CSP-error (image): main] + expected: FAIL + + [CORS-error (style): main] + expected: FAIL + + [CSP-error (style): preload events] + expected: FAIL + + [CSP-error (style): main] + expected: FAIL + + [CORS-error (script): main] + expected: FAIL + + [CSP-error (script): preload events] + expected: FAIL + + [CSP-error (script): main] + expected: FAIL + + [CORS-error (xhr): main] + expected: FAIL + + [CSP-error (xhr): preload events] + expected: FAIL + + [CSP-error (xhr): main] + expected: FAIL + + [success (fetch): main] + expected: FAIL + + [404 (fetch): main] + expected: FAIL + + [CORS (fetch): main] + expected: FAIL + + [CORS-error (fetch): main] + expected: FAIL + + [CSP-error (fetch): preload events] + expected: FAIL + + [CSP-error (fetch): main] + expected: FAIL + + [MIME-error (style): main] + expected: FAIL + + [MIME-blocked (script): main] + expected: FAIL + + [MIME-blocked-nosniff (style): preload events] + expected: FAIL + + [MIME-blocked-nosniff (style): main] + expected: FAIL + + [MIME-blocked-nosniff (script): main] + expected: FAIL + + [Decode-error (script): main] + expected: FAIL + + [success (style): main] + expected: FAIL + + [404 (style): main] + expected: FAIL + + [CORS (style): main] + expected: FAIL + + [success (script): main] + expected: FAIL + + [404 (script): main] + expected: FAIL + + [success (xhr): main] + expected: FAIL + + [404 (xhr): main] + expected: FAIL + + [CORS (xhr): main] + expected: FAIL + + [Decode-error (style): main] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-font-crossorigin.html.ini b/tests/wpt/meta/preload/preload-font-crossorigin.html.ini new file mode 100644 index 00000000000..62be525e1e6 --- /dev/null +++ b/tests/wpt/meta/preload/preload-font-crossorigin.html.ini @@ -0,0 +1,12 @@ +[preload-font-crossorigin.html] + [Same origin font preload with crossorigin attribute] + expected: FAIL + + [Same origin font preload without crossorigin attribute] + expected: FAIL + + [Cross origin font preload with crossorigin attribute] + expected: FAIL + + [Cross origin font preload without crossorigin attribute] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-in-data-doc.html.ini b/tests/wpt/meta/preload/preload-in-data-doc.html.ini new file mode 100644 index 00000000000..417c49751f9 --- /dev/null +++ b/tests/wpt/meta/preload/preload-in-data-doc.html.ini @@ -0,0 +1,2 @@ +[preload-in-data-doc.html] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-nonce.sub.html.ini b/tests/wpt/meta/preload/preload-nonce.sub.html.ini new file mode 100644 index 00000000000..3325c3b01c1 --- /dev/null +++ b/tests/wpt/meta/preload/preload-nonce.sub.html.ini @@ -0,0 +1,3 @@ +[preload-nonce.sub.html] + [Preload requests without a nonce are blocked by CSP.] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-referrer-policy-subresource-header.tentative.html.ini b/tests/wpt/meta/preload/preload-referrer-policy-subresource-header.tentative.html.ini new file mode 100644 index 00000000000..fccf5758847 --- /dev/null +++ b/tests/wpt/meta/preload/preload-referrer-policy-subresource-header.tentative.html.ini @@ -0,0 +1,594 @@ +[preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=false&isCrossOriginResource=true] + [referrer policy ( -> , same-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> no-referrer, same-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> same-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> strict-origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> unsafe-url, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> , same-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> no-referrer, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> same-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> unsafe-url, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> , same-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> no-referrer, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> same-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> strict-origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> unsafe-url, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> , same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> no-referrer, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> same-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> strict-origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> unsafe-url, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> , same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> no-referrer, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> same-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> unsafe-url, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> , same-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> same-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> , same-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> no-referrer, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> same-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, same-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> unsafe-url, same-origin, cross-origin)] + expected: FAIL + + +[preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=true&isCrossOriginResource=true] + [referrer policy ( -> , cross-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> no-referrer, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> same-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> strict-origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy ( -> unsafe-url, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> , cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> no-referrer, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> same-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (no-referrer -> unsafe-url, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> , cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> no-referrer, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> same-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> strict-origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (same-origin -> unsafe-url, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> , cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> no-referrer, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> same-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> strict-origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin -> unsafe-url, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> , cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> no-referrer, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> same-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> unsafe-url, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> , cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> same-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> , cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> no-referrer, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> same-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, cross-origin, cross-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> unsafe-url, cross-origin, cross-origin)] + expected: FAIL + + +[preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=false&isCrossOriginResource=false] + [referrer policy ( -> , same-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> no-referrer, same-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> same-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> strict-origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> unsafe-url, same-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> , same-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> no-referrer, same-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> same-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> unsafe-url, same-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> , same-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> no-referrer, same-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> same-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> strict-origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> unsafe-url, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> , same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> no-referrer, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> same-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> strict-origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> unsafe-url, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> , same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> no-referrer, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> same-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> unsafe-url, same-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> , same-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, same-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> same-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, same-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> , same-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> no-referrer, same-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> same-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, same-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> unsafe-url, same-origin, same-origin)] + expected: FAIL + + +[preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=true&isCrossOriginResource=false] + [referrer policy ( -> , cross-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> no-referrer, cross-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> same-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> strict-origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy ( -> unsafe-url, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> , cross-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> no-referrer, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> same-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (no-referrer -> unsafe-url, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> , cross-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> no-referrer, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> same-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> strict-origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (same-origin -> unsafe-url, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> , cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> no-referrer, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> same-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> strict-origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin -> unsafe-url, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> , cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> no-referrer, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> same-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (origin-when-cross-origin -> unsafe-url, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> , cross-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> same-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> , cross-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> no-referrer, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> same-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, cross-origin, same-origin)] + expected: FAIL + + [referrer policy (unsafe-url -> unsafe-url, cross-origin, same-origin)] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-referrer-policy.html.ini b/tests/wpt/meta/preload/preload-referrer-policy.html.ini new file mode 100644 index 00000000000..5060e820c0e --- /dev/null +++ b/tests/wpt/meta/preload/preload-referrer-policy.html.ini @@ -0,0 +1,589 @@ +[preload-referrer-policy.html] + expected: TIMEOUT + [referrer policy ( -> , element, cross-origin)] + expected: FAIL + + [referrer policy ( -> , element, same-origin)] + expected: FAIL + + [referrer policy ( -> , header, cross-origin)] + expected: TIMEOUT + + [referrer policy ( -> , header, same-origin)] + expected: NOTRUN + + [referrer policy ( -> no-referrer, element, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> no-referrer, element, same-origin)] + expected: NOTRUN + + [referrer policy ( -> no-referrer, header, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> no-referrer, header, same-origin)] + expected: NOTRUN + + [referrer policy ( -> same-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> same-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy ( -> same-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> same-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy ( -> origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> origin, element, same-origin)] + expected: NOTRUN + + [referrer policy ( -> origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> origin, header, same-origin)] + expected: NOTRUN + + [referrer policy ( -> origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy ( -> origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy ( -> strict-origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> strict-origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy ( -> strict-origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> strict-origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy ( -> unsafe-url, element, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> unsafe-url, element, same-origin)] + expected: NOTRUN + + [referrer policy ( -> unsafe-url, header, cross-origin)] + expected: NOTRUN + + [referrer policy ( -> unsafe-url, header, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> , element, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> , element, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> , header, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> , header, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> no-referrer, element, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> no-referrer, element, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> no-referrer, header, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> no-referrer, header, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> same-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> same-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> same-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> same-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> strict-origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> unsafe-url, element, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> unsafe-url, element, same-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> unsafe-url, header, cross-origin)] + expected: NOTRUN + + [referrer policy (no-referrer -> unsafe-url, header, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> , element, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> , element, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> , header, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> , header, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> no-referrer, element, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> no-referrer, element, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> no-referrer, header, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> no-referrer, header, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> same-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> same-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> same-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> same-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> strict-origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> strict-origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> strict-origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> strict-origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> unsafe-url, element, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> unsafe-url, element, same-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> unsafe-url, header, cross-origin)] + expected: NOTRUN + + [referrer policy (same-origin -> unsafe-url, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> , element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> , element, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> , header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> , header, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> no-referrer, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> no-referrer, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> no-referrer, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> no-referrer, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> same-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> same-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> same-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> same-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> strict-origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> strict-origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> strict-origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> strict-origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> unsafe-url, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> unsafe-url, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin -> unsafe-url, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin -> unsafe-url, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> , element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> , element, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> , header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> , header, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> no-referrer, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> no-referrer, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> no-referrer, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> no-referrer, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> same-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> same-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> same-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> same-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> strict-origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> unsafe-url, element, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> unsafe-url, element, same-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> unsafe-url, header, cross-origin)] + expected: NOTRUN + + [referrer policy (origin-when-cross-origin -> unsafe-url, header, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> , element, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> , element, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> , header, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> , header, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, element, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, element, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, header, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> no-referrer, header, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> same-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> same-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> same-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> same-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> strict-origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, element, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, element, same-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, header, cross-origin)] + expected: NOTRUN + + [referrer policy (strict-origin-when-cross-origin -> unsafe-url, header, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> , element, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> , element, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> , header, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> , header, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> no-referrer, element, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> no-referrer, element, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> no-referrer, header, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> no-referrer, header, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> same-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> same-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> same-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> same-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, element, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, element, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, header, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> strict-origin-when-cross-origin, header, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> unsafe-url, element, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> unsafe-url, element, same-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> unsafe-url, header, cross-origin)] + expected: NOTRUN + + [referrer policy (unsafe-url -> unsafe-url, header, same-origin)] + expected: NOTRUN diff --git a/tests/wpt/meta/preload/preload-resource-match.https.html.ini b/tests/wpt/meta/preload/preload-resource-match.https.html.ini new file mode 100644 index 00000000000..31f9bda5354 --- /dev/null +++ b/tests/wpt/meta/preload/preload-resource-match.https.html.ini @@ -0,0 +1,148 @@ +[preload-resource-match.https.html] + expected: TIMEOUT + [Loading image (no-cors) with link (anonymous) should discard the preloaded response] + expected: FAIL + + [Loading image (no-cors) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading image (anonymous) with link (no-cors) should discard the preloaded response] + expected: FAIL + + [Loading image (anonymous) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading image (use-credentials) with link (no-cors) should discard the preloaded response] + expected: FAIL + + [Loading image (use-credentials) with link (anonymous) should discard the preloaded response] + expected: FAIL + + [Loading font (anonymous) with link (no-cors) should discard the preloaded response] + expected: FAIL + + [Loading font (anonymous) with link (anonymous) should reuse the preloaded response] + expected: FAIL + + [Loading font (anonymous) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading font (same-origin) with link (same-origin) should reuse the preloaded response] + expected: FAIL + + [Loading backgroundImage (no-cors) with link (anonymous) should discard the preloaded response] + expected: FAIL + + [Loading backgroundImage (no-cors) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading fetch (same-origin) with link (same-origin) should reuse the preloaded response] + expected: FAIL + + [Loading fetch (no-cors) with link (no-cors) should reuse the preloaded response] + expected: FAIL + + [Loading fetch (no-cors) with link (anonymous) should discard the preloaded response] + expected: FAIL + + [Loading fetch (no-cors) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading fetch (anonymous) with link (no-cors) should discard the preloaded response] + expected: FAIL + + [Loading fetch (anonymous) with link (anonymous) should reuse the preloaded response] + expected: FAIL + + [Loading fetch (anonymous) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading fetch (use-credentials) with link (no-cors) should discard the preloaded response] + expected: FAIL + + [Loading fetch (use-credentials) with link (anonymous) should discard the preloaded response] + expected: FAIL + + [Loading fetch (use-credentials) with link (use-credentials) should reuse the preloaded response] + expected: FAIL + + [Loading script (no-cors) with link (anonymous) should discard the preloaded response] + expected: FAIL + + [Loading script (no-cors) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading script (anonymous) with link (no-cors) should discard the preloaded response] + expected: FAIL + + [Loading script (anonymous) with link (use-credentials) should discard the preloaded response] + expected: FAIL + + [Loading script (use-credentials) with link (no-cors) should discard the preloaded response] + expected: FAIL + + [Loading script (use-credentials) with link (anonymous) should discard the preloaded response] + expected: TIMEOUT + + [Loading script (use-credentials) with link (use-credentials) should reuse the preloaded response] + expected: NOTRUN + + [Loading module (same-origin) with link (same-origin) should reuse the preloaded response] + expected: NOTRUN + + [Loading module (no-cors) with link (no-cors) should reuse the preloaded response] + expected: NOTRUN + + [Loading module (no-cors) with link (anonymous) should discard the preloaded response] + expected: NOTRUN + + [Loading module (no-cors) with link (use-credentials) should discard the preloaded response] + expected: NOTRUN + + [Loading module (anonymous) with link (no-cors) should discard the preloaded response] + expected: NOTRUN + + [Loading module (anonymous) with link (anonymous) should reuse the preloaded response] + expected: NOTRUN + + [Loading module (anonymous) with link (use-credentials) should discard the preloaded response] + expected: NOTRUN + + [Loading module (use-credentials) with link (no-cors) should discard the preloaded response] + expected: NOTRUN + + [Loading module (use-credentials) with link (anonymous) should discard the preloaded response] + expected: NOTRUN + + [Loading module (use-credentials) with link (use-credentials) should reuse the preloaded response] + expected: NOTRUN + + [Loading style (same-origin) with link (same-origin) should reuse the preloaded response] + expected: NOTRUN + + [Loading style (no-cors) with link (no-cors) should reuse the preloaded response] + expected: NOTRUN + + [Loading style (no-cors) with link (anonymous) should discard the preloaded response] + expected: NOTRUN + + [Loading style (no-cors) with link (use-credentials) should discard the preloaded response] + expected: NOTRUN + + [Loading style (anonymous) with link (no-cors) should discard the preloaded response] + expected: NOTRUN + + [Loading style (anonymous) with link (anonymous) should reuse the preloaded response] + expected: NOTRUN + + [Loading style (anonymous) with link (use-credentials) should discard the preloaded response] + expected: NOTRUN + + [Loading style (use-credentials) with link (no-cors) should discard the preloaded response] + expected: NOTRUN + + [Loading style (use-credentials) with link (anonymous) should discard the preloaded response] + expected: NOTRUN + + [Loading style (use-credentials) with link (use-credentials) should reuse the preloaded response] + expected: NOTRUN diff --git a/tests/wpt/meta/preload/preload-strict-dynamic.sub.html.ini b/tests/wpt/meta/preload/preload-strict-dynamic.sub.html.ini new file mode 100644 index 00000000000..6b27f8aa968 --- /dev/null +++ b/tests/wpt/meta/preload/preload-strict-dynamic.sub.html.ini @@ -0,0 +1,3 @@ +[preload-strict-dynamic.sub.html] + [static-no-nonce] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-time-to-fetch.https.html.ini b/tests/wpt/meta/preload/preload-time-to-fetch.https.html.ini new file mode 100644 index 00000000000..4c5b889edf5 --- /dev/null +++ b/tests/wpt/meta/preload/preload-time-to-fetch.https.html.ini @@ -0,0 +1,9 @@ +[preload-time-to-fetch.https.html] + [Changing a preload media attribute (non matching->matching) should trigger a fetch] + expected: FAIL + + [Removing a non-matching preload media attribute should trigger a new fetch] + expected: FAIL + + [Changing a preload media attribute (non matching->non matching) should not trigger a fetch] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-type-match.html.ini b/tests/wpt/meta/preload/preload-type-match.html.ini new file mode 100644 index 00000000000..9522c6ff530 --- /dev/null +++ b/tests/wpt/meta/preload/preload-type-match.html.ini @@ -0,0 +1,21 @@ +[preload-type-match.html] + [Preload with {as=track; type=text/vtt} should load when retrieved resource is a track] + expected: FAIL + + [Preload with {as=image; type=image/unknown} should timeout when retrieved resource is a png] + expected: FAIL + + [Preload with {as=style; type=application/css} should timeout when retrieved resource is a css] + expected: FAIL + + [Preload with {as=style; type=text/plain} should timeout when retrieved resource is a css] + expected: FAIL + + [Preload with {as=json; type=text/plain} should timeout when retrieved resource is a json] + expected: FAIL + + [Preload with {as=json; type=application/javascript} should timeout when retrieved resource is a json] + expected: FAIL + + [Preload with {as=font; type=font/not-a-font} should timeout when retrieved resource is a ttf] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-with-type.html.ini b/tests/wpt/meta/preload/preload-with-type.html.ini new file mode 100644 index 00000000000..06c2d989e10 --- /dev/null +++ b/tests/wpt/meta/preload/preload-with-type.html.ini @@ -0,0 +1,3 @@ +[preload-with-type.html] + [Makes sure that preloaded resources with a type attribute trigger the onload event] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-xhr.html.ini b/tests/wpt/meta/preload/preload-xhr.html.ini new file mode 100644 index 00000000000..f74aef3fb55 --- /dev/null +++ b/tests/wpt/meta/preload/preload-xhr.html.ini @@ -0,0 +1,6 @@ +[preload-xhr.html] + [Make an XHR request immediately after creating link rel=preload.] + expected: FAIL + + [Make an XHR request after loading link rel=preload.] + expected: FAIL diff --git a/tests/wpt/meta/preload/single-download-late-used-preload.html.ini b/tests/wpt/meta/preload/single-download-late-used-preload.html.ini new file mode 100644 index 00000000000..cd87be4bace --- /dev/null +++ b/tests/wpt/meta/preload/single-download-late-used-preload.html.ini @@ -0,0 +1,3 @@ +[single-download-late-used-preload.html] + [Ensure preloaded resources are not downloaded again when used] + expected: FAIL diff --git a/tests/wpt/meta/preload/single-download-preload.html.ini b/tests/wpt/meta/preload/single-download-preload.html.ini new file mode 100644 index 00000000000..d32846e882f --- /dev/null +++ b/tests/wpt/meta/preload/single-download-preload.html.ini @@ -0,0 +1,3 @@ +[single-download-preload.html] + [Makes sure that preloaded resources are not downloaded again when used] + expected: FAIL diff --git a/tests/wpt/meta/preload/subresource-integrity-font.html.ini b/tests/wpt/meta/preload/subresource-integrity-font.html.ini new file mode 100644 index 00000000000..3affa0fd05e --- /dev/null +++ b/tests/wpt/meta/preload/subresource-integrity-font.html.ini @@ -0,0 +1,69 @@ +[subresource-integrity-font.html] + [ Same-origin with correct sha256 hash.] + expected: FAIL + + [ Same-origin with correct sha384 hash.] + expected: FAIL + + [ Same-origin with correct sha512 hash.] + expected: FAIL + + [ Same-origin with empty integrity.] + expected: FAIL + + [ Same-origin with no integrity.] + expected: FAIL + + [ Same-origin with incorrect hash.] + expected: FAIL + + [ Same-origin with correct sha256 hash, options.] + expected: FAIL + + [ Same-origin with unknown algorithm only.] + expected: FAIL + + [ Same-origin with multiple sha256 hashes, including correct.] + expected: FAIL + + [ Same-origin with multiple sha256 hashes, including unknown algorithm.] + expected: FAIL + + [ Same-origin with sha256 mismatch, sha512 match.] + expected: FAIL + + [ Same-origin with sha256 match, sha512 mismatch.] + expected: FAIL + + [Same-origin, not CORS request, with correct sha256 hash.] + expected: FAIL + + [Same-origin, not CORS request, with incorrect sha256 hash.] + expected: FAIL + + [ Cross-origin with correct sha256 hash, ACAO: *.] + expected: FAIL + + [ Cross-origin with incorrect sha256 hash, ACAO: *.] + expected: FAIL + + [ Cross-origin with correct sha256 hash, with CORS-ineligible resource.] + expected: FAIL + + [Cross-origin, not CORS request, with correct sha256.] + expected: FAIL + + [Cross-origin, not CORS request, with incorrect sha256.] + expected: FAIL + + [ Cross-origin with empty integrity.] + expected: FAIL + + [Cross-origin, not CORS request, with empty integrity.] + expected: FAIL + + [ Cross-origin with correct sha256 hash, CORS-eligible.] + expected: FAIL + + [ Cross-origin with incorrect sha256 hash, CORS-eligible.] + expected: FAIL diff --git a/tests/wpt/meta/preload/subresource-integrity.html.ini b/tests/wpt/meta/preload/subresource-integrity.html.ini new file mode 100644 index 00000000000..be47ce6c6c5 --- /dev/null +++ b/tests/wpt/meta/preload/subresource-integrity.html.ini @@ -0,0 +1,195 @@ +[subresource-integrity.html] + [Same-origin script with correct sha256 hash.] + expected: FAIL + + [Same-origin script with correct sha384 hash.] + expected: FAIL + + [Same-origin script with correct sha512 hash.] + expected: FAIL + + [Same-origin script with empty integrity.] + expected: FAIL + + [Same-origin script with incorrect hash.] + expected: FAIL + + [Same-origin script with multiple sha256 hashes, including correct.] + expected: FAIL + + [Same-origin script with multiple sha256 hashes, including unknown algorithm.] + expected: FAIL + + [Same-origin script with sha256 mismatch, sha512 match] + expected: FAIL + + [Same-origin script with sha256 match, sha512 mismatch] + expected: FAIL + + [ script with correct hash, ACAO: *] + expected: FAIL + + [ script with incorrect hash, ACAO: *] + expected: FAIL + + [ script with correct hash, CORS-eligible] + expected: FAIL + + [ script with incorrect hash CORS-eligible] + expected: FAIL + + [ script with CORS-ineligible resource] + expected: FAIL + + [Cross-origin script, not CORS request, with correct hash] + expected: FAIL + + [Cross-origin script, not CORS request, with hash mismatch] + expected: FAIL + + [Cross-origin script, empty integrity] + expected: FAIL + + [Same-origin script with correct hash, options.] + expected: FAIL + + [Same-origin script with unknown algorithm only.] + expected: FAIL + + [Same-origin script with matching digest re-uses preload with matching digest.] + expected: FAIL + + [Same-origin script with matching digest re-uses preload with matching digest and options.] + expected: FAIL + + [Same-origin script with non-matching digest does not re-use preload with matching digest.] + expected: FAIL + + [Same-origin script with matching digest does not re-use preload with non-matching digest.] + expected: FAIL + + [Same-origin script with non-matching digest does not re-use preload with non-matching digest.] + expected: FAIL + + [Same-origin script with matching digest does not reuse preload without digest.] + expected: FAIL + + [Same-origin script with matching digest does not reuse preload with matching but stronger digest.] + expected: FAIL + + [Same-origin script with wrong digest does not reuse preload with correct and stronger digest.] + expected: FAIL + + [Same-origin script with matching digest does not reuse preload with matching but weaker digest.] + expected: FAIL + + [Same-origin script with non-matching digest reuses preload with no digest but fails.] + expected: FAIL + + [Same-origin style with correct sha256 hash.] + expected: FAIL + + [Same-origin style with correct sha384 hash.] + expected: FAIL + + [Same-origin style with correct sha512 hash.] + expected: FAIL + + [Same-origin style with empty integrity.] + expected: FAIL + + [Same-origin style with incorrect hash.] + expected: FAIL + + [Same-origin style with multiple sha256 hashes, including correct.] + expected: FAIL + + [Same-origin style with multiple sha256 hashes, including unknown algorithm.] + expected: FAIL + + [Same-origin style with sha256 mismatch, sha512 match] + expected: FAIL + + [Same-origin style with sha256 match, sha512 mismatch] + expected: FAIL + + [ style with correct hash, ACAO: *] + expected: FAIL + + [ style with incorrect hash, ACAO: *] + expected: FAIL + + [ style with correct hash, CORS-eligible] + expected: FAIL + + [ style with incorrect hash CORS-eligible] + expected: FAIL + + [ style with CORS-ineligible resource] + expected: FAIL + + [Cross-origin style, not CORS request, with correct hash] + expected: FAIL + + [Cross-origin style, not CORS request, with hash mismatch] + expected: FAIL + + [Cross-origin style, empty integrity] + expected: FAIL + + [Same-origin style with correct hash, options.] + expected: FAIL + + [Same-origin style with unknown algorithm only.] + expected: FAIL + + [Same-origin style with matching digest re-uses preload with matching digest.] + expected: FAIL + + [Same-origin style with matching digest re-uses preload with matching digest and options.] + expected: FAIL + + [Same-origin style with non-matching digest does not re-use preload with matching digest.] + expected: FAIL + + [Same-origin style with matching digest does not re-use preload with non-matching digest.] + expected: FAIL + + [Same-origin style with non-matching digest does not re-use preload with non-matching digest.] + expected: FAIL + + [Same-origin style with matching digest does not reuse preload without digest.] + expected: FAIL + + [Same-origin style with matching digest does not reuse preload with matching but stronger digest.] + expected: FAIL + + [Same-origin style with wrong digest does not reuse preload with correct and stronger digest.] + expected: FAIL + + [Same-origin style with matching digest does not reuse preload with matching but weaker digest.] + expected: FAIL + + [Same-origin style with non-matching digest reuses preload with no digest but fails.] + expected: FAIL + + [Same-origin image with incorrect hash.] + expected: FAIL + + [Same-origin image with sha256 match, sha512 mismatch] + expected: FAIL + + [ image with incorrect hash, ACAO: *] + expected: FAIL + + [ image with incorrect hash CORS-eligible] + expected: FAIL + + [ image with CORS-ineligible resource] + expected: FAIL + + [Cross-origin image, not CORS request, with correct hash] + expected: FAIL + + [Cross-origin image, not CORS request, with hash mismatch] + expected: FAIL diff --git a/tests/wpt/meta/preload/supported-as-values.html.ini b/tests/wpt/meta/preload/supported-as-values.html.ini new file mode 100644 index 00000000000..8d299d0585d --- /dev/null +++ b/tests/wpt/meta/preload/supported-as-values.html.ini @@ -0,0 +1,43 @@ +[supported-as-values.html?as=track&expected=1] + [Test the supported value for ] + expected: FAIL + + +[supported-as-values.html?as=iframe&expected=0] + +[supported-as-values.html?as=video&expected=0] + +[supported-as-values.html?as=font&expected=1] + [Test the supported value for ] + expected: FAIL + + +[supported-as-values.html?as=fetch&expected=1] + [Test the supported value for ] + expected: FAIL + + +[supported-as-values.html?as=object&expected=0] + +[supported-as-values.html?as=image&expected=1] + [Test the supported value for ] + expected: FAIL + + +[supported-as-values.html?as=garbagefoobar&expected=0] + +[supported-as-values.html?as=style&expected=1] + [Test the supported value for ] + expected: FAIL + + +[supported-as-values.html?as=audio&expected=0] + +[supported-as-values.html?as=script&expected=1] + [Test the supported value for ] + expected: FAIL + + +[supported-as-values.html?as=json&expected=0] + +[supported-as-values.html?as=worklet&expected=0] diff --git a/tests/wpt/tests/preload/preload-csp.sub.html b/tests/wpt/tests/preload/preload-csp.sub.html index a1b57b78b41..2238d6cafe8 100644 --- a/tests/wpt/tests/preload/preload-csp.sub.html +++ b/tests/wpt/tests/preload/preload-csp.sub.html @@ -24,13 +24,13 @@ promise_test(async (t) => { for (const link of links) { if (link.rel === 'preload') { const r = /\?key=([a-zA-Z0-9\-]+)$/; - keys.push(link.href.match(r)[1]); + keys.push([link.href, link.as, link.href.match(r)[1]]); } } await new Promise((resolve) => step_timeout(resolve, 3000)); - for (const key of keys) { - assert_false(await hasArrivedAtServer(key)); + for (const [href, type, key] of keys) { + assert_false(await hasArrivedAtServer(key), `Preload with href ${href}, type ${type} and key ${key} should not have arrived at the server.`); } }, 'Preload requests are blocked by CSP.');