From 3f997c7d6e2050b5b96898b013211f007629c495 Mon Sep 17 00:00:00 2001 From: James Graham Date: Thu, 18 May 2017 11:51:09 +0100 Subject: [PATCH] Bug 1367340 - Update web-platform-tests to revision a2d29f3497c889546662566721bbd4f86efdbedd, a=testonly MozReview-Commit-ID: G7hh5RgrlOv --HG-- rename : testing/web-platform/tests/content-security-policy/navigation/to-javascript-url.html => testing/web-platform/tests/content-security-policy/navigation/to-javascript-url-script-src.html rename : testing/web-platform/tests/webusb/idlharness.html => testing/web-platform/tests/webusb/idlharness.https.html --- testing/web-platform/meta/MANIFEST.json | 1860 +++++++++++++---- testing/web-platform/meta/mozilla-sync | 4 +- testing/web-platform/tests/.gitignore | 1 + testing/web-platform/tests/.travis.yml | 19 +- .../DOM-parsing/todo/internalSubset.html | 16 - ...actory-deleteDatabase-request-success.html | 28 + .../idbfactory-open-request-error.html | 66 + .../idbfactory-open-request-success.html | 54 + .../web-platform/tests/IndexedDB/support.js | 4 +- testing/web-platform/tests/README.md | 50 +- testing/web-platform/tests/WebIDL/OWNERS | 4 + .../ecmascript-binding/put-forwards.html | 117 ++ .../sequence-conversion.html | 131 ++ .../tests/XMLHttpRequest/resources/base.xml | 1 + .../responsexml-document-properties.htm | 40 +- ...tml => battery-charging-manual.https.html} | 2 + ... => battery-discharging-manual.https.html} | 2 + ...al.html => battery-full-manual.https.html} | 2 + .../battery-status/battery-iframe.https.html | 27 + .../battery-insecure-context.html | 27 + ...> battery-interface-idlharness.https.html} | 2 + ... => battery-plugging-in-manual.https.html} | 2 + .../battery-promise-iframe.html | 80 - ...html => battery-promise-window.https.html} | 2 + ...romise.html => battery-promise.https.html} | 3 +- ...l => battery-unplugging-manual.https.html} | 2 + .../support-iframe-initial.html | 5 - testing/web-platform/tests/check_stability.py | 128 +- .../tests/conformance-checkers/messages.json | 6 +- .../script-nonces-hidden-meta.html | 116 + .../_unapproved/script-nonces-hidden.html | 114 + .../script-nonces-hidden.html.headers | 1 + .../svgscript-nonces-hidden-meta.html | 122 ++ .../_unapproved/svgscript-nonces-hidden.html | 122 ++ .../svgscript-nonces-hidden.html.headers | 1 + .../to-javascript-url-frame-src.html | 16 + ...html => to-javascript-url-script-src.html} | 0 .../tests/cors/preflight-failure.htm | 13 +- .../credential-management/idl.https.html | 19 +- .../cssom-view-window-screen-interface.html | 2 +- .../cssom-view/offsetParent_element_test.html | 2 +- .../cssom/insertRule-charset-no-index.html | 32 + .../cssom/insertRule-import-no-index.html | 33 + .../cssom/insertRule-namespace-no-index.html | 40 + .../tests/cssom/insertRule-no-index.html | 35 + .../tests/cssom/support/import-charset.css | 1 + .../tests/docs/_writing-tests/css-metadata.md | 5 +- ...r-parseFromString-xml-internal-subset.html | 24 + .../tests/dpub-aam/doc-abstract-manual.html | 14 - .../dpub-aam/doc-acknowledgments-manual.html | 14 - .../tests/dpub-aam/doc-afterword-manual.html | 14 - .../tests/dpub-aam/doc-appendix-manual.html | 14 - .../tests/dpub-aam/doc-backlink-manual.html | 30 +- .../dpub-aam/doc-biblioentry-manual.html | 14 - .../dpub-aam/doc-bibliography-manual.html | 14 - .../tests/dpub-aam/doc-biblioref-manual.html | 30 +- .../tests/dpub-aam/doc-chapter-manual.html | 14 - .../tests/dpub-aam/doc-colophon-manual.html | 14 - .../tests/dpub-aam/doc-conclusion-manual.html | 14 - .../tests/dpub-aam/doc-cover-manual.html | 14 - .../tests/dpub-aam/doc-credit-manual.html | 14 - .../tests/dpub-aam/doc-credits-manual.html | 14 - .../tests/dpub-aam/doc-dedication-manual.html | 14 - .../tests/dpub-aam/doc-endnote-manual.html | 14 - .../tests/dpub-aam/doc-endnotes-manual.html | 14 - .../tests/dpub-aam/doc-epigraph-manual.html | 14 - .../tests/dpub-aam/doc-epilogue-manual.html | 14 - .../tests/dpub-aam/doc-errata-manual.html | 14 - .../tests/dpub-aam/doc-example-manual.html | 14 - .../tests/dpub-aam/doc-footnote-manual.html | 14 - .../tests/dpub-aam/doc-foreword-manual.html | 14 - .../tests/dpub-aam/doc-glossary-manual.html | 14 - .../tests/dpub-aam/doc-glossref-manual.html | 30 +- .../tests/dpub-aam/doc-index-manual.html | 14 - .../dpub-aam/doc-introduction-manual.html | 14 - .../tests/dpub-aam/doc-noteref-manual.html | 30 +- .../tests/dpub-aam/doc-notice-manual.html | 14 - .../tests/dpub-aam/doc-pagebreak-manual.html | 14 - .../tests/dpub-aam/doc-pagelist-manual.html | 14 - .../tests/dpub-aam/doc-part-manual.html | 14 - .../tests/dpub-aam/doc-preface-manual.html | 14 - .../tests/dpub-aam/doc-prologue-manual.html | 14 - .../tests/dpub-aam/doc-pullquote-manual.html | 14 - .../tests/dpub-aam/doc-qna-manual.html | 14 - .../tests/dpub-aam/doc-subtitle-manual.html | 14 - .../tests/dpub-aam/doc-tip-manual.html | 14 - .../tests/dpub-aam/doc-toc-manual.html | 14 - .../drm-retrieve-persistent-license.html | 9 +- .../playback-persistent-license-events.js | 69 +- .../playback-retrieve-persistent-license.js | 12 +- .../api/request/request-consume-empty.html | 31 +- .../api/response/response-consume-empty.html | 31 +- ...ocument-exit-fullscreen-timing-manual.html | 2 +- ...document-exit-fullscreen-twice-manual.html | 24 +- ...nt-request-fullscreen-active-document.html | 38 + ...est-fullscreen-and-exit-iframe-manual.html | 2 +- ...t-fullscreen-and-remove-iframe-manual.html | 2 +- ...ment-request-fullscreen-timing-manual.html | 4 +- ...ement-request-fullscreen-twice-manual.html | 2 +- .../tests/fullscreen/interfaces.html | 31 + .../the-window-object/historical.window.js | 4 + .../security-window/window-security.html | 1 - .../the-window-object/window-properties.html | 7 - .../dom-tree-accessors/nameditem-07.html | 109 + .../dom-tree-accessors/nameditem-08.html | 42 + .../tests/html/dom/self-origin.sub.html | 8 +- .../datatransfer-constructor-001.html | 1 + .../dnd/datastore/datatransfer-types.html | 115 + .../relatedTarget-attribute-manual.html | 65 + .../broadcastchannel-success.html | 2 +- .../forms/resetting-a-form/reset-form-2.html | 61 + .../selection-after-content-change.html | 2 +- .../button-click-submits.html | 149 ++ .../forms/the-button-element/button-type.html | 41 + .../checkbox-click-events.html | 109 + .../the-input-element/radio-input-cancel.html | 41 + .../proxy-click-to-associated-element.html | 58 + .../option-element-constructor.html | 120 ++ .../the-option-element/option-index.html | 54 + .../the-select-element/select-multiple.html | 36 + .../select-selectedOptions.html | 127 ++ .../value-defaultValue-textContent.html | 71 + .../module/currentScript-null.html | 13 + .../module/currentscript.js | 1 + .../the-script-element/module/execorder.html | 18 +- .../module/import-subgraph-404.html | 14 + .../module/resources/delayed-modulescript.py | 7 + .../module/script-for-event.html | 93 + .../module/set-currentScript-on-window.js | 1 + .../tests/interfaces/fullscreen.idl | 17 + .../web-platform/tests/interfaces/html.idl | 3 +- .../tests/interfaces/remoteplayback.idl | 23 + .../js/builtins/Promise-subclassing.html | 4 +- testing/web-platform/tests/lint.whitelist | 2 + .../media-capabilities/decodingInfo.html | 125 ++ .../Microsoft/sandbox/iframe_sandbox_009.htm | 9 - .../Microsoft/sandbox/sandbox_009-manual.htm | 37 - .../payment-request-constructor.https.html | 394 ++++ .../payment-request-show-method.https.html | 40 + .../performance-timeline/po-observe.html | 82 + .../pointerevent_pointerleave_pen-manual.html | 10 +- ...rlock_remove_target_on_mouseup-manual.html | 20 + ...tationConnection_onclose-manual.https.html | 145 ++ ...resentationConnection_onclosed-manual.html | 48 - ...tionConnection_onconnect-manual.https.html | 72 + ...entationConnection_onconnected-manual.html | 46 - ...onConnection_onterminate-manual.https.html | 157 ++ ...ntationConnection_onterminated-manual.html | 54 - ...ctToPresentation_success-manual.https.html | 102 +- .../controlling-ua/support/iframe.html | 92 +- .../controlling-ua/support/presentation.html | 84 +- .../tests/remote-playback/idlharness.html | 41 + .../tests/resource-timing/resource-timing.js | 2 +- .../tests/resources/idlharness.js | 17 +- .../tests/resources/testharness.js | 2 +- .../clients-get-client-types.https.html | 6 +- .../service-worker/clients-get.https.html | 6 +- ...ients-matchall-exact-controller.https.html | 2 +- ...s-matchall-include-uncontrolled.https.html | 4 +- .../clients-matchall.https.html | 2 +- .../fetch-mixed-content-to-inscope.https.html | 6 - ...fetch-mixed-content-to-outscope.https.html | 6 - ...est-css-cross-origin-mime-check.https.html | 50 + .../fetch-request-fallback.https.html | 353 +++- .../fetch-request-html-imports.https.html | 64 + .../fetch-request-resources.https.html | 71 +- .../fetch-request-xhr.https.html | 8 +- .../fetch-response-taint.https.html | 217 ++ .../fetch-response-xhr.https.html | 18 +- .../import-scripts-resource-map.https.html | 23 + .../import-scripts-updated-flag.https.html | 83 + .../iso-latin1-header.https.html | 32 + .../navigation-redirect-body.https.html | 53 + .../navigation-redirect-to-http.https.html | 25 + .../navigation-redirect.https.html | 26 +- .../opaque-response-preloaded.https.html | 33 + .../postmessage-msgport-to-client.https.html | 76 +- .../postmessage-to-client.https.html | 82 +- .../service-worker/postmessage.https.html | 169 +- .../service-worker/ready.https.html | 169 +- .../resources/clients-get-worker.js | 1 + ...uest-css-cross-origin-mime-check-cross.css | 1 + ...est-css-cross-origin-mime-check-cross.html | 1 + ...st-css-cross-origin-mime-check-iframe.html | 17 + ...quest-css-cross-origin-mime-check-same.css | 1 + ...uest-css-cross-origin-mime-check-same.html | 1 + ...uest-css-cross-origin-mime-check-worker.js | 20 + .../fetch-request-fallback-iframe.html | 17 + .../fetch-request-html-imports-iframe.html | 13 + .../fetch-request-html-imports-worker.js | 30 + .../fetch-request-resources-iframe.https.html | 8 + .../fetch-request-resources-worker.js | 1 + .../fetch-request-xhr-iframe.https.html | 79 +- .../fetch-response-taint-iframe.html | 2 + .../fetch-response-xhr-iframe.https.html | 20 +- .../resources/import-scripts-echo.py | 6 + .../import-scripts-resource-map-worker.js | 15 + .../import-scripts-updated-flag-worker.js | 29 + .../resources/import-scripts-version.py | 17 + .../resources/iso-latin1-header-iframe.html | 23 + .../resources/iso-latin1-header-worker.js | 12 + .../navigation-redirect-body-worker.js | 11 + .../resources/navigation-redirect-body.py | 9 + .../navigation-redirect-out-scope.py | 7 +- .../resources/navigation-redirect-scope1.py | 7 +- .../resources/navigation-redirect-scope2.py | 7 +- .../navigation-redirect-to-http-iframe.html | 42 + .../navigation-redirect-to-http-worker.js | 22 + .../opaque-response-preloaded-iframe.html | 33 + .../opaque-response-preloaded-worker.js | 12 + .../postmessage-msgport-to-client-worker.js | 15 +- .../resources/postmessage-to-client-worker.js | 4 +- .../postmessage-transferables-worker.js | 24 + .../resources/register-iframe.html | 4 + .../tests/tools/browserutils/__init__.py | 0 .../tests/tools/browserutils/browser.py | 268 +++ .../tests/tools/browserutils/utils.py | 113 + .../tests/tools/browserutils/virtualenv.py | 49 + testing/web-platform/tests/tools/conftest.py | 5 +- testing/web-platform/tests/tools/lint/lint.py | 2 +- .../web-platform/tests/tools/localpaths.py | 2 + .../tests/tools/webdriver/README.md | 4 +- testing/web-platform/tests/tools/wptrun.py | 259 +++ .../tools/wptrunner/wptrunner/wptrunner.py | 14 +- .../{interfaces.html => interfaces.any.js} | 50 +- .../web-platform/tests/url/urltestdata.json | 39 +- .../alertdialog_modal_false-manual.html | 30 +- .../alertdialog_modal_true-manual.html | 30 +- .../aria-current_not_declared-manual.html | 14 - ...ria-current_with_value_changes-manual.html | 14 - .../aria-current_with_value_date-manual.html | 14 - ...ia-current_with_value_location-manual.html | 14 - .../aria-current_with_value_page-manual.html | 14 - .../aria-current_with_value_step-manual.html | 14 - .../aria-current_with_value_time-manual.html | 14 - .../aria-current_with_value_true-manual.html | 14 - ...current_with_value_unspecified-manual.html | 14 - ...ls_pointing_to_details_element-manual.html | 30 +- ...etails_pointing_to_div_element-manual.html | 30 +- ...e_in_feed_posinset_and_setsize-manual.html | 14 - .../article_in_feed_setsize_-1-manual.html | 14 - ...t_in_feed_posinset_and_setsize-manual.html | 14 - .../button_haspopup_dialog-manual.html | 14 - .../button_haspopup_emptystring-manual.html | 14 - .../button_haspopup_false-manual.html | 14 - .../wai-aria/button_haspopup_foo-manual.html | 14 - .../wai-aria/button_haspopup_grid-manual.html | 14 - .../button_haspopup_listbox-manual.html | 14 - .../wai-aria/button_haspopup_menu-manual.html | 14 - .../wai-aria/button_haspopup_tree-manual.html | 14 - .../wai-aria/button_haspopup_true-manual.html | 14 - .../button_haspopup_unspecified-manual.html | 14 - .../button_roledescription_empty-manual.html | 14 - .../button_roledescription_valid-manual.html | 14 - ...oledescription_whitespace_only-manual.html | 14 - .../tests/wai-aria/cell-manual.html | 28 - .../cell_aria-colspan_2_on_div-manual.html | 14 - ...colspan_2_on_td_html_colspan_3-manual.html | 34 +- ...span_3_with_headers_and_border-manual.html | 14 - ...an_3_with_three_actual_columns-manual.html | 116 + ...ith_html_colspan_not_specified-manual.html | 14 - .../cell_aria-rowspan_2_on_div-manual.html | 14 - ...rowspan_2_on_td_html_rowspan_3-manual.html | 34 +- ...wspan_3_with_three_actual_rows-manual.html | 120 ++ ...ith_html_rowspan_not_specified-manual.html | 14 - .../wai-aria/cell_colindex_4-manual.html | 14 - .../wai-aria/cell_rowindex_4-manual.html | 14 - .../checkbox_readonly_false-manual.html | 14 - .../checkbox_readonly_true-manual.html | 14 - .../checkbox_readonly_unspecified-manual.html | 14 - ...mnheader_aria-colspan_2_on_div-manual.html | 14 - ...colspan_2_on_th_html_colspan_3-manual.html | 34 +- ...an_3_with_three_actual_columns-manual.html | 116 + ...ith_html_colspan_not_specified-manual.html | 14 - ...mnheader_aria-rowspan_2_on_div-manual.html | 14 - ...rowspan_2_on_th_html_rowspan_3-manual.html | 34 +- ...wspan_3_with_three_actual_rows-manual.html | 120 ++ ...ith_html_rowspan_not_specified-manual.html | 14 - .../columnheader_colindex_4-manual.html | 14 - .../columnheader_rowindex_4-manual.html | 14 - ...e_not_automatically_propagated-manual.html | 14 - ...e_not_automatically_propagated-manual.html | 14 - ...ombobox_controls_an_invalid_id-manual.html | 30 +- .../combobox_haspopup_dialog-manual.html | 14 - .../combobox_haspopup_false-manual.html | 14 - .../combobox_haspopup_grid-manual.html | 14 - .../combobox_haspopup_listbox-manual.html | 14 - .../combobox_haspopup_menu-manual.html | 14 - .../combobox_haspopup_tree-manual.html | 14 - .../combobox_haspopup_true-manual.html | 14 - .../combobox_haspopup_unspecified-manual.html | 14 - ...ombobox_orientation_horizontal-manual.html | 14 - ...mbobox_orientation_unspecified-manual.html | 16 +- .../combobox_orientation_vertical-manual.html | 14 - .../combobox_readonly_false-manual.html | 14 - .../combobox_readonly_true-manual.html | 14 - .../combobox_readonly_unspecified-manual.html | 14 - .../wai-aria/dialog_modal_false-manual.html | 30 +- .../wai-aria/dialog_modal_true-manual.html | 30 +- .../dialog_modal_unspecified-manual.html | 30 +- ...out_role_roledescription_valid-manual.html | 14 - ...essage_object_in_invalid_state-manual.html | 30 +- ...rmessage_object_in_valid_state-manual.html | 30 +- .../tests/wai-aria/feed-manual.html | 18 +- .../tests/wai-aria/figure-manual.html | 14 - ...false_automatically_propagated-manual.html | 42 - ..._true_automatically_propagated-manual.html | 42 - .../wai-aria/grid_busy_false-manual.html | 14 - .../tests/wai-aria/grid_busy_true-manual.html | 14 - .../grid_busy_value_changes-manual.html | 14 - .../wai-aria/grid_colcount_8-manual.html | 14 - ...id_columnheader_readonly_false-manual.html | 14 - ...rid_columnheader_readonly_true-manual.html | 14 - ...umnheader_readonly_unspecified-manual.html | 14 - ...id_columnheader_required_false-manual.html | 14 - ...rid_columnheader_required_true-manual.html | 14 - ...umnheader_required_unspecified-manual.html | 14 - .../wai-aria/grid_rowcount_3-manual.html | 14 - .../grid_rowheader_readonly_false-manual.html | 14 - .../grid_rowheader_readonly_true-manual.html | 14 - ...rowheader_readonly_unspecified-manual.html | 14 - .../grid_rowheader_required_false-manual.html | 14 - .../grid_rowheader_required_true-manual.html | 14 - ...rowheader_required_unspecified-manual.html | 14 - ...gridcell_aria-colspan_2_on_div-manual.html | 14 - ...gridcell_aria-rowspan_2_on_div-manual.html | 14 - .../wai-aria/gridcell_colindex_4-manual.html | 14 - .../wai-aria/gridcell_rowindex_4-manual.html | 14 - ...undefined_element_not_rendered-manual.html | 14 - ...den_undefined_element_rendered-manual.html | 14 - .../heading_level_unspecified-manual.html | 14 - ...eyshortcuts_multiple_shortcuts-manual.html | 14 - .../keyshortcuts_one_shortcut-manual.html | 14 - .../wai-aria/listbox_busy_false-manual.html | 14 - .../wai-aria/listbox_busy_true-manual.html | 14 - ...listbox_orientation_horizontal-manual.html | 14 - ...istbox_orientation_unspecified-manual.html | 14 - .../listbox_orientation_vertical-manual.html | 14 - .../listbox_readonly_false-manual.html | 14 - .../listbox_readonly_true-manual.html | 14 - .../listbox_readonly_unspecified-manual.html | 14 - .../wai-aria/listitem_setsize_-1-manual.html | 14 - .../menu_orientation_horizontal-manual.html | 14 - .../menu_orientation_unspecified-manual.html | 14 - .../menu_orientation_vertical-manual.html | 14 - .../wai-aria/menubar_busy_false-manual.html | 14 - .../wai-aria/menubar_busy_true-manual.html | 14 - ...menubar_orientation_horizontal-manual.html | 14 - ...enubar_orientation_unspecified-manual.html | 14 - .../menubar_orientation_vertical-manual.html | 14 - .../menuitem_posinset_and_setsize-manual.html | 14 - ...mcheckbox_posinset_and_setsize-manual.html | 14 - ...enuitemcheckbox_readonly_false-manual.html | 14 - ...menuitemcheckbox_readonly_true-manual.html | 14 - ...mcheckbox_readonly_unspecified-manual.html | 14 - ...itemradio_posinset_and_setsize-manual.html | 14 - .../menuitemradio_readonly_false-manual.html | 14 - .../menuitemradio_readonly_true-manual.html | 14 - ...itemradio_readonly_unspecified-manual.html | 14 - .../tests/wai-aria/none-manual.html | 14 - .../option_selected_false-manual.html | 14 - .../wai-aria/option_selected_true-manual.html | 14 - .../option_selected_undefined-manual.html | 14 - .../option_selected_value_changes-manual.html | 44 +- ...iogroup_orientation_horizontal-manual.html | 14 - ...ogroup_orientation_unspecified-manual.html | 16 +- ...adiogroup_orientation_vertical-manual.html | 14 - .../radiogroup_readonly_false-manual.html | 14 - .../radiogroup_readonly_true-manual.html | 14 - ...adiogroup_readonly_unspecified-manual.html | 14 - .../wai-aria/region_with_name-manual.html | 14 - .../wai-aria/region_without_name-manual.html | 16 +- .../tests/wai-aria/row_colindex_4-manual.html | 30 +- .../tests/wai-aria/row_rowindex_4-manual.html | 30 +- ...owheader_aria-colspan_2_on_div-manual.html | 14 - ...owheader_aria-rowspan_2_on_div-manual.html | 14 - .../wai-aria/rowheader_colindex_4-manual.html | 14 - .../wai-aria/rowheader_rowindex_4-manual.html | 14 - ...e_not_automatically_propagated-manual.html | 14 - ...e_not_automatically_propagated-manual.html | 14 - .../tests/wai-aria/scripts/ATTAcomm.js | 940 +++++++++ .../tests/wai-aria/scripts/manual.css | 70 + ...rollbar_all_values_unspecified-manual.html | 14 - ...lbar_only_valuenow_unspecified-manual.html | 14 - ...ollbar_orientation_unspecified-manual.html | 14 - .../tests/wai-aria/searchbox-manual.html | 14 - .../searchbox_autocomplete_both-manual.html | 14 - .../searchbox_autocomplete_inline-manual.html | 14 - .../searchbox_autocomplete_list-manual.html | 14 - .../searchbox_autocomplete_none-manual.html | 14 - ...chbox_autocomplete_unspecified-manual.html | 14 - .../searchbox_multiline_false-manual.html | 14 - .../searchbox_multiline_true-manual.html | 14 - ...earchbox_multiline_unspecified-manual.html | 14 - .../searchbox_placeholder-manual.html | 14 - .../searchbox_readonly_false-manual.html | 14 - .../searchbox_readonly_true-manual.html | 14 - ...searchbox_readonly_unspecified-manual.html | 14 - .../searchbox_required_false-manual.html | 14 - .../searchbox_required_true-manual.html | 14 - ...searchbox_required_unspecified-manual.html | 14 - ...cusable_all_values_unspecified-manual.html | 14 - ...able_only_valuenow_unspecified-manual.html | 14 - .../separator_focusable_valuetext-manual.html | 14 - ...arator_orientation_unspecified-manual.html | 14 - ...cusable_all_values_unspecified-manual.html | 14 - ...eparator_unfocusable_valuetext-manual.html | 14 - .../slider_all_values_unspecified-manual.html | 14 - ...ider_only_valuenow_unspecified-manual.html | 14 - ...slider_orientation_unspecified-manual.html | 14 - .../slider_readonly_false-manual.html | 14 - .../wai-aria/slider_readonly_true-manual.html | 14 - .../slider_readonly_unspecified-manual.html | 14 - ...nbutton_all_values_unspecified-manual.html | 14 - ...only_aria-valuenow_unspecified-manual.html | 14 - .../spinbutton_readonly_false-manual.html | 14 - .../spinbutton_readonly_true-manual.html | 14 - ...pinbutton_readonly_unspecified-manual.html | 14 - .../wai-aria/switch_checked_false-manual.html | 14 - .../wai-aria/switch_checked_mixed-manual.html | 14 - .../wai-aria/switch_checked_true-manual.html | 14 - .../switch_checked_undefined-manual.html | 14 - .../switch_checked_value_changes-manual.html | 14 - .../switch_readonly_false-manual.html | 14 - .../wai-aria/switch_readonly_true-manual.html | 14 - .../switch_readonly_unspecified-manual.html | 14 - .../tab_posinset_and_setsize-manual.html | 14 - .../wai-aria/table_colcount_-1-manual.html | 14 - .../wai-aria/table_colcount_8-manual.html | 14 - .../wai-aria/table_rowcount_-1-manual.html | 14 - .../wai-aria/table_rowcount_3-manual.html | 14 - ...tablist_orientation_horizontal-manual.html | 14 - ...ablist_orientation_unspecified-manual.html | 14 - .../tablist_orientation_vertical-manual.html | 14 - .../tests/wai-aria/term_role-manual.html | 14 - .../wai-aria/textbox_placeholder-manual.html | 14 - ...toolbar_orientation_horizontal-manual.html | 14 - ...oolbar_orientation_unspecified-manual.html | 14 - .../toolbar_orientation_vertical-manual.html | 14 - .../tests/wai-aria/tools/convert_wiki.pl | 648 ++++++ .../tests/wai-aria/tools/make_tests.pl | 588 ++++++ .../tree_orientation_horizontal-manual.html | 14 - .../tree_orientation_unspecified-manual.html | 14 - .../tree_orientation_vertical-manual.html | 14 - .../wai-aria/treegrid_colcount_8-manual.html | 14 - ...reegrid_orientation_horizontal-manual.html | 14 - ...eegrid_orientation_unspecified-manual.html | 14 - .../treegrid_orientation_vertical-manual.html | 14 - .../wai-aria/treegrid_rowcount_3-manual.html | 14 - .../treeitem_selected_false-manual.html | 14 - .../treeitem_selected_true-manual.html | 14 - .../treeitem_selected_undefined-manual.html | 14 - ...reeitem_selected_value_changes-manual.html | 44 +- .../broadcastchannel/origin.window.js | 10 + .../broadcastchannel/resources/origin.html | 8 + testing/web-platform/tests/webrtc/OWNERS | 1 + .../tests/webrtc/RTCDataChannel-id.html | 60 + .../RTCPeerConnection-createDataChannel.html | 5 +- .../websockets/opening-handshake/003.html | 5 +- ...{idlharness.html => idlharness.https.html} | 0 .../webusb/resources/check-availability.html | 9 + .../webusb/resources/featurepolicytest.js | 14 + ...by-feature-policy-attribute.https.sub.html | 24 + ...b-allowed-by-feature-policy.https.sub.html | 21 + ...d-by-feature-policy.https.sub.html.headers | 1 + .../usb-default-feature-policy.https.sub.html | 21 + ...-disabled-by-feature-policy.https.sub.html | 25 + ...d-by-feature-policy.https.sub.html.headers | 1 + .../tests/workers/Worker_ErrorEvent_error.htm | 3 +- .../tests/workers/name-property.html | 19 + .../semantics/multiple-workers/001.html | 1 - .../tests/workers/semantics/xhr/004.html | 2 - .../shared-worker-name-via-options.html | 37 + .../tests/workers/support/name.js | 9 + .../tests/workers/support/shared-name.js | 8 + testing/web-platform/tests/wptrun | 4 + 476 files changed, 11311 insertions(+), 5321 deletions(-) delete mode 100644 testing/web-platform/tests/DOM-parsing/todo/internalSubset.html create mode 100644 testing/web-platform/tests/IndexedDB/idbfactory-deleteDatabase-request-success.html create mode 100644 testing/web-platform/tests/IndexedDB/idbfactory-open-request-error.html create mode 100644 testing/web-platform/tests/IndexedDB/idbfactory-open-request-success.html create mode 100644 testing/web-platform/tests/WebIDL/OWNERS create mode 100644 testing/web-platform/tests/WebIDL/ecmascript-binding/put-forwards.html create mode 100644 testing/web-platform/tests/WebIDL/ecmascript-binding/sequence-conversion.html create mode 100644 testing/web-platform/tests/XMLHttpRequest/resources/base.xml rename testing/web-platform/tests/battery-status/{battery-charging-manual.html => battery-charging-manual.https.html} (92%) rename testing/web-platform/tests/battery-status/{battery-discharging-manual.html => battery-discharging-manual.https.html} (92%) rename testing/web-platform/tests/battery-status/{battery-full-manual.html => battery-full-manual.https.html} (90%) create mode 100644 testing/web-platform/tests/battery-status/battery-iframe.https.html create mode 100644 testing/web-platform/tests/battery-status/battery-insecure-context.html rename testing/web-platform/tests/battery-status/{battery-interface-idlharness.html => battery-interface-idlharness.https.html} (95%) rename testing/web-platform/tests/battery-status/{battery-plugging-in-manual.html => battery-plugging-in-manual.https.html} (96%) delete mode 100644 testing/web-platform/tests/battery-status/battery-promise-iframe.html rename testing/web-platform/tests/battery-status/{battery-promise-window.html => battery-promise-window.https.html} (86%) rename testing/web-platform/tests/battery-status/{battery-promise.html => battery-promise.https.html} (84%) rename testing/web-platform/tests/battery-status/{battery-unplugging-manual.html => battery-unplugging-manual.https.html} (96%) delete mode 100644 testing/web-platform/tests/battery-status/support-iframe-initial.html create mode 100644 testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden-meta.html create mode 100644 testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html create mode 100644 testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html.headers create mode 100644 testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden-meta.html create mode 100644 testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html create mode 100644 testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers create mode 100644 testing/web-platform/tests/content-security-policy/navigation/to-javascript-url-frame-src.html rename testing/web-platform/tests/content-security-policy/navigation/{to-javascript-url.html => to-javascript-url-script-src.html} (100%) create mode 100644 testing/web-platform/tests/cssom/insertRule-charset-no-index.html create mode 100644 testing/web-platform/tests/cssom/insertRule-import-no-index.html create mode 100644 testing/web-platform/tests/cssom/insertRule-namespace-no-index.html create mode 100644 testing/web-platform/tests/cssom/insertRule-no-index.html create mode 100644 testing/web-platform/tests/cssom/support/import-charset.css create mode 100644 testing/web-platform/tests/domparsing/DOMParser-parseFromString-xml-internal-subset.html create mode 100644 testing/web-platform/tests/fullscreen/api/element-request-fullscreen-active-document.html create mode 100644 testing/web-platform/tests/fullscreen/interfaces.html create mode 100644 testing/web-platform/tests/html/browsers/the-window-object/historical.window.js create mode 100644 testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html create mode 100644 testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-08.html create mode 100644 testing/web-platform/tests/html/editing/dnd/datastore/datatransfer-types.html create mode 100644 testing/web-platform/tests/html/editing/dnd/events/relatedTarget-attribute-manual.html create mode 100644 testing/web-platform/tests/html/semantics/forms/resetting-a-form/reset-form-2.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-button-element/button-click-submits.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-button-element/button-type.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-input-element/checkbox-click-events.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-input-element/radio-input-cancel.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-label-element/proxy-click-to-associated-element.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-option-element/option-element-constructor.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-option-element/option-index.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-select-element/select-multiple.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-select-element/select-selectedOptions.html create mode 100644 testing/web-platform/tests/html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html create mode 100644 testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentScript-null.html create mode 100644 testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentscript.js create mode 100644 testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/import-subgraph-404.html create mode 100644 testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py create mode 100644 testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/script-for-event.html create mode 100644 testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js create mode 100644 testing/web-platform/tests/interfaces/fullscreen.idl create mode 100644 testing/web-platform/tests/interfaces/remoteplayback.idl delete mode 100644 testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm delete mode 100644 testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm create mode 100644 testing/web-platform/tests/payment-request/payment-request-constructor.https.html create mode 100644 testing/web-platform/tests/payment-request/payment-request-show-method.https.html create mode 100644 testing/web-platform/tests/performance-timeline/po-observe.html create mode 100644 testing/web-platform/tests/pointerlock/pointerlock_remove_target_on_mouseup-manual.html create mode 100644 testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclose-manual.https.html delete mode 100644 testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html create mode 100644 testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnect-manual.https.html delete mode 100644 testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnected-manual.html create mode 100644 testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminate-manual.https.html delete mode 100644 testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html create mode 100644 testing/web-platform/tests/remote-playback/idlharness.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/fetch-request-html-imports.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/fetch-response-taint.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/import-scripts-resource-map.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/import-scripts-updated-flag.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/iso-latin1-header.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/navigation-redirect-body.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/navigation-redirect-to-http.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/opaque-response-preloaded.https.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.css create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-iframe.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-taint-iframe.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-echo.py create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-resource-map-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-version.py create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-iframe.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body.py create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-to-http-iframe.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-to-http-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-iframe.html create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/postmessage-transferables-worker.js create mode 100644 testing/web-platform/tests/service-workers/service-worker/resources/register-iframe.html create mode 100644 testing/web-platform/tests/tools/browserutils/__init__.py create mode 100644 testing/web-platform/tests/tools/browserutils/browser.py create mode 100644 testing/web-platform/tests/tools/browserutils/utils.py create mode 100644 testing/web-platform/tests/tools/browserutils/virtualenv.py create mode 100644 testing/web-platform/tests/tools/wptrun.py rename testing/web-platform/tests/url/{interfaces.html => interfaces.any.js} (52%) create mode 100644 testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html create mode 100644 testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html create mode 100644 testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html create mode 100644 testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html create mode 100644 testing/web-platform/tests/wai-aria/scripts/ATTAcomm.js create mode 100644 testing/web-platform/tests/wai-aria/scripts/manual.css create mode 100644 testing/web-platform/tests/wai-aria/tools/convert_wiki.pl create mode 100644 testing/web-platform/tests/wai-aria/tools/make_tests.pl create mode 100644 testing/web-platform/tests/webmessaging/broadcastchannel/origin.window.js create mode 100644 testing/web-platform/tests/webmessaging/broadcastchannel/resources/origin.html create mode 100644 testing/web-platform/tests/webrtc/RTCDataChannel-id.html rename testing/web-platform/tests/webusb/{idlharness.html => idlharness.https.html} (100%) create mode 100644 testing/web-platform/tests/webusb/resources/check-availability.html create mode 100644 testing/web-platform/tests/webusb/resources/featurepolicytest.js create mode 100644 testing/web-platform/tests/webusb/usb-allowed-by-feature-policy-attribute.https.sub.html create mode 100644 testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html create mode 100644 testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html.headers create mode 100644 testing/web-platform/tests/webusb/usb-default-feature-policy.https.sub.html create mode 100644 testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html create mode 100644 testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html.headers create mode 100644 testing/web-platform/tests/workers/name-property.html create mode 100644 testing/web-platform/tests/workers/shared-worker-name-via-options.html create mode 100644 testing/web-platform/tests/workers/support/name.js create mode 100644 testing/web-platform/tests/workers/support/shared-name.js create mode 100755 testing/web-platform/tests/wptrun diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index 561857336cfb..28aeb6592544 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -241,33 +241,33 @@ {} ] ], - "battery-status/battery-charging-manual.html": [ + "battery-status/battery-charging-manual.https.html": [ [ - "/battery-status/battery-charging-manual.html", + "/battery-status/battery-charging-manual.https.html", {} ] ], - "battery-status/battery-discharging-manual.html": [ + "battery-status/battery-discharging-manual.https.html": [ [ - "/battery-status/battery-discharging-manual.html", + "/battery-status/battery-discharging-manual.https.html", {} ] ], - "battery-status/battery-full-manual.html": [ + "battery-status/battery-full-manual.https.html": [ [ - "/battery-status/battery-full-manual.html", + "/battery-status/battery-full-manual.https.html", {} ] ], - "battery-status/battery-plugging-in-manual.html": [ + "battery-status/battery-plugging-in-manual.https.html": [ [ - "/battery-status/battery-plugging-in-manual.html", + "/battery-status/battery-plugging-in-manual.https.html", {} ] ], - "battery-status/battery-unplugging-manual.html": [ + "battery-status/battery-unplugging-manual.https.html": [ [ - "/battery-status/battery-unplugging-manual.html", + "/battery-status/battery-unplugging-manual.https.html", {} ] ], @@ -2005,6 +2005,12 @@ {} ] ], + "html/editing/dnd/events/relatedTarget-attribute-manual.html": [ + [ + "/html/editing/dnd/events/relatedTarget-attribute-manual.html", + {} + ] + ], "html/editing/dnd/synthetic/005-manual.html": [ [ "/html/editing/dnd/synthetic/005-manual.html", @@ -2941,12 +2947,6 @@ {} ] ], - "old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm": [ - [ - "/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm", - {} - ] - ], "old-tests/submission/Microsoft/sandbox/sandbox_010-manual.htm": [ [ "/old-tests/submission/Microsoft/sandbox/sandbox_010-manual.htm", @@ -3529,6 +3529,12 @@ {} ] ], + "pointerlock/pointerlock_remove_target_on_mouseup-manual.html": [ + [ + "/pointerlock/pointerlock_remove_target_on_mouseup-manual.html", + {} + ] + ], "pointerlock/pointerlock_shadow-manual.html": [ [ "/pointerlock/pointerlock_shadow-manual.html", @@ -3541,15 +3547,15 @@ {} ] ], - "presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html": [ + "presentation-api/controlling-ua/PresentationConnection_onclose-manual.https.html": [ [ - "/presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html", + "/presentation-api/controlling-ua/PresentationConnection_onclose-manual.https.html", {} ] ], - "presentation-api/controlling-ua/PresentationConnection_onconnected-manual.html": [ + "presentation-api/controlling-ua/PresentationConnection_onconnect-manual.https.html": [ [ - "/presentation-api/controlling-ua/PresentationConnection_onconnected-manual.html", + "/presentation-api/controlling-ua/PresentationConnection_onconnect-manual.https.html", {} ] ], @@ -3559,9 +3565,9 @@ {} ] ], - "presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html": [ + "presentation-api/controlling-ua/PresentationConnection_onterminate-manual.https.html": [ [ - "/presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html", + "/presentation-api/controlling-ua/PresentationConnection_onterminate-manual.https.html", {} ] ], @@ -7225,6 +7231,12 @@ {} ] ], + "wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html": [ + [ + "/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html", + {} + ] + ], "wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html": [ [ "/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html", @@ -7243,6 +7255,12 @@ {} ] ], + "wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html": [ + [ + "/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html", + {} + ] + ], "wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html": [ [ "/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html", @@ -7291,6 +7309,12 @@ {} ] ], + "wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html": [ + [ + "/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html", + {} + ] + ], "wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html": [ [ "/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html", @@ -7309,6 +7333,12 @@ {} ] ], + "wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html": [ + [ + "/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html", + {} + ] + ], "wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html": [ [ "/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html", @@ -15623,6 +15653,11 @@ {} ] ], + "./wptrun": [ + [ + {} + ] + ], "2dcontext/2x2.png": [ [ {} @@ -16838,11 +16873,6 @@ {} ] ], - "DOM-parsing/todo/internalSubset.html": [ - [ - {} - ] - ], "FileAPI/BlobURL/support/file_test1.js": [ [ {} @@ -17113,6 +17143,11 @@ {} ] ], + "WebIDL/OWNERS": [ + [ + {} + ] + ], "WebIDL/ecmascript-binding/es-exceptions/constructor-object.js": [ [ {} @@ -17743,6 +17778,11 @@ {} ] ], + "XMLHttpRequest/resources/base.xml": [ + [ + {} + ] + ], "XMLHttpRequest/resources/chunked.py": [ [ {} @@ -20563,11 +20603,6 @@ {} ] ], - "battery-status/support-iframe-initial.html": [ - [ - {} - ] - ], "battery-status/support-iframe.html": [ [ {} @@ -42788,6 +42823,16 @@ {} ] ], + "content-security-policy/_unapproved/script-nonces-hidden.html.headers": [ + [ + {} + ] + ], + "content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers": [ + [ + {} + ] + ], "content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html.headers": [ [ {} @@ -45028,6 +45073,11 @@ {} ] ], + "cssom/support/import-charset.css": [ + [ + {} + ] + ], "cssom/support/import-green.css": [ [ {} @@ -57058,6 +57108,11 @@ {} ] ], + "html/semantics/scripting-1/the-script-element/module/currentscript.js": [ + [ + {} + ] + ], "html/semantics/scripting-1/the-script-element/module/errorhandling-parseerror-common.js": [ [ {} @@ -57198,6 +57253,16 @@ {} ] ], + "html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py": [ + [ + {} + ] + ], + "html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js": [ + [ + {} + ] + ], "html/semantics/scripting-1/the-script-element/resources/cocoa-module.js": [ [ {} @@ -58543,11 +58608,21 @@ {} ] ], + "interfaces/fullscreen.idl": [ + [ + {} + ] + ], "interfaces/html.idl": [ [ {} ] ], + "interfaces/remoteplayback.idl": [ + [ + {} + ] + ], "interfaces/touchevents.idl": [ [ {} @@ -60243,11 +60318,6 @@ {} ] ], - "old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm": [ - [ - {} - ] - ], "old-tests/submission/Microsoft/sandbox/iframe_sandbox_010.htm": [ [ {} @@ -65038,6 +65108,36 @@ {} ] ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.css": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-request-fallback-iframe.html": [ [ {} @@ -65048,6 +65148,16 @@ {} ] ], + "service-workers/service-worker/resources/fetch-request-html-imports-iframe.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/fetch-request-html-imports-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-request-no-freshness-headers-iframe.html": [ [ {} @@ -65083,6 +65193,11 @@ {} ] ], + "service-workers/service-worker/resources/fetch-response-taint-iframe.html": [ + [ + {} + ] + ], "service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html": [ [ {} @@ -65148,6 +65263,26 @@ {} ] ], + "service-workers/service-worker/resources/import-scripts-echo.py": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/import-scripts-resource-map-worker.js": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/import-scripts-updated-flag-worker.js": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/import-scripts-version.py": [ + [ + {} + ] + ], "service-workers/service-worker/resources/indexeddb-worker.js": [ [ {} @@ -65203,6 +65338,16 @@ {} ] ], + "service-workers/service-worker/resources/iso-latin1-header-iframe.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/iso-latin1-header-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/link-header.py": [ [ {} @@ -65238,6 +65383,16 @@ {} ] ], + "service-workers/service-worker/resources/navigation-redirect-body-worker.js": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/navigation-redirect-body.py": [ + [ + {} + ] + ], "service-workers/service-worker/resources/navigation-redirect-other-origin.html": [ [ {} @@ -65258,6 +65413,16 @@ {} ] ], + "service-workers/service-worker/resources/navigation-redirect-to-http-iframe.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/navigation-redirect-to-http-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/navigation-redirect-worker.js": [ [ {} @@ -65323,6 +65488,16 @@ {} ] ], + "service-workers/service-worker/resources/opaque-response-preloaded-iframe.html": [ + [ + {} + ] + ], + "service-workers/service-worker/resources/opaque-response-preloaded-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/other.html": [ [ {} @@ -65353,6 +65528,11 @@ {} ] ], + "service-workers/service-worker/resources/postmessage-transferables-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/postmessage-worker.js": [ [ {} @@ -65373,6 +65553,11 @@ {} ] ], + "service-workers/service-worker/resources/register-iframe.html": [ + [ + {} + ] + ], "service-workers/service-worker/resources/registration-tests.js": [ [ {} @@ -66673,6 +66858,26 @@ {} ] ], + "wai-aria/scripts/ATTAcomm.js": [ + [ + {} + ] + ], + "wai-aria/scripts/manual.css": [ + [ + {} + ] + ], + "wai-aria/tools/convert_wiki.pl": [ + [ + {} + ] + ], + "wai-aria/tools/make_tests.pl": [ + [ + {} + ] + ], "web-animations/OWNERS": [ [ {} @@ -75293,6 +75498,11 @@ {} ] ], + "webmessaging/broadcastchannel/resources/origin.html": [ + [ + {} + ] + ], "webmessaging/broadcastchannel/resources/sandboxed.html": [ [ {} @@ -75608,6 +75818,26 @@ {} ] ], + "webusb/resources/check-availability.html": [ + [ + {} + ] + ], + "webusb/resources/featurepolicytest.js": [ + [ + {} + ] + ], + "webusb/usb-allowed-by-feature-policy.https.sub.html.headers": [ + [ + {} + ] + ], + "webusb/usb-disabled-by-feature-policy.https.sub.html.headers": [ + [ + {} + ] + ], "webvr/OWNERS": [ [ {} @@ -78013,6 +78243,11 @@ {} ] ], + "workers/support/name.js": [ + [ + {} + ] + ], "workers/support/nosiniff-error-worker.py": [ [ {} @@ -78022,6 +78257,11 @@ [ {} ] + ], + "workers/support/shared-name.js": [ + [ + {} + ] ] }, "testharness": { @@ -83619,6 +83859,12 @@ {} ] ], + "IndexedDB/idbfactory-deleteDatabase-request-success.html": [ + [ + "/IndexedDB/idbfactory-deleteDatabase-request-success.html", + {} + ] + ], "IndexedDB/idbfactory-open-error-properties.html": [ [ "/IndexedDB/idbfactory-open-error-properties.html", @@ -83631,6 +83877,18 @@ {} ] ], + "IndexedDB/idbfactory-open-request-error.html": [ + [ + "/IndexedDB/idbfactory-open-request-error.html", + {} + ] + ], + "IndexedDB/idbfactory-open-request-success.html": [ + [ + "/IndexedDB/idbfactory-open-request-success.html", + {} + ] + ], "IndexedDB/idbfactory_cmp.htm": [ [ "/IndexedDB/idbfactory_cmp.htm", @@ -85639,6 +85897,18 @@ {} ] ], + "WebIDL/ecmascript-binding/put-forwards.html": [ + [ + "/WebIDL/ecmascript-binding/put-forwards.html", + {} + ] + ], + "WebIDL/ecmascript-binding/sequence-conversion.html": [ + [ + "/WebIDL/ecmascript-binding/sequence-conversion.html", + {} + ] + ], "XMLHttpRequest/FormData-append.html": [ [ "/XMLHttpRequest/FormData-append.html", @@ -87053,27 +87323,33 @@ {} ] ], - "battery-status/battery-interface-idlharness.html": [ + "battery-status/battery-iframe.https.html": [ [ - "/battery-status/battery-interface-idlharness.html", + "/battery-status/battery-iframe.https.html", {} ] ], - "battery-status/battery-promise-iframe.html": [ + "battery-status/battery-insecure-context.html": [ [ - "/battery-status/battery-promise-iframe.html", + "/battery-status/battery-insecure-context.html", {} ] ], - "battery-status/battery-promise-window.html": [ + "battery-status/battery-interface-idlharness.https.html": [ [ - "/battery-status/battery-promise-window.html", + "/battery-status/battery-interface-idlharness.https.html", {} ] ], - "battery-status/battery-promise.html": [ + "battery-status/battery-promise-window.https.html": [ [ - "/battery-status/battery-promise.html", + "/battery-status/battery-promise-window.https.html", + {} + ] + ], + "battery-status/battery-promise.https.html": [ + [ + "/battery-status/battery-promise.https.html", {} ] ], @@ -87189,6 +87465,30 @@ {} ] ], + "content-security-policy/_unapproved/script-nonces-hidden-meta.html": [ + [ + "/content-security-policy/_unapproved/script-nonces-hidden-meta.html", + {} + ] + ], + "content-security-policy/_unapproved/script-nonces-hidden.html": [ + [ + "/content-security-policy/_unapproved/script-nonces-hidden.html", + {} + ] + ], + "content-security-policy/_unapproved/svgscript-nonces-hidden-meta.html": [ + [ + "/content-security-policy/_unapproved/svgscript-nonces-hidden-meta.html", + {} + ] + ], + "content-security-policy/_unapproved/svgscript-nonces-hidden.html": [ + [ + "/content-security-policy/_unapproved/svgscript-nonces-hidden.html", + {} + ] + ], "content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html": [ [ "/content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html", @@ -88461,9 +88761,15 @@ {} ] ], - "content-security-policy/navigation/to-javascript-url.html": [ + "content-security-policy/navigation/to-javascript-url-frame-src.html": [ [ - "/content-security-policy/navigation/to-javascript-url.html", + "/content-security-policy/navigation/to-javascript-url-frame-src.html", + {} + ] + ], + "content-security-policy/navigation/to-javascript-url-script-src.html": [ + [ + "/content-security-policy/navigation/to-javascript-url-script-src.html", {} ] ], @@ -89771,6 +90077,30 @@ {} ] ], + "cssom/insertRule-charset-no-index.html": [ + [ + "/cssom/insertRule-charset-no-index.html", + {} + ] + ], + "cssom/insertRule-import-no-index.html": [ + [ + "/cssom/insertRule-import-no-index.html", + {} + ] + ], + "cssom/insertRule-namespace-no-index.html": [ + [ + "/cssom/insertRule-namespace-no-index.html", + {} + ] + ], + "cssom/insertRule-no-index.html": [ + [ + "/cssom/insertRule-no-index.html", + {} + ] + ], "cssom/interfaces.html": [ [ "/cssom/interfaces.html", @@ -91959,6 +92289,12 @@ {} ] ], + "domparsing/DOMParser-parseFromString-xml-internal-subset.html": [ + [ + "/domparsing/DOMParser-parseFromString-xml-internal-subset.html", + {} + ] + ], "domparsing/DOMParser-parseFromString-xml.html": [ [ "/domparsing/DOMParser-parseFromString-xml.html", @@ -94473,6 +94809,12 @@ {} ] ], + "fullscreen/api/element-request-fullscreen-active-document.html": [ + [ + "/fullscreen/api/element-request-fullscreen-active-document.html", + {} + ] + ], "fullscreen/api/element-request-fullscreen-not-allowed.html": [ [ "/fullscreen/api/element-request-fullscreen-not-allowed.html", @@ -94485,6 +94827,12 @@ {} ] ], + "fullscreen/interfaces.html": [ + [ + "/fullscreen/interfaces.html", + {} + ] + ], "gamepad/idlharness.html": [ [ "/gamepad/idlharness.html", @@ -96025,6 +96373,12 @@ {} ] ], + "html/browsers/the-window-object/historical.window.js": [ + [ + "/html/browsers/the-window-object/historical.window.html", + {} + ] + ], "html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html": [ [ "/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html", @@ -96529,6 +96883,18 @@ {} ] ], + "html/dom/documents/dom-tree-accessors/nameditem-07.html": [ + [ + "/html/dom/documents/dom-tree-accessors/nameditem-07.html", + {} + ] + ], + "html/dom/documents/dom-tree-accessors/nameditem-08.html": [ + [ + "/html/dom/documents/dom-tree-accessors/nameditem-08.html", + {} + ] + ], "html/dom/documents/resource-metadata-management/document-compatmode-01.html": [ [ "/html/dom/documents/resource-metadata-management/document-compatmode-01.html", @@ -97483,6 +97849,12 @@ {} ] ], + "html/editing/dnd/datastore/datatransfer-types.html": [ + [ + "/html/editing/dnd/datastore/datatransfer-types.html", + {} + ] + ], "html/editing/dnd/dom/draggable.html": [ [ "/html/editing/dnd/dom/draggable.html", @@ -100527,6 +100899,12 @@ {} ] ], + "html/semantics/forms/resetting-a-form/reset-form-2.html": [ + [ + "/html/semantics/forms/resetting-a-form/reset-form-2.html", + {} + ] + ], "html/semantics/forms/resetting-a-form/reset-form-event-realm.html": [ [ "/html/semantics/forms/resetting-a-form/reset-form-event-realm.html", @@ -100603,6 +100981,12 @@ {} ] ], + "html/semantics/forms/the-button-element/button-click-submits.html": [ + [ + "/html/semantics/forms/the-button-element/button-click-submits.html", + {} + ] + ], "html/semantics/forms/the-button-element/button-events.html": [ [ "/html/semantics/forms/the-button-element/button-events.html", @@ -100615,6 +100999,12 @@ {} ] ], + "html/semantics/forms/the-button-element/button-type.html": [ + [ + "/html/semantics/forms/the-button-element/button-type.html", + {} + ] + ], "html/semantics/forms/the-button-element/button-validation.html": [ [ "/html/semantics/forms/the-button-element/button-validation.html", @@ -100705,6 +101095,12 @@ {} ] ], + "html/semantics/forms/the-input-element/checkbox-click-events.html": [ + [ + "/html/semantics/forms/the-input-element/checkbox-click-events.html", + {} + ] + ], "html/semantics/forms/the-input-element/checkbox.html": [ [ "/html/semantics/forms/the-input-element/checkbox.html", @@ -100825,6 +101221,12 @@ {} ] ], + "html/semantics/forms/the-input-element/radio-input-cancel.html": [ + [ + "/html/semantics/forms/the-input-element/radio-input-cancel.html", + {} + ] + ], "html/semantics/forms/the-input-element/radio.html": [ [ "/html/semantics/forms/the-input-element/radio.html", @@ -100927,6 +101329,12 @@ {} ] ], + "html/semantics/forms/the-label-element/proxy-click-to-associated-element.html": [ + [ + "/html/semantics/forms/the-label-element/proxy-click-to-associated-element.html", + {} + ] + ], "html/semantics/forms/the-legend-element/legend-form.html": [ [ "/html/semantics/forms/the-legend-element/legend-form.html", @@ -100939,12 +101347,24 @@ {} ] ], + "html/semantics/forms/the-option-element/option-element-constructor.html": [ + [ + "/html/semantics/forms/the-option-element/option-element-constructor.html", + {} + ] + ], "html/semantics/forms/the-option-element/option-form.html": [ [ "/html/semantics/forms/the-option-element/option-form.html", {} ] ], + "html/semantics/forms/the-option-element/option-index.html": [ + [ + "/html/semantics/forms/the-option-element/option-index.html", + {} + ] + ], "html/semantics/forms/the-option-element/option-label.html": [ [ "/html/semantics/forms/the-option-element/option-label.html", @@ -101029,6 +101449,12 @@ {} ] ], + "html/semantics/forms/the-select-element/select-multiple.html": [ + [ + "/html/semantics/forms/the-select-element/select-multiple.html", + {} + ] + ], "html/semantics/forms/the-select-element/select-named-getter.html": [ [ "/html/semantics/forms/the-select-element/select-named-getter.html", @@ -101041,6 +101467,12 @@ {} ] ], + "html/semantics/forms/the-select-element/select-selectedOptions.html": [ + [ + "/html/semantics/forms/the-select-element/select-selectedOptions.html", + {} + ] + ], "html/semantics/forms/the-select-element/select-validity.html": [ [ "/html/semantics/forms/the-select-element/select-validity.html", @@ -101071,6 +101503,12 @@ {} ] ], + "html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html": [ + [ + "/html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html", + {} + ] + ], "html/semantics/grouping-content/the-dd-element/grouping-dd.html": [ [ "/html/semantics/grouping-content/the-dd-element/grouping-dd.html", @@ -101341,6 +101779,12 @@ {} ] ], + "html/semantics/scripting-1/the-script-element/module/currentScript-null.html": [ + [ + "/html/semantics/scripting-1/the-script-element/module/currentScript-null.html", + {} + ] + ], "html/semantics/scripting-1/the-script-element/module/errorhandling.html": [ [ "/html/semantics/scripting-1/the-script-element/module/errorhandling.html", @@ -101355,6 +101799,12 @@ } ] ], + "html/semantics/scripting-1/the-script-element/module/import-subgraph-404.html": [ + [ + "/html/semantics/scripting-1/the-script-element/module/import-subgraph-404.html", + {} + ] + ], "html/semantics/scripting-1/the-script-element/module/imports.html": [ [ "/html/semantics/scripting-1/the-script-element/module/imports.html", @@ -101367,6 +101817,12 @@ {} ] ], + "html/semantics/scripting-1/the-script-element/module/script-for-event.html": [ + [ + "/html/semantics/scripting-1/the-script-element/module/script-for-event.html", + {} + ] + ], "html/semantics/scripting-1/the-script-element/nomodule-reflect.html": [ [ "/html/semantics/scripting-1/the-script-element/nomodule-reflect.html", @@ -117181,6 +117637,12 @@ {} ] ], + "payment-request/payment-request-constructor.https.html": [ + [ + "/payment-request/payment-request-constructor.https.html", + {} + ] + ], "payment-request/payment-request-id.https.html": [ [ "/payment-request/payment-request-id.https.html", @@ -117193,6 +117655,12 @@ {} ] ], + "payment-request/payment-request-show-method.https.html": [ + [ + "/payment-request/payment-request-show-method.https.html", + {} + ] + ], "performance-timeline/case-sensitivity.any.js": [ [ "/performance-timeline/case-sensitivity.any.html", @@ -117255,6 +117723,12 @@ {} ] ], + "performance-timeline/po-observe.html": [ + [ + "/performance-timeline/po-observe.html", + {} + ] + ], "performance-timeline/po-resource.html": [ [ "/performance-timeline/po-resource.html", @@ -125621,6 +126095,12 @@ {} ] ], + "remote-playback/idlharness.html": [ + [ + "/remote-playback/idlharness.html", + {} + ] + ], "remote-playback/watch-availability-initial-callback.html": [ [ "/remote-playback/watch-availability-initial-callback.html", @@ -126645,6 +127125,12 @@ {} ] ], + "service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html": [ + [ + "/service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html", + {} + ] + ], "service-workers/service-worker/fetch-request-css-images.https.html": [ [ "/service-workers/service-worker/fetch-request-css-images.https.html", @@ -126657,6 +127143,12 @@ {} ] ], + "service-workers/service-worker/fetch-request-html-imports.https.html": [ + [ + "/service-workers/service-worker/fetch-request-html-imports.https.html", + {} + ] + ], "service-workers/service-worker/fetch-request-no-freshness-headers.https.html": [ [ "/service-workers/service-worker/fetch-request-no-freshness-headers.https.html", @@ -126683,6 +127175,14 @@ {} ] ], + "service-workers/service-worker/fetch-response-taint.https.html": [ + [ + "/service-workers/service-worker/fetch-response-taint.https.html", + { + "timeout": "long" + } + ] + ], "service-workers/service-worker/fetch-response-xhr.https.html": [ [ "/service-workers/service-worker/fetch-response-xhr.https.html", @@ -126733,6 +127233,18 @@ {} ] ], + "service-workers/service-worker/import-scripts-resource-map.https.html": [ + [ + "/service-workers/service-worker/import-scripts-resource-map.https.html", + {} + ] + ], + "service-workers/service-worker/import-scripts-updated-flag.https.html": [ + [ + "/service-workers/service-worker/import-scripts-updated-flag.https.html", + {} + ] + ], "service-workers/service-worker/indexeddb.https.html": [ [ "/service-workers/service-worker/indexeddb.https.html", @@ -126769,6 +127281,12 @@ {} ] ], + "service-workers/service-worker/iso-latin1-header.https.html": [ + [ + "/service-workers/service-worker/iso-latin1-header.https.html", + {} + ] + ], "service-workers/service-worker/multi-globals/url-parsing.https.html": [ [ "/service-workers/service-worker/multi-globals/url-parsing.https.html", @@ -126835,6 +127353,18 @@ {} ] ], + "service-workers/service-worker/navigation-redirect-body.https.html": [ + [ + "/service-workers/service-worker/navigation-redirect-body.https.html", + {} + ] + ], + "service-workers/service-worker/navigation-redirect-to-http.https.html": [ + [ + "/service-workers/service-worker/navigation-redirect-to-http.https.html", + {} + ] + ], "service-workers/service-worker/navigation-redirect.https.html": [ [ "/service-workers/service-worker/navigation-redirect.https.html", @@ -126853,6 +127383,12 @@ {} ] ], + "service-workers/service-worker/opaque-response-preloaded.https.html": [ + [ + "/service-workers/service-worker/opaque-response-preloaded.https.html", + {} + ] + ], "service-workers/service-worker/performance-timeline.https.html": [ [ "/service-workers/service-worker/performance-timeline.https.html", @@ -128841,9 +129377,13 @@ {} ] ], - "url/interfaces.html": [ + "url/interfaces.any.js": [ [ - "/url/interfaces.html", + "/url/interfaces.any.html", + {} + ], + [ + "/url/interfaces.any.worker.html", {} ] ], @@ -133885,6 +134425,12 @@ {} ] ], + "webmessaging/broadcastchannel/origin.window.js": [ + [ + "/webmessaging/broadcastchannel/origin.window.html", + {} + ] + ], "webmessaging/broadcastchannel/sandbox.html": [ [ "/webmessaging/broadcastchannel/sandbox.html", @@ -134371,6 +134917,12 @@ {} ] ], + "webrtc/RTCDataChannel-id.html": [ + [ + "/webrtc/RTCDataChannel-id.html", + {} + ] + ], "webrtc/RTCDataChannelEvent-constructor.html": [ [ "/webrtc/RTCDataChannelEvent-constructor.html", @@ -136447,9 +136999,33 @@ {} ] ], - "webusb/idlharness.html": [ + "webusb/idlharness.https.html": [ [ - "/webusb/idlharness.html", + "/webusb/idlharness.https.html", + {} + ] + ], + "webusb/usb-allowed-by-feature-policy-attribute.https.sub.html": [ + [ + "/webusb/usb-allowed-by-feature-policy-attribute.https.sub.html", + {} + ] + ], + "webusb/usb-allowed-by-feature-policy.https.sub.html": [ + [ + "/webusb/usb-allowed-by-feature-policy.https.sub.html", + {} + ] + ], + "webusb/usb-default-feature-policy.https.sub.html": [ + [ + "/webusb/usb-default-feature-policy.https.sub.html", + {} + ] + ], + "webusb/usb-disabled-by-feature-policy.https.sub.html": [ + [ + "/webusb/usb-disabled-by-feature-policy.https.sub.html", {} ] ], @@ -137641,6 +138217,12 @@ {} ] ], + "workers/name-property.html": [ + [ + "/workers/name-property.html", + {} + ] + ], "workers/nested_worker.worker.js": [ [ "/workers/nested_worker.worker.html", @@ -137892,6 +138474,12 @@ "/workers/semantics/xhr/006.html", {} ] + ], + "workers/shared-worker-name-via-options.html": [ + [ + "/workers/shared-worker-name-via-options.html", + {} + ] ] }, "wdspec": { @@ -137953,7 +138541,7 @@ "support" ], "./.gitignore": [ - "a74e35d1ce44dcca7ecb513a8cbd6194fe0f2c58", + "db3d1dc9d2e7ff65681a28e4dfcaeaaa8290afac", "support" ], "./.gitmodules": [ @@ -137961,7 +138549,7 @@ "support" ], "./.travis.yml": [ - "d2475341537cf8a63ecb2bc8625dd757647bcc9c", + "130d5c86ee06fc2bff6779ec8db90a86db7f0547", "support" ], "./CONTRIBUTING.md": [ @@ -137977,7 +138565,7 @@ "support" ], "./README.md": [ - "a00890035c46ef53ab51d51107fde1891265379e", + "5d58a1d67b7114679e1ad8855eff3c5ee835cc49", "support" ], "./check_stability.ini": [ @@ -137985,7 +138573,7 @@ "support" ], "./check_stability.py": [ - "90a4a7be64ad08f52a3c7a7885cdbef6e11a212e", + "04e811b4bccb5916cf17414befefe5f2d565a677", "support" ], "./ci_built_diff.sh": [ @@ -138013,7 +138601,7 @@ "support" ], "./lint.whitelist": [ - "eb36ee69795a6893e3f96a1d26470ea73213eca0", + "d21395dd14fcc2993cf1723fade699caabd1b6f7", "support" ], "./manifest": [ @@ -138036,6 +138624,10 @@ "75ea35a5ce9d8e3e32e8d0c336dc12e04691d16a", "support" ], + "./wptrun": [ + "4724d324622552fc65695beb91542ecc17683f63", + "support" + ], "2dcontext/2x2.png": [ "c67d3f646e86413722833d2308a9bfc793a916bf", "support" @@ -142308,10 +142900,6 @@ "73f0071c06f429c3d47eac8d0863e11f1d6e8c25", "support" ], - "DOM-parsing/todo/internalSubset.html": [ - "68aaadc2e18de8c3dc2cc0fdc463847c85dbd219", - "support" - ], "FileAPI/BlobURL/support/file_test1.js": [ "f917ccbca3184f5e1aa0646fdc4fe1c74261b6bc", "support" @@ -143048,6 +143636,10 @@ "faebbda16f92e9d993086578e12fd5ccdb794749", "testharness" ], + "IndexedDB/idbfactory-deleteDatabase-request-success.html": [ + "70f44f137b7f3e1d89d964e4943bed97cc4a1416", + "testharness" + ], "IndexedDB/idbfactory-open-error-properties.html": [ "bf539f5a577759908e5cc3ff1ab1c115dbed9df0", "testharness" @@ -143056,6 +143648,14 @@ "f29edb81b7c6cf534d48e1485f219d51c047c02e", "testharness" ], + "IndexedDB/idbfactory-open-request-error.html": [ + "8c2075f5879e3ff0ff82e6edfc7b4a98c64a8e33", + "testharness" + ], + "IndexedDB/idbfactory-open-request-success.html": [ + "57b0bed7aebc166a76ad4be016aacddcd643b60a", + "testharness" + ], "IndexedDB/idbfactory_cmp.htm": [ "6a00456a5f0011cf389d2f327f370b21829713cd", "testharness" @@ -143813,7 +144413,7 @@ "support" ], "IndexedDB/support.js": [ - "c5634bec710dfbf13898df3100b5982b9d642111", + "1a2e89e3be7ba2af3352d5d284666465a5663fb5", "support" ], "IndexedDB/transaction-abort-generator-revert.html": [ @@ -144392,6 +144992,10 @@ "901c6df896c5f9bccd2e680fbd6fc56afce8d364", "testharness" ], + "WebIDL/OWNERS": [ + "f9c94ab08fa997459cba17e61d8cd00ee8b07b46", + "support" + ], "WebIDL/current-realm.html": [ "167c7c1f53ae2bf457f6b3f917f0ef988c585c7c", "testharness" @@ -144436,6 +145040,14 @@ "4eac8c853a0627577d2bd96ed76c45bd187a5734", "testharness" ], + "WebIDL/ecmascript-binding/put-forwards.html": [ + "95fcfc28dae32ab9aadf21d2512a519d6a9fd5ab", + "testharness" + ], + "WebIDL/ecmascript-binding/sequence-conversion.html": [ + "8038a4e188651f4ccd24a3c3bcd3af773c55bc97", + "testharness" + ], "WebIDL/invalid/idl/enum.widl": [ "cebcfcecfe4b09a4d3ea15e766e9b13044dfe0b8", "support" @@ -145332,6 +145944,10 @@ "e7d0a9054c562964b23c4e4bbf1d1207a1811b55", "support" ], + "XMLHttpRequest/resources/base.xml": [ + "4f52cca8f5bee9b2a4ded6b898d4eb9cdbae6c75", + "support" + ], "XMLHttpRequest/resources/chunked.py": [ "be48633bdec117d50bce7a8e4323667881c8e367", "support" @@ -145589,7 +146205,7 @@ "testharness" ], "XMLHttpRequest/responsexml-document-properties.htm": [ - "cd2daff503f42f1cb3e43b6d8fe04bea1b8ee59c", + "9c3698d77cb49266cfcc33e89a74d7930b5b06cb", "testharness" ], "XMLHttpRequest/responsexml-get-twice.htm": [ @@ -148204,46 +148820,46 @@ "c08081d13e4029cf4fffb48c15d323d8b15a581b", "support" ], - "battery-status/battery-charging-manual.html": [ - "8ebb3c62fc6b678f5b0583cf0c699ff732ce5aa4", + "battery-status/battery-charging-manual.https.html": [ + "9b4367fa0a6920b5c9bd0b310935f79260ec1214", "manual" ], - "battery-status/battery-discharging-manual.html": [ - "9704395bc6026b24d8ae4e5bfdb6edd04ef79b6b", + "battery-status/battery-discharging-manual.https.html": [ + "748f32b343f07e8abc4fb7a0764bca9e4b92e274", "manual" ], - "battery-status/battery-full-manual.html": [ - "7f3860749feb26bb9cb87286cb6f66b62aa64737", + "battery-status/battery-full-manual.https.html": [ + "0fb90d807a27ce9e78dab040926effc1be7f71be", "manual" ], - "battery-status/battery-interface-idlharness.html": [ - "c8f459ca2f9bd88d46484d8471dd3427c0e46394", + "battery-status/battery-iframe.https.html": [ + "b4df9429c1ff9ace253fb40296b20c06f8eb5eb3", "testharness" ], - "battery-status/battery-plugging-in-manual.html": [ - "6dd6b6e88db39056da714690941a704bea29100f", + "battery-status/battery-insecure-context.html": [ + "39639373d161846186cbcb7eb33466493bcc77ad", + "testharness" + ], + "battery-status/battery-interface-idlharness.https.html": [ + "7f1578703d6f2a7d417b4d6569febb9f9836ea0e", + "testharness" + ], + "battery-status/battery-plugging-in-manual.https.html": [ + "1d7e354f498cf967bdf5dad3b2f696d7606dd3f6", "manual" ], - "battery-status/battery-promise-iframe.html": [ - "43fc622c8b5eec5c9e78a0b640a73e2a16ad3dc2", + "battery-status/battery-promise-window.https.html": [ + "47ee9801dd697228defd4e3be6a79ed6fe9af602", "testharness" ], - "battery-status/battery-promise-window.html": [ - "4407bd4501d8a32849bb8725ef24bf78e06e9c53", + "battery-status/battery-promise.https.html": [ + "41551743c53e17a1bb7d0d3399227547e3901b47", "testharness" ], - "battery-status/battery-promise.html": [ - "197e72bf5cbad7e3b4bacd63c57db3dbabb525e0", - "testharness" - ], - "battery-status/battery-unplugging-manual.html": [ - "a9293caf021d95d94cc7a5d3828b9221dd9dbfd1", + "battery-status/battery-unplugging-manual.https.html": [ + "af15c949703b096e373a07715c40a2575f30f8ba", "manual" ], - "battery-status/support-iframe-initial.html": [ - "3c203529afca2f6b2a075eb8a42bf2206e4f16af", - "support" - ], "battery-status/support-iframe.html": [ "3c203529afca2f6b2a075eb8a42bf2206e4f16af", "support" @@ -165661,7 +166277,7 @@ "support" ], "conformance-checkers/messages.json": [ - "2000edc6505270feb387e96746bced7ee7701812", + "9927700481dca2b24186af14860bdb65c15ab603", "support" ], "conformance-checkers/tools/build-svg-tests.py": [ @@ -166124,6 +166740,30 @@ "9834273e9d9f9bf5ca645497955dc5375091938f", "support" ], + "content-security-policy/_unapproved/script-nonces-hidden-meta.html": [ + "c82edc2252dd39bbb1d6bfff6474ab0cea1032be", + "testharness" + ], + "content-security-policy/_unapproved/script-nonces-hidden.html": [ + "acafd8445dde274a4152e734c85a46332a593ada", + "testharness" + ], + "content-security-policy/_unapproved/script-nonces-hidden.html.headers": [ + "28c376fd32a880f58de3f67fd3b19288c38d63f3", + "support" + ], + "content-security-policy/_unapproved/svgscript-nonces-hidden-meta.html": [ + "6cde04127c9afa80451a4428eff29a998b3bab6c", + "testharness" + ], + "content-security-policy/_unapproved/svgscript-nonces-hidden.html": [ + "7fe44f15a085434883eaae48583a4e72e06ace07", + "testharness" + ], + "content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers": [ + "28c376fd32a880f58de3f67fd3b19288c38d63f3", + "support" + ], "content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html": [ "0235470345c1f336bb6ace4cb747ffc1a334a5f6", "testharness" @@ -167904,7 +168544,11 @@ "2553698b40d91f95f33bb14e7bd906d665b0381a", "testharness" ], - "content-security-policy/navigation/to-javascript-url.html": [ + "content-security-policy/navigation/to-javascript-url-frame-src.html": [ + "3070ea56bcb7dc454d7bc252377f0dc5bcb03c7c", + "testharness" + ], + "content-security-policy/navigation/to-javascript-url-script-src.html": [ "26e0c14927bab1b2fd6ce44b59472f336a700aa4", "testharness" ], @@ -168637,7 +169281,7 @@ "testharness" ], "cors/preflight-failure.htm": [ - "73662dfcfabf5301b326e3c08d940825f032b644", + "223df28f39565f7e31a901482f237d269b7d012c", "testharness" ], "cors/redirect-origin.htm": [ @@ -168725,7 +169369,7 @@ "support" ], "credential-management/idl.https.html": [ - "c9664273f5786aae604f86c136197e0ee5270a71", + "b5233d47417e91b3d9d72f2bd8e1f6cb099c01ec", "testharness" ], "css-font-loading/fontfacesetloadevent-constructor.html": [ @@ -169693,7 +170337,7 @@ "testharness" ], "cssom-view/cssom-view-window-screen-interface.html": [ - "8fb3e3327f8f657e2215c91c75f49fd739c15c57", + "ed3dc5f811d0e0920689b051da26c6b3c34b9a54", "testharness" ], "cssom-view/cssom-view/media-query-list-interface.xht": [ @@ -169753,7 +170397,7 @@ "testharness" ], "cssom-view/offsetParent_element_test.html": [ - "6e7579de7add0162ac99f3326f070bbd6051932b", + "b2261ec702116c211ab5ac6fbb53698dfe60a7be", "testharness" ], "cssom-view/scrollWidthHeight.xht": [ @@ -170092,6 +170736,22 @@ "377c8610bc597d47a93f70a9cf95b3c7657d8319", "testharness" ], + "cssom/insertRule-charset-no-index.html": [ + "cd3a96351a4c8dcd417fb03963f9d4fb0760c746", + "testharness" + ], + "cssom/insertRule-import-no-index.html": [ + "ba89bad41a8d243f89ec91a0c02a34e97b378bc8", + "testharness" + ], + "cssom/insertRule-namespace-no-index.html": [ + "109ed203fabac2da4279419deb34d5bc5a393d09", + "testharness" + ], + "cssom/insertRule-no-index.html": [ + "812f2b02d7694dd270b7a3e1ef205b99890ab216", + "testharness" + ], "cssom/interfaces.html": [ "5876c88acd95d18166fdd049bdb3f09cdde4eb3f", "testharness" @@ -170212,6 +170872,10 @@ "461fd17b274662b88500cdf42bab7f3b79e6019d", "support" ], + "cssom/support/import-charset.css": [ + "c6a36f4dc3198897a189d638de272733f99e5157", + "support" + ], "cssom/support/import-green.css": [ "db4f420efdb292d6520be1a3bf052ed3f6f9e7e3", "support" @@ -170649,7 +171313,7 @@ "support" ], "docs/_writing-tests/css-metadata.md": [ - "64bee512bd4382925d6b87ab60e3756110fe30f2", + "a7606cd41a6211a9e24850ae4c35a0621961230e", "support" ], "docs/_writing-tests/css-user-styles.md": [ @@ -172312,6 +172976,10 @@ "5126931d2b4f9b3372e8fd84f24821bebea39522", "testharness" ], + "domparsing/DOMParser-parseFromString-xml-internal-subset.html": [ + "60cfe168e07bec35251daa4cc167ed81fedb3667", + "testharness" + ], "domparsing/DOMParser-parseFromString-xml.html": [ "bef45b2ff4f474982a84d80d3e37ccae0d459f4b", "testharness" @@ -172421,159 +173089,159 @@ "support" ], "dpub-aam/doc-abstract-manual.html": [ - "fe8331812ca78bf742f1563c9cf7064da331ccf0", + "db010032cbeebdde1c59d301d02dc1079ac8bef8", "manual" ], "dpub-aam/doc-acknowledgments-manual.html": [ - "e68c8ea6a948c3f205d497ee8c6841d94828d9f8", + "a2275ae536cd37f9014e32db720f3c9de3e31731", "manual" ], "dpub-aam/doc-afterword-manual.html": [ - "ed57486061061270041d5e65ca37ef1e39fe85e2", + "1b5984592c07f925b7e5e50a975415871d0fbef5", "manual" ], "dpub-aam/doc-appendix-manual.html": [ - "f2e9a80d2f2cd6c9824e963ab228ad3a30f00f46", + "a95c68b3db24bba85efad275c2d88fc84ab513b1", "manual" ], "dpub-aam/doc-backlink-manual.html": [ - "72ebb0d9564345dba613c3289492311dceebf0b7", + "e311587406c5b88e592bfd4a1bd8b6c0562dc38f", "manual" ], "dpub-aam/doc-biblioentry-manual.html": [ - "b555d4e67a81e405230ebee7f029fb7fed35b144", + "cede32da267cdb9da0ef0a3a94b38bebd88db4cc", "manual" ], "dpub-aam/doc-bibliography-manual.html": [ - "8b308c46bc7eb6acd380db88275c0a3247d2f5c2", + "dc2845dca57c7dcb3d8afe5b864e5221ce13e3b1", "manual" ], "dpub-aam/doc-biblioref-manual.html": [ - "ba578575a6f7eb5df31c797d562a19fd605b217d", + "b8462b8f347678042dd35cea11269d2e4d4c5db3", "manual" ], "dpub-aam/doc-chapter-manual.html": [ - "67bddab5b1f3941762d6cabc88276a059de8cf1e", + "ec1bb79d43c515815fe51c435c942daf971aff4f", "manual" ], "dpub-aam/doc-colophon-manual.html": [ - "ec67cf4526e2fe95458456d2f333ca2f96786da6", + "f6e5f99ca284a1edb1ee3954897384fe35025103", "manual" ], "dpub-aam/doc-conclusion-manual.html": [ - "7ca5220cf1d18aa933ccfb450c46b3a87d13a408", + "1335bbf52562adfc9439961d31b7edf0f50ef024", "manual" ], "dpub-aam/doc-cover-manual.html": [ - "30b3b74ec46b54d2a0f737b50615eccbdb3b0f77", + "8f643cef033607187f2ade6328e8eb48989fb4fb", "manual" ], "dpub-aam/doc-credit-manual.html": [ - "fe3df9e65f66333d0c30931cfdca4ca21db9d61d", + "89c08d3ba2f7a199e91a32b4be8b079f8c01c96f", "manual" ], "dpub-aam/doc-credits-manual.html": [ - "6f745becf88d11ae3789095e64e82f94c0e4c8d6", + "73f018976929746530ded8ecf98d53af0b59ae5b", "manual" ], "dpub-aam/doc-dedication-manual.html": [ - "2ef98622fcbc67ec5cc21203a34a039a46da099c", + "c93d97051189aec775a1d62e2ee50a98fb6735c7", "manual" ], "dpub-aam/doc-endnote-manual.html": [ - "35661dfe5a8d5858eb9d065b8784cdcb4403ca82", + "59fbf494eae63db03455fb0e28c5c02627d3363d", "manual" ], "dpub-aam/doc-endnotes-manual.html": [ - "fbff613b4b56d10d3708f3432656fb572683519d", + "e55ed6488a0a8b6901085e175c57b83dc5ec5861", "manual" ], "dpub-aam/doc-epigraph-manual.html": [ - "3face4bf002fffcfddc54c34d3356b68fd0a1f2a", + "0680698a36ee7104e45426e8d2801cb9c95c9770", "manual" ], "dpub-aam/doc-epilogue-manual.html": [ - "30be563ad8db5f7dddf67c757b68880014613b3c", + "bf79ff7ef266ae329881fe569fc94272e24ec10e", "manual" ], "dpub-aam/doc-errata-manual.html": [ - "879af14b31d9f5c71bb2db81ffcbfa81506624a6", + "750c10409f689ad5355cddafdbcdc67ffa1d8377", "manual" ], "dpub-aam/doc-example-manual.html": [ - "f4ee8cbc92b43ed64c9c44a316835dd55af03c47", + "e23b0e0fbfe8d7943c1369d5a9801f9bf2266d21", "manual" ], "dpub-aam/doc-footnote-manual.html": [ - "9d87bc526843a679b6ae23e4968fc3536524e779", + "7ec6a5a11c609da425ba24eba2177ff9f6a9a271", "manual" ], "dpub-aam/doc-foreword-manual.html": [ - "b88e137197d29800eb4a61fb2a095afe733c9f2b", + "c568b2a39ceede888795fde325e3afbdae8d4b7e", "manual" ], "dpub-aam/doc-glossary-manual.html": [ - "e0425c1f2617e57d441cfd8e560cf843da6eec05", + "4e563f91709a81b1a3328595b0dbda4071336abf", "manual" ], "dpub-aam/doc-glossref-manual.html": [ - "3564f0d21197da092b85e67b5f074fe66e45b871", + "b4312dca5df927018ae6bc9b4f19e87614101ac9", "manual" ], "dpub-aam/doc-index-manual.html": [ - "3a8e036535af7ee05e481ebd591492816df8d579", + "dad15f86619ce8485bc08bc97cd3c260b5151b12", "manual" ], "dpub-aam/doc-introduction-manual.html": [ - "00203fb91611439b8a0a3e950034f017c74ae4fb", + "d8193c4a29c7c0179b19ea2da55f26b004f5cfc2", "manual" ], "dpub-aam/doc-noteref-manual.html": [ - "4052b204d1c9a9012870c783143daf56b35d2419", + "92dd7d70c414ed617d98e453e61cef11ca039694", "manual" ], "dpub-aam/doc-notice-manual.html": [ - "bea225fc2799e3616f291dee95644e6f265b1f18", + "cf0d12bb10f3d4300c8fd165fd210a6c3bb2ac85", "manual" ], "dpub-aam/doc-pagebreak-manual.html": [ - "532f20e099dafe407ef3a52cd28ec75d161f4b7d", + "a45144f32e79c5073b61eb9b94ac88a992026793", "manual" ], "dpub-aam/doc-pagelist-manual.html": [ - "a231e2b6c5ca4c43e7c556ee0371b2b73950aaf8", + "ab945743bff60e4dcac61efc4e5c6db57cd4ef90", "manual" ], "dpub-aam/doc-part-manual.html": [ - "20473300cc7f5e0b39e32e7ffd8d0b9f88d76f81", + "9747a5139ead45a6d5abee26528bc195be42b61a", "manual" ], "dpub-aam/doc-preface-manual.html": [ - "be32f3d679eddf85a0698a9aa4f1f3e7311af5da", + "9f1908845b75e63b7a590364cb6b9bdbc351dc00", "manual" ], "dpub-aam/doc-prologue-manual.html": [ - "5d29ba8e083b516d21e3d0a98f279c923ec44b94", + "251c03feb95ea33b9f25c07f6e0d74445ee5b82f", "manual" ], "dpub-aam/doc-pullquote-manual.html": [ - "17de6c30ef2940f54f72c547a5dc2436f8fd28e5", + "a6a15a5d7a86a2fd3e6f7235668cbd09292239a6", "manual" ], "dpub-aam/doc-qna-manual.html": [ - "036d2764e6cf7664d12df86dfbcb603f024e0074", + "4d3e659dc66aea87e44426a815a128cabcf339e7", "manual" ], "dpub-aam/doc-subtitle-manual.html": [ - "34eb597cea221ad5340b975916710f9456d71edb", + "ad507918447a7fd73b73104a279d3782457d53f3", "manual" ], "dpub-aam/doc-tip-manual.html": [ - "73bda654beb49cf9772f9e532a8458a0ced124ac", + "c54e3458ed49b3824d1236a74f8bb389fd285d83", "manual" ], "dpub-aam/doc-toc-manual.html": [ - "6db9d04c7697ae5b34c687f20b379aad5551b59c", + "0c5b3572dc1b27b7a1bf331b78b8f0f75100cd6b", "manual" ], "dpub-aria/.editorconfig": [ @@ -173685,7 +174353,7 @@ "support" ], "encrypted-media/resources/drm-retrieve-persistent-license.html": [ - "9d377b1e8873eec3567129f0ebb6aaa83a6d883a", + "44dd2ebae1e0fb9997b9c4dc9ae6bf7cd24b87c7", "support" ], "encrypted-media/resources/drm-retrieve-persistent-usage-record.html": [ @@ -173745,7 +174413,7 @@ "support" ], "encrypted-media/scripts/playback-persistent-license-events.js": [ - "4da8422663f8779b5cd676a5a99a20c8a2fc8bca", + "284440ac193d29168721569538ef93a60d80ce69", "support" ], "encrypted-media/scripts/playback-persistent-license.js": [ @@ -173761,7 +174429,7 @@ "support" ], "encrypted-media/scripts/playback-retrieve-persistent-license.js": [ - "2955061619866159f7050b6b87d6f3e9725225c3", + "bdd878f11a98e79058e2a7b0fab56f9b2006f5a8", "support" ], "encrypted-media/scripts/playback-retrieve-persistent-usage-record.js": [ @@ -174745,7 +175413,7 @@ "testharness" ], "fetch/api/request/request-consume-empty.html": [ - "04b50f51753109fbb6ea6290f927c3905527703c", + "0b7f4d7e51825b125b9ebcc56f6bcaf0b6791faf", "testharness" ], "fetch/api/request/request-consume.html": [ @@ -174877,7 +175545,7 @@ "testharness" ], "fetch/api/response/response-consume-empty.html": [ - "28a00b4256364d785f491bcde677e18424b1e423", + "a9606b70a21e24dde0da19656773fc0c60fa255f", "testharness" ], "fetch/api/response/response-consume-stream.html": [ @@ -175345,11 +176013,11 @@ "manual" ], "fullscreen/api/document-exit-fullscreen-timing-manual.html": [ - "fcac6966d40246ce9b62dd80233b9967c7d9c146", + "e152a235daa9e5721695c6f347fddd3f111180fc", "manual" ], "fullscreen/api/document-exit-fullscreen-twice-manual.html": [ - "9b6cda0c63e56720f1ab29ffca524384967d7a2f", + "c6e9696b4cfdef6a7042ccbe9beaddf8c56d8031", "manual" ], "fullscreen/api/document-fullscreen-element-manual.html": [ @@ -175396,8 +176064,12 @@ "a840821f2e75f14d43d385f79de359c37e529921", "manual" ], + "fullscreen/api/element-request-fullscreen-active-document.html": [ + "f8c6c1a63b5738a442bcf01c09535d4bb48512a7", + "testharness" + ], "fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html": [ - "b09e6ee5ac5086094bd07cc4ebe431bd91b598bc", + "307a1e92f3bdb16c5da71cf9710eb667b0bd507b", "manual" ], "fullscreen/api/element-request-fullscreen-and-move-manual.html": [ @@ -175409,7 +176081,7 @@ "manual" ], "fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html": [ - "465cb3419b1f3e7b6b385722833e20f285fa864d", + "1af39f94382522afa04ea91e148696216512cae0", "manual" ], "fullscreen/api/element-request-fullscreen-and-remove-manual.html": [ @@ -175441,7 +176113,7 @@ "manual" ], "fullscreen/api/element-request-fullscreen-timing-manual.html": [ - "e0af92a93669102ec578ac19e95e417ea17de924", + "4c4b93ed28a9c778a80f277e39b2f406900baf28", "manual" ], "fullscreen/api/element-request-fullscreen-top-manual.html": [ @@ -175449,7 +176121,7 @@ "manual" ], "fullscreen/api/element-request-fullscreen-twice-manual.html": [ - "b83f5d0212137f1b939e0f84e5ecd86dd06916b9", + "c6a85dc45d161ae2c3aaff333b54ae7572167f77", "manual" ], "fullscreen/api/element-request-fullscreen-two-elements-manual.html": [ @@ -175464,6 +176136,10 @@ "9d9bec938f185b2461da4d00a5683ad5d07ee577", "testharness" ], + "fullscreen/interfaces.html": [ + "f6f0dbc8a505896a0e7ec7aca2746bbd5c1eb7d9", + "testharness" + ], "fullscreen/model/remove-child-manual.html": [ "b1142930c6c972057213bd477cf116fcc9e7fc2a", "manual" @@ -177880,6 +178556,10 @@ "097642b27ec2a37fa4e26f5bf31d7639946fe2e6", "manual" ], + "html/browsers/the-window-object/historical.window.js": [ + "75f8a65267df8d34a4ab600b88b785b887fb0ce6", + "testharness" + ], "html/browsers/the-window-object/named-access-on-the-window-object/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -177901,7 +178581,7 @@ "support" ], "html/browsers/the-window-object/security-window/window-security.html": [ - "364472d494aab31647a85553f4a4265c64af4035", + "a590848d52c2ed7d66e9889957d58828566717c1", "testharness" ], "html/browsers/the-window-object/support/noopener-target.html": [ @@ -177957,7 +178637,7 @@ "testharness" ], "html/browsers/the-window-object/window-properties.html": [ - "851f2113d0578bff6e04d568001dec5ba50e79c6", + "ee0ade0a8de422597c362d15cf4a9dd446e4af00", "testharness" ], "html/browsers/the-window-object/window-prototype-chain.html": [ @@ -178492,6 +179172,14 @@ "355bab1b5b13483ef5f3bb890ea6ccd09700c049", "testharness" ], + "html/dom/documents/dom-tree-accessors/nameditem-07.html": [ + "f9eddafeddf7f4e7ca99b080f98e3e379b5434d0", + "testharness" + ], + "html/dom/documents/dom-tree-accessors/nameditem-08.html": [ + "5ae6d9718f6568cf9c42a7ebdf2cbae767c68852", + "testharness" + ], "html/dom/documents/loading-xml-documents/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -179981,7 +180669,7 @@ "testharness" ], "html/dom/self-origin.sub.html": [ - "ad9aadfb350cee1613a0884154706c632b0a8fe8", + "482b716c4e76fd71e99720e3b82658a5db010a5a", "testharness" ], "html/editing/.gitkeep": [ @@ -180373,7 +181061,11 @@ "support" ], "html/editing/dnd/datastore/datatransfer-constructor-001.html": [ - "36fcac7d7116a68f31f183def92e16b11ba8392f", + "f3f94ba2abbe268617912e753c37462d9337d227", + "testharness" + ], + "html/editing/dnd/datastore/datatransfer-types.html": [ + "f69aab50136582af3c3436f228a92643ab11167b", "testharness" ], "html/editing/dnd/datastore/helper-drop-box-here.xhtml": [ @@ -180784,6 +181476,10 @@ "f0507c80eeed6374b08db1a2d5f2191f346cb42a", "support" ], + "html/editing/dnd/events/relatedTarget-attribute-manual.html": [ + "473744413151ae7e8e25a4a3eccfad837b19bc02", + "manual" + ], "html/editing/dnd/file/001.html": [ "dd64d4fd33adc1fbdd639df9696ae549bafcc195", "support" @@ -184237,7 +184933,7 @@ "testharness" ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html": [ - "12bd51a62830514325b89263abc5710bbe6b510f", + "0a8847896c5a598c7cda654ec912447cfd2d6312", "testharness" ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html": [ @@ -188012,6 +188708,10 @@ "2b9329c270fb73a2ab60f5e9549afdfa91a13522", "testharness" ], + "html/semantics/forms/resetting-a-form/reset-form-2.html": [ + "6f9c1879eab27d8e54273d73eeffe815d0483935", + "testharness" + ], "html/semantics/forms/resetting-a-form/reset-form-event-realm-support.html": [ "2530f8b46c8ec015b165deec1c99e0a495325073", "support" @@ -188037,7 +188737,7 @@ "testharness" ], "html/semantics/forms/textfieldselection/selection-after-content-change.html": [ - "f4b7c92a9eebbfd272793ff7a5d56224220b2dd7", + "b239830964f86fd94304a4239b41413699fb2344", "testharness" ], "html/semantics/forms/textfieldselection/selection-not-application-textarea.html": [ @@ -188080,6 +188780,10 @@ "fd6cbf436213e6a1324d3944f28199b5b7a04d87", "testharness" ], + "html/semantics/forms/the-button-element/button-click-submits.html": [ + "2572c669271b48b218a4ff058789fabed5f3751c", + "testharness" + ], "html/semantics/forms/the-button-element/button-events.html": [ "322fc4a9f013595a9ac2550401a2743b2ab85b07", "testharness" @@ -188088,6 +188792,10 @@ "61d2efc186cc8124ca884dbb8f5b74ef6ca339e8", "testharness" ], + "html/semantics/forms/the-button-element/button-type.html": [ + "dad1f595fb83eefbb8fa8261a42654c1178f3a13", + "testharness" + ], "html/semantics/forms/the-button-element/button-validation.html": [ "a4bb6a1e45b5b92e170e87d153a44f2027ff3717", "testharness" @@ -188172,6 +188880,10 @@ "b827cd11bb58fdffa11fb8d1fa9634ab41368602", "testharness" ], + "html/semantics/forms/the-input-element/checkbox-click-events.html": [ + "9e1d67b4488c9ba65f103ab6a6780ee91362b128", + "testharness" + ], "html/semantics/forms/the-input-element/checkbox.html": [ "1bbb79b50f54bb363d6b8ff1503139520128fbc5", "testharness" @@ -188272,6 +188984,10 @@ "98985c9572d61e4a22a5dcf927e7cc20288c1d88", "testharness" ], + "html/semantics/forms/the-input-element/radio-input-cancel.html": [ + "b362825a7811c7025da5abf77511ef1a5057b936", + "testharness" + ], "html/semantics/forms/the-input-element/radio.html": [ "e7b37335f58290c4f5a8e1a098c1cc50fb78a7b2", "testharness" @@ -188344,6 +189060,10 @@ "421328f898fb2487152f6fd8df315fc22ddea61a", "testharness" ], + "html/semantics/forms/the-label-element/proxy-click-to-associated-element.html": [ + "49f17bfea3e8080fd8690b7be4bc3aa0c82e63e2", + "testharness" + ], "html/semantics/forms/the-legend-element/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -188376,10 +189096,18 @@ "566d5202b873e0dddbbdf76d2a07fdb28554b709", "manual" ], + "html/semantics/forms/the-option-element/option-element-constructor.html": [ + "bb33de080d303d8b2f60b31cd43cf55193cdd91f", + "testharness" + ], "html/semantics/forms/the-option-element/option-form.html": [ "d5a7b7f4c0ed63c3062382ac90074dfe9172e75b", "testharness" ], + "html/semantics/forms/the-option-element/option-index.html": [ + "59026acc6b941050d74ae32feb9ec9352988e190", + "testharness" + ], "html/semantics/forms/the-option-element/option-label-value.js": [ "52c03671d679b391814480fcf068d291d626de15", "support" @@ -188452,6 +189180,10 @@ "e9689464e9ffa86ac5cd9364a4e8fb9ed6af065e", "testharness" ], + "html/semantics/forms/the-select-element/select-multiple.html": [ + "e4b076af4acf3fe019dad21b49c1df9b777a817a", + "testharness" + ], "html/semantics/forms/the-select-element/select-named-getter.html": [ "40412a620cb3ae20853c95cae15f3516e5f553da", "testharness" @@ -188460,6 +189192,10 @@ "19bbb52e85726d68d612a65999d104212057a119", "testharness" ], + "html/semantics/forms/the-select-element/select-selectedOptions.html": [ + "81805a8f0b1f0c6dbf056d370b96472309ffe36d", + "testharness" + ], "html/semantics/forms/the-select-element/select-validity.html": [ "f1cf30c31b0bfeacbe5ef4cfe863a32ff198ad14", "testharness" @@ -188504,6 +189240,10 @@ "81a270bc3c9304f8b2e7dd526519f4eab7d94f45", "testharness" ], + "html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html": [ + "91158bda0ec5b138a11a2a6ccb8434648ec4d7ee", + "testharness" + ], "html/semantics/forms/the-textarea-element/wrap-reflect-1-ref.html": [ "176e2ca4fdb0fe1b83e0154f5b61340fdacf66a9", "support" @@ -189124,6 +189864,14 @@ "d18faac90e11617824f0a2bc2ead29ad14de3622", "testharness" ], + "html/semantics/scripting-1/the-script-element/module/currentScript-null.html": [ + "20f8022ca7d47c57a08c20a17b547d0d89630fb3", + "testharness" + ], + "html/semantics/scripting-1/the-script-element/module/currentscript.js": [ + "6bd1fff05e91002539688b03eff9d7313e0de9dc", + "support" + ], "html/semantics/scripting-1/the-script-element/module/errorhandling-parseerror-common.js": [ "ff9af4e5253db096cd5de8d2e7ed74cd05ed2561", "support" @@ -189197,7 +189945,11 @@ "support" ], "html/semantics/scripting-1/the-script-element/module/execorder.html": [ - "a1b14284d50eda5bd745c113cf9df10a621895f2", + "2180793400b87fa0793a9e30ec35608bc156a25e", + "testharness" + ], + "html/semantics/scripting-1/the-script-element/module/import-subgraph-404.html": [ + "ecd62e08242206bfe40c5729e2dc0042e2172e50", "testharness" ], "html/semantics/scripting-1/the-script-element/module/imports-a.js": [ @@ -189252,6 +190004,18 @@ "f2a20180b6bf5f9c89f5b9541885d55dc8a8ade6", "support" ], + "html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py": [ + "f09db3d2acdf3aba3fc8c67b2f089a0ba506c799", + "support" + ], + "html/semantics/scripting-1/the-script-element/module/script-for-event.html": [ + "c225684e0c7d09f9628aab589c8673b140994243", + "testharness" + ], + "html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js": [ + "ad9a90f05a7a64901b18474c49d0baa579bfc60d", + "support" + ], "html/semantics/scripting-1/the-script-element/nomodule-reflect.html": [ "ac2b3c16e9e9263cd4c14de205b63709c14ec2e3", "testharness" @@ -191812,8 +192576,16 @@ "86f2e15d4b32af7b5127283eb3cfab5a78b46c0a", "support" ], + "interfaces/fullscreen.idl": [ + "5e3b09972043101986b4d4613ac87685281028a8", + "support" + ], "interfaces/html.idl": [ - "8dc9bcafffab4ee66a806308b3cf5888af7cebba", + "b0e4f7ea859518c04a21db8f0b69a07c6e11bbbe", + "support" + ], + "interfaces/remoteplayback.idl": [ + "f7c100f4275f2e32fbca3bb8d9c4900df879ffe4", "support" ], "interfaces/touchevents.idl": [ @@ -192001,7 +192773,7 @@ "testharness" ], "js/builtins/Promise-subclassing.html": [ - "af7bd3f8657eb91da5cb769f666fee002b2d4d8e", + "aac7ab0c0e6beecf28ede1967ecff3ea226e8883", "testharness" ], "js/builtins/WeakMap.prototype-properties.html": [ @@ -192557,7 +193329,7 @@ "support" ], "media-capabilities/decodingInfo.html": [ - "1d8f79cb9e47042aa7eff1b63fe72af4941830e2", + "80c20b9a3c3c055aff8afa64472e44b2e7c4c34c", "testharness" ], "media-capabilities/idlharness.html": [ @@ -201372,10 +202144,6 @@ "ce7769f9fa964b7b7a36edcbf09e4b4087588b30", "support" ], - "old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm": [ - "a21e51bace7afe7833a0ec6ae5933e07be50d61d", - "support" - ], "old-tests/submission/Microsoft/sandbox/iframe_sandbox_010.htm": [ "ef69e9687003a9119bd031b71b5a2ebb035da1a5", "support" @@ -201472,10 +202240,6 @@ "ec87b739d6b4abdd68b27302fe61d60c7bd06e46", "manual" ], - "old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm": [ - "f30c0d3027ee25e259b89f61bd8c3757b26f6ccf", - "manual" - ], "old-tests/submission/Microsoft/sandbox/sandbox_010-manual.htm": [ "9f446f802853684f79ea0ad4ae8f87c578751eea", "manual" @@ -203116,6 +203880,10 @@ "29af302db74de64e2bd1352ad92092a309d28c92", "testharness" ], + "payment-request/payment-request-constructor.https.html": [ + "b9e425c8169460535f344a23af4d52fdfa7daed3", + "testharness" + ], "payment-request/payment-request-id.https.html": [ "3e74f97fdf39bb1ca9f2cb5596155705cd15b5b0", "testharness" @@ -203128,6 +203896,10 @@ "88df88efdb1d44b56ac9758295f2e2920ae6c9ff", "support" ], + "payment-request/payment-request-show-method.https.html": [ + "026e28265a88be54a56e2dadc0fb485303864dfc", + "testharness" + ], "performance-timeline/OWNERS": [ "b82f9756b15ef3ea45fb250e304031d9ceaee9c7", "support" @@ -203164,6 +203936,10 @@ "a15299a6128e4fcb62fa074eba2e0fc07e4e3fe8", "testharness" ], + "performance-timeline/po-observe.html": [ + "0076397128975660e1f66f8d23e6b6945d2a804e", + "testharness" + ], "performance-timeline/po-resource.html": [ "e06354c2fd72bb868f8964cbf9ab393b629a3789", "testharness" @@ -203289,7 +204065,7 @@ "manual" ], "pointerevents/pointerevent_pointerleave_pen-manual.html": [ - "6ea8a1bc811c6222ce5dc2c7102d67137152ce41", + "d2490b8525a3343357fa9a6b255310900e5962fc", "manual" ], "pointerevents/pointerevent_pointermove-manual.html": [ @@ -203540,6 +204316,10 @@ "6262b231ca8af095dee42c493e77662ee132dc05", "manual" ], + "pointerlock/pointerlock_remove_target_on_mouseup-manual.html": [ + "21bba49e139c491f29d3a04c72601d688dfe5977", + "manual" + ], "pointerlock/pointerlock_shadow-manual.html": [ "9e687345acc5b9966172bab7da04e3e7019e34c5", "manual" @@ -203648,20 +204428,20 @@ "8053c6ff43feb6e76f2b9551770bc1e6a9e05b2e", "manual" ], - "presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html": [ - "adc9e8f82f7ea66a0008665e302429988c586436", + "presentation-api/controlling-ua/PresentationConnection_onclose-manual.https.html": [ + "66712b085fce57ac61fe720876d95da6a76dfa90", "manual" ], - "presentation-api/controlling-ua/PresentationConnection_onconnected-manual.html": [ - "dec89eb25f5967724cd5e5f21069e6feede088a6", + "presentation-api/controlling-ua/PresentationConnection_onconnect-manual.https.html": [ + "34f05d114969f43eecda63ab0b683b1cb7784840", "manual" ], "presentation-api/controlling-ua/PresentationConnection_onmessage-manual.https.html": [ "724bf7c2c00fab23a86f9a925b430cf4d4a0fe19", "manual" ], - "presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html": [ - "856d3f3ad3af5f9c68d5b0d325a3b289cf1c6668", + "presentation-api/controlling-ua/PresentationConnection_onterminate-manual.https.html": [ + "450dc0940b414f4150df66dcdbbd69a7f90b3ab5", "manual" ], "presentation-api/controlling-ua/PresentationConnection_send-manual.https.html": [ @@ -203729,7 +204509,7 @@ "testharness" ], "presentation-api/controlling-ua/reconnectToPresentation_success-manual.https.html": [ - "645e6e6a5a8261c9f3f61c356d6e127aac8223da", + "ecede2c96372bc026479cefbb598bea716ac7d6e", "manual" ], "presentation-api/controlling-ua/startNewPresentation_displaynotallowed-manual.https.html": [ @@ -203757,11 +204537,11 @@ "manual" ], "presentation-api/controlling-ua/support/iframe.html": [ - "00156d2e5443ad4028af43e1a66ba2fbd226de14", + "f5a6ce64215fa87768688795dada87c8c42638db", "support" ], "presentation-api/controlling-ua/support/presentation.html": [ - "0cad4d8b7725b287cd30284caab639cf21f6c1de", + "d7af1d52de52f04fd4fc0b0fd1e80c0c43ba2f8f", "support" ], "presentation-api/controlling-ua/support/stash.js": [ @@ -211420,6 +212200,10 @@ "2779fd2a3bd27a011e8ba20dd6fb214978d8a54c", "testharness" ], + "remote-playback/idlharness.html": [ + "70cfb1603b69e1daff48682cf41e746221158a55", + "testharness" + ], "remote-playback/watch-availability-initial-callback.html": [ "3d220a3cc0e6a05fbc40c0ab0e46a2e60162b2be", "testharness" @@ -211445,7 +212229,7 @@ "testharness" ], "resource-timing/resource-timing.js": [ - "b5c7951856ebacd27c11a0685bb7730f02487fcb", + "9351f640380bd9a71bca28d32d724bd5f6373650", "support" ], "resource-timing/resource_TAO_match_origin.htm": [ @@ -212269,7 +213053,7 @@ "testharness" ], "service-workers/service-worker/clients-get-client-types.https.html": [ - "e86b86beb47802f4204510c44edc1465cab5d5f2", + "167d19739ba446973d3199c0b7417fc83fe056cc", "testharness" ], "service-workers/service-worker/clients-get-cross-origin.https.html": [ @@ -212277,7 +213061,7 @@ "testharness" ], "service-workers/service-worker/clients-get.https.html": [ - "3627915a40ca2903f979560209f9a169a41429e2", + "4c57e2bb33b3783413b0545f11d164f73f14f64b", "testharness" ], "service-workers/service-worker/clients-matchall-client-types.https.html": [ @@ -212285,11 +213069,11 @@ "testharness" ], "service-workers/service-worker/clients-matchall-exact-controller.https.html": [ - "231ce3ee744eeb670e00ee3a670ba361d5ca0707", + "957231b3f09c78b7a0597ca53d734c07f3374205", "testharness" ], "service-workers/service-worker/clients-matchall-include-uncontrolled.https.html": [ - "a4f4cb575ffea826c642aa3de424c0a0f986fdd0", + "e5b1c29ebb5a3ca9c27c17e9bc4cb3c0d70cfed9", "testharness" ], "service-workers/service-worker/clients-matchall-on-evaluation.https.html": [ @@ -212301,7 +213085,7 @@ "testharness" ], "service-workers/service-worker/clients-matchall.https.html": [ - "ac873d343a0c9d0af058f84d7e8db2809825c64c", + "17d76ba9e5a93d8e13c99773c673911786c8abf3", "testharness" ], "service-workers/service-worker/controller-on-disconnect.https.html": [ @@ -212389,23 +213173,31 @@ "testharness" ], "service-workers/service-worker/fetch-mixed-content-to-inscope.https.html": [ - "e3035bdf8cec65bb0322b5dfce10a3a827bd415e", + "c9bc425bca04f96866b14a2d89ae9dbfcc900d5a", "testharness" ], "service-workers/service-worker/fetch-mixed-content-to-outscope.https.html": [ - "45a83eeeb922301fc399a4808bb4d1014a541733", + "e48ab49326706532a754268211586f7a29f71ddb", "testharness" ], "service-workers/service-worker/fetch-request-css-base-url.https.html": [ "01a5220ff2abe5735d7b03c2ee3ccbe21c9a260e", "testharness" ], + "service-workers/service-worker/fetch-request-css-cross-origin-mime-check.https.html": [ + "d41f17b4a7ea596ba38a91cfbd910aa6be43e70f", + "testharness" + ], "service-workers/service-worker/fetch-request-css-images.https.html": [ "ca776bff1f106f9a1e2dfe4d25ff3618d99758b7", "testharness" ], "service-workers/service-worker/fetch-request-fallback.https.html": [ - "60dcb3a4c3b3ca2e79adfc7b779724cbe3ffa1c4", + "7537d16b43abab8ff1d03728329638d1f061dda3", + "testharness" + ], + "service-workers/service-worker/fetch-request-html-imports.https.html": [ + "b854db3540539d20aa0bef0f869edabd0b8b4d47", "testharness" ], "service-workers/service-worker/fetch-request-no-freshness-headers.https.html": [ @@ -212417,15 +213209,19 @@ "testharness" ], "service-workers/service-worker/fetch-request-resources.https.html": [ - "5ae2d1ae4eec846002635d6ff8d9d7c9a2aebd3f", + "cb072581704868845fe1ec57b3e7c70d53bac543", "testharness" ], "service-workers/service-worker/fetch-request-xhr.https.html": [ - "840aafe30e5a0c8129c05e3b311084b8c00267a6", + "088581ef6036d3cc8688d5974461d8e5b8ed1cfd", + "testharness" + ], + "service-workers/service-worker/fetch-response-taint.https.html": [ + "217383b4dddcc6f984c4cc7cd5f99e1f9b86cdd1", "testharness" ], "service-workers/service-worker/fetch-response-xhr.https.html": [ - "6d50c69d78a1eb077108209b94fdf0efe540883d", + "6b68ad7251c3daef1cd2bde8660f01c3e47b711f", "testharness" ], "service-workers/service-worker/fetch-waits-for-activate.https.html": [ @@ -212456,6 +213252,14 @@ "15c2be991ec5b02a0aecf54e6c7bb455f240141d", "testharness" ], + "service-workers/service-worker/import-scripts-resource-map.https.html": [ + "6bc46467c667f942fd30de063806474e8c94cff0", + "testharness" + ], + "service-workers/service-worker/import-scripts-updated-flag.https.html": [ + "e902940bec870cf548c576b5fd06d2e71fd3f97a", + "testharness" + ], "service-workers/service-worker/indexeddb.https.html": [ "6b25a37ebe79c60e3645a1006e61f1f2c272ce86", "testharness" @@ -212480,6 +213284,10 @@ "393c3b3c393b58e74f82affecdd06c4e7be1787a", "testharness" ], + "service-workers/service-worker/iso-latin1-header.https.html": [ + "3c75caa66d3906602d10b07ff22e7d0f210cfee9", + "testharness" + ], "service-workers/service-worker/multi-globals/current/current.https.html": [ "2f7a23c1a4dfa7feb121e55d13ff8a0980165b37", "support" @@ -212616,8 +213424,16 @@ "a6ac7ce51f0c0ea47f2d9bbeb44d8db7d3f7864f", "support" ], + "service-workers/service-worker/navigation-redirect-body.https.html": [ + "72e4fc91dac6bdd42437b5034d1692a208a90de9", + "testharness" + ], + "service-workers/service-worker/navigation-redirect-to-http.https.html": [ + "12f109101a7d6fcb52ab070077297443fa7ab3eb", + "testharness" + ], "service-workers/service-worker/navigation-redirect.https.html": [ - "7d9f8501624e1832170d427657d6dbf19253c989", + "81d70e830ca8c522aedc152979f387ec1d6618bd", "testharness" ], "service-workers/service-worker/onactivate-script-error.https.html": [ @@ -212628,6 +213444,10 @@ "0497bf37f0e3b55a6a4745cae2ec700b6f963fd3", "testharness" ], + "service-workers/service-worker/opaque-response-preloaded.https.html": [ + "4441c255d614ef6d898873f81aa9e5090fbf2875", + "testharness" + ], "service-workers/service-worker/performance-timeline.https.html": [ "23d9e3dc830b83370875387cd5d6e1d5e913452f", "testharness" @@ -212641,19 +213461,19 @@ "testharness" ], "service-workers/service-worker/postmessage-msgport-to-client.https.html": [ - "21ae7fb96321dc75e7063c27b7e6838e6b9ff6c6", + "a7d5f02a569179c9c9308ffab5aa6ea545d965f4", "testharness" ], "service-workers/service-worker/postmessage-to-client.https.html": [ - "4f91d302091df45ca72567c2cedc1584ad9045a9", + "4db5bfbf0f1afcace2a4ea79451c2ff5fc09ab3c", "testharness" ], "service-workers/service-worker/postmessage.https.html": [ - "5f713ca30ab26d1ee7f3e763911aeb41fcb660bb", + "ea380417fcad1583f764473c554bf519e5beecde", "testharness" ], "service-workers/service-worker/ready.https.html": [ - "77199b966f0ef2d05fddaf33b975cc3e7c593546", + "ff14496607e396281d28fb9a8bfdcbb46b8a7e9c", "testharness" ], "service-workers/service-worker/referer.https.html": [ @@ -212785,7 +213605,7 @@ "support" ], "service-workers/service-worker/resources/clients-get-worker.js": [ - "7b9493735cdb2d06bab7331d1840c34631e04e32", + "a48201939523eb5eb0357a8354f7770f44b941a0", "support" ], "service-workers/service-worker/resources/clients-matchall-client-types-iframe.html": [ @@ -212956,14 +213776,46 @@ "30e4285e144a5c9caa0dd48224cefc4b41973de1", "support" ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.css": [ + "15954c87c81ad9bd3119b7b6113fbaba051414e8", + "support" + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.html": [ + "0ca54820eb0e80acc5d1a04175e669ba17116ddd", + "support" + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html": [ + "77fdb8a4bf48160dacb9b463fa075a91b1d34b10", + "support" + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css": [ + "d16e353df273b206663d706c7f22d388db9ec238", + "support" + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.html": [ + "9770895a8ca9897a13b5f116e12b2b47dd59f009", + "support" + ], + "service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js": [ + "5bdb78b2d188d06eea4a0243d7cf35c5542d868f", + "support" + ], "service-workers/service-worker/resources/fetch-request-fallback-iframe.html": [ - "a1202e192e51d625cc06c0f7a7e0a27efadc1f2d", + "f31f15d645452fb2e8cfd9b5fb45e240de575202", "support" ], "service-workers/service-worker/resources/fetch-request-fallback-worker.js": [ "5195f7d76f6c77bd167c9192a0386c2f8b7863c1", "support" ], + "service-workers/service-worker/resources/fetch-request-html-imports-iframe.html": [ + "5828ad5fc04c9116419afe0ed02383b70b61c956", + "support" + ], + "service-workers/service-worker/resources/fetch-request-html-imports-worker.js": [ + "bb18b72ad06bf2ee179883e1e5df6cc8a9329d36", + "support" + ], "service-workers/service-worker/resources/fetch-request-no-freshness-headers-iframe.html": [ "6da48549aa02c25ffed99c9bdf3549e109f62e60", "support" @@ -212977,23 +213829,27 @@ "support" ], "service-workers/service-worker/resources/fetch-request-resources-iframe.https.html": [ - "0023475ba862c10277efb63a18275a79facdd9c2", + "95bcbc6a2f4560788f77fa717fa06d7d018d99c6", "support" ], "service-workers/service-worker/resources/fetch-request-resources-worker.js": [ - "db66bb2ec1cb1b70e1dddc50748ff134e623e401", + "4512140fe37ffd78086f54c6b0f6213675c0d74f", "support" ], "service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html": [ - "e28b416c027c2ed1a633c0804ef826cad99509ff", + "3e514258608705763ee932821bee89696be1d2e9", "support" ], "service-workers/service-worker/resources/fetch-request-xhr-worker.js": [ "fcbb50668ec1a3f7bdbd4331babda5b6e0295f2e", "support" ], + "service-workers/service-worker/resources/fetch-response-taint-iframe.html": [ + "ce934e0f8f0a77ce236053f17c57f22bc44e4c27", + "support" + ], "service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html": [ - "8bef6d586f438fa912c7e40ac82a5aa73e05706a", + "5b29c0807de1229631a27ad3c9d66f288631938a", "support" ], "service-workers/service-worker/resources/fetch-response-xhr-worker.js": [ @@ -213044,6 +213900,22 @@ "7881cd81f7fe54bf3be799f3549098c78b896574", "support" ], + "service-workers/service-worker/resources/import-scripts-echo.py": [ + "95d29c9b8749cabf795d9a867e260827a8360640", + "support" + ], + "service-workers/service-worker/resources/import-scripts-resource-map-worker.js": [ + "bafc81b044c2a52f4ceefcd15a0b8b3c7553146e", + "support" + ], + "service-workers/service-worker/resources/import-scripts-updated-flag-worker.js": [ + "b83d48b7ed268293b4788e36bcd7293b1b15e751", + "support" + ], + "service-workers/service-worker/resources/import-scripts-version.py": [ + "1f508292f99f22a8b4105658ebdb9568d46d2004", + "support" + ], "service-workers/service-worker/resources/indexeddb-worker.js": [ "ed0ff45423ba74ad0b82e46debd865fdae2fbcb6", "support" @@ -213088,6 +213960,14 @@ "eaa7fd4f6d2d92af8c27895fc9060296804ece21", "support" ], + "service-workers/service-worker/resources/iso-latin1-header-iframe.html": [ + "53c0981b7ccf2844863fca2946023b60d23aab68", + "support" + ], + "service-workers/service-worker/resources/iso-latin1-header-worker.js": [ + "3af11938ec23e1989785be2da453922686e5ace1", + "support" + ], "service-workers/service-worker/resources/link-header.py": [ "5717930bd579b9a63f1b3619195d65b46aa044cf", "support" @@ -213116,20 +213996,36 @@ "4d3b80c17efd78bda66333ba01ffde1b8f6e976b", "support" ], + "service-workers/service-worker/resources/navigation-redirect-body-worker.js": [ + "8c87066cb7a5b412d69f02384b95044bc39e22a4", + "support" + ], + "service-workers/service-worker/resources/navigation-redirect-body.py": [ + "2490c7c113985c30666bdd9fa69380e5f24561e9", + "support" + ], "service-workers/service-worker/resources/navigation-redirect-other-origin.html": [ "8c51024d8e369bc5ae21e94c486c59690df2de3e", "support" ], "service-workers/service-worker/resources/navigation-redirect-out-scope.py": [ - "b41d084ce18e177e59b7caa0d305fc11f37fd4d5", + "8a4436e53f60b74062f0788bce089dc707f61388", "support" ], "service-workers/service-worker/resources/navigation-redirect-scope1.py": [ - "b41d084ce18e177e59b7caa0d305fc11f37fd4d5", + "8a4436e53f60b74062f0788bce089dc707f61388", "support" ], "service-workers/service-worker/resources/navigation-redirect-scope2.py": [ - "b41d084ce18e177e59b7caa0d305fc11f37fd4d5", + "8a4436e53f60b74062f0788bce089dc707f61388", + "support" + ], + "service-workers/service-worker/resources/navigation-redirect-to-http-iframe.html": [ + "257dad1b514dbc3d654237abe02105f86e2aae2d", + "support" + ], + "service-workers/service-worker/resources/navigation-redirect-to-http-worker.js": [ + "56447ddcf101a60c64b4d2f7168c21deb4b3c0a8", "support" ], "service-workers/service-worker/resources/navigation-redirect-worker.js": [ @@ -213184,6 +214080,14 @@ "d81c494e7c0aedc7921c6d5a8c7a17b9b1f5a8aa", "support" ], + "service-workers/service-worker/resources/opaque-response-preloaded-iframe.html": [ + "8c17061aeebbbfdbe49496a515153bf6530513c0", + "support" + ], + "service-workers/service-worker/resources/opaque-response-preloaded-worker.js": [ + "84b0397640b74bc2cd5d8cd4fb90eb29dd5e032b", + "support" + ], "service-workers/service-worker/resources/other.html": [ "dee7af2b7e3877dbb3f076bfb5960da0f00ea02b", "support" @@ -213201,11 +214105,15 @@ "support" ], "service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js": [ - "df0abb63c5c63fa97adb914e4281364bf1f82657", + "11d46afb4cf17c8dcd9b49cda4e07e110a42a36d", "support" ], "service-workers/service-worker/resources/postmessage-to-client-worker.js": [ - "ef8f04dd01a67d14ab61aec38c2ebfab3ad6c164", + "3758d8ba7d58e3f9b239016d9f35f537ebd7116b", + "support" + ], + "service-workers/service-worker/resources/postmessage-transferables-worker.js": [ + "341df2e470b10eab2bf785d2e4bbf77d56ebe172", "support" ], "service-workers/service-worker/resources/postmessage-worker.js": [ @@ -213224,6 +214132,10 @@ "18ee27c8d6a5497bf16b3315ba9eee2b474154b5", "support" ], + "service-workers/service-worker/resources/register-iframe.html": [ + "b137bd995f0ca7b0ecc6ee6f5dc87a3a4e524364", + "support" + ], "service-workers/service-worker/resources/registration-tests.js": [ "bdb31335f8d15de455108e0186183f1acdaef41e", "support" @@ -217916,8 +218828,8 @@ "89dd0f84e69896c802c7a2062c9f4846cdca98c6", "testharness" ], - "url/interfaces.html": [ - "25e16a1f57ab1acbb19a3b3acc77fccc3facf6cd", + "url/interfaces.any.js": [ + "8b0f22589fa6da8f55b2ab09aa494ff3de0b429f", "testharness" ], "url/setters_tests.json": [ @@ -217985,7 +218897,7 @@ "testharness" ], "url/urltestdata.json": [ - "f99eff3fa00a813fc77deaee2d2c08a19df10af9", + "d52fa5f6c7565eea8e33277a7ad58986b21fc592", "support" ], "user-timing/OWNERS": [ @@ -218141,11 +219053,11 @@ "support" ], "wai-aria/alertdialog_modal_false-manual.html": [ - "0de73d9a74e7f78a9476bba21b864475de8a7c8f", + "4474f69ff5b08402d45009d375f1a0c1d97a3498", "manual" ], "wai-aria/alertdialog_modal_true-manual.html": [ - "29a80fa8a8591c807adbb00270f0414bb698d323", + "c4806b5257c4773833395a97811f9f6f53237ea8", "manual" ], "wai-aria/application_activedescendant-manual.html": [ @@ -218157,611 +219069,635 @@ "manual" ], "wai-aria/aria-current_not_declared-manual.html": [ - "09820c997597e553a63e00c221b7e4b84f046502", + "324c82df17ed329af958d09d374d1fe7c1af3dab", "manual" ], "wai-aria/aria-current_with_value_changes-manual.html": [ - "6d54a2b300e056dfcde46e9927290181feac7134", + "f8d68ae8ceae0aeeb103a7480e867c8b8e7efe9f", "manual" ], "wai-aria/aria-current_with_value_date-manual.html": [ - "30803e78105fafc30a07c216f120364a707ebac9", + "b056105c712ff7d663ca1503480c0a73aacdaae5", "manual" ], "wai-aria/aria-current_with_value_location-manual.html": [ - "4f9d6be77ffc0b23931a888de25f0a66223bcbd6", + "99fa9466a41792114440a967e333070664581018", "manual" ], "wai-aria/aria-current_with_value_page-manual.html": [ - "92177233e85d8fb360d0524a127a31fc6bbc22cc", + "e7bd1caf26eb2b058420b7cc8e720749043962b8", "manual" ], "wai-aria/aria-current_with_value_step-manual.html": [ - "f1fafedacdca36c23a612c699124efc2f0248e15", + "012589a138d5c3423dd462994b6010da535d8d2d", "manual" ], "wai-aria/aria-current_with_value_time-manual.html": [ - "8b88be430db3fd4b9b05ab214a38389448150521", + "be5a829a19818249201fed5f6ffd5a8ba02e69ca", "manual" ], "wai-aria/aria-current_with_value_true-manual.html": [ - "f9df9114542cd0fc91325634ec29db307ca101a6", + "59e8bfd39e27c7cc692571af65c0d7148e89f890", "manual" ], "wai-aria/aria-current_with_value_unspecified-manual.html": [ - "03743f07be87703262043f210f7ec2befc11ebd0", + "3c10b7d11e42bd33ae564638b7bcf279d095ae2e", "manual" ], "wai-aria/aria-details_pointing_to_details_element-manual.html": [ - "ad05a971809cfd9cd5e6d63ab886c481323ebdc6", + "a5482bae5e66f78446db496e78a9c8e8d0f3c645", "manual" ], "wai-aria/aria-details_pointing_to_div_element-manual.html": [ - "f2d2d715de30a4edc1ef3d4d75a13ec02562ced8", + "f2c52879c6818a0ef3a7b8295178ea09fbf4993c", "manual" ], "wai-aria/article_in_feed_posinset_and_setsize-manual.html": [ - "8cba7e2c8d9fa2790bca392da39d14c7402ca6e4", + "bad3f9d2fe013a12b554e61f6bd7ee735b0831fa", "manual" ], "wai-aria/article_in_feed_setsize_-1-manual.html": [ - "2a3820bd35c9de6efdbdd8944e66e1c129522abe", + "eb4ac01f03924663ba93fa78ccf8993aaa117391", "manual" ], "wai-aria/article_not_in_feed_posinset_and_setsize-manual.html": [ - "5074dfe55d125288b51081b9fdd78c78400b563d", + "ba56ae5534db6f1204c7d134d8b67098c59715b4", "manual" ], "wai-aria/button_haspopup_dialog-manual.html": [ - "c31b9e0b6f4a0ecebfb0ced36198110b8481167d", + "ebde034348367d0de4846f513b893fd4b538292d", "manual" ], "wai-aria/button_haspopup_emptystring-manual.html": [ - "526ed0373a6730ff4c2aad3bdb644029f673d046", + "fe1a0669555d1fb535714ea9bf25c14b94272f53", "manual" ], "wai-aria/button_haspopup_false-manual.html": [ - "c2b1e86859ef7cd770a0f2fd7de82155a3968315", + "81ac95759365a20f94d8d7279ac25fcc82610cc0", "manual" ], "wai-aria/button_haspopup_foo-manual.html": [ - "4f3c0d8f93cf46ec8ff58d7ff33fe61146f1f73f", + "bf80557381db22456142b63a985df7e47d7eb550", "manual" ], "wai-aria/button_haspopup_grid-manual.html": [ - "147b1fa883ecf96f992a24bf6aee032a69ce14c7", + "14e21d25c31ddcc12801c70114b7efc947331e5c", "manual" ], "wai-aria/button_haspopup_listbox-manual.html": [ - "139d8ebf9b91bc019da5a14656d7f9e5a26f4ae5", + "8fc2bd88d9d4222d8b3c30a3888fa40592c76861", "manual" ], "wai-aria/button_haspopup_menu-manual.html": [ - "524f95729ccb3ec81450f3b5c112efa7ccdc1357", + "5ae08497094b432b5fad8df9512512c1553ae916", "manual" ], "wai-aria/button_haspopup_tree-manual.html": [ - "a21792deec4d3448f0110f1b88bcd87611ca9213", + "6c660c51df6aeab722bedbed64f7be7eb46bdac2", "manual" ], "wai-aria/button_haspopup_true-manual.html": [ - "e48345755b57d0d4d8b08ba1d2805ce51835c020", + "a7858f1137bb90d20e397478acc3106fc699a69b", "manual" ], "wai-aria/button_haspopup_unspecified-manual.html": [ - "5433922f0ab71e390ca9e0e7a46551ebfd44dc87", + "0d791a15ebdc111e48e6cf193b64fddbe1233ae0", "manual" ], "wai-aria/button_roledescription_empty-manual.html": [ - "066f803e5809813e84a2fffecb39142429191f3e", + "02e8c17c16956f706552e15f047ec7f7f285bf45", "manual" ], "wai-aria/button_roledescription_valid-manual.html": [ - "6d18a279c9a9e471fad81c1313db3b9d04999ea0", + "ba34a9172cd4aca2f5b993bc89b5f6251455b02c", "manual" ], "wai-aria/button_roledescription_whitespace_only-manual.html": [ - "b8a231f8bad4cb5626b7b687d81067ebe891b961", + "9cbdb49690860b2f5d27667252a7bb70aada3482", "manual" ], "wai-aria/cell-manual.html": [ - "1ea5f605642328e07a67d78d96a59849b3439120", + "834d5f2817238c77f2ff7d84cfcf130ea7fd93fa", "manual" ], "wai-aria/cell_aria-colspan_2_on_div-manual.html": [ - "dea621a29ab297b8ea3035806a7d86265faa0976", + "dbcfcede2f4b03c48f4f25a06cc86a0c4a55cbb4", "manual" ], "wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html": [ - "fe72cecdfd9b60e0f5346a1848e19c7b1adbcd62", + "c43ff72c242ab1652d7ca7e7ca5eea23902f4d80", "manual" ], "wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html": [ - "524d5318a2fb71e71979679647219ccdf59de427", + "34726e1d88332b35f400bc38710489b36e6469fc", + "manual" + ], + "wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html": [ + "50a66444648047d92364b285f96bd92d22a1fc5c", "manual" ], "wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html": [ - "7b444106d30350596a9fb81c54845754a806077b", + "c72a990220f746dedb0501c1b429391c5d8ed656", "manual" ], "wai-aria/cell_aria-rowspan_2_on_div-manual.html": [ - "83af1369b5ea45e943d59deeca46a4b517436850", + "d737e00d21d0caf030f586b652bcf9cede6f5e5c", "manual" ], "wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html": [ - "a2d5c2e0c438ce16ae5a4b6ef5032e738d3bac7a", + "53bdc1deab18d8e6453ca4acda7818e2d40b3663", + "manual" + ], + "wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html": [ + "ab7904288326ef7d37b1ef2edeac7457f379a425", "manual" ], "wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html": [ - "c92a991cb963082cdcbf2d90489e8d01d34f880e", + "2fe3fb2279567437098626704e29292d2604fe84", "manual" ], "wai-aria/cell_colindex_4-manual.html": [ - "03653417d9dccc42a392c3dd672fd26be29a0afe", + "abdce9907864a10cfa98492a74e6e782bf8f7872", "manual" ], "wai-aria/cell_rowindex_4-manual.html": [ - "cdf0f7eb47b9d49b54bf0f4831311a47acdcddb3", + "12a6b478fe42a6d4c509a4db01390b598057d3d2", "manual" ], "wai-aria/checkbox_readonly_false-manual.html": [ - "fce2224ea02feb9886abd11eae61fec3eb295dd4", + "0ca8232077c8ebe6124e6348876e0d7e305fcdc9", "manual" ], "wai-aria/checkbox_readonly_true-manual.html": [ - "9ee1117041827f9ae7a720d52bd31abeefddbede", + "c8710159d664ad1e47ffcede99591d36d19c758a", "manual" ], "wai-aria/checkbox_readonly_unspecified-manual.html": [ - "ed1c64acd3f88485e7e9879848e63a7a6448f05a", + "39980b5e2b61c5b907b299f6581b61fc96176be0", "manual" ], "wai-aria/columnheader_aria-colspan_2_on_div-manual.html": [ - "5cef610d8ef44e4cfb3a105dacae722f8c16924c", + "02dbbd5d5065016aa6ad251b6972efbdb2adc3cd", "manual" ], "wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html": [ - "8f7d23287ebc7a0f4fd8f538761a6fdcb8d4db70", + "833176caaa8cc43ddeef6910c3c91d34d0f27a81", + "manual" + ], + "wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html": [ + "8e991fc01285bf8b0df4600f2185aae321690324", "manual" ], "wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html": [ - "182848b4c055b72f21b7f05802b12f07931a8936", + "674ca111f421b11015b44680a894b124e0156e8e", "manual" ], "wai-aria/columnheader_aria-rowspan_2_on_div-manual.html": [ - "14bcb535040d7ec7d1463f9dabb77c8d5a4579fd", + "f8d61b206efd7b14349270a9cfbc0fc7b45144b5", "manual" ], "wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html": [ - "b89d3ad4a1452afa883969eee6b426eb42e1d7f7", + "46c1c3749203b0177b42c8517f8f1486493552dd", + "manual" + ], + "wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html": [ + "a352ec0168c837f7ac41e238d9f6b556a1636b4c", "manual" ], "wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html": [ - "4031b040bcda345c04073053556445019574751b", + "f5ae66fb52322271cd48f8b0944c45f150a3c9a6", "manual" ], "wai-aria/columnheader_colindex_4-manual.html": [ - "2e46afcd1e0c0c6639dde5d4bdb64829f4cd0298", + "5ae4b209492b246ce3ecc29254017b06a5ee4d4b", "manual" ], "wai-aria/columnheader_rowindex_4-manual.html": [ - "6a48e170e90a355cf9f99842f14fc178620800bc", + "d7d2d22bbe8bd9653dfca49258966a3f5bddb630", "manual" ], "wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html": [ - "884096f6c1033f184d3cb8aa3c4afdfff377acf7", + "07905926b9a086a9dac09e4208bff5c7be62d9fb", "manual" ], "wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html": [ - "92bbb16b4e4325da1f29c3886e19e0a2bdefed3a", + "a94da04e13d0ffc5e4470fcd0681ca07cdb345a3", "manual" ], "wai-aria/combobox_controls_an_invalid_id-manual.html": [ - "a7428f00c7a7c1b7ec4571b053ed3f97b370d6a7", + "870df040569649c51aa55f1cd4999d26412f0fcc", "manual" ], "wai-aria/combobox_haspopup_dialog-manual.html": [ - "1763643ee1772e4e44f694be1161b7d9c4fb4ccd", + "fdd4269120fd9df0efe154b43a6153565da97943", "manual" ], "wai-aria/combobox_haspopup_false-manual.html": [ - "cd628b6f7a53d048283395adf1ba5e1ca9aa3983", + "cc7de354f4a21d4aa0e999ea2441be72a71a5822", "manual" ], "wai-aria/combobox_haspopup_grid-manual.html": [ - "a725532a4475cbba01a815fc0b70d7a9f18ca38f", + "d125af338b649432214e6140189349981836e858", "manual" ], "wai-aria/combobox_haspopup_listbox-manual.html": [ - "66ad33bdc43763064bede6f49423c669fd6c8b54", + "8acc1c480dea1acf88ca7ca569604b8e9ea88ef5", "manual" ], "wai-aria/combobox_haspopup_menu-manual.html": [ - "77eaf2adc1234c46b8d7f5016351f8f92734ce55", + "378629479e77ea8389ec688bb33e539ce059ae2a", "manual" ], "wai-aria/combobox_haspopup_tree-manual.html": [ - "023ba0b8badbeba32333d3283922054d5577ea57", + "b119af4fe48f9213c647e66a4a2a018558254bf9", "manual" ], "wai-aria/combobox_haspopup_true-manual.html": [ - "11f474e4da6b76c9e9a74bf846f7209a9b040b08", + "0c513df922b7d0e343bc769253ac5ae8b52f4510", "manual" ], "wai-aria/combobox_haspopup_unspecified-manual.html": [ - "8285f5e4ca013a53f7fef22b3254ac34724d1e74", + "710a825d44481c3f14d622e77b19c205f499dd1e", "manual" ], "wai-aria/combobox_orientation_horizontal-manual.html": [ - "e8eb60d4d9a0850511cdee7a3e19ba5c2fb14c73", + "b0d1bfb6846a6c8008f5b61e5c86b7ff4507c10e", "manual" ], "wai-aria/combobox_orientation_unspecified-manual.html": [ - "7c7b15f4586f4f84a0b6d40f2c8285de78d904be", + "74cd83120d791c1c1328573ca078b7afeb62bcb7", "manual" ], "wai-aria/combobox_orientation_vertical-manual.html": [ - "ed213ba95cac717ec3b4910f6a97ce713ecd00cc", + "ee0c7a375ddfe72da1c0acdf61430efbcbadecc5", "manual" ], "wai-aria/combobox_readonly_false-manual.html": [ - "bbb7298bbf9f33e6ebe54bf392ef8a802d7d4cc5", + "d197de6dd8bc807819dbd97c70cc7806c0cba25c", "manual" ], "wai-aria/combobox_readonly_true-manual.html": [ - "164858f5c1ce2f9daaf2a5d56485d8a5b6c1ed37", + "66add63e8639e204166b2d986600e45731b67f72", "manual" ], "wai-aria/combobox_readonly_unspecified-manual.html": [ - "a4dda746a9b77935eee233e82ca70678e4dd5af4", + "514077d1fe954cfb2880cf7490fa96a62993d3d9", "manual" ], "wai-aria/dialog_modal_false-manual.html": [ - "3623f1024b0ab26ab2b6d48bc78e9fc4699ea584", + "15ca987281ad77292627823d69ecfaca9ac71523", "manual" ], "wai-aria/dialog_modal_true-manual.html": [ - "c0ec6e36a67b7ba42b0076350e0876866be17d61", + "24a9479dd97dd46a443477632fff425f80a44e3e", "manual" ], "wai-aria/dialog_modal_unspecified-manual.html": [ - "41baed7d9e1e5d6512d3240bdbabb2db45b99436", + "beffdaa252e3043cb094ed655db013947d7d4ac8", "manual" ], "wai-aria/div_element_without_role_roledescription_valid-manual.html": [ - "1f7fcd4985675b15c9a97f536c694ca8e2359856", + "66ac2a107b7b7e517c5badfe10fcfed527d29235", "manual" ], "wai-aria/errormessage_object_in_invalid_state-manual.html": [ - "0c7a38f437ccc80e81dbc8f11a70e695ff5c742a", + "0a2d618a703342da58071c35c510a370044e351f", "manual" ], "wai-aria/errormessage_object_in_valid_state-manual.html": [ - "279aa052a362be0dc408d9926aecbd4a77622217", + "458716e14fab5e9146acd42a1b738aade9c4638e", "manual" ], "wai-aria/feed-manual.html": [ - "6768e3a7de2c91da15b218136156cfa58ff08266", + "946946d1fb7b9ded2b5c16f66315b999ccbcdfb8", "manual" ], "wai-aria/figure-manual.html": [ - "ac697b43cc605ec65cb32b38c8d874aacbc71ce9", + "7efb8eb80093de1cb3a825cccac111c4e4a92b52", "manual" ], "wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html": [ - "6fbbec7c8a3d7d0910c6fcdd0eddcfa365b66278", + "58e2c9fa82c4500e7dd3f2c60cbd7a07783d6dab", "manual" ], "wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html": [ - "a82aa4fa5d961160f466139a1c55649aebafa8fb", + "defa6fb97d9d71a6da5fef97ac788ae40d35d2f5", "manual" ], "wai-aria/grid_busy_false-manual.html": [ - "fd9ffb7a543c87860f1be98e25e25eef326e7751", + "124b9c88b33ec0d1db26ecc09aa5451a00b0c53b", "manual" ], "wai-aria/grid_busy_true-manual.html": [ - "905f6765e8af6ad6f99004cba0580d360582b64b", + "525e53aea870f694194e7337efc54f04e9bf450e", "manual" ], "wai-aria/grid_busy_value_changes-manual.html": [ - "164b4bb9fffae08a923fbbc3d929dab78c07f7da", + "c6f8e48d0633e5d2299db6d9a57ef44064f537b3", "manual" ], "wai-aria/grid_colcount_8-manual.html": [ - "dd37931f0fc32f2c00864626787e6d067e14592b", + "624009a91b13221c87f96353691af502b2672860", "manual" ], "wai-aria/grid_columnheader_readonly_false-manual.html": [ - "ae9b21ab77f899329e20806ec8b4fd779532e591", + "966772d35396d2946eecf282626ed76fff983bda", "manual" ], "wai-aria/grid_columnheader_readonly_true-manual.html": [ - "6acacc79477351796d7e31cb829254763985891b", + "c77203c5aff070fde3ba2a166a527a4047685fb5", "manual" ], "wai-aria/grid_columnheader_readonly_unspecified-manual.html": [ - "74043387768367c5b31eca92f480d6eaf90957b1", + "b0ba733622e16cd2cd8d282995cfb251a8fbb348", "manual" ], "wai-aria/grid_columnheader_required_false-manual.html": [ - "c3b02b385cfd99e689b005efc504ec761cb0a9b7", + "ff3177c827e9878f399ee9ea3d21408e382bd7a2", "manual" ], "wai-aria/grid_columnheader_required_true-manual.html": [ - "b0dfaeb91b02fcb297693e96bfca333dda35716d", + "f435b39b4c0c2a946a8b6f92fd9a602f652cde3f", "manual" ], "wai-aria/grid_columnheader_required_unspecified-manual.html": [ - "a6dc62bf3b5b589dc8721c3f5763183b4d015ac3", + "8d6287495265d1b57dbb704e4d4be43b8aa6b84b", "manual" ], "wai-aria/grid_rowcount_3-manual.html": [ - "bf3f9782a1a454a0c349616a61e280b1793230b0", + "3be7ba4afb1adadb7e7a40d0e7fd8a417d69ebc4", "manual" ], "wai-aria/grid_rowheader_readonly_false-manual.html": [ - "943cd5404948a66fed6a9c2cb0e8ced36c5102c0", + "4be468949bce221b4d2c8918510aef8502382667", "manual" ], "wai-aria/grid_rowheader_readonly_true-manual.html": [ - "ff601c967bd5b0e738bdb14904a5497f34a16a19", + "70bf1009bbdfe23edec4904631c1619c596e5b48", "manual" ], "wai-aria/grid_rowheader_readonly_unspecified-manual.html": [ - "4a76a804a411a15dcfbb1a6a8fb18bdfc2fb081f", + "4f0e5ca22061d60117b3a9ba1ba0d912f1495a41", "manual" ], "wai-aria/grid_rowheader_required_false-manual.html": [ - "94fca0c3ef551d6d31d857e6d512963810e67992", + "63136f3c7b01adfbb2674fe0626bef5dc97f8ed5", "manual" ], "wai-aria/grid_rowheader_required_true-manual.html": [ - "0649b9eb897fe2eb8967efb9d5332ef8e229c03d", + "1d69644d4a256c3a86dba4d8cf305bf3689d0071", "manual" ], "wai-aria/grid_rowheader_required_unspecified-manual.html": [ - "dc4c36552e7c006db645ee0463a12675a3e0b466", + "50a4f4995f11a6b92e3641853aa3ccfa4dc8ec21", "manual" ], "wai-aria/gridcell_aria-colspan_2_on_div-manual.html": [ - "535e5db06891cf95856c2f3c18b40f5cdfda54cc", + "25067f7097c864aeda4eefe26f5be4bd325863af", "manual" ], "wai-aria/gridcell_aria-rowspan_2_on_div-manual.html": [ - "4b70f3c790eeafdf4519ca117d5636da75818329", + "010d88a933289303f232113e4e8f8622c8003598", "manual" ], "wai-aria/gridcell_colindex_4-manual.html": [ - "e50950807c28c596da8498af6d5d6ad9813f8078", + "275b56786a7ae31e07d6402584e42a4bdb29bbe3", "manual" ], "wai-aria/gridcell_rowindex_4-manual.html": [ - "a46ee5749847f5f7108f36bf94ab3cd68cc4b9da", + "64fa525a32345da709081cee13a81fc792c7c6c3", "manual" ], "wai-aria/group_hidden_undefined_element_not_rendered-manual.html": [ - "805ba51c4386fd6f55afefd2e6aae82914c4175d", + "763f3cd871e5d962475d51c7c731c320771da71f", "manual" ], "wai-aria/group_hidden_undefined_element_rendered-manual.html": [ - "38b5fbf5a7dd587667a0b37183f8a7ae898f05cf", + "49c532fd3f0f4860e824de0724d8b4a242f11787", "manual" ], "wai-aria/heading_level_unspecified-manual.html": [ - "7c2d392ee98849fe06f98274a2619c0a784f9b38", + "fb9281071562532515626298f454cb34df3ea103", "manual" ], "wai-aria/keyshortcuts_multiple_shortcuts-manual.html": [ - "af486cbc3db878e822c3fbb96bf036e6852cec5c", + "05a59ef67203ab6071e92c089c9dd827569aec54", "manual" ], "wai-aria/keyshortcuts_one_shortcut-manual.html": [ - "b3c04b5e58ee1526ef5f5e258ca90a582799dda4", + "4450737fa1d041dfade64fbcb53b52a5b3b15509", "manual" ], "wai-aria/listbox_busy_false-manual.html": [ - "1377c99b925c23caf6919f4374027b0e5ba257b2", + "c21fef7b779240d7b453c480590685a0558c4eaa", "manual" ], "wai-aria/listbox_busy_true-manual.html": [ - "2a5abfed2c9d72cc892cc49b797a46fde695e5f0", + "590263880933fbd11c7a23be0d4f79805e2736de", "manual" ], "wai-aria/listbox_orientation_horizontal-manual.html": [ - "7f17844c821b26318f93b7cf76452f8acc2b3b0d", + "1e94ef3f3433847c24e19c5bbabb19c89b5cf47c", "manual" ], "wai-aria/listbox_orientation_unspecified-manual.html": [ - "2d5b3c0dec5a14a3d9e0af254206ef87ee337771", + "19be848a27f51882c242e2926829ffdfd6402557", "manual" ], "wai-aria/listbox_orientation_vertical-manual.html": [ - "8a1c0a060d79ba685d3d0b9620defb605c6f62ff", + "d61e7e5f80b898f33e098cd988928743e66e02e1", "manual" ], "wai-aria/listbox_readonly_false-manual.html": [ - "ec9dae486305791c724211354861638a247dc26c", + "6215aef6018d0bd2e96d8268c22f4e0e8b6470ce", "manual" ], "wai-aria/listbox_readonly_true-manual.html": [ - "42e0b509269e688918e3a841f060aefd69df2169", + "2a4c68f94c86705c977964a66b04ec9d77a76991", "manual" ], "wai-aria/listbox_readonly_unspecified-manual.html": [ - "1f541372495802bfa03caf45003005ae891948d7", + "9730fa266f511e3fbe81571164bf6fd4ccbfc0af", "manual" ], "wai-aria/listitem_setsize_-1-manual.html": [ - "b167105f60636d5ffcaaf500bae1edc88854465a", + "4cb58997c9ae4020f9bb93f7ae1b135f09ffd7a9", "manual" ], "wai-aria/menu_orientation_horizontal-manual.html": [ - "020ef03f1ecbd6606e90c386ef4462c831c96732", + "b9486b82f7021651631cd6b245a4a15dcdf76d36", "manual" ], "wai-aria/menu_orientation_unspecified-manual.html": [ - "6850c3782b82c247edc598d7229f4f1a7724330f", + "478c8468afce0cd6382d49c047e33309cfbb54f8", "manual" ], "wai-aria/menu_orientation_vertical-manual.html": [ - "0c8f0918aca79b7e517e26b893e1d1b6d69be5ca", + "644f6a7babf3dedecc6fcbece2b064d95108d583", "manual" ], "wai-aria/menubar_busy_false-manual.html": [ - "c82d5db7dcd0c1312c3d57193254d01e7d72ce86", + "5b784f29769a9cfc42fd6f9fbd9693d3539e0378", "manual" ], "wai-aria/menubar_busy_true-manual.html": [ - "7bbc9132c65d46d9198005a85118ea3b720a1a13", + "1f94737f35e78a4ab28ec77254e28b88e5db60c7", "manual" ], "wai-aria/menubar_orientation_horizontal-manual.html": [ - "80f7701f1dffe4a31cd107aef16737dc7f21a34d", + "562009d3e450ffa6f17d13569ec685c53b349be7", "manual" ], "wai-aria/menubar_orientation_unspecified-manual.html": [ - "588ca28c4c24def8245bd5b5769496103dfe9abc", + "7b643abbfb79a718239c7b7501142660a0ffeab1", "manual" ], "wai-aria/menubar_orientation_vertical-manual.html": [ - "14bb2ca607953ee28c791e7fd0ecf19bc190758b", + "38cf7ac0a2da58bac662dcab5829bbf4a7cef7f5", "manual" ], "wai-aria/menuitem_posinset_and_setsize-manual.html": [ - "c55bb72e414f3ddbfd22ba5cf99bc109e5c980ac", + "4e1c0df0ae26392881e673ed3e597025dcce9a43", "manual" ], "wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html": [ - "4553c3a159771357f5a622e982e95435c9eb93e4", + "c1a11ea5d6a8f68216302b0f28706f35b2d937d5", "manual" ], "wai-aria/menuitemcheckbox_readonly_false-manual.html": [ - "4042fbf1d8ebfdc4357f209bbd85e8af9c73830e", + "6bf1377e5f89d1b675b6882d00818898c507e77c", "manual" ], "wai-aria/menuitemcheckbox_readonly_true-manual.html": [ - "30171ccd6e2c017e1c9595fe7cae11e2390facad", + "cd6ed1a83a7fb54651d695f1bdf70e457b803c77", "manual" ], "wai-aria/menuitemcheckbox_readonly_unspecified-manual.html": [ - "90858a2d3807fa9aaeb86a22d1f9347c0b7f18d1", + "7d78d89134691a360ca4c8694deaa44bbac47152", "manual" ], "wai-aria/menuitemradio_posinset_and_setsize-manual.html": [ - "d8b534c359b59241693f89624016aa284a044504", + "f3acf611309ac104e28d8f5de9dba682e2103354", "manual" ], "wai-aria/menuitemradio_readonly_false-manual.html": [ - "f1a615fcb66aaadbc8ebd2ccc51c71d405ef7a99", + "d8fcd51120ecf49dc423a8ce4db1b5960a55f9d7", "manual" ], "wai-aria/menuitemradio_readonly_true-manual.html": [ - "bcc2a14a9758cf50a09842f39e04dfe5eb88aca2", + "2236c83482e0b0e4374880452f96a1316565d7a4", "manual" ], "wai-aria/menuitemradio_readonly_unspecified-manual.html": [ - "240c09ed186cffe1a27b66c6fea18bbf834bac97", + "7926d65dc6e034524ea46553aeee03b671494a8e", "manual" ], "wai-aria/none-manual.html": [ - "ac3b80213f6e3f32731907e027aab65bed17bcca", + "005e4f982bbcb5d23a79383d50418fcfb05c8cd6", "manual" ], "wai-aria/option_selected_false-manual.html": [ - "5639b60eb2e929c4b9f5cc23a25576da6a8a0a08", + "5a27d0b83878d76f9718a1c630e90f36da581f96", "manual" ], "wai-aria/option_selected_true-manual.html": [ - "3647d9da8c16d2905aa93fe18cbc1fb14942e431", + "ac88cde0974d7f689f222b525dbdbc49644597a0", "manual" ], "wai-aria/option_selected_undefined-manual.html": [ - "e667c7bb74260d04128bcf89c43569a4dbc579d9", + "bd4f2244e9dee99e9d28ba535e94d5f5cffb4f4f", "manual" ], "wai-aria/option_selected_value_changes-manual.html": [ - "f8f3b18dc5cc45f2a00d5c161569a109511543d8", + "4b88c894f9eb92b701de56c72f833da11ebf82fe", "manual" ], "wai-aria/radiogroup_orientation_horizontal-manual.html": [ - "d4b59488ea142fa84698919ba00d7e6c39680abb", + "6fb68f322c3370a8cf27df1f195103225891d437", "manual" ], "wai-aria/radiogroup_orientation_unspecified-manual.html": [ - "fe639588f16cc6202a3d765c12d9ea5cbe4ea034", + "ec071b1efdb5e8adf0004058d3f37005bf7e0614", "manual" ], "wai-aria/radiogroup_orientation_vertical-manual.html": [ - "575203e25857605f0f3076925b636e203c0a4985", + "7096f085928618c5d9aba1824ddaa61691d8403d", "manual" ], "wai-aria/radiogroup_readonly_false-manual.html": [ - "bd779e93fc3708db72848dd4d95938bf25f5eaf7", + "921d0141f6783c0efbff6629bf1b1857053b421e", "manual" ], "wai-aria/radiogroup_readonly_true-manual.html": [ - "72f4ddf0cfa0bf49d40d50911a564668a7c849d6", + "7b0de053f6808aa7dc42862f3a56c6be11534868", "manual" ], "wai-aria/radiogroup_readonly_unspecified-manual.html": [ - "650e661bfdeb4428f9e92ab218e1596fd0cda64d", + "d3c809e855dd926d159211b8492adc433f76e5e0", "manual" ], "wai-aria/region_with_name-manual.html": [ - "d85fd90f06f86aeabe4c95996e3f913400dd21e4", + "bcdb5ba7f53fe1ec265b8916cea081c8404f1c0a", "manual" ], "wai-aria/region_without_name-manual.html": [ - "2178f5fa7d48ace5f56852304f392e34bd0fb00e", + "7813ef502cf9d2bf19e32d4d90309fd11b63a7aa", "manual" ], "wai-aria/row_colindex_4-manual.html": [ - "09edc18410efb6f66b210dbb81818ca327969ad9", + "c12a67be6cfea9644a098650f2f24b6ad337a2bb", "manual" ], "wai-aria/row_rowindex_4-manual.html": [ - "16a9f0d13d7e219d791a33313f484cea1d6a773a", + "e9b43b20553dc2bcf96b4d748ea406da7a23f780", "manual" ], "wai-aria/rowheader_aria-colspan_2_on_div-manual.html": [ - "12a854c7835f358ffb82ac2337415b5a0a8a768c", + "dbef0cd0578126a0824fc7aef4eb78c0e181769a", "manual" ], "wai-aria/rowheader_aria-rowspan_2_on_div-manual.html": [ - "b3653a6ac91d31a7fc73506afa8ae914b6dfb0f0", + "83e110d8ba40814f2fe4c1f05d28b8836a78fb96", "manual" ], "wai-aria/rowheader_colindex_4-manual.html": [ - "4b1095a3c7bbdbee01d208d909bceb1921d80fa5", + "07824fc0abe1723ba0088435047ac926081546e5", "manual" ], "wai-aria/rowheader_rowindex_4-manual.html": [ - "4a447def2f3f8c03ffa56352edb37b976a8ca340", + "8d691e8758b61ded2041f8d2c55c85c30e1533ab", "manual" ], "wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html": [ - "8abed2e46a404cce830afa5a3d0a2775a3c009a7", + "f40306ce25f9c5a7dc7f08ed9a4c0d536e481ba4", "manual" ], "wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html": [ - "d3def9e0ef906b28ea702bef37f529318c8133f5", + "c110ccc314a93a4824cc2f8cc8d24f92c334199f", "manual" ], + "wai-aria/scripts/ATTAcomm.js": [ + "7a936a4c34d8d579013e1fd24e01e3a7103bcafe", + "support" + ], + "wai-aria/scripts/manual.css": [ + "093f7de0f2983e878ce88189b9e73d3a831de985", + "support" + ], "wai-aria/scrollbar_all_values_unspecified-manual.html": [ - "c7bfcf35db82ec42822a129b40c0b26524931b95", + "5abf9c5b4e66a106ead1eadefca0557f4947f061", "manual" ], "wai-aria/scrollbar_only_valuenow_unspecified-manual.html": [ - "1436d040a20ec38e3493ab85df9110f81b468a1c", + "09e7a2d0c666bd3e4bd9b0a879552119dab9ebe6", "manual" ], "wai-aria/scrollbar_orientation_unspecified-manual.html": [ - "513a2cdd27dcd8ae2e3073ce2eff0e6b852e313c", + "ff7005258d71d406b25e47070834ec0b07343885", "manual" ], "wai-aria/searchbox-manual.html": [ - "69a89a2c6674f3994b24fa1a7cfebeaef2ff938e", + "0de383cb2d7006576ba35820e66ceebf61863b89", "manual" ], "wai-aria/searchbox_activedescendant-manual.html": [ @@ -218773,263 +219709,271 @@ "manual" ], "wai-aria/searchbox_autocomplete_both-manual.html": [ - "ceec0aec25373eea8a1255d7c508fa85534ff5b9", + "d4971a47affe10b0fe5190490133cda5ac684aa5", "manual" ], "wai-aria/searchbox_autocomplete_inline-manual.html": [ - "17e69cb6a6e9aded2485c2c064ef4879a45f4164", + "d414f30c7dc2bb550c3eee5f10348cbbdd3f6464", "manual" ], "wai-aria/searchbox_autocomplete_list-manual.html": [ - "9f881f8b334a36141363498d86a1d7327c97060a", + "2fca051241d1df58b2c3d347a8cfa92def3f5b8e", "manual" ], "wai-aria/searchbox_autocomplete_none-manual.html": [ - "f2ad6734ded2a347cb32411f2d26d9c74f2b9c61", + "f48dc9f956a21f6de288f18fabdf62aa0cd8988f", "manual" ], "wai-aria/searchbox_autocomplete_unspecified-manual.html": [ - "492f3c3d8f1a1c2bb5bb2a39af99333de8119cc8", + "62c8669ee84ee2e41fac3ba0f7f508b1287d3bca", "manual" ], "wai-aria/searchbox_multiline_false-manual.html": [ - "2bc9db01cccb25a94add5c6a4b469ce38c32e713", + "8925514b998791a401e5d7057a09f8704d20e081", "manual" ], "wai-aria/searchbox_multiline_true-manual.html": [ - "35684d76a3c45e1355984bfe516d40d71b6424e6", + "c3edc4db1f3771e9c4052eaa20290417c862557d", "manual" ], "wai-aria/searchbox_multiline_unspecified-manual.html": [ - "f1643f9c47f61f98ed28483bd9b3cb1ebcebacdf", + "0a95f460836d8cf3b74b29a99da2040a142a409e", "manual" ], "wai-aria/searchbox_placeholder-manual.html": [ - "c7915eadb230631a11b326fe6a3045992ca11468", + "27e545c161a89de25268a5e3a316a2743ccb0027", "manual" ], "wai-aria/searchbox_readonly_false-manual.html": [ - "220bcf0b6de7e4ea38f14c63f5b035ad8c90b126", + "e7843da9128a39a93b83a97e06c046f6b4b7f494", "manual" ], "wai-aria/searchbox_readonly_true-manual.html": [ - "6333c8a2fe903d0dd528c17c255b474158d21230", + "f5045cdf606ccdaf85047b37674437ed12fcc778", "manual" ], "wai-aria/searchbox_readonly_unspecified-manual.html": [ - "2706af2015509abaa4f8a96506a9b394dd24801c", + "7962346d46ef428826f3286b446e62328aacdf4a", "manual" ], "wai-aria/searchbox_required_false-manual.html": [ - "96561ee3eeb254a17cf4e0665ccb78bf1362ea02", + "1348c650dc9117cde518a541b228d61878a1628a", "manual" ], "wai-aria/searchbox_required_true-manual.html": [ - "67dbe2e78c059e4ae018194f5ac3ea22cc5b274b", + "968edf9cca483de64a10e4042188394fcc1bf20a", "manual" ], "wai-aria/searchbox_required_unspecified-manual.html": [ - "216e258bd53649bf2703c586858471ed30f122e7", + "25cd28c00c19ecec1fe2e2f35c6b77c782472464", "manual" ], "wai-aria/separator_focusable_all_values_unspecified-manual.html": [ - "36c88bd5c4316bdfde84c5ff5113863df302a286", + "b0ae5eea6d4c786c78e4983b7410b25750070762", "manual" ], "wai-aria/separator_focusable_only_valuenow_unspecified-manual.html": [ - "06260be143c42b51ad13fda1cf050fd47c167fc0", + "e4f6b409e75ed0fd6f217ec3d09fa4b2b9f85b07", "manual" ], "wai-aria/separator_focusable_valuetext-manual.html": [ - "a3bd39904d064ea3822558ccd1c9ca473961219b", + "b3c3280d13620a0eb16c11eb99fd0ad727ee65fe", "manual" ], "wai-aria/separator_orientation_unspecified-manual.html": [ - "d62a3821d9b02a735b397a599843b665cccebc90", + "5058603cf64a799bee96ddfa6ba25d5382d2962d", "manual" ], "wai-aria/separator_unfocusable_all_values_unspecified-manual.html": [ - "5e129d2319b57f7d86b0a04cb226d179a330f907", + "351cb43fb0a5b7259f20af99f799d26b61eda917", "manual" ], "wai-aria/separator_unfocusable_valuetext-manual.html": [ - "93c6b47e0cc9689cce539a940eb1cdcba82ebfd5", + "196679826f29a8c2f35688d286ab96739ca89fd9", "manual" ], "wai-aria/slider_all_values_unspecified-manual.html": [ - "90ebac88d3f22a87378698cea51fa09452b76469", + "676af2418ba5e2d81b40c1163fce968c4e09271e", "manual" ], "wai-aria/slider_only_valuenow_unspecified-manual.html": [ - "dcaa79500ad30ba8fba3f194b578f63bf8755acf", + "e680b6db19d9e20f343662fe8cad18f2127969eb", "manual" ], "wai-aria/slider_orientation_unspecified-manual.html": [ - "48069859c3bd20aabcffedb1edbab2a370dd9b3f", + "be4d713d88e3b5a695ee72d405ed5a7a6fef20b4", "manual" ], "wai-aria/slider_readonly_false-manual.html": [ - "861fcfcafdf59d381177a5bb5946c6f54a3da49e", + "1f28f53f85f09ccbd1fd6d29006b52137b1a6e42", "manual" ], "wai-aria/slider_readonly_true-manual.html": [ - "b8b33452767ef838a17876d7e215abda33af1795", + "7da49fd65f5e7125e16ac11c72c1089343dac280", "manual" ], "wai-aria/slider_readonly_unspecified-manual.html": [ - "ba1b3920b40f1acdf26a7ab6a31ab9ea26f5bbd0", + "3f30636e9d9a66c4b05c93f97cd07b5df1ae3ab3", "manual" ], "wai-aria/spinbutton_all_values_unspecified-manual.html": [ - "d7e6862b38f714424aecc21dc838697fe09d7912", + "6c8b07b26d43d0758022ae98b7d0a4948f3774b2", "manual" ], "wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html": [ - "5c164b3834cf10846e920e83487039f1b9c26d8a", + "e37e9e695b4994d65e404736f615cc1ca3aa8e43", "manual" ], "wai-aria/spinbutton_readonly_false-manual.html": [ - "2423f721a79e4a0078179b7f0d3f4f6ef0eb6334", + "57ab040f5916928f561ca8aa670ced4759a1dd3b", "manual" ], "wai-aria/spinbutton_readonly_true-manual.html": [ - "ce33688754649c0478a2bed417c3ebede3da6bd2", + "7a8fc228f516d5c9b66af0c927f8cc05430fd351", "manual" ], "wai-aria/spinbutton_readonly_unspecified-manual.html": [ - "ae0499cdda8e51f1e514a37dd42a1f668a6f0fca", + "a1a2fc5e6ad54304c05fb920dab84a49600f4076", "manual" ], "wai-aria/switch_checked_false-manual.html": [ - "34d619b1c380fd3b5e0a8196e1f8cf1ded2565da", + "fa15dea1f4b4bc7b1aac5035f732920326e97f8f", "manual" ], "wai-aria/switch_checked_mixed-manual.html": [ - "ac8deb477f3f0dbd9b15d066aa5fedf7303155d6", + "d55ea8551ab16c8d6d0a1cfb1a8c0974c87204cc", "manual" ], "wai-aria/switch_checked_true-manual.html": [ - "89762ad8710d61af6f02dc47d2d0cb85278e5a0f", + "baf1617beea35eb2f42ed1597ce6393f2bf8efc0", "manual" ], "wai-aria/switch_checked_undefined-manual.html": [ - "43dfbc3fed1773110b780bc9d8a8b001ab0bf522", + "c25629284a5acd599d91d9543a2a2eeee3a717de", "manual" ], "wai-aria/switch_checked_value_changes-manual.html": [ - "7eabfd644e607e92298e449a02376aee38623f71", + "4d74746193097d0a8967f1472c7e96bc122b8448", "manual" ], "wai-aria/switch_readonly_false-manual.html": [ - "b80fb7d4726566e0bd111e4ad5a2e17c72c19a22", + "577993a64256c0894c2ed28fdc50781ac27ce04f", "manual" ], "wai-aria/switch_readonly_true-manual.html": [ - "432d55a0b9943f9d44641e73bbf94c4d346882be", + "efc96c374cf33423b49230ea5becfa6ac3d16262", "manual" ], "wai-aria/switch_readonly_unspecified-manual.html": [ - "7b491505435f6ce21bea99acf817d5f8452793ce", + "816bafc802bced572c214c8ab425296ab84789f5", "manual" ], "wai-aria/tab_posinset_and_setsize-manual.html": [ - "0a81f2ec8a073a4aa4c9b2262bf3b894500a7d85", + "b606c19cf6c391c742d8e1d23f8f30a4942d435f", "manual" ], "wai-aria/table_colcount_-1-manual.html": [ - "767517c0b13aa5738caca739fac835255495b552", + "3191280d919405a6a0b56c537f05f426d7d2d7bf", "manual" ], "wai-aria/table_colcount_8-manual.html": [ - "10ef7ce22ebdbff6b82408bff4ea269b22a84cfe", + "9a263ba91a7375fdf1799f5ea03ec3b14d25b11d", "manual" ], "wai-aria/table_rowcount_-1-manual.html": [ - "c1b42be4c24652dbab05bb6e1b21705b679f80f2", + "50b92fe86ad84be6bc1c9d5bf0143717f3718d19", "manual" ], "wai-aria/table_rowcount_3-manual.html": [ - "59ff2493b3107e6e3832bc116087fc25a1f4cdfc", + "d0c20a2d7a1bfe77db3dc1b4763e5ec8383373e3", "manual" ], "wai-aria/tablist_orientation_horizontal-manual.html": [ - "65b14b357bfadb29334f7e0b4d327387f00b16a3", + "3951505d891a1a30aa9419be6440b877f823e26f", "manual" ], "wai-aria/tablist_orientation_unspecified-manual.html": [ - "9fe1319decbd2959c7edee1729781b7c7714cfa3", + "3f87b5f653114ff83de54c772302386ea8b5fa6c", "manual" ], "wai-aria/tablist_orientation_vertical-manual.html": [ - "b42ccf2e219954234e715c67702e6161738c74c0", + "04b81f2596bca71ee915c0fea22f62c05735eb5f", "manual" ], "wai-aria/term_role-manual.html": [ - "9b94e2327fdcb8f0812931fb4beef1a820ac73bc", + "e30e255a9a38c567632d9ad4b6eae652a0c7fd70", "manual" ], "wai-aria/textbox_placeholder-manual.html": [ - "0d62d1d8d51380f76df1cb292560946af5acc117", + "e6e613dd04ab2be24fcfb3c04439e72694bbbe34", "manual" ], "wai-aria/toolbar_orientation_horizontal-manual.html": [ - "c0d179f4aa923ceb79a3d6b6f2c709c08bff6d1b", + "e73f1accfe2a6f7363e7828a60eff9e6297727d9", "manual" ], "wai-aria/toolbar_orientation_unspecified-manual.html": [ - "5291a72ec14d159b5ac2a9ee98faf8f49fff25db", + "55eef19b3b47b045d87d6a1d9766e9f0a275b055", "manual" ], "wai-aria/toolbar_orientation_vertical-manual.html": [ - "9a997719c1f7056de7effc8bf6715a5542ba328e", + "c4cae7a5ffd8e51778f8431684f8ee07a26fca06", "manual" ], + "wai-aria/tools/convert_wiki.pl": [ + "808a7a8b210e0118ae5d0c3035cd38375ee95b84", + "support" + ], + "wai-aria/tools/make_tests.pl": [ + "0166ff57152e4b1acc9db0ad5e2853613bac2a80", + "support" + ], "wai-aria/tree_orientation_horizontal-manual.html": [ - "ced3f1f1877a379e2838e768faf301156eb0d21b", + "6b2563e7f29ca7aada9fa96988cccddd379cdaf3", "manual" ], "wai-aria/tree_orientation_unspecified-manual.html": [ - "314a725577dcb0f1353976149bcfa4320348771d", + "8c7182ca1a52daaf36d450751332c30f51d5018b", "manual" ], "wai-aria/tree_orientation_vertical-manual.html": [ - "1b6c426e4c296d51fd37e882360a99b9177c9dec", + "b09f9d7c54c3717198553178df9679f7f6d1a889", "manual" ], "wai-aria/treegrid_colcount_8-manual.html": [ - "93141db40bf34a33833917c3679a21facaef3b54", + "e01aa8494dad96ee52fe798768758c4e4fabdcb5", "manual" ], "wai-aria/treegrid_orientation_horizontal-manual.html": [ - "d47fc7b4534e78d6740caf2f184a9682cbea9551", + "ec787bf61b415949f79dc0e3a4ff327ce326f9b0", "manual" ], "wai-aria/treegrid_orientation_unspecified-manual.html": [ - "314b5fba7dbf05874c87ed583707a256a0c48e95", + "4314603f45287d36af965fc08c254b731e374d08", "manual" ], "wai-aria/treegrid_orientation_vertical-manual.html": [ - "a010eac09cba60995983bce684eef3dffdd2b173", + "aac9062cd2beb489325d12929ce6271792b6e9a0", "manual" ], "wai-aria/treegrid_rowcount_3-manual.html": [ - "05e99e92cb0a8661fcc6ca9e4073814995e1e335", + "c13bd1590bd138a9fc8b4b2e68b3c02c22916be5", "manual" ], "wai-aria/treeitem_selected_false-manual.html": [ - "306b11914f05b8aba7373e4b8d098940436f0628", + "5f47782f253083d694e574662be46b7f4cd0e042", "manual" ], "wai-aria/treeitem_selected_true-manual.html": [ - "840111cebbbae4c1f7145151f6286c77f43e59c4", + "91341d36056973a3e446a58798d8e5a6693d3403", "manual" ], "wai-aria/treeitem_selected_undefined-manual.html": [ - "3e12ca040cd5b1fc5230e8c98ac84b4e98794de2", + "8924f1b2deb4239056b8c008bf58baec675ef4df", "manual" ], "wai-aria/treeitem_selected_value_changes-manual.html": [ - "ff1dff851d96bc1bbee1821b958c9220868dc1d1", + "9cb6b12c4743d4a177ad44e62dae6e5ede3bdb78", "manual" ], "web-animations/OWNERS": [ @@ -229144,6 +230088,14 @@ "629bb3f606b84cd201cff2ad420a736f019c0395", "testharness" ], + "webmessaging/broadcastchannel/origin.window.js": [ + "7f906e51a34a5ee36c7407e3d0104c1bfb0c12bb", + "testharness" + ], + "webmessaging/broadcastchannel/resources/origin.html": [ + "480c3aec73713c46808a1345d9f7199896fedb94", + "support" + ], "webmessaging/broadcastchannel/resources/sandboxed.html": [ "19db2a3048a9599dcfc488534fce65bc2a34b6ad", "support" @@ -229501,13 +230453,17 @@ "testharness" ], "webrtc/OWNERS": [ - "e7b3745ccd77b56023dedda83488a9b77327dffe", + "09e504a3a962ae66b41666057d545ffc41adf8d0", "support" ], "webrtc/RTCConfiguration-iceCandidatePoolSize.html": [ "9551402aed448bf6abde4aa815d174ba321cc655", "testharness" ], + "webrtc/RTCDataChannel-id.html": [ + "28ce3983bf04db02c62ed29b332a4a4b612affd2", + "testharness" + ], "webrtc/RTCDataChannelEvent-constructor.html": [ "8a8b30a23abddb5d11a802fead534fd56aacbb62", "testharness" @@ -229521,7 +230477,7 @@ "testharness" ], "webrtc/RTCPeerConnection-createDataChannel.html": [ - "4e46c66c535a49573a3400355dde79b63f7b95d6", + "025b3ac2230499375796145bdbcc3a9274a41605", "testharness" ], "webrtc/RTCPeerConnection-iceGatheringState.html": [ @@ -230441,7 +231397,7 @@ "testharness" ], "websockets/opening-handshake/003.html": [ - "e42909561f03341ab160dddb541fc27842ab79cc", + "5bab98fc3a872927771fb59101f6c3c3b6d5423e", "testharness" ], "websockets/opening-handshake/005.html": [ @@ -230756,10 +231712,42 @@ "e455416b72ce1b90a3b82b3fb44c57fba19f29df", "support" ], - "webusb/idlharness.html": [ + "webusb/idlharness.https.html": [ "e402105766a837cd26f6d020663ec4b50b757f86", "testharness" ], + "webusb/resources/check-availability.html": [ + "0c6ef6ab90dab93dde9577cdf1751c3df1e8e52a", + "support" + ], + "webusb/resources/featurepolicytest.js": [ + "a28b28b34371aaae8af41e4ba562fa98cfdf1f12", + "support" + ], + "webusb/usb-allowed-by-feature-policy-attribute.https.sub.html": [ + "37d342e708981b147904fb315f2b2d030ecab613", + "testharness" + ], + "webusb/usb-allowed-by-feature-policy.https.sub.html": [ + "8784cbaba39cd8ebafe22aae0438f54f88f8f288", + "testharness" + ], + "webusb/usb-allowed-by-feature-policy.https.sub.html.headers": [ + "a579c20e4a57dc30372470c685922e6a973a6d84", + "support" + ], + "webusb/usb-default-feature-policy.https.sub.html": [ + "c1e4f73710447815cc36edfc01d2c221b35a954e", + "testharness" + ], + "webusb/usb-disabled-by-feature-policy.https.sub.html": [ + "852f9e5816750a4f79e6205a46437977f15ef90f", + "testharness" + ], + "webusb/usb-disabled-by-feature-policy.https.sub.html.headers": [ + "c8b3c972c90674c75d652a31a8d0b28eec8ca6e7", + "support" + ], "webvr/OWNERS": [ "adb04954bffbb33f29864668db95f5c5367d6a05", "support" @@ -233657,7 +234645,7 @@ "testharness" ], "workers/Worker_ErrorEvent_error.htm": [ - "975ca8b575fb2f616623b810696287513b164d2d", + "9837be29024b23c182beae9d7722b9a3ce5f3a30", "testharness" ], "workers/Worker_ErrorEvent_filename.htm": [ @@ -234192,6 +235180,10 @@ "6bffa3be83d81e2faa93119e710e4fee93fb855e", "testharness" ], + "workers/name-property.html": [ + "762b7b4b65503e599560829675a1df07a61dd566", + "testharness" + ], "workers/nested_worker.worker.js": [ "04898c40ac4ff943cc83674ca6126464513abbd6", "testharness" @@ -234317,7 +235309,7 @@ "testharness" ], "workers/semantics/multiple-workers/001.html": [ - "aebec8535ae8a7bff4fa7f1193f3a48160657692", + "7964de6af3e4ed62b14b2484fea746538ef05ca1", "testharness" ], "workers/semantics/multiple-workers/002.html": [ @@ -234449,7 +235441,7 @@ "testharness" ], "workers/semantics/xhr/004.html": [ - "8c9efbc2db75e31605faf263b2ce980252eebbff", + "6846800e9503f339b410608d682dc0976a300da0", "testharness" ], "workers/semantics/xhr/005.html": [ @@ -234472,6 +235464,10 @@ "2c7e385c9ff3066201cc891e589f96ceb50484c0", "support" ], + "workers/shared-worker-name-via-options.html": [ + "78a93e663e1abb37a044ac0934c4ab2ed2c501a9", + "testharness" + ], "workers/support/ErrorEvent-error.js": [ "81db7dd9c9cb9ebbe2bf46629dea976cc6190689", "support" @@ -234528,6 +235524,10 @@ "b0e679dd7720701364abeaca6870d94db5d7ee74", "support" ], + "workers/support/name.js": [ + "af3a704319d8ee15cf7df2638e4c2c5e59af2403", + "support" + ], "workers/support/nosiniff-error-worker.py": [ "aa81cbafc77ccc9407cba3ac0bd4498e5076bf2b", "support" @@ -234535,6 +235535,10 @@ "workers/support/sandboxed-tests.html": [ "89547c85b03f401be7cfc0c29251d5bc55236e44", "support" + ], + "workers/support/shared-name.js": [ + "671ecb263ceb15ca28ef9cfc2ee6efa6e08a70fb", + "support" ] }, "url_base": "/", diff --git a/testing/web-platform/meta/mozilla-sync b/testing/web-platform/meta/mozilla-sync index 84f82abeb257..d8d389f87706 100644 --- a/testing/web-platform/meta/mozilla-sync +++ b/testing/web-platform/meta/mozilla-sync @@ -1,2 +1,2 @@ -local: 0b255199db9d6a6f189b89b7906f99155bde3726 -upstream: 72d174747fe176cbefcba315b445fac99d3dbfb2 +local: baf05f61bc14fdf45511bc1165ce76daa08c5c0f +upstream: bd9c09a11fe2ef9e4718c820bec5599666d3f7ac diff --git a/testing/web-platform/tests/.gitignore b/testing/web-platform/tests/.gitignore index 2ae64ff07d72..e92e0808d4f6 100644 --- a/testing/web-platform/tests/.gitignore +++ b/testing/web-platform/tests/.gitignore @@ -14,3 +14,4 @@ webdriver/.idea .vscode/ .DS_Store *.rej +_venv diff --git a/testing/web-platform/tests/.travis.yml b/testing/web-platform/tests/.travis.yml index f413d82fe00b..05c97d9bccce 100644 --- a/testing/web-platform/tests/.travis.yml +++ b/testing/web-platform/tests/.travis.yml @@ -12,6 +12,8 @@ addons: - www2.web-platform.test - xn--n8j6ds53lwwkrqhv28a.web-platform.test - xn--lve-6lad.web-platform.test + jwt: + secure: N9lvgkqUPtFlz6Vpa6qTPFhymEsDCsbaCsT64/hj3vlHRxK94r5+ugVJ3zm99zC0q2j1ish8yJC7mN/W4wRfBE4sAwmdxrlowxF1DDGCkaLE9i/GWW92s0fBVGJmXLh8kwNkQ31hMOsaGfHIMpeLFS7Se741te7YqsHIzmBCdQs= before_install: - git submodule update --init --recursive - export DISPLAY=:99.0 @@ -20,6 +22,8 @@ install: - pip install -U setuptools - pip install -U requests env: # required at the top-level for allow_failures to work below + global: + - SAUCE_USERNAME=w3c-ttwf matrix: fast_finish: true include: @@ -52,6 +56,16 @@ matrix: env: - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" - SCRIPT=ci_stability.sh PRODUCT=chrome:unstable + - os: linux + python: "2.7" + env: + - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" + - SCRIPT=ci_stability.sh PRODUCT=sauce:safari:10.0 PLATFORM='macOS 10.12' + - os: linux + python: "2.7" + env: + - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" + - SCRIPT=ci_stability.sh PRODUCT=sauce:MicrosoftEdge:14.14393 PLATFORM='Windows 10' - python: 2.7 env: TOXENV=py27 HYPOTHESIS_PROFILE=ci SCRIPT=ci_unittest.sh - python: 3.5 @@ -59,7 +73,7 @@ matrix: - python: 3.6 env: TOXENV=py36 HYPOTHESIS_PROFILE=ci SCRIPT=ci_unittest.sh - python: pypy - env: TOXENV=pypy HYPOTHESIS_PROFILE=ci_pypy SCRIPT=ci_unittest.sh + env: TOXENV=pypy HYPOTHESIS_PROFILE=ci SCRIPT=ci_unittest.sh exclude: - env: # exclude empty env from the top-level above allow_failures: @@ -67,6 +81,9 @@ matrix: - env: - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" - SCRIPT=ci_stability.sh PRODUCT=chrome:unstable + - env: + - secure: "YTSXPwI0DyCA1GhYrLT9KMEV6b7QQKuEeaQgeFDP38OTzJ1+cIj3CC4SRNqbnJ/6SJwPGcdqSxLuV8m4e5HFFnyCcQnJe6h8EMsTehZ7W3j/fP9UYrJqYqvGpe3Vj3xblO5pwBYmq7sg3jAmmuCgAgOW6VGf7cRMucrsmFeo7VM=" + - SCRIPT=ci_stability.sh PRODUCT=sauce:MicrosoftEdge:14.14393 PLATFORM='Windows 10' script: - bash $SCRIPT cache: diff --git a/testing/web-platform/tests/DOM-parsing/todo/internalSubset.html b/testing/web-platform/tests/DOM-parsing/todo/internalSubset.html deleted file mode 100644 index cc131bbfbd1a..000000000000 --- a/testing/web-platform/tests/DOM-parsing/todo/internalSubset.html +++ /dev/null @@ -1,16 +0,0 @@ - -... - - - - - -
Results
UAResult -
Gecko<!DOCTYPE foo [ <!ELEMENT foo (#PCDATA)> ]>\n<foo/> -
WebKit<!DOCTYPE foo><foo/> -
Presto<?xml version="1.0"?><!DOCTYPE foo><foo/> -
diff --git a/testing/web-platform/tests/IndexedDB/idbfactory-deleteDatabase-request-success.html b/testing/web-platform/tests/IndexedDB/idbfactory-deleteDatabase-request-success.html new file mode 100644 index 000000000000..a44c5c244dc8 --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/idbfactory-deleteDatabase-request-success.html @@ -0,0 +1,28 @@ + + +IDBFactory deleteDatabase(): request properties on success + + + + + diff --git a/testing/web-platform/tests/IndexedDB/idbfactory-open-request-error.html b/testing/web-platform/tests/IndexedDB/idbfactory-open-request-error.html new file mode 100644 index 000000000000..5d69f57153f0 --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/idbfactory-open-request-error.html @@ -0,0 +1,66 @@ + + +IDBFactory open(): request properties on error + + + + + diff --git a/testing/web-platform/tests/IndexedDB/idbfactory-open-request-success.html b/testing/web-platform/tests/IndexedDB/idbfactory-open-request-success.html new file mode 100644 index 000000000000..0c2ab948531a --- /dev/null +++ b/testing/web-platform/tests/IndexedDB/idbfactory-open-request-success.html @@ -0,0 +1,54 @@ + + +IDBFactory open(): request properties on success + + + + + diff --git a/testing/web-platform/tests/IndexedDB/support.js b/testing/web-platform/tests/IndexedDB/support.js index 7cab067fe20b..ac9c2f324194 100644 --- a/testing/web-platform/tests/IndexedDB/support.js +++ b/testing/web-platform/tests/IndexedDB/support.js @@ -122,7 +122,7 @@ function indexeddb_test(upgrade_func, open_func, description, options) { indexedDB.deleteDatabase(db.name); }); var tx = open.transaction; - upgrade_func(t, db, tx); + upgrade_func(t, db, tx, open); }); if (options.upgrade_will_abort) { open.onsuccess = t.unreached_func('open should not succeed'); @@ -131,7 +131,7 @@ function indexeddb_test(upgrade_func, open_func, description, options) { open.onsuccess = t.step_func(function() { var db = open.result; if (open_func) - open_func(t, db); + open_func(t, db, open); }); } }, description); diff --git a/testing/web-platform/tests/README.md b/testing/web-platform/tests/README.md index 266d4ecc5967..be8cfa59a82d 100644 --- a/testing/web-platform/tests/README.md +++ b/testing/web-platform/tests/README.md @@ -70,6 +70,42 @@ like: "ssl": {"openssl": {"binary": "/path/to/openssl"}} ``` +Running Tests Automatically +--------------------------- + +Tests can be run automatically in a browser using the `wptrun` script +in the root of the checkout. This requires the hosts file and OpenSSL +setup documented above, but you must *not* have the test server +already running when calling `wptrun`. The basic command line syntax +is: + +``` +./wptrun product [tests] +``` + +where `product` is currently `firefox` or `chrome` and `[tests]` is a +list of paths to tests. This will attempt to automatically locate a +browser instance and install required dependencies. The command is +very configurable; for examaple to specify a particular binary use +`wptrun --binary=path product`. The full range of options can be see +with `wptrun --help` and `wptrun --wptrunner-help`. + +Not all dependencies can be automatically installed; in particular the +`certutil` tool required to run https tests with Firefox must be +installed using a system package manager or similar. + +On Debian/Ubuntu certutil may be installed using: + +``` +sudo apt install libnss3-tools +``` + +And on macOS with homebrew using: + +``` +brew install nss +``` + Submodules ======================================= @@ -228,16 +264,16 @@ your local web-platform-tests working directory like this: The lint tool is also run automatically for every submitted pull request, and reviewers will not merge branches with tests that have -lint errors, so you must fix any errors the lint tool reports. For -details on doing that, see the [lint-tool documentation][lint-tool]. +lint errors, so you must fix any errors the lint tool reports. -But in the unusual case of error reports for things essential to a +In the unusual case of error reports for things essential to a certain test or that for other exceptional reasons shouldn't prevent a merge of a test, update and commit the `lint.whitelist` file in the -web-platform-tests root directory to suppress the error reports. For -details on doing that, see the [lint-tool documentation][lint-tool]. +web-platform-tests root directory to suppress the error reports. -[lint-tool]: https://github.com/w3c/web-platform-tests/blob/master/docs/lint-tool.md +For more details, see the [lint-tool documentation][lint-tool]. + +[lint-tool]: http://web-platform-tests.org/writing-tests/lint-tool.html Adding command-line scripts ("tools" subdirs) --------------------------------------------- @@ -305,5 +341,5 @@ is [archived][ircarchive]. Documentation ============= -* [How to write and review tests](http://testthewebforward.org/docs/) +* [How to write and review tests](http://web-platform-tests.org/) * [Documentation for the wptserve server](http://wptserve.readthedocs.org/en/latest/) diff --git a/testing/web-platform/tests/WebIDL/OWNERS b/testing/web-platform/tests/WebIDL/OWNERS new file mode 100644 index 000000000000..7ccc510535f7 --- /dev/null +++ b/testing/web-platform/tests/WebIDL/OWNERS @@ -0,0 +1,4 @@ +@domenic +@jensl +@tobie +@yuki3 diff --git a/testing/web-platform/tests/WebIDL/ecmascript-binding/put-forwards.html b/testing/web-platform/tests/WebIDL/ecmascript-binding/put-forwards.html new file mode 100644 index 000000000000..b004bd008d8c --- /dev/null +++ b/testing/web-platform/tests/WebIDL/ecmascript-binding/put-forwards.html @@ -0,0 +1,117 @@ + + +[PutForwards] behavior + + + + + + diff --git a/testing/web-platform/tests/WebIDL/ecmascript-binding/sequence-conversion.html b/testing/web-platform/tests/WebIDL/ecmascript-binding/sequence-conversion.html new file mode 100644 index 000000000000..4caa5563b56b --- /dev/null +++ b/testing/web-platform/tests/WebIDL/ecmascript-binding/sequence-conversion.html @@ -0,0 +1,131 @@ + + +Sequence conversion + + + + + + + + + diff --git a/testing/web-platform/tests/XMLHttpRequest/resources/base.xml b/testing/web-platform/tests/XMLHttpRequest/resources/base.xml new file mode 100644 index 000000000000..ed01aeceb5a0 --- /dev/null +++ b/testing/web-platform/tests/XMLHttpRequest/resources/base.xml @@ -0,0 +1 @@ + diff --git a/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm b/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm index 18e3fb2f2b78..30bf7d037412 100644 --- a/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm +++ b/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm @@ -4,8 +4,6 @@ XMLHttpRequest: responseXML document properties - -
@@ -14,10 +12,12 @@ var client = new XMLHttpRequest() client.open("GET", "resources/well-formed.xml", false) client.send(null) + var responseURL = new URL('resources/well-formed.xml', location.href).href var expected = { domain:undefined, - URL:location.href.replace(/[^/]*$/, 'resources/well-formed.xml'), - documentURI:location.href.replace(/[^/]*$/, 'resources/well-formed.xml'), + URL:responseURL, + documentURI:responseURL, + baseURI:responseURL, referrer:'', title:'', contentType:'application/xml', @@ -43,6 +43,38 @@ }, name) } + async_test(t => { + const client = new XMLHttpRequest(); + client.open("GET", "resources/redirect.py?location=well-formed.xml"); + client.send(); + client.onload = t.step_func_done(() => { + assert_equals(client.responseXML.URL, responseURL); + assert_equals(client.responseXML.baseURI, responseURL); + }); + }, "Test document URL properties after redirect"); + + async_test(t => { + const client = new XMLHttpRequest(); + client.open("GET", "resources/redirect.py?location=base.xml"); + client.send(); + client.onload = t.step_func_done(() => { + const localResponseURL = new URL('resources/base.xml', location.href).href; + assert_equals(client.responseXML.URL, localResponseURL); + assert_equals(client.responseXML.baseURI, 'https://example.com/'); + client.responseXML.documentElement.remove(); + assert_equals(client.responseXML.baseURI, localResponseURL); + const newBase = document.createElement("base"), + newBaseURL = "https://elsewhere.example/"; + newBase.href = "https://elsewhere.example/"; + client.responseXML.appendChild(newBase); + assert_equals(client.responseXML.baseURI, newBaseURL); + newBase.remove(); + document.head.appendChild(newBase); + assert_equals(client.responseXML.baseURI, localResponseURL); + newBase.remove(); + }); + }, "Test document URL properties of document with after redirect"); + test(function() { var lastModified = Math.floor(new Date(client.responseXML.lastModified).getTime() / 1000); var now = Math.floor(new Date().getTime(new Date().getTime() + 3000) / 1000); // three seconds from now, in case there's clock drift diff --git a/testing/web-platform/tests/battery-status/battery-charging-manual.html b/testing/web-platform/tests/battery-status/battery-charging-manual.https.html similarity index 92% rename from testing/web-platform/tests/battery-status/battery-charging-manual.html rename to testing/web-platform/tests/battery-status/battery-charging-manual.https.html index 8e80e30a2748..9ff7421638a8 100644 --- a/testing/web-platform/tests/battery-status/battery-charging-manual.html +++ b/testing/web-platform/tests/battery-status/battery-charging-manual.https.html @@ -1,6 +1,8 @@ Battery Test: battery neither empty or full, charger plugged in + + diff --git a/testing/web-platform/tests/battery-status/battery-discharging-manual.html b/testing/web-platform/tests/battery-status/battery-discharging-manual.https.html similarity index 92% rename from testing/web-platform/tests/battery-status/battery-discharging-manual.html rename to testing/web-platform/tests/battery-status/battery-discharging-manual.https.html index c4ccbe445d17..f321cf75481e 100644 --- a/testing/web-platform/tests/battery-status/battery-discharging-manual.html +++ b/testing/web-platform/tests/battery-status/battery-discharging-manual.https.html @@ -1,6 +1,8 @@ Battery Test: battery neither empty or full, charger unplugged in + + diff --git a/testing/web-platform/tests/battery-status/battery-full-manual.html b/testing/web-platform/tests/battery-status/battery-full-manual.https.html similarity index 90% rename from testing/web-platform/tests/battery-status/battery-full-manual.html rename to testing/web-platform/tests/battery-status/battery-full-manual.https.html index 883d71f408d9..0680b7d93322 100644 --- a/testing/web-platform/tests/battery-status/battery-full-manual.html +++ b/testing/web-platform/tests/battery-status/battery-full-manual.https.html @@ -1,6 +1,8 @@ Battery Test: battery full, charger plugged in + + diff --git a/testing/web-platform/tests/battery-status/battery-iframe.https.html b/testing/web-platform/tests/battery-status/battery-iframe.https.html new file mode 100644 index 000000000000..1f95b4ecb320 --- /dev/null +++ b/testing/web-platform/tests/battery-status/battery-iframe.https.html @@ -0,0 +1,27 @@ + + +Battery Test: navigator.getBattery() is not allowed in non top-level browsing context + + + + +
+ + diff --git a/testing/web-platform/tests/battery-status/battery-insecure-context.html b/testing/web-platform/tests/battery-status/battery-insecure-context.html new file mode 100644 index 000000000000..9d2c9fd1d41d --- /dev/null +++ b/testing/web-platform/tests/battery-status/battery-insecure-context.html @@ -0,0 +1,27 @@ + + +Battery Test: navigator.getBattery() shall throw "SecurityError" in an insecure context + + + + + +
+ Run test in an insecure context, e.g. http://example.com/. +
+ + diff --git a/testing/web-platform/tests/battery-status/battery-interface-idlharness.html b/testing/web-platform/tests/battery-status/battery-interface-idlharness.https.html similarity index 95% rename from testing/web-platform/tests/battery-status/battery-interface-idlharness.html rename to testing/web-platform/tests/battery-status/battery-interface-idlharness.https.html index 4e9b209d4d75..5abda1971f38 100644 --- a/testing/web-platform/tests/battery-status/battery-interface-idlharness.html +++ b/testing/web-platform/tests/battery-status/battery-interface-idlharness.https.html @@ -1,6 +1,8 @@ Battery test: IDL + + diff --git a/testing/web-platform/tests/battery-status/battery-plugging-in-manual.html b/testing/web-platform/tests/battery-status/battery-plugging-in-manual.https.html similarity index 96% rename from testing/web-platform/tests/battery-status/battery-plugging-in-manual.html rename to testing/web-platform/tests/battery-status/battery-plugging-in-manual.https.html index 4d16cf1875f2..1445bd7e2600 100644 --- a/testing/web-platform/tests/battery-status/battery-plugging-in-manual.html +++ b/testing/web-platform/tests/battery-status/battery-plugging-in-manual.https.html @@ -1,6 +1,8 @@ Battery Test: battery not full, charger plugging in + + diff --git a/testing/web-platform/tests/battery-status/battery-promise-iframe.html b/testing/web-platform/tests/battery-status/battery-promise-iframe.html deleted file mode 100644 index 6add86106f3f..000000000000 --- a/testing/web-platform/tests/battery-status/battery-promise-iframe.html +++ /dev/null @@ -1,80 +0,0 @@ - - -Battery Test: iframe has a different Navigator object - - - -
- - - diff --git a/testing/web-platform/tests/battery-status/battery-promise-window.html b/testing/web-platform/tests/battery-status/battery-promise-window.https.html similarity index 86% rename from testing/web-platform/tests/battery-status/battery-promise-window.html rename to testing/web-platform/tests/battery-status/battery-promise-window.https.html index a7d708c05ce7..37700aa5cb82 100644 --- a/testing/web-platform/tests/battery-status/battery-promise-window.html +++ b/testing/web-platform/tests/battery-status/battery-promise-window.https.html @@ -1,6 +1,8 @@ Battery Test: window.open() makes a different Navigator object + + + diff --git a/testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html b/testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html new file mode 100644 index 000000000000..41636331bbf8 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html.headers b/testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html.headers new file mode 100644 index 000000000000..ad8d0b54f31d --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: script-src 'nonce-abc'; img-src 'none' diff --git a/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden-meta.html b/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden-meta.html new file mode 100644 index 000000000000..46da267a94f0 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden-meta.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html b/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html new file mode 100644 index 000000000000..ddba1a9e8955 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers b/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers new file mode 100644 index 000000000000..ad8d0b54f31d --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: script-src 'nonce-abc'; img-src 'none' diff --git a/testing/web-platform/tests/content-security-policy/navigation/to-javascript-url-frame-src.html b/testing/web-platform/tests/content-security-policy/navigation/to-javascript-url-frame-src.html new file mode 100644 index 000000000000..79b881cfcd41 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/navigation/to-javascript-url-frame-src.html @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/testing/web-platform/tests/content-security-policy/navigation/to-javascript-url.html b/testing/web-platform/tests/content-security-policy/navigation/to-javascript-url-script-src.html similarity index 100% rename from testing/web-platform/tests/content-security-policy/navigation/to-javascript-url.html rename to testing/web-platform/tests/content-security-policy/navigation/to-javascript-url-script-src.html diff --git a/testing/web-platform/tests/cors/preflight-failure.htm b/testing/web-platform/tests/cors/preflight-failure.htm index 25fe7dd3f8b2..fd34d55b790d 100644 --- a/testing/web-platform/tests/cors/preflight-failure.htm +++ b/testing/web-platform/tests/cors/preflight-failure.htm @@ -22,14 +22,14 @@ var CROSSDOMAIN_URL = get_host_info().HTTP_REMOTE_ORIGIN + '/cors/resources/cors * Redirection with preflights. */ function preflight_failure(code) { - var desc = 'Should throw error if preflight respond with ' + code; + var isCodeOK = code >= 200 && code <= 299, + descOK = isCodeOK ? 'succeed' : 'throw error', + desc = 'Should ' + descOK + ' if preflight has status ' + code; async_test(desc).step(function() { var client = new XMLHttpRequest(); var redirect = encodeURIComponent(CROSSDOMAIN_URL + 'headers=x-test&' + req_c++); - var isCodeOK = code >= 200 && code <= 299; - client.open('GET', CROSSDOMAIN_URL + 'headers=x-test&location=' + redirect + '&code=' + code + '&preflight=' + code @@ -51,11 +51,12 @@ function preflight_failure(code) { client.send(null); }); } -[100, 101, - 200, +[200, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 500, 501, 502, 503, 504, 505 + 500, 501, 502, 503, 504, 505, + 680, + 790 ].forEach(preflight_failure); diff --git a/testing/web-platform/tests/credential-management/idl.https.html b/testing/web-platform/tests/credential-management/idl.https.html index bc779d069e90..5ccc0c987a2c 100644 --- a/testing/web-platform/tests/credential-management/idl.https.html +++ b/testing/web-platform/tests/credential-management/idl.https.html @@ -14,26 +14,25 @@ readonly attribute DOMString type; }; - dictionary SiteBoundCredentialData : CredentialData { - USVString name; - USVString iconURL; - }; - [NoInterfaceObject, SecureContext] interface CredentialUserData { readonly attribute USVString name; readonly attribute USVString iconURL; }; - dictionary PasswordCredentialData : SiteBoundCredentialData { - USVString password; + dictionary PasswordCredentialData : CredentialData { + USVString name; + USVString iconURL; + required USVString password; }; typedef (FormData or URLSearchParams) CredentialBodyType; - dictionary FederatedCredentialData : SiteBoundCredentialData { - USVString provider; + dictionary FederatedCredentialInit : CredentialData { + USVString name; + USVString iconURL; + required USVString provider; DOMString protocol; }; @@ -69,7 +68,7 @@ }; PasswordCredential implements CredentialUserData; - [Constructor(FederatedCredentialData data), + [Constructor(FederatedCredentialInit data), Exposed=Window, SecureContext] interface FederatedCredential : Credential { diff --git a/testing/web-platform/tests/cssom-view/cssom-view-window-screen-interface.html b/testing/web-platform/tests/cssom-view/cssom-view-window-screen-interface.html index 0d5e9bcaa549..7abd2e591e98 100644 --- a/testing/web-platform/tests/cssom-view/cssom-view-window-screen-interface.html +++ b/testing/web-platform/tests/cssom-view/cssom-view-window-screen-interface.html @@ -30,7 +30,7 @@ "window.screen.availWidth >= 0 && window.screen.availWidth <= window.screen.width"); test(function(){assert_true(window.screen.availHeight >= 0 && window.screen.availHeight <= window.screen.height);}, "window.screen.availHeight >= 0 && window.screen.availHeight <= window.screen.height"); - test(function(){assert_true(window.screen.colorDepth == 0 || window.screen.colorDepth == 16 || window.screen.colorDepth == 24 || window.screen.colorDepth == 32);}, + test(function(){assert_in_array(window.screen.colorDepth, [0, 16, 24, 32]);}, "window.screen.colorDepth == 0 || window.screen.colorDepth == 16 || window.screen.colorDepth == 24 || window.screen.colorDepth == 32"); test(function(){assert_equals(window.screen.pixelDepth, window.screen.colorDepth);}, "window.screen.pixelDepth must return the value returned by window.screen.colorDepth"); diff --git a/testing/web-platform/tests/cssom-view/offsetParent_element_test.html b/testing/web-platform/tests/cssom-view/offsetParent_element_test.html index 473120f4b9be..aa4a1e55e278 100644 --- a/testing/web-platform/tests/cssom-view/offsetParent_element_test.html +++ b/testing/web-platform/tests/cssom-view/offsetParent_element_test.html @@ -109,7 +109,7 @@ test(function() { assert_equals(none_element_child_video.offsetParent,null); assert_equals(none_element_child_audio.offsetParent,null); assert_equals(none_element_child_canvas.offsetParent,null); - assert_equals(none_element_child_svg.offsetParent,null); + assert_equals(none_element_child_svg.offsetParent,undefined); }, "Valid the algorithm rule of offsetParent check step 1", { assert: "The offsetParent attribute algorithm rule checking passed!" } ); diff --git a/testing/web-platform/tests/cssom/insertRule-charset-no-index.html b/testing/web-platform/tests/cssom/insertRule-charset-no-index.html new file mode 100644 index 000000000000..b94dc11afae7 --- /dev/null +++ b/testing/web-platform/tests/cssom/insertRule-charset-no-index.html @@ -0,0 +1,32 @@ + + + + CSS Test: CSSOM StyleSheet insertRule with charset and omitted second argument + + + + + + + + + +
+ + + diff --git a/testing/web-platform/tests/cssom/insertRule-import-no-index.html b/testing/web-platform/tests/cssom/insertRule-import-no-index.html new file mode 100644 index 000000000000..c97d39494870 --- /dev/null +++ b/testing/web-platform/tests/cssom/insertRule-import-no-index.html @@ -0,0 +1,33 @@ + + + + CSS Test: CSSOM StyleSheet insertRule with import and omitted second argument + + + + + + + + + +
+ + + diff --git a/testing/web-platform/tests/cssom/insertRule-namespace-no-index.html b/testing/web-platform/tests/cssom/insertRule-namespace-no-index.html new file mode 100644 index 000000000000..8a3315d86061 --- /dev/null +++ b/testing/web-platform/tests/cssom/insertRule-namespace-no-index.html @@ -0,0 +1,40 @@ + + + + CSS Test: CSSOM StyleSheet insertRule with namespace and omitted second argument + + + + + + + + + +
+ + + diff --git a/testing/web-platform/tests/cssom/insertRule-no-index.html b/testing/web-platform/tests/cssom/insertRule-no-index.html new file mode 100644 index 000000000000..c9704b7475a5 --- /dev/null +++ b/testing/web-platform/tests/cssom/insertRule-no-index.html @@ -0,0 +1,35 @@ + + + + CSS Test: CSSOM StyleSheet insertRule omitted second argument + + + + + + + + + +
+ + + diff --git a/testing/web-platform/tests/cssom/support/import-charset.css b/testing/web-platform/tests/cssom/support/import-charset.css new file mode 100644 index 000000000000..9f44090c94a7 --- /dev/null +++ b/testing/web-platform/tests/cssom/support/import-charset.css @@ -0,0 +1 @@ +@charset "UTF-8"; diff --git a/testing/web-platform/tests/docs/_writing-tests/css-metadata.md b/testing/web-platform/tests/docs/_writing-tests/css-metadata.md index 28ace9b6798b..437d7f51ec62 100644 --- a/testing/web-platform/tests/docs/_writing-tests/css-metadata.md +++ b/testing/web-platform/tests/docs/_writing-tests/css-metadata.md @@ -66,8 +66,9 @@ href="https://www.w3.org/TR/CSS21/colors.html#background-properties" /> font - Requires a specific font to be installed. (Details must be - provided and/or the font linked to in the test description) + Requires a specific font to be installed at the OS level. (A link to the + font to be installed must be provided; this is not needed if only web + fonts are used.) history diff --git a/testing/web-platform/tests/domparsing/DOMParser-parseFromString-xml-internal-subset.html b/testing/web-platform/tests/domparsing/DOMParser-parseFromString-xml-internal-subset.html new file mode 100644 index 000000000000..26b5fa99f175 --- /dev/null +++ b/testing/web-platform/tests/domparsing/DOMParser-parseFromString-xml-internal-subset.html @@ -0,0 +1,24 @@ + +Parsing and serialization of doctype internal subset + + + diff --git a/testing/web-platform/tests/dpub-aam/doc-abstract-manual.html b/testing/web-platform/tests/dpub-aam/doc-abstract-manual.html index 3abb20719a96..c8b39bda0351 100644 --- a/testing/web-platform/tests/dpub-aam/doc-abstract-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-abstract-manual.html @@ -77,20 +77,6 @@ "is", "abstract" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-acknowledgments-manual.html b/testing/web-platform/tests/dpub-aam/doc-acknowledgments-manual.html index 763cd3255098..e45c462727a5 100644 --- a/testing/web-platform/tests/dpub-aam/doc-acknowledgments-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-acknowledgments-manual.html @@ -89,20 +89,6 @@ "is", "acknowledgments" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-afterword-manual.html b/testing/web-platform/tests/dpub-aam/doc-afterword-manual.html index 7b9d16cc254f..94cd2d8e9731 100644 --- a/testing/web-platform/tests/dpub-aam/doc-afterword-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-afterword-manual.html @@ -89,20 +89,6 @@ "is", "afterword" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-appendix-manual.html b/testing/web-platform/tests/dpub-aam/doc-appendix-manual.html index 943a7c256480..da4bf3c6cf42 100644 --- a/testing/web-platform/tests/dpub-aam/doc-appendix-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-appendix-manual.html @@ -89,20 +89,6 @@ "is", "appendix" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-backlink-manual.html b/testing/web-platform/tests/dpub-aam/doc-backlink-manual.html index bc5e6cb15784..51eb6acc7ca0 100644 --- a/testing/web-platform/tests/dpub-aam/doc-backlink-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-backlink-manual.html @@ -91,20 +91,6 @@ "is", "backlink" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -121,21 +107,7 @@ "STATE_LINKED" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/dpub-aam/doc-biblioentry-manual.html b/testing/web-platform/tests/dpub-aam/doc-biblioentry-manual.html index 80924875fd90..d97ec2a70c3a 100644 --- a/testing/web-platform/tests/dpub-aam/doc-biblioentry-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-biblioentry-manual.html @@ -85,20 +85,6 @@ "is", "biblioentry" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-bibliography-manual.html b/testing/web-platform/tests/dpub-aam/doc-bibliography-manual.html index 25d9e7556472..c69a17aa294c 100644 --- a/testing/web-platform/tests/dpub-aam/doc-bibliography-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-bibliography-manual.html @@ -89,20 +89,6 @@ "is", "bibliography" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-biblioref-manual.html b/testing/web-platform/tests/dpub-aam/doc-biblioref-manual.html index 649d13055385..29ea65fe2162 100644 --- a/testing/web-platform/tests/dpub-aam/doc-biblioref-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-biblioref-manual.html @@ -91,20 +91,6 @@ "is", "biblioref" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -121,21 +107,7 @@ "STATE_LINKED" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/dpub-aam/doc-chapter-manual.html b/testing/web-platform/tests/dpub-aam/doc-chapter-manual.html index 1f8eda3d371f..3a080ae755cf 100644 --- a/testing/web-platform/tests/dpub-aam/doc-chapter-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-chapter-manual.html @@ -89,20 +89,6 @@ "is", "chapter" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-colophon-manual.html b/testing/web-platform/tests/dpub-aam/doc-colophon-manual.html index 17a349048ff4..b7cdb5ad9f4b 100644 --- a/testing/web-platform/tests/dpub-aam/doc-colophon-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-colophon-manual.html @@ -77,20 +77,6 @@ "is", "colophon" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-conclusion-manual.html b/testing/web-platform/tests/dpub-aam/doc-conclusion-manual.html index e14d1e4cf9bf..c1786c8dbfb4 100644 --- a/testing/web-platform/tests/dpub-aam/doc-conclusion-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-conclusion-manual.html @@ -89,20 +89,6 @@ "is", "conclusion" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-cover-manual.html b/testing/web-platform/tests/dpub-aam/doc-cover-manual.html index 3987abe12065..c09931fbde6a 100644 --- a/testing/web-platform/tests/dpub-aam/doc-cover-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-cover-manual.html @@ -73,20 +73,6 @@ "is", "Image" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-credit-manual.html b/testing/web-platform/tests/dpub-aam/doc-credit-manual.html index 77ef255a9b06..f23baa5bc64d 100644 --- a/testing/web-platform/tests/dpub-aam/doc-credit-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-credit-manual.html @@ -77,20 +77,6 @@ "is", "credit" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-credits-manual.html b/testing/web-platform/tests/dpub-aam/doc-credits-manual.html index fe3aec29b98c..5562c5d9dab8 100644 --- a/testing/web-platform/tests/dpub-aam/doc-credits-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-credits-manual.html @@ -89,20 +89,6 @@ "is", "credits" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-dedication-manual.html b/testing/web-platform/tests/dpub-aam/doc-dedication-manual.html index fa44872248aa..9c95d9298907 100644 --- a/testing/web-platform/tests/dpub-aam/doc-dedication-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-dedication-manual.html @@ -77,20 +77,6 @@ "is", "dedication" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-endnote-manual.html b/testing/web-platform/tests/dpub-aam/doc-endnote-manual.html index faae9bd2735f..63320c96cad8 100644 --- a/testing/web-platform/tests/dpub-aam/doc-endnote-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-endnote-manual.html @@ -85,20 +85,6 @@ "is", "endnote" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-endnotes-manual.html b/testing/web-platform/tests/dpub-aam/doc-endnotes-manual.html index 06e7a597977c..040b6e9c56c8 100644 --- a/testing/web-platform/tests/dpub-aam/doc-endnotes-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-endnotes-manual.html @@ -89,20 +89,6 @@ "is", "endnotes" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-epigraph-manual.html b/testing/web-platform/tests/dpub-aam/doc-epigraph-manual.html index a57f8a10acd0..26b5d638bbb4 100644 --- a/testing/web-platform/tests/dpub-aam/doc-epigraph-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-epigraph-manual.html @@ -77,20 +77,6 @@ "is", "epigraph" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-epilogue-manual.html b/testing/web-platform/tests/dpub-aam/doc-epilogue-manual.html index 2a99c45d8cd2..059e7c3cea8d 100644 --- a/testing/web-platform/tests/dpub-aam/doc-epilogue-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-epilogue-manual.html @@ -89,20 +89,6 @@ "is", "epilogue" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-errata-manual.html b/testing/web-platform/tests/dpub-aam/doc-errata-manual.html index 4d46af3d853a..759fb6ca6e45 100644 --- a/testing/web-platform/tests/dpub-aam/doc-errata-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-errata-manual.html @@ -89,20 +89,6 @@ "is", "errata" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-example-manual.html b/testing/web-platform/tests/dpub-aam/doc-example-manual.html index 72926aaf69ad..df11392abff9 100644 --- a/testing/web-platform/tests/dpub-aam/doc-example-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-example-manual.html @@ -77,20 +77,6 @@ "is", "example" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-footnote-manual.html b/testing/web-platform/tests/dpub-aam/doc-footnote-manual.html index 0a2602216c05..ad5f1f7116e4 100644 --- a/testing/web-platform/tests/dpub-aam/doc-footnote-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-footnote-manual.html @@ -77,20 +77,6 @@ "is", "footnote" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-foreword-manual.html b/testing/web-platform/tests/dpub-aam/doc-foreword-manual.html index 3854cfbb7679..c56d31446223 100644 --- a/testing/web-platform/tests/dpub-aam/doc-foreword-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-foreword-manual.html @@ -89,20 +89,6 @@ "is", "foreword" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-glossary-manual.html b/testing/web-platform/tests/dpub-aam/doc-glossary-manual.html index 6d761b49391a..b22e3be66c5e 100644 --- a/testing/web-platform/tests/dpub-aam/doc-glossary-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-glossary-manual.html @@ -89,20 +89,6 @@ "is", "glossary" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-glossref-manual.html b/testing/web-platform/tests/dpub-aam/doc-glossref-manual.html index 24007145d836..6a03b871c329 100644 --- a/testing/web-platform/tests/dpub-aam/doc-glossref-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-glossref-manual.html @@ -91,20 +91,6 @@ "is", "glossref" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -121,21 +107,7 @@ "STATE_LINKED" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/dpub-aam/doc-index-manual.html b/testing/web-platform/tests/dpub-aam/doc-index-manual.html index c22d6a9f9e26..b24abfa29385 100644 --- a/testing/web-platform/tests/dpub-aam/doc-index-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-index-manual.html @@ -89,20 +89,6 @@ "is", "index" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-introduction-manual.html b/testing/web-platform/tests/dpub-aam/doc-introduction-manual.html index 7fb3fb7f061a..e720f74c48ea 100644 --- a/testing/web-platform/tests/dpub-aam/doc-introduction-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-introduction-manual.html @@ -89,20 +89,6 @@ "is", "introduction" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-noteref-manual.html b/testing/web-platform/tests/dpub-aam/doc-noteref-manual.html index 2c47e833dd03..f78af805eafa 100644 --- a/testing/web-platform/tests/dpub-aam/doc-noteref-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-noteref-manual.html @@ -91,20 +91,6 @@ "is", "noteref" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -121,21 +107,7 @@ "STATE_LINKED" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/dpub-aam/doc-notice-manual.html b/testing/web-platform/tests/dpub-aam/doc-notice-manual.html index 48c8edffa037..d3135a763166 100644 --- a/testing/web-platform/tests/dpub-aam/doc-notice-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-notice-manual.html @@ -77,20 +77,6 @@ "is", "notice" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-pagebreak-manual.html b/testing/web-platform/tests/dpub-aam/doc-pagebreak-manual.html index cfd7c8fdf73b..1bafd77cbeb2 100644 --- a/testing/web-platform/tests/dpub-aam/doc-pagebreak-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-pagebreak-manual.html @@ -79,20 +79,6 @@ "is", "pagebreak" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-pagelist-manual.html b/testing/web-platform/tests/dpub-aam/doc-pagelist-manual.html index 7bcbdd21cdc4..24bd42e0c24f 100644 --- a/testing/web-platform/tests/dpub-aam/doc-pagelist-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-pagelist-manual.html @@ -89,20 +89,6 @@ "is", "pagelist" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-part-manual.html b/testing/web-platform/tests/dpub-aam/doc-part-manual.html index 35cc4312933f..bc06f0ef43a8 100644 --- a/testing/web-platform/tests/dpub-aam/doc-part-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-part-manual.html @@ -89,20 +89,6 @@ "is", "part" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-preface-manual.html b/testing/web-platform/tests/dpub-aam/doc-preface-manual.html index 9e79c5743d0b..0a2bdbfe6a00 100644 --- a/testing/web-platform/tests/dpub-aam/doc-preface-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-preface-manual.html @@ -89,20 +89,6 @@ "is", "preface" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-prologue-manual.html b/testing/web-platform/tests/dpub-aam/doc-prologue-manual.html index c5887f556256..077cfb832e0d 100644 --- a/testing/web-platform/tests/dpub-aam/doc-prologue-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-prologue-manual.html @@ -89,20 +89,6 @@ "is", "prologue" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-pullquote-manual.html b/testing/web-platform/tests/dpub-aam/doc-pullquote-manual.html index ab454dad255e..543c4ed90356 100644 --- a/testing/web-platform/tests/dpub-aam/doc-pullquote-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-pullquote-manual.html @@ -77,20 +77,6 @@ "is", "pullquote" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-qna-manual.html b/testing/web-platform/tests/dpub-aam/doc-qna-manual.html index b8e2e5546112..8b9c4666d148 100644 --- a/testing/web-platform/tests/dpub-aam/doc-qna-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-qna-manual.html @@ -77,20 +77,6 @@ "is", "qna" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-subtitle-manual.html b/testing/web-platform/tests/dpub-aam/doc-subtitle-manual.html index 9c43c7488536..551891983d5e 100644 --- a/testing/web-platform/tests/dpub-aam/doc-subtitle-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-subtitle-manual.html @@ -77,20 +77,6 @@ "is", "subtitle" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-tip-manual.html b/testing/web-platform/tests/dpub-aam/doc-tip-manual.html index 6367a02c150d..ec59b0f0b5c0 100644 --- a/testing/web-platform/tests/dpub-aam/doc-tip-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-tip-manual.html @@ -77,20 +77,6 @@ "is", "tip" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/dpub-aam/doc-toc-manual.html b/testing/web-platform/tests/dpub-aam/doc-toc-manual.html index 3a53c85d3a00..c3969e232205 100644 --- a/testing/web-platform/tests/dpub-aam/doc-toc-manual.html +++ b/testing/web-platform/tests/dpub-aam/doc-toc-manual.html @@ -89,20 +89,6 @@ "is", "toc" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/encrypted-media/resources/drm-retrieve-persistent-license.html b/testing/web-platform/tests/encrypted-media/resources/drm-retrieve-persistent-license.html index 6f3ed80ffa52..3b7da8e95708 100644 --- a/testing/web-platform/tests/encrypted-media/resources/drm-retrieve-persistent-license.html +++ b/testing/web-platform/tests/encrypted-media/resources/drm-retrieve-persistent-license.html @@ -43,8 +43,14 @@ function onTimeupdate(event) { if ( config.video.currentTime > ( config.duration || 1 ) ) { + config.video.removeEventListener('timeupdate', onTimeupdate); config.video.pause(); + + _mediaKeySession.closed + .then(onComplete) + .catch(onFailure); _mediaKeySession.close() + .catch(onFailure); } } @@ -53,9 +59,8 @@ return access.createMediaKeys(); }).then(function(mediaKeys) { config.video.setMediaKeys(mediaKeys); - config.video.addEventListener('timeupdate', onTimeupdate, true); + config.video.addEventListener('timeupdate', onTimeupdate); _mediaKeySession = mediaKeys.createSession( 'persistent-license' ); - _mediaKeySession.closed.then(onComplete); return _mediaKeySession.load(event.data.sessionId); }).then(function( success ) { if ( !success ) throw new DOMException( 'Could not load session' ); diff --git a/testing/web-platform/tests/encrypted-media/scripts/playback-persistent-license-events.js b/testing/web-platform/tests/encrypted-media/scripts/playback-persistent-license-events.js index d5049a5f1b36..2d99f679f4cf 100644 --- a/testing/web-platform/tests/encrypted-media/scripts/playback-persistent-license-events.js +++ b/testing/web-platform/tests/encrypted-media/scripts/playback-persistent-license-events.js @@ -20,8 +20,15 @@ function runTest(config,qualifier) { _startedReleaseSequence = false, _events = [ ]; - function recordEventFunc( eventType ) { - return function() { _events.push( eventType ); }; + function recordEventFunc(eventType) { + return function() { _events.push(eventType); }; + } + + function recordEventFuncAndCheckExpirationForNaN(eventType) { + return function() { + _events.push(eventType); + assert_equals(_mediaKeySession.expiration, NaN); + }; } function onFailure(error) { @@ -47,20 +54,28 @@ function runTest(config,qualifier) { _events.push(event.messageType + '-response'); return _mediaKeySession.update(response); }).then(test.step_func(function() { - _events.push('update-resolved'); + _events.push(event.messageType + '-response-resolved'); if (event.messageType === 'license-release') { - checkEventSequence( _events, - ['generaterequest', - ['license-request', 'license-request-response', 'update-resolved'], // potentially repeating - 'keystatuseschange', - 'playing', - 'remove-resolved', - 'keystatuseschange', - 'license-release', - 'license-release-response', - 'closed-attribute-resolved', - 'update-resolved' ]); - test.done(); + test.step_timeout(function() { + checkEventSequence(_events, [ + 'generaterequest', + [ // potentially repeating + 'license-request', + 'license-request-response', + 'license-request-response-resolved' + ], + 'keystatuseschange-usablekey', + 'playing', + 'remove-resolved', + 'keystatuseschange-allkeysreleased', + 'license-release', + 'license-release-response', + 'closed-attribute-resolved', + 'license-release-response-resolved', + 'keystatuseschange-empty' + ]); + test.done(); + }, 100); } })).catch(onFailure); } @@ -69,7 +84,21 @@ function runTest(config,qualifier) { assert_equals(event.target, _mediaKeySession); assert_true(event instanceof window.Event); assert_equals(event.type, 'keystatuseschange'); - _events.push('keystatuseschange'); + var hasKeys = false, + usableKey = false; // true if any key usable. + _mediaKeySession.keyStatuses.forEach(function(value, keyid) { + assert_in_array(value, ['usable', 'released']); + hasKeys = true; + usableKey = usableKey || (value === 'usable'); + }); + + if (!hasKeys) { + _events.push('keystatuseschange-empty'); + } else if (usableKey) { + _events.push('keystatuseschange-usablekey'); + } else { + _events.push('keystatuseschange-allkeysreleased'); + } } function onEncrypted(event) { @@ -90,7 +119,9 @@ function runTest(config,qualifier) { _video.load(); _startedReleaseSequence = true; - _mediaKeySession.remove().then(recordEventFunc('remove-resolved')).catch(onFailure); + _mediaKeySession.remove() + .then(recordEventFuncAndCheckExpirationForNaN('remove-resolved')) + .catch(onFailure); } } @@ -112,7 +143,9 @@ function runTest(config,qualifier) { _mediaKeySession = _mediaKeys.createSession( 'persistent-license' ); waitForEventAndRunStep('keystatuseschange', _mediaKeySession, onKeyStatusesChange, test); waitForEventAndRunStep('message', _mediaKeySession, onMessage, test); - _mediaKeySession.closed.then( recordEventFunc( 'closed-attribute-resolved' ) ); + _mediaKeySession.closed + .then(recordEventFuncAndCheckExpirationForNaN('closed-attribute-resolved')) + .catch(onFailure); return testmediasource(config); }).then(function(source) { _mediaSource = source; diff --git a/testing/web-platform/tests/encrypted-media/scripts/playback-retrieve-persistent-license.js b/testing/web-platform/tests/encrypted-media/scripts/playback-retrieve-persistent-license.js index 03b6b53ac1b3..e8d9d02be30f 100644 --- a/testing/web-platform/tests/encrypted-media/scripts/playback-retrieve-persistent-license.js +++ b/testing/web-platform/tests/encrypted-media/scripts/playback-retrieve-persistent-license.js @@ -49,7 +49,7 @@ function runTest(config,qualifier) { function onPlaying(event) { // Not using waitForEventAndRunStep() to avoid too many // EVENT(onTimeUpdate) logs. - _video.addEventListener('timeupdate', onTimeupdate, true); + _video.addEventListener('timeupdate', onTimeupdate); } function onTimeupdate(event) { @@ -57,16 +57,20 @@ function runTest(config,qualifier) { _video.removeEventListener('timeupdate', onTimeupdate); _video.pause(); _video.removeAttribute('src'); - _video.load() + _video.load(); - _mediaKeySession.closed.then(test.step_func(onClosed)); - _mediaKeySession.close(); + _mediaKeySession.closed + .then(test.step_func(onClosed)) + .catch(onFailure); + _mediaKeySession.close() + .catch(onFailure); } } function onClosed() { // Open a new window in which we will attempt to play with the persisted license var win = window.open(config.windowscript); + assert_not_equals(win, null, "Popup windows not allowed?"); // Lisen for an event from the new window containing its test assertions window.addEventListener('message', test.step_func(function(messageEvent) { diff --git a/testing/web-platform/tests/fetch/api/request/request-consume-empty.html b/testing/web-platform/tests/fetch/api/request/request-consume-empty.html index c3ca8383a952..c84d2cecd379 100644 --- a/testing/web-platform/tests/fetch/api/request/request-consume-empty.html +++ b/testing/web-platform/tests/fetch/api/request/request-consume-empty.html @@ -11,14 +11,14 @@ + +
+ + diff --git a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html index 8305fc5ee5c3..0a6d3cb8dddf 100644 --- a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html +++ b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html @@ -27,7 +27,7 @@ async_test(t => { iframeDoc.exitFullscreen(); } else if (count == 4) { // Done, but set timeout to fail on extra events. - setTimeout(t.step_func_done()); + step_timeout(t.step_func_done()); } }); document.onfullscreenerror = t.unreached_func('fullscreenerror event'); diff --git a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html index 198ae737b662..327fc3d21d62 100644 --- a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html +++ b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html @@ -19,7 +19,7 @@ async_test(t => { iframeDocument.body.requestFullscreen(); iframe.remove(); // No events will be fired, end test after 100ms. - setTimeout(t.step_func_done(() => { + step_timeout(t.step_func_done(() => { assert_equals(document.fullscreenElement, null); assert_equals(iframeDocument.fullscreenElement, null); }), 100); diff --git a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-timing-manual.html b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-timing-manual.html index 14fe5f70c1c5..792cb0fe4d7f 100644 --- a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-timing-manual.html +++ b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-timing-manual.html @@ -15,7 +15,7 @@ async_test(t => { const callback = t.step_func(event => { events.push(event.type); if (event.type == 'fullscreenchange') { - setTimeout(t.unreached_func('timer callback')); + step_timeout(t.unreached_func('timer callback')); requestAnimationFrame(t.step_func_done(() => { assert_array_equals(events, ['resize', 'fullscreenchange'], 'event order'); })); @@ -30,7 +30,7 @@ async_test(t => { // If fullscreenerror is an animation frame event, then animation frame // callbacks should be run after it is fired, before the timer callback. document.onfullscreenerror = t.step_func(() => { - setTimeout(t.unreached_func('timer callback')); + step_timeout(t.unreached_func('timer callback')); requestAnimationFrame(t.step_func_done()); }); }, 'Timing of fullscreenerror event'); diff --git a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-twice-manual.html b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-twice-manual.html index 2b28983ba832..06641deb48b1 100644 --- a/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-twice-manual.html +++ b/testing/web-platform/tests/fullscreen/api/element-request-fullscreen-twice-manual.html @@ -12,7 +12,7 @@ async_test(t => { assert_equals(document.fullscreenElement, div); // Done, but ensure that there's only one fullscreenchange event. document.onfullscreenchange = t.unreached_func("second fullscreenchange event"); - setTimeout(t.step_func_done(), 0); + step_timeout(t.step_func_done()); }); document.onfullscreenerror = t.unreached_func("fullscreenerror event"); diff --git a/testing/web-platform/tests/fullscreen/interfaces.html b/testing/web-platform/tests/fullscreen/interfaces.html new file mode 100644 index 000000000000..79174cd22337 --- /dev/null +++ b/testing/web-platform/tests/fullscreen/interfaces.html @@ -0,0 +1,31 @@ + +Fullscreen IDL tests + + + + + diff --git a/testing/web-platform/tests/html/browsers/the-window-object/historical.window.js b/testing/web-platform/tests/html/browsers/the-window-object/historical.window.js new file mode 100644 index 000000000000..653f12b4646c --- /dev/null +++ b/testing/web-platform/tests/html/browsers/the-window-object/historical.window.js @@ -0,0 +1,4 @@ +test(() => { + assert_false("showModalDialog" in window) + assert_false("showModalDialog" in Window.prototype) +}, "showModalDialog() has been removed from the platform") diff --git a/testing/web-platform/tests/html/browsers/the-window-object/security-window/window-security.html b/testing/web-platform/tests/html/browsers/the-window-object/security-window/window-security.html index 9a9ef358ec13..8b067da8c679 100644 --- a/testing/web-platform/tests/html/browsers/the-window-object/security-window/window-security.html +++ b/testing/web-platform/tests/html/browsers/the-window-object/security-window/window-security.html @@ -136,7 +136,6 @@ function fr_load() { {name: "scrollBy", isMethod: true, args:[10, 10]}, {name: "setInterval", isMethod: true, args:[function () {}, 1]}, {name: "setTimeout", isMethod: true, args:[function () {}, 1]}, - {name: "showModalDialog", isMethod: true, args:["auto:blank", "dialog"]}, {name: "stop", isMethod: true}, ].forEach(function (item) { test(function () { diff --git a/testing/web-platform/tests/html/browsers/the-window-object/window-properties.html b/testing/web-platform/tests/html/browsers/the-window-object/window-properties.html index 3316bf5316f9..5ad6335c82ad 100644 --- a/testing/web-platform/tests/html/browsers/the-window-object/window-properties.html +++ b/testing/web-platform/tests/html/browsers/the-window-object/window-properties.html @@ -80,7 +80,6 @@ var methods = [ "confirm", "prompt", "print", - // See below: "showModalDialog", "postMessage", // WindowBase64 @@ -106,12 +105,6 @@ var methods = [ "scrollBy" ]; -// We would like to remove showModalDialog from the platform, -// see . -if ("showModalDialog" in window) { - methods.push("showModalDialog"); -} - var readonlyAttributes = [ "history", "frameElement", diff --git a/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html b/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html new file mode 100644 index 000000000000..fc3f06c01b9e --- /dev/null +++ b/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-07.html @@ -0,0 +1,109 @@ + + +Named items: objects + + + +
+
+ + + + + + + + + + + + + + + + + + + +
+ diff --git a/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-08.html b/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-08.html new file mode 100644 index 000000000000..a5c26f39eed0 --- /dev/null +++ b/testing/web-platform/tests/html/dom/documents/dom-tree-accessors/nameditem-08.html @@ -0,0 +1,42 @@ + + +Named items: duplicate id attributes for applet, object and img + + + +
+
+
+ + +
+ + +
+ +
+ diff --git a/testing/web-platform/tests/html/dom/self-origin.sub.html b/testing/web-platform/tests/html/dom/self-origin.sub.html index 539494a96bb9..aba2b3016a5d 100644 --- a/testing/web-platform/tests/html/dom/self-origin.sub.html +++ b/testing/web-platform/tests/html/dom/self-origin.sub.html @@ -10,9 +10,9 @@ - - + diff --git a/testing/web-platform/tests/html/editing/dnd/datastore/datatransfer-types.html b/testing/web-platform/tests/html/editing/dnd/datastore/datatransfer-types.html new file mode 100644 index 000000000000..d0842ae75c4f --- /dev/null +++ b/testing/web-platform/tests/html/editing/dnd/datastore/datatransfer-types.html @@ -0,0 +1,115 @@ + + +DataTransfer types attribute test + + + + diff --git a/testing/web-platform/tests/html/editing/dnd/events/relatedTarget-attribute-manual.html b/testing/web-platform/tests/html/editing/dnd/events/relatedTarget-attribute-manual.html new file mode 100644 index 000000000000..c5a897d68e4c --- /dev/null +++ b/testing/web-platform/tests/html/editing/dnd/events/relatedTarget-attribute-manual.html @@ -0,0 +1,65 @@ + + + + relatedTarget attribute for dragenter and dragleave events + + + + + + + +

Drag & Drop: relatedTarget attribute for dragenter and dragleave events

+

+

Test Description: +
    +
  1. Drag the text into the green box.
  2. +
  3. Without releasing the drag, drag the text out of the green box.
  4. +
+

+
+
Drag this text
over the green box
+
+
+
+ + diff --git a/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html b/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html index f9cf7a87cfc3..f6d7f26ce83c 100644 --- a/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html +++ b/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html @@ -30,7 +30,7 @@ promise_test(t => { return; } - assert_true(i === 0 || i === 1 || i === 2, `Any message events must come from expected sources; got ${i}`); + assert_in_array(i, [0, 1, 2], "Any message events must come from expected sources"); ++soFar; if (soFar === 3) { diff --git a/testing/web-platform/tests/html/semantics/forms/resetting-a-form/reset-form-2.html b/testing/web-platform/tests/html/semantics/forms/resetting-a-form/reset-form-2.html new file mode 100644 index 000000000000..6ce0040c4a2c --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/resetting-a-form/reset-form-2.html @@ -0,0 +1,61 @@ + + +Resetting a form integration test + + + + + + diff --git a/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-after-content-change.html b/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-after-content-change.html index b77bf50d4fca..60390085c6d9 100644 --- a/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-after-content-change.html +++ b/testing/web-platform/tests/html/semantics/forms/textfieldselection/selection-after-content-change.html @@ -16,7 +16,7 @@ let observedResetSelectionDirection; function assertSelectionDirectionIsReset(element) { if (!observedResetSelectionDirection) { - assert_true(element.selectionDirection === "none" || element.selectionDirection === "forward", + assert_in_array(element.selectionDirection, ["none", "forward"], "selectionDirection must be set to either none or forward"); observedResetSelectionDirection = element.selectionDirection; } else { diff --git a/testing/web-platform/tests/html/semantics/forms/the-button-element/button-click-submits.html b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-click-submits.html new file mode 100644 index 000000000000..e6f02d3e21ca --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-click-submits.html @@ -0,0 +1,149 @@ + + +Clicking a button should submit the form + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/forms/the-button-element/button-type.html b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-type.html new file mode 100644 index 000000000000..6cfd6687c707 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-button-element/button-type.html @@ -0,0 +1,41 @@ + + +HTMLButtonElement.prototype.type + + + + + + diff --git a/testing/web-platform/tests/html/semantics/forms/the-input-element/checkbox-click-events.html b/testing/web-platform/tests/html/semantics/forms/the-input-element/checkbox-click-events.html new file mode 100644 index 000000000000..5051fdd4e6f8 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/checkbox-click-events.html @@ -0,0 +1,109 @@ + + +Checkbox click events + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/forms/the-input-element/radio-input-cancel.html b/testing/web-platform/tests/html/semantics/forms/the-input-element/radio-input-cancel.html new file mode 100644 index 000000000000..fc2796b04153 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-input-element/radio-input-cancel.html @@ -0,0 +1,41 @@ + +Radio input cancel behavior reverts state + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/forms/the-label-element/proxy-click-to-associated-element.html b/testing/web-platform/tests/html/semantics/forms/the-label-element/proxy-click-to-associated-element.html new file mode 100644 index 000000000000..fbfeda8a5114 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-label-element/proxy-click-to-associated-element.html @@ -0,0 +1,58 @@ + +label element click proxying via "for" attribute or nested labelable element + + + + +
+
+ + + + + + + +
+ diff --git a/testing/web-platform/tests/html/semantics/forms/the-option-element/option-element-constructor.html b/testing/web-platform/tests/html/semantics/forms/the-option-element/option-element-constructor.html new file mode 100644 index 000000000000..51fc3e4402ea --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-option-element/option-element-constructor.html @@ -0,0 +1,120 @@ + + +Option element constructor + + + + + +
+
+
+ + + diff --git a/testing/web-platform/tests/html/semantics/forms/the-option-element/option-index.html b/testing/web-platform/tests/html/semantics/forms/the-option-element/option-index.html new file mode 100644 index 000000000000..719c608a6391 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-option-element/option-index.html @@ -0,0 +1,54 @@ + +HTMLOptionElement.prototype.index + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/forms/the-select-element/select-multiple.html b/testing/web-platform/tests/html/semantics/forms/the-select-element/select-multiple.html new file mode 100644 index 000000000000..c744144527bf --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-select-element/select-multiple.html @@ -0,0 +1,36 @@ + + +HTMLSelectElement ask for reset + + + + + +
+ diff --git a/testing/web-platform/tests/html/semantics/forms/the-select-element/select-selectedOptions.html b/testing/web-platform/tests/html/semantics/forms/the-select-element/select-selectedOptions.html new file mode 100644 index 000000000000..f8e577a8a066 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-select-element/select-selectedOptions.html @@ -0,0 +1,127 @@ + + + + +HTMLSelectElement.selectedOptions + + + + + +
+ + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html b/testing/web-platform/tests/html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html new file mode 100644 index 000000000000..fa197c361d80 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html @@ -0,0 +1,71 @@ + +textarea element select() functionality + + + + + + diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentScript-null.html b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentScript-null.html new file mode 100644 index 000000000000..146a9db60def --- /dev/null +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentScript-null.html @@ -0,0 +1,13 @@ + + + + + diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentscript.js b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentscript.js new file mode 100644 index 000000000000..547359ff96e0 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/currentscript.js @@ -0,0 +1 @@ +export let currentScriptOnImportedModule = window.document.currentScript; diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/execorder.html b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/execorder.html index 0f4195ffd1b7..6a7513dc1361 100644 --- a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/execorder.html +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/execorder.html @@ -41,8 +41,8 @@ var test_parsedUnordered1 = async_test("Unordered module script execution (parsed, unordered #1)"); var test_parsedUnordered2 = async_test("Unordered module script execution (parsed, unordered #2)"); - - + + - + - + + + + diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py new file mode 100644 index 000000000000..6ed16212d719 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/resources/delayed-modulescript.py @@ -0,0 +1,7 @@ +import time + +def main(request, response): + delay = float(request.GET.first("ms", 500)) + time.sleep(delay / 1E3); + + return [("Content-type", "text/javascript")], "export let delayedLoaded = true;" diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/script-for-event.html b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/script-for-event.html new file mode 100644 index 000000000000..e3b8e15b4144 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/script-for-event.html @@ -0,0 +1,93 @@ + +Module scripts with for and event attributes + + + + + +
+ + + + + + + + + + + + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js new file mode 100644 index 000000000000..6863075bd909 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/scripting-1/the-script-element/module/set-currentScript-on-window.js @@ -0,0 +1 @@ +window.currentScriptRecorded = document.currentScript; diff --git a/testing/web-platform/tests/interfaces/fullscreen.idl b/testing/web-platform/tests/interfaces/fullscreen.idl new file mode 100644 index 000000000000..43ffa6a13047 --- /dev/null +++ b/testing/web-platform/tests/interfaces/fullscreen.idl @@ -0,0 +1,17 @@ +partial interface Element { + Promise requestFullscreen(); +}; + +partial interface Document { + [LenientSetter] readonly attribute boolean fullscreenEnabled; + [LenientSetter, Unscopable] readonly attribute boolean fullscreen; // historical + + Promise exitFullscreen(); + + attribute EventHandler onfullscreenchange; + attribute EventHandler onfullscreenerror; +}; + +partial interface DocumentOrShadowRoot { + [LenientSetter] readonly attribute Element? fullscreenElement; +}; diff --git a/testing/web-platform/tests/interfaces/html.idl b/testing/web-platform/tests/interfaces/html.idl index e51b2a12b223..feb0a45c3393 100644 --- a/testing/web-platform/tests/interfaces/html.idl +++ b/testing/web-platform/tests/interfaces/html.idl @@ -1326,7 +1326,7 @@ interface DataTransfer { void setDragImage(Element image, long x, long y); /* old interface */ - readonly attribute DOMString[] types; + readonly attribute FrozenArray types; DOMString getData(DOMString format); void setData(DOMString format, DOMString data); void clearData(optional DOMString format); @@ -1408,7 +1408,6 @@ typedef Window WindowProxy; boolean confirm(optional DOMString message = ""); DOMString? prompt(optional DOMString message = "", optional DOMString default = ""); void print(); - any showModalDialog(DOMString url, optional any argument); void postMessage(any message, DOMString targetOrigin, optional sequence transfer); diff --git a/testing/web-platform/tests/interfaces/remoteplayback.idl b/testing/web-platform/tests/interfaces/remoteplayback.idl new file mode 100644 index 000000000000..598bf30b1654 --- /dev/null +++ b/testing/web-platform/tests/interfaces/remoteplayback.idl @@ -0,0 +1,23 @@ +enum RemotePlaybackState { + "connecting", + "connected", + "disconnected" +}; + +callback RemotePlaybackAvailabilityCallback = void(boolean available); + +interface RemotePlayback : EventTarget { + readonly attribute RemotePlaybackState state; + attribute EventHandler onconnecting; + attribute EventHandler onconnect; + attribute EventHandler ondisconnect; + + Promise watchAvailability(RemotePlaybackAvailabilityCallback callback); + Promise cancelWatchAvailability(optional long id); + Promise prompt(); +}; + +partial interface HTMLMediaElement { + readonly attribute RemotePlayback remote; + attribute boolean disableRemotePlayback; +}; diff --git a/testing/web-platform/tests/js/builtins/Promise-subclassing.html b/testing/web-platform/tests/js/builtins/Promise-subclassing.html index 7264f4661aa0..2349c07b0590 100644 --- a/testing/web-platform/tests/js/builtins/Promise-subclassing.html +++ b/testing/web-platform/tests/js/builtins/Promise-subclassing.html @@ -143,7 +143,7 @@ promise_test(function testPromiseRace() { "Next 3"]); assert_true(p instanceof LoggingPromise); return p.then(function(arg) { - assert_true(arg == 1 || arg == 2); + assert_in_array(arg, [1, 2]); }); }, "Promise.race behavior"); @@ -159,7 +159,7 @@ promise_test(function testPromiseRaceNoSpecies() { "Next 3"]); assert_true(p instanceof SpeciesLessPromise); return p.then(function(arg) { - assert_true(arg == 1 || arg == 2); + assert_in_array(arg, [1, 2]); }); }, "Promise.race without species behavior"); diff --git a/testing/web-platform/tests/lint.whitelist b/testing/web-platform/tests/lint.whitelist index e26431f9a9ff..13ddd0fb95e7 100644 --- a/testing/web-platform/tests/lint.whitelist +++ b/testing/web-platform/tests/lint.whitelist @@ -87,6 +87,7 @@ W3C-TEST.ORG:tools/* PRINT STATEMENT:tools/* W3C-TEST.ORG:*/tools/* PRINT STATEMENT:*/tools/* +PRINT STATEMENT:wptrun.py ### Test exclusions ## @@ -188,6 +189,7 @@ SET TIMEOUT: service-workers/service-worker/update-recovery.https.html SET TIMEOUT: service-workers/service-worker/resources/extendable-event-async-waituntil.js SET TIMEOUT: service-workers/service-worker/resources/fetch-event-async-respond-with-worker.js SET TIMEOUT: service-workers/service-worker/resources/fetch-event-test-worker.js +SET TIMEOUT: service-workers/service-worker/resources/opaque-response-preloaded-iframe.html SET TIMEOUT: service-workers/service-worker/resources/performance-timeline-worker.js SET TIMEOUT: shadow-dom/Document-prototype-currentScript.html SET TIMEOUT: shadow-dom/scroll-to-the-fragment-in-shadow-tree.html diff --git a/testing/web-platform/tests/media-capabilities/decodingInfo.html b/testing/web-platform/tests/media-capabilities/decodingInfo.html index a0e0d342682b..85acfe7f613f 100644 --- a/testing/web-platform/tests/media-capabilities/decodingInfo.html +++ b/testing/web-platform/tests/media-capabilities/decodingInfo.html @@ -35,6 +35,131 @@ promise_test(t => { })); }, "Test that decodingInfo rejects if the MediaConfiguration does not have a type"); +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + })); +}, "Test that decodingInfo rejects if the configuration doesn't have an audio or video field"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + video: { + contentType: 'video/webm; codecs="vp9"', + width: 800, + height: 600, + bitrate: 3000, + framerate: -1, + }, + })); +}, "Test that decodingInfo rejects if the video configuration has a negative framerate"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + video: { + contentType: 'video/webm; codecs="vp9"', + width: 800, + height: 600, + bitrate: 3000, + framerate: 0, + }, + })); +}, "Test that decodingInfo rejects if the video configuration has a framerate set to 0"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + video: { + contentType: 'video/webm; codecs="vp9"', + width: 800, + height: 600, + bitrate: 3000, + framerate: Infinity, + }, + })); +}, "Test that decodingInfo rejects if the video configuration has a framerate set to Infinity"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + video: { + contentType: 'fgeoa', + width: 800, + height: 600, + bitrate: 3000, + framerate: 24, + }, + })); +}, "Test that decodingInfo rejects if the video configuration contentType doesn't parse"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + video: { + contentType: 'audio/fgeoa', + width: 800, + height: 600, + bitrate: 3000, + framerate: 24, + }, + })); +}, "Test that decodingInfo rejects if the video configuration contentType isn't of type video"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + video: { + contentType: 'video/webm; codecs="vp9"; foo="bar"', + width: 800, + height: 600, + bitrate: 3000, + framerate: 24, + }, + })); +}, "Test that decodingInfo rejects if the video configuration contentType has more than one parameter"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + video: { + contentType: 'video/webm; foo="bar"', + width: 800, + height: 600, + bitrate: 3000, + framerate: 24, + }, + })); +}, "Test that decodingInfo rejects if the video configuration contentType has one parameter that isn't codecs"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + audio: { contentType: 'fgeoa' }, + })); +}, "Test that decodingInfo rejects if the audio configuration contenType doesn't parse"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + audio: { contentType: 'video/fgeoa' }, + })); +}, "Test that decodingInfo rejects if the audio configuration contentType isn't of type audio"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + audio: { contentType: 'audio/webm; codecs="opus"; foo="bar"' }, + })); +}, "Test that decodingInfo rejects if the audio configuration contentType has more than one parameters"); + +promise_test(t => { + return promise_rejects(t, new TypeError(), navigator.mediaCapabilities.decodingInfo({ + type: 'file', + audio: { contentType: 'audio/webm; foo="bar"' }, + })); +}, "Test that decodingInfo rejects if the audio configuration contentType has one parameter that isn't codecs"); + promise_test(t => { return navigator.mediaCapabilities.decodingInfo({ type: 'file', diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm deleted file mode 100644 index f232dcb7c9af..000000000000 --- a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm +++ /dev/null @@ -1,9 +0,0 @@ - - - - Page with showModalDialog() API - - - - - \ No newline at end of file diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm deleted file mode 100644 index 5cb0d90309ff..000000000000 --- a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm +++ /dev/null @@ -1,37 +0,0 @@ - - - - HTML5 Sandbox: Block popup created via showModalDialog() inside iframe with sandbox attribute. - - - - - - - -
Description: Block popup created via showModalDialog() inside iframe with sandbox attribute.
- - - - - - - - - -
Test ResultTest Assertion
Manual -
Steps:
-
1. Click button "Click here to call showModalDialog() API".
-
-
Test passes if there is no red on the page and no new window opens. The user agent may offer the user the option of allowing a new window to open.
-
-
-
-
iframe with sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation"
- -
- - - diff --git a/testing/web-platform/tests/payment-request/payment-request-constructor.https.html b/testing/web-platform/tests/payment-request/payment-request-constructor.https.html new file mode 100644 index 000000000000..72b69b525627 --- /dev/null +++ b/testing/web-platform/tests/payment-request/payment-request-constructor.https.html @@ -0,0 +1,394 @@ + + + +Test for PaymentRequest Constructor + + + + diff --git a/testing/web-platform/tests/payment-request/payment-request-show-method.https.html b/testing/web-platform/tests/payment-request/payment-request-show-method.https.html new file mode 100644 index 000000000000..d170ea024fef --- /dev/null +++ b/testing/web-platform/tests/payment-request/payment-request-show-method.https.html @@ -0,0 +1,40 @@ + + + +Test for PaymentRequest.show() method + + + + diff --git a/testing/web-platform/tests/performance-timeline/po-observe.html b/testing/web-platform/tests/performance-timeline/po-observe.html new file mode 100644 index 000000000000..dcfd373f4f4d --- /dev/null +++ b/testing/web-platform/tests/performance-timeline/po-observe.html @@ -0,0 +1,82 @@ + + +PerformanceObservers: PerformanceObserverInit.buffered + + + +

PerformanceObservers: PerformanceObserverInit.buffered

+

+PerformanceObserverInit.buffered should retrieve previously buffered entries +

+
+ diff --git a/testing/web-platform/tests/pointerevents/pointerevent_pointerleave_pen-manual.html b/testing/web-platform/tests/pointerevents/pointerevent_pointerleave_pen-manual.html index 9d68b2162e30..bb6dcc4236b0 100644 --- a/testing/web-platform/tests/pointerevents/pointerevent_pointerleave_pen-manual.html +++ b/testing/web-platform/tests/pointerevents/pointerevent_pointerleave_pen-manual.html @@ -32,9 +32,11 @@ }); on_event(target0, "pointerleave", function (event) { - detected_pointertypes[event.pointerType] = true; - check_PointerEvent(event); count++; + detected_pointertypes[event.pointerType] = true; + if (count == 1) + check_PointerEvent(event); + test_pointerEvent.step(function () { assert_equals(event.pointerType, "pen", "Test should be run using a pen as input"); assert_equals(event.type, "pointerleave", "The " + event.type + " event was received"); @@ -59,7 +61,7 @@
- Use a pen to hover over then lift up away from this element. + Use a pen to hover over then lift up away from this element, and repeat it again.

Test complete: Scroll to Summary to view Pass/Fail Results.

@@ -67,4 +69,4 @@
- \ No newline at end of file + diff --git a/testing/web-platform/tests/pointerlock/pointerlock_remove_target_on_mouseup-manual.html b/testing/web-platform/tests/pointerlock/pointerlock_remove_target_on_mouseup-manual.html new file mode 100644 index 000000000000..71b9eb693713 --- /dev/null +++ b/testing/web-platform/tests/pointerlock/pointerlock_remove_target_on_mouseup-manual.html @@ -0,0 +1,20 @@ + + +Remove PointerLock target on mouseup + + +

Click anywhere to run the test. If a "PASS" result appears the test passes, otherwise it fails

+
+ diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclose-manual.https.html b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclose-manual.https.html new file mode 100644 index 000000000000..f63806f82b09 --- /dev/null +++ b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclose-manual.https.html @@ -0,0 +1,145 @@ + + + +Closing a PresentationConnection + + + + + + + + +

Description

+

+ This test validates that after connection close,
+ the connection state is set closed,
+ the onclose EventHandler is triggered. +

+
+

Click the button below to start the test.

+ + + diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html deleted file mode 100644 index a4aa65e9adcc..000000000000 --- a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onclosed-manual.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -PresentationConnection.onclose - - - - - - -

Description

-

- This test validates that after connection close,
- the connection state is set closed,
- the onclose EventHandler is triggered. -

-
-

Click the button below to start the test.

- - - diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnect-manual.https.html b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnect-manual.https.html new file mode 100644 index 000000000000..0f4a4ac36976 --- /dev/null +++ b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnect-manual.https.html @@ -0,0 +1,72 @@ + + + +Establishing a presentation connection + + + + + + + +

Description

+

+ This test validates that after connection starts,
+ the onconnect EventHandler is triggered and connection state is connected. +

+
+

Click the button below to start the test.

+ + + diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnected-manual.html b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnected-manual.html deleted file mode 100644 index 3c75b969e0ec..000000000000 --- a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onconnected-manual.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -PresentationConnection.onconnect - - - - - - -

Description

-

- This test validates that after connection starts,
- the onconnect EventHandler is triggered and connection state is connected. -

-
-

Click the button below to start the test.

- - - diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminate-manual.https.html b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminate-manual.https.html new file mode 100644 index 000000000000..7fdc2dbdcd9d --- /dev/null +++ b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminate-manual.https.html @@ -0,0 +1,157 @@ + + + +Terminating a presentation in a controlling browsing context + + + + + + + + +

+ Click the button below and select the available presentation display, to start the manual test. The test passes if a "PASS" result appears.
+ This test asks you to click the button twice, unless the test fails.
+

+ + + + diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html b/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html deleted file mode 100644 index 68ee6280a851..000000000000 --- a/testing/web-platform/tests/presentation-api/controlling-ua/PresentationConnection_onterminated-manual.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -PresentationConnection.onterminate - - - - - - -

Description

-

- This test validates that after connection terminate,
- the connection state is set terminated,
- the onterminate EventHandler is triggered. -

-
-

Click the button below to start the test.

- - - diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/reconnectToPresentation_success-manual.https.html b/testing/web-platform/tests/presentation-api/controlling-ua/reconnectToPresentation_success-manual.https.html index 94c48d9840d1..7521b4fd23c8 100644 --- a/testing/web-platform/tests/presentation-api/controlling-ua/reconnectToPresentation_success-manual.https.html +++ b/testing/web-platform/tests/presentation-api/controlling-ua/reconnectToPresentation_success-manual.https.html @@ -15,6 +15,14 @@ diff --git a/testing/web-platform/tests/presentation-api/controlling-ua/support/iframe.html b/testing/web-platform/tests/presentation-api/controlling-ua/support/iframe.html index 6c602d86a8a2..e2171deaa834 100644 --- a/testing/web-platform/tests/presentation-api/controlling-ua/support/iframe.html +++ b/testing/web-platform/tests/presentation-api/controlling-ua/support/iframe.html @@ -2,9 +2,23 @@ Presentation API - controlling ua - sandboxing + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/remote-playback/idlharness.html b/testing/web-platform/tests/remote-playback/idlharness.html new file mode 100644 index 000000000000..bd9cbf6cc43e --- /dev/null +++ b/testing/web-platform/tests/remote-playback/idlharness.html @@ -0,0 +1,41 @@ + + + + +Remote Playback API IDL tests + + + + + + + +

Remote Playback API IDL tests

+ + + +
+ + diff --git a/testing/web-platform/tests/resource-timing/resource-timing.js b/testing/web-platform/tests/resource-timing/resource-timing.js index 7a3e335f5e53..9167013a5adb 100644 --- a/testing/web-platform/tests/resource-timing/resource-timing.js +++ b/testing/web-platform/tests/resource-timing/resource-timing.js @@ -277,7 +277,7 @@ window.onload = // Per https://w3c.github.io/resource-timing/#performanceresourcetiming: // "[If redirected, startTime] MUST return the same value as redirectStart. Otherwise, // [startTime] MUST return the same value as fetchStart." - assert_true(actual.startTime == actual.redirectStart || actual.startTime == actual.fetchStart, + assert_in_array(actual.startTime, [actual.redirectStart, actual.fetchStart], "startTime must be equal to redirectStart or fetchStart."); // redirectStart <= redirectEnd <= fetchStart <= domainLookupStart <= domainLookupEnd <= connectStart diff --git a/testing/web-platform/tests/resources/idlharness.js b/testing/web-platform/tests/resources/idlharness.js index f661d238cbf5..37e76f3a1d61 100644 --- a/testing/web-platform/tests/resources/idlharness.js +++ b/testing/web-platform/tests/resources/idlharness.js @@ -8,7 +8,7 @@ policies and contribution forms [3]. [3] http://www.w3.org/2004/10/27-testcases */ -/* For user documentation see docs/idlharness.md */ +/* For user documentation see docs/_writing-tests/idlharness.md */ /** * Notes for people who want to edit this file (not just use it as a library): @@ -617,7 +617,7 @@ IdlArray.prototype.assert_type_is = function(value, type) return; case "object": - assert_true(typeof value == "object" || typeof value == "function", "wrong type: not object or function"); + assert_in_array(typeof value, ["object", "function"], "wrong type: not object or function"); return; } @@ -633,7 +633,7 @@ IdlArray.prototype.assert_type_is = function(value, type) // in an infinite loop. TODO: This means we don't have tests for // NoInterfaceObject interfaces, and we also can't test objects that // come from another self. - assert_true(typeof value == "object" || typeof value == "function", "wrong type: not object or function"); + assert_in_array(typeof value, ["object", "function"], "wrong type: not object or function"); if (value instanceof Object && !this.members[type].has_extended_attribute("NoInterfaceObject") && type in self) @@ -1633,6 +1633,13 @@ IdlInterface.prototype.test_object = function(desc) IdlInterface.prototype.test_primary_interface_of = function(desc, obj, exception, expected_typeof) //@{ { + // Only the object itself, not its members, are tested here, so if the + // interface is untested, there is nothing to do. + if (!this.untested) + { + return; + } + // We can't easily test that its prototype is correct if there's no // interface object, or the object is from a different global environment // (not instanceof Object). TODO: test in this case that its prototype at @@ -1684,6 +1691,9 @@ IdlInterface.prototype.test_interface_of = function(desc, obj, exception, expect for (var i = 0; i < this.members.length; i++) { var member = this.members[i]; + if (member.untested) { + continue; + } if (!exposed_in(exposure_set(member, this.exposureSet))) { test(function() { assert_false(member.name in obj); @@ -1891,6 +1901,7 @@ IdlInterface.prototype.do_interface_attribute_asserts = function(obj, member, a_ // TODO: Test calling setter on the interface prototype (should throw // TypeError in most cases). if (member.readonly + && !member.has_extended_attribute("LenientSetter") && !member.has_extended_attribute("PutForwards") && !member.has_extended_attribute("Replaceable")) { diff --git a/testing/web-platform/tests/resources/testharness.js b/testing/web-platform/tests/resources/testharness.js index 2ee9a146a83a..e7be6c4e6c8d 100644 --- a/testing/web-platform/tests/resources/testharness.js +++ b/testing/web-platform/tests/resources/testharness.js @@ -1178,7 +1178,7 @@ policies and contribution forms [3]. throw e; } if (code === null) { - return; + throw new AssertionError('Test bug: need to pass exception to assert_throws()'); } if (typeof code === "object") { assert(typeof e == "object" && "name" in e && e.name == code.name, diff --git a/testing/web-platform/tests/service-workers/service-worker/clients-get-client-types.https.html b/testing/web-platform/tests/service-workers/service-worker/clients-get-client-types.https.html index 0005f98c4bb4..5bb312844af9 100644 --- a/testing/web-platform/tests/service-workers/service-worker/clients-get-client-types.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/clients-get-client-types.https.html @@ -62,8 +62,8 @@ function wait_for_clientId() { } var expected = [ - /* visibilityState, focused, url, frameType */ - ['visible', true, normalizeURL(scope) + '-frame.html', 'nested'], - [undefined, undefined, normalizeURL(scope) + '-shared-worker.js', 'none'] + // visibilityState, focused, url, type, frameType + ['visible', true, normalizeURL(scope) + '-frame.html', 'window', 'nested'], + [undefined, undefined, normalizeURL(scope) + '-shared-worker.js', 'sharedworker', 'none'] ]; diff --git a/testing/web-platform/tests/service-workers/service-worker/clients-get.https.html b/testing/web-platform/tests/service-workers/service-worker/clients-get.https.html index 45da2b35eff0..68c6d7f7ac02 100644 --- a/testing/web-platform/tests/service-workers/service-worker/clients-get.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/clients-get.https.html @@ -60,9 +60,9 @@ function wait_for_clientId() { } var expected = [ - /* visibilityState, focused, url, frameType */ - ['visible', true, normalizeURL(scope) + '#1', 'nested'], - ['visible', false, normalizeURL(scope) + '#2', 'nested'], + // visibilityState, focused, url, type, frameType + ['visible', true, normalizeURL(scope) + '#1', 'window', 'nested'], + ['visible', false, normalizeURL(scope) + '#2', 'window', 'nested'], undefined ]; diff --git a/testing/web-platform/tests/service-workers/service-worker/clients-matchall-exact-controller.https.html b/testing/web-platform/tests/service-workers/service-worker/clients-matchall-exact-controller.https.html index 3fc2dd5ac84e..ee60c4a6077d 100644 --- a/testing/web-platform/tests/service-workers/service-worker/clients-matchall-exact-controller.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/clients-matchall-exact-controller.https.html @@ -28,7 +28,7 @@ function checkWorkerClients(worker, expected) { } let expected = [ - /* visibilityState, focused, url, frameType */ + // visibilityState, focused, url, type, frameType ['visible', true, new URL(scope + '#1', location).toString(), 'window', 'nested'], ['visible', false, new URL(scope + '#2', location).toString(), 'window', 'nested'] ]; diff --git a/testing/web-platform/tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html b/testing/web-platform/tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html index affd4c656f84..50bd817f5688 100644 --- a/testing/web-platform/tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html @@ -27,13 +27,13 @@ function create_iframes(scope) { } var expected_without_include_uncontrolled = [ - /* visibilityState, focused, url, frameType */ + // visibilityState, focused, url, type, frameType ['visible', false, new URL(scope + '#1', location).toString(), 'window', 'nested'], ['visible', true, new URL(scope + '#2', location).toString(), 'window', 'nested'] ]; var expected_with_include_uncontrolled = [ - /* visibilityState, focused, url, frameType */ + // visibilityState, focused, url, type, frameType ['visible', true, location.href, 'window', 'top-level'], ['visible', false, new URL(scope + '#1', location).toString(), 'window', 'nested'], ['visible', true, new URL(scope + '#2', location).toString(), 'window', 'nested'], diff --git a/testing/web-platform/tests/service-workers/service-worker/clients-matchall.https.html b/testing/web-platform/tests/service-workers/service-worker/clients-matchall.https.html index 28348e2e94be..36269b4d98e2 100644 --- a/testing/web-platform/tests/service-workers/service-worker/clients-matchall.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/clients-matchall.https.html @@ -30,7 +30,7 @@ t.step(function() { }); var expected = [ - /* visibilityState, focused, url, frameType */ + // visibilityState, focused, url, type, frameType ['visible', true, new URL(scope + '#1', location).toString(), 'window', 'nested'], ['visible', false, new URL(scope + '#2', location).toString(), 'window', 'nested'] ]; diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html index 2a0342fee00b..0e8fa93b32c0 100644 --- a/testing/web-platform/tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html @@ -7,12 +7,6 @@ + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-request-fallback.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-request-fallback.https.html index 57934d535ada..400d83a9d370 100644 --- a/testing/web-platform/tests/service-workers/service-worker/fetch-request-fallback.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-request-fallback.https.html @@ -3,111 +3,280 @@ - + diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-request-html-imports.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-request-html-imports.https.html new file mode 100644 index 000000000000..b2f56da9f017 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-request-html-imports.https.html @@ -0,0 +1,64 @@ + +Service Worker: FetchEvent for HTMLImports + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html index 5536304ff637..92ef4684668e 100644 --- a/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-request-resources.https.html @@ -3,7 +3,7 @@ - + - + + + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/fetch-response-xhr.https.html b/testing/web-platform/tests/service-workers/service-worker/fetch-response-xhr.https.html index 24eb44e222ec..74173e8b9bdc 100644 --- a/testing/web-platform/tests/service-workers/service-worker/fetch-response-xhr.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/fetch-response-xhr.https.html @@ -3,7 +3,7 @@ - + + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/import-scripts-updated-flag.https.html b/testing/web-platform/tests/service-workers/service-worker/import-scripts-updated-flag.https.html new file mode 100644 index 000000000000..506827f89d5f --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/import-scripts-updated-flag.https.html @@ -0,0 +1,83 @@ + + +Tests for importScripts: import scripts updated flag + + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/iso-latin1-header.https.html b/testing/web-platform/tests/service-workers/service-worker/iso-latin1-header.https.html new file mode 100644 index 000000000000..ad0ab59c7756 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/iso-latin1-header.https.html @@ -0,0 +1,32 @@ + +Service Worker: respondWith with header value containing an ISO Latin 1 (ISO-8859-1 Character Set) string + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/navigation-redirect-body.https.html b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect-body.https.html new file mode 100644 index 000000000000..0441c610b179 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect-body.https.html @@ -0,0 +1,53 @@ + +Service Worker: Navigation redirection must clear body + + + + + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/navigation-redirect-to-http.https.html b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect-to-http.https.html new file mode 100644 index 000000000000..d4d2788c5891 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect-to-http.https.html @@ -0,0 +1,25 @@ + +Service Worker: Service Worker can receive HTTP opaqueredirect response. + + + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html index 586e9036a3e9..e311bb635367 100644 --- a/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/navigation-redirect.https.html @@ -176,7 +176,7 @@ promise_test(function(t) { return test_redirect( SCOPE1 + 'url=' + encodeURIComponent(SCOPE1), SCOPE1, - [[SCOPE1 + 'url=' + encodeURIComponent(SCOPE1)], [], []]); + [[SCOPE1 + 'url=' + encodeURIComponent(SCOPE1), SCOPE1], [], []]); }); }, 'SW-fallbacked redirect to same-origin same-scope.'); promise_test(function(t) { @@ -184,7 +184,7 @@ promise_test(function(t) { return test_redirect( SCOPE1 + 'url=' + encodeURIComponent(SCOPE2), SCOPE2, - [[SCOPE1 + 'url=' + encodeURIComponent(SCOPE2)], [], []]); + [[SCOPE1 + 'url=' + encodeURIComponent(SCOPE2)], [SCOPE2], []]); }); }, 'SW-fallbacked redirect to same-origin other-scope.'); promise_test(function(t) { @@ -204,7 +204,7 @@ promise_test(function(t) { OTHER_ORIGIN_SCOPE, [[SCOPE1 + 'url=' + encodeURIComponent(OTHER_ORIGIN_SCOPE)], [], - []]); + [OTHER_ORIGIN_SCOPE]]); }); }, 'SW-fallbacked redirect to other-origin in-scope.'); @@ -372,6 +372,16 @@ promise_test(function(t) { [OTHER_ORIGIN_SCOPE]]); }); }, 'Redirect to other-origin in-scope with opaque redirect response.'); +promise_test(function(t) { + return setup_environment(t).then(function() { + return test_redirect( + SCOPE1 + 'sw=opaque&noLocationRedirect', + SCOPE1 + 'sw=opaque&noLocationRedirect', + [[SCOPE1 + 'sw=opaque&noLocationRedirect'], + [], + []]); + }); + }, 'No location redirect response.'); // Opaque redirect passed through Cache. // SW responds with an opaque redirectresponse from the Cache API. @@ -445,5 +455,15 @@ promise_test(function(t) { }, 'Redirect to other-origin in-scope with opaque redirect response which ' + 'is passed through Cache.'); +promise_test(function(t) { + return setup_environment(t).then(function() { + return test_redirect( + SCOPE1 + 'sw=opaqueThroughCache&noLocationRedirect', + SCOPE1 + 'sw=opaqueThroughCache&noLocationRedirect', + [[SCOPE1 + 'sw=opaqueThroughCache&noLocationRedirect'], + [], + []]); + }); + }, 'No location redirect response via Cache.'); diff --git a/testing/web-platform/tests/service-workers/service-worker/opaque-response-preloaded.https.html b/testing/web-platform/tests/service-workers/service-worker/opaque-response-preloaded.https.html new file mode 100644 index 000000000000..ffe9344ea84e --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/opaque-response-preloaded.https.html @@ -0,0 +1,33 @@ + + +Opaque responses should not be reused for XHRs + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html b/testing/web-platform/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html index 38b4f56e784d..29c056080c79 100644 --- a/testing/web-platform/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/postmessage-msgport-to-client.https.html @@ -1,51 +1,43 @@ -Service Worker: postMessage to Client +Service Worker: postMessage via MessagePort to Client diff --git a/testing/web-platform/tests/service-workers/service-worker/postmessage-to-client.https.html b/testing/web-platform/tests/service-workers/service-worker/postmessage-to-client.https.html index 8eac04a63d91..15d2e8893370 100644 --- a/testing/web-platform/tests/service-workers/service-worker/postmessage-to-client.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/postmessage-to-client.https.html @@ -5,48 +5,50 @@ diff --git a/testing/web-platform/tests/service-workers/service-worker/postmessage.https.html b/testing/web-platform/tests/service-workers/service-worker/postmessage.https.html index a6f66517910e..3a6487ea17a6 100644 --- a/testing/web-platform/tests/service-workers/service-worker/postmessage.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/postmessage.https.html @@ -4,57 +4,136 @@ diff --git a/testing/web-platform/tests/service-workers/service-worker/ready.https.html b/testing/web-platform/tests/service-workers/service-worker/ready.https.html index ee6a97ca8fc9..8267e6506d20 100644 --- a/testing/web-platform/tests/service-workers/service-worker/ready.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/ready.https.html @@ -12,31 +12,39 @@ test(function() { 'registrations should return the same Promise object'); }, 'ready returns the same Promise object'); -async_test(function(t) { - with_iframe('resources/blank.html?uncontrolled') +promise_test(function(t) { + return with_iframe('resources/blank.html?uncontrolled') .then(t.step_func(function(frame) { var promise = frame.contentWindow.navigator.serviceWorker.ready; + t.add_cleanup(function() { + frame.remove(); + }); + assert_equals(Object.getPrototypeOf(promise), frame.contentWindow.Promise.prototype, 'the Promise should be in the context of the ' + 'related document'); - frame.remove(); - t.done(); })); }, 'ready returns a Promise object in the context of the related document'); -async_test(function(t) { +promise_test(function(t) { var url = 'resources/empty-worker.js'; var scope = 'resources/blank.html?ready-controlled'; var expected_url = normalizeURL(url); var frame; - service_worker_unregister_and_register(t, url, scope) + return service_worker_unregister_and_register(t, url, scope) .then(function(registration) { + add_completion_callback(function() { + registration.unregister(); + }); return wait_for_state(t, registration.installing, 'activated'); }) .then(function() { return with_iframe(scope); }) .then(function(f) { + t.add_cleanup(function() { + f.remove(); + }); frame = f; return frame.contentWindow.navigator.serviceWorker.ready; }) @@ -47,29 +55,34 @@ async_test(function(t) { 'waiting should be null'); assert_equals(registration.active.scriptURL, expected_url, 'active after ready should not be null'); - assert_equals( - frame.contentWindow.navigator.serviceWorker.controller.scriptURL, - expected_url, - 'controlled document should have a controller'); - - frame.remove(); - service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + assert_equals(frame.contentWindow.navigator.serviceWorker.controller, + registration.active, + 'the controller should be the active worker'); + assert_in_array(registration.active.state, + ['activating', 'activated'], + '.ready should be resolved when the registration ' + + 'has an active worker'); + }); }, 'ready on a controlled document'); -async_test(function(t) { +promise_test(function(t) { var url = 'resources/empty-worker.js'; var scope = 'resources/blank.html?ready-potential-controlled'; var expected_url = normalizeURL(url); var frame; - with_iframe(scope) + return with_iframe(scope) .then(function(f) { + t.add_cleanup(function() { + f.remove(); + }); frame = f; return navigator.serviceWorker.register(url, {scope:scope}); }) - .then(function() { + .then(function(r) { + add_completion_callback(function() { + r.unregister(); + }); return frame.contentWindow.navigator.serviceWorker.ready; }) .then(function(registration) { @@ -79,32 +92,99 @@ async_test(function(t) { 'waiting should be null.') assert_equals(registration.active.scriptURL, expected_url, 'active after ready should not be null'); + assert_in_array(registration.active.state, + ['activating', 'activated'], + '.ready should be resolved when the registration ' + + 'has an active worker'); assert_equals(frame.contentWindow.navigator.serviceWorker.controller, null, 'uncontrolled document should not have a controller'); - - frame.remove(); - service_worker_unregister_and_done(t, scope); - }) - .catch(unreached_rejection(t)); + }); }, 'ready on a potential controlled document'); -async_test(function(t) { +promise_test(function(t) { + var url = 'resources/empty-worker.js'; + var scope = 'resources/blank.html?ready-installing'; + + return service_worker_unregister(t, scope) + .then(function() { + return with_iframe(scope); + }) + .then(function(f) { + var promise = f.contentWindow.navigator.serviceWorker.ready; + t.add_cleanup(function() { + f.remove(); + }); + navigator.serviceWorker.register(url, {scope: scope}); + return promise; + }) + .then(function(registration) { + add_completion_callback(function() { + registration.unregister(); + }); + + assert_equals(registration.installing, null, + 'installing should be null'); + assert_equals(registration.waiting, null, 'waiting should be null'); + assert_not_equals(registration.active, null, + 'active after ready should not be null'); + assert_in_array(registration.active.state, + ['activating', 'activated'], + '.ready should be resolved when the registration ' + + 'has an active worker'); + }); + }, 'ready on an iframe whose parent registers a new service worker'); + +promise_test(function(t) { + var url = 'resources/empty-worker.js'; + var scope = 'resources/register-iframe.html'; + var expected_url = normalizeURL(url); + + return with_iframe(scope) + .then(function(f) { + t.add_cleanup(function() { + f.remove(); + }); + return f.contentWindow.navigator.serviceWorker.ready; + }) + .then(function(registration) { + add_completion_callback(function() { + registration.unregister(); + }); + + assert_equals(registration.installing, null, + 'installing should be null'); + assert_equals(registration.waiting, null, 'waiting should be null'); + assert_not_equals(registration.active, null, + 'active after ready should not be null'); + assert_in_array(registration.active.state, + ['activating', 'activated'], + '.ready should be resolved with "active worker"'); + }); + }, 'ready on an iframe that installs a new service worker'); + +promise_test(function(t) { var url = 'resources/empty-worker.js'; var matched_scope = 'resources/blank.html?ready-after-match'; var longer_matched_scope = 'resources/blank.html?ready-after-match-longer'; var frame, registration; - Promise.all([service_worker_unregister(t, matched_scope), - service_worker_unregister(t, longer_matched_scope)]) + return Promise.all([service_worker_unregister(t, matched_scope), + service_worker_unregister(t, longer_matched_scope)]) .then(function() { return with_iframe(longer_matched_scope); }) .then(function(f) { + t.add_cleanup(function() { + f.remove(); + }); frame = f; return navigator.serviceWorker.register(url, {scope: matched_scope}); }) .then(function(r) { + add_completion_callback(function() { + r.unregister(); + }); registration = r; return wait_for_state(t, r.installing, 'activated'); }) @@ -112,7 +192,10 @@ async_test(function(t) { return navigator.serviceWorker.register( url, {scope: longer_matched_scope}); }) - .then(function() { + .then(function(r) { + add_completion_callback(function() { + r.unregister(); + }); return frame.contentWindow.navigator.serviceWorker.ready; }) .then(function(r) { @@ -120,24 +203,21 @@ async_test(function(t) { 'longer matched registration should be returned'); assert_equals(frame.contentWindow.navigator.serviceWorker.controller, null, 'controller should be null'); - return registration.unregister(); - }) - .then(function() { - frame.remove(); - return service_worker_unregister_and_done(t, longer_matched_scope); - }) - .catch(unreached_rejection(t)); + }); }, 'ready after a longer matched registration registered'); -async_test(function(t) { +promise_test(function(t) { var url = 'resources/empty-worker.js'; var matched_scope = 'resources/blank.html?ready-after-resolve'; var longer_matched_scope = 'resources/blank.html?ready-after-resolve-longer'; var frame, registration; - service_worker_unregister_and_register(t, url, matched_scope) + return service_worker_unregister_and_register(t, url, matched_scope) .then(function(r) { + add_completion_callback(function() { + r.unregister(); + }); registration = r; return wait_for_state(t, r.installing, 'activated'); }) @@ -145,6 +225,9 @@ async_test(function(t) { return with_iframe(longer_matched_scope); }) .then(function(f) { + t.add_cleanup(function() { + f.remove(); + }); frame = f; return f.contentWindow.navigator.serviceWorker.ready; }) @@ -154,19 +237,15 @@ async_test(function(t) { return navigator.serviceWorker.register( url, {scope: longer_matched_scope}); }) - .then(function() { + .then(function(r) { + add_completion_callback(function() { + r.unregister(); + }); return frame.contentWindow.navigator.serviceWorker.ready; }) .then(function(r) { assert_equals(r.scope, normalizeURL(matched_scope), 'ready should only be resolved once'); - return registration.unregister(); - }) - .then(function() { - frame.remove(); - return service_worker_unregister_and_done(t, longer_matched_scope); - }) - .catch(unreached_rejection(t)); + }); }, 'access ready after it has been resolved'); - diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/clients-get-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/clients-get-worker.js index ca4444f35335..77c99e835219 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/clients-get-worker.js +++ b/testing/web-platform/tests/service-workers/service-worker/resources/clients-get-worker.js @@ -37,6 +37,7 @@ self.onmessage = function(e) { message.push([client.visibilityState, client.focused, client.url, + client.type, client.frameType]); } else { message.push(client); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.css b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.css new file mode 100644 index 000000000000..9a7545d07021 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.css @@ -0,0 +1 @@ +#crossOriginCss { color: blue; } diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.html new file mode 100644 index 000000000000..3211f78084d7 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-cross.html @@ -0,0 +1 @@ +#crossOriginHtml { color: red; } diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html new file mode 100644 index 000000000000..dcb82871354e --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-iframe.html @@ -0,0 +1,17 @@ + + + + + + +

I should be blue

+

I should be blue

+

I should be blue

+

I should be blue

+

I should be blue

diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css new file mode 100644 index 000000000000..55455bd5da58 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.css @@ -0,0 +1 @@ +#sameOriginCss { color: blue; } diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.html new file mode 100644 index 000000000000..6fad4b9ff048 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-same.html @@ -0,0 +1 @@ +#sameOriginHtml { color: blue; } diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js new file mode 100644 index 000000000000..274142f5ce44 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-css-cross-origin-mime-check-worker.js @@ -0,0 +1,20 @@ +importScripts('/common/get-host-info.sub.js'); +importScripts('test-helpers.sub.js'); + +self.addEventListener('fetch', function(event) { + if (event.request.url.indexOf('cross-origin-css.css') != -1) { + event.respondWith(fetch( + get_host_info()['HTTPS_REMOTE_ORIGIN'] + base_path() + + 'fetch-request-css-cross-origin-mime-check-cross.css', + {mode: 'no-cors'})); + } else if (event.request.url.indexOf('cross-origin-html.css') != -1) { + event.respondWith(fetch( + get_host_info()['HTTPS_REMOTE_ORIGIN'] + base_path() + + 'fetch-request-css-cross-origin-mime-check-cross.html', + {mode: 'no-cors'})); + } else if (event.request.url.indexOf('synthetic.css') != -1) { + event.respondWith(new Response("#synthetic { color: blue; }")); + } else { + event.respondWith(fetch(event.request)); + } + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-fallback-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-fallback-iframe.html index f00d24e37a82..37c7c62ffaf3 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-fallback-iframe.html +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-fallback-iframe.html @@ -12,4 +12,21 @@ function xhr(url) { request.send(); }); } + +function load_image(url, cross_origin) { + return new Promise(function(resolve, reject) { + var img = document.createElement('img'); + document.body.appendChild(img); + img.onload = function() { + resolve(); + }; + img.onerror = function() { + reject(); + }; + if (cross_origin != '') { + img.crossOrigin = cross_origin; + } + img.src = url; + }); +} diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-iframe.html new file mode 100644 index 000000000000..795185944e94 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-iframe.html @@ -0,0 +1,13 @@ + + diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-worker.js new file mode 100644 index 000000000000..5525d526866a --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-html-imports-worker.js @@ -0,0 +1,30 @@ +importScripts('/common/get-host-info.sub.js'); +var host_info = get_host_info(); + +self.addEventListener('fetch', function(event) { + var url = event.request.url; + if (url.indexOf('dummy-dir') == -1) { + return; + } + var result = 'mode=' + event.request.mode + + ' credentials=' + event.request.credentials; + if (url == host_info.HTTPS_ORIGIN + '/dummy-dir/same.html') { + event.respondWith(new Response( + result + + '' + + '')); + } else if (url == host_info.HTTPS_REMOTE_ORIGIN + '/dummy-dir/other.html') { + event.respondWith(new Response( + result + + '' + + '')); + } else { + event.respondWith(new Response(result)); + } + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html index 93b038dd67c5..2e5d7dfe9724 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html @@ -63,5 +63,13 @@ function load_css_with_integrity(url, integrity) { document.body.appendChild(link); } +function load_audio(url, cross_origin) { + var audio = document.createElement('audio'); + if (cross_origin != '') { + audio.crossOrigin = cross_origin; + } + audio.src = url; + document.body.appendChild(audio); +} diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-worker.js index 900b63c62fc7..e732da0f1b12 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-worker.js +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-resources-worker.js @@ -17,6 +17,7 @@ self.addEventListener('fetch', function(event) { port.postMessage({ url: url, mode: event.request.mode, + redirect: event.request.redirect, credentials: event.request.credentials, integrity: event.request.integrity }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html index ef2f925aa5f1..8afa237dc0ec 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html @@ -8,6 +8,10 @@ function assert_equals(a, b) { port.postMessage({results: 'equals', got: a, expected: b}); } +function assert_array_equals(a, b, msg) { + port.postMessage({results: 'array_equals', got: a, expected: b, msg: msg}); +} + function get_boundary(headers) { var reg = new RegExp('multipart\/form-data; boundary=(.*)'); for (var i = 0; i < headers.length; ++i) { @@ -59,6 +63,70 @@ function xhr_send(url_base, method, data, with_credentials) { }); } +function get_sorted_header_name_list(headers) { + var header_names = []; + var idx, name; + + for (idx = 0; idx < headers.length; ++idx) { + name = headers[idx][0]; + // The `Accept-Language` header is optional; its presence should not + // influence test results. + // + // > 4. If request’s header list does not contain `Accept-Language`, user + // > agents should append `Accept-Language`/an appropriate value to + // > request's header list. + // + // https://fetch.spec.whatwg.org/#fetching + if (name === 'accept-language') { + continue; + } + + header_names.push(name); + } + header_names.sort(); + return header_names; +} + +function get_header_test() { + return xhr_send(host_info['HTTPS_ORIGIN'], 'GET', '', false) + .then(function(response) { + assert_array_equals( + get_sorted_header_name_list(response.headers), + ["accept"], + 'event.request has the expected headers for same-origin GET.'); + }); +} + +function post_header_test() { + return xhr_send(host_info['HTTPS_ORIGIN'], 'POST', '', false) + .then(function(response) { + assert_array_equals( + get_sorted_header_name_list(response.headers), + ["accept", "content-type"], + 'event.request has the expected headers for same-origin POST.'); + }); +} + +function cross_origin_get_header_test() { + return xhr_send(host_info['HTTPS_REMOTE_ORIGIN'], 'GET', '', false) + .then(function(response) { + assert_array_equals( + get_sorted_header_name_list(response.headers), + ["accept"], + 'event.request has the expected headers for cross-origin GET.'); + }); +} + +function cross_origin_post_header_test() { + return xhr_send(host_info['HTTPS_REMOTE_ORIGIN'], 'POST', '', false) + .then(function(response) { + assert_array_equals( + get_sorted_header_name_list(response.headers), + ["accept", "content-type"], + 'event.request has the expected headers for cross-origin POST.'); + }); +} + function string_test() { return xhr_send(host_info['HTTPS_ORIGIN'], 'POST', 'test string', false) .then(function(response) { @@ -166,7 +234,11 @@ function data_url_test() { window.addEventListener('message', function(evt) { port = evt.ports[0]; - string_test() + get_header_test() + .then(post_header_test) + .then(cross_origin_get_header_test) + .then(cross_origin_post_header_test) + .then(string_test) .then(blob_test) .then(custom_method_test) .then(options_method_test) @@ -174,6 +246,9 @@ window.addEventListener('message', function(evt) { .then(mode_credentials_test) .then(data_url_test) .then(function() { port.postMessage({results: 'finish'}); }) - .catch(function(e) { port.postMessage({results: 'failure:' + e}); }); + .catch(function(reason) { + var error = String(reason.message || reason); + port.postMessage({results: 'failure', error: error}); + }); }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-taint-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-taint-iframe.html new file mode 100644 index 000000000000..5f09efe28dff --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-taint-iframe.html @@ -0,0 +1,2 @@ + + diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html index 08b887b7de66..1414596c16e3 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html +++ b/testing/web-platform/tests/service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html @@ -23,11 +23,29 @@ function coalesce_headers_test() { .then(function(xhr) { window.parent.postMessage({results: xhr.getResponseHeader('foo')}, host_info['HTTPS_ORIGIN']); + + return new Promise(function(resolve) { + window.addEventListener('message', function handle(evt) { + if (event.data !== 'ACK') { + return; + } + + window.removeEventListener('message', handle); + resolve(); + }); + }); }); } window.addEventListener('message', function(evt) { - var port = evt.ports[0]; + var port; + + if (event.data !== 'START') { + return; + } + + port = evt.ports[0]; + coalesce_headers_test() .then(function() { port.postMessage({results: 'finish'}); }) .catch(function(e) { port.postMessage({results: 'failure:' + e}); }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-echo.py b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-echo.py new file mode 100644 index 000000000000..7d92794e31b6 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-echo.py @@ -0,0 +1,6 @@ +def main(req, res): + return ([ + ('Cache-Control', 'no-cache, must-revalidate'), + ('Pragma', 'no-cache'), + ('Content-Type', 'application/javascript')], + 'echo_output = "%s";\n' % req.GET['msg']) diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-resource-map-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-resource-map-worker.js new file mode 100644 index 000000000000..b3b9bc46a024 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-resource-map-worker.js @@ -0,0 +1,15 @@ +importScripts('/resources/testharness.js'); + +let version = null; +importScripts('import-scripts-version.py'); +// Once imported, the stored script should be loaded for subsequent importScripts. +const expected_version = version; + +version = null; +importScripts('import-scripts-version.py'); +assert_equals(expected_version, version, 'second import'); + +version = null; +importScripts('import-scripts-version.py', 'import-scripts-version.py', + 'import-scripts-version.py'); +assert_equals(expected_version, version, 'multiple imports'); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js new file mode 100644 index 000000000000..0f5005d9af41 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-updated-flag-worker.js @@ -0,0 +1,29 @@ +importScripts('/resources/testharness.js'); + +let echo_output = null; + +// Tests importing a script that sets |echo_output| to the query string. +function test_import(str) { + importScripts('import-scripts-echo.py?msg=' + str); + assert_equals(echo_output, str); +} + +test_import('root'); +test_import('root-and-message'); + +self.addEventListener('install', () => { + test_import('install'); + test_import('install-and-message'); + }); + +self.addEventListener('message', e => { + var error = null; + + try { + importScripts('import-scripts-echo.py?msg=' + e.data); + } catch (e) { + error = e && e.name; + } + + e.source.postMessage({ error: error, value: echo_output }); + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-version.py b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-version.py new file mode 100644 index 000000000000..91caa1a41ed2 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/import-scripts-version.py @@ -0,0 +1,17 @@ +import datetime +import time + +epoch = datetime.datetime(1970, 1, 1) + +def main(req, res): + # Artificially delay response time in order to ensure uniqueness of + # computed value + time.sleep(0.1) + + now = (datetime.datetime.now() - epoch).total_seconds() + + return ([ + ('Cache-Control', 'no-cache, must-revalidate'), + ('Pragma', 'no-cache'), + ('Content-Type', 'application/javascript')], + 'version = "%s";\n' % now) diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-iframe.html new file mode 100644 index 000000000000..90e3f698cfa6 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-iframe.html @@ -0,0 +1,23 @@ + diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-worker.js new file mode 100644 index 000000000000..3ab5c7e73186 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/iso-latin1-header-worker.js @@ -0,0 +1,12 @@ +self.addEventListener('fetch', function(event) { + var url = event.request.url; + if (url.indexOf('dummy?test') == -1) { + return; + } + + event.respondWith(new Promise(function(resolve) { + var headers = new Headers; + headers.append('TEST', 'ßÀ¿'); // header value holds the Latin1 (ISO8859-1) string. + resolve(new Response('hello world', {'headers': headers})); + })); + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body-worker.js new file mode 100644 index 000000000000..39f11baf8cb9 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body-worker.js @@ -0,0 +1,11 @@ +self.addEventListener('fetch', function(event) { + event.respondWith( + fetch(event.request) + .then( + function(response) { + return response; + }, + function(error) { + return new Response('Error:' + error); + })); + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body.py b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body.py new file mode 100644 index 000000000000..601f818cff6a --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-body.py @@ -0,0 +1,9 @@ +import os + +filename = os.path.basename(__file__) + +def main(request, response): + if request.method == 'POST': + return 302, [('Location', './%s?redirect' % filename)], '' + + return [('Content-Type', 'text/plain')], request.request_path diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py index 4b40762d89ff..0cd5ef18516f 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py +++ b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py @@ -3,7 +3,12 @@ def main(request, response): headers = [("Location", request.GET["url"])] return 302, headers, '' - return [], ''' + status = 200 + + if "noLocationRedirect" in request.GET: + status = 302 + + return status, [], ''' + + diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-to-http-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-to-http-worker.js new file mode 100644 index 000000000000..6f2a8ae1d749 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/navigation-redirect-to-http-worker.js @@ -0,0 +1,22 @@ +importScripts('/resources/testharness.js'); + +self.addEventListener('fetch', function(event) { + event.respondWith(new Promise(function(resolve) { + Promise.resolve() + .then(function() { + assert_equals( + event.request.redirect, 'manual', + 'The redirect mode of navigation request must be manual.'); + return fetch(event.request); + }) + .then(function(response) { + assert_equals( + response.type, 'opaqueredirect', + 'The response type of 302 response must be opaqueredirect.'); + resolve(new Response('OK')); + }) + .catch(function(error) { + resolve(new Response('Failed in SW: ' + error)); + }); + })); + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-iframe.html new file mode 100644 index 000000000000..9c0eed1d720d --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-iframe.html @@ -0,0 +1,33 @@ + + + + + diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-worker.js new file mode 100644 index 000000000000..1615be2fede1 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/opaque-response-preloaded-worker.js @@ -0,0 +1,12 @@ +importScripts('/common/get-host-info.sub.js'); + +var remoteUrl = get_host_info()['HTTPS_REMOTE_ORIGIN'] + + '/service-workers/service-worker/resources/simple.txt' + +self.addEventListener('fetch', event => { + if (!event.request.url.match(/opaque-response$/)) { + return; + } + + event.respondWith(fetch(remoteUrl, {mode: 'no-cors'})); + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js index 3475321f4a68..7af935f4f8fc 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js +++ b/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js @@ -1,20 +1,19 @@ self.onmessage = function(e) { - self.clients.matchAll().then(function(clients) { + e.waitUntil(self.clients.matchAll().then(function(clients) { clients.forEach(function(client) { var messageChannel = new MessageChannel(); messageChannel.port1.onmessage = - onMessageViaMessagePort.bind(null, client); - client.postMessage({port: messageChannel.port2}, - [messageChannel.port2]); + onMessageViaMessagePort.bind(null, messageChannel.port1); + client.postMessage(undefined, [messageChannel.port2]); }); - }); + })); }; -function onMessageViaMessagePort(client, e) { +function onMessageViaMessagePort(port, e) { var message = e.data; if ('value' in message) { - client.postMessage({ack: 'Acking value: ' + message.value}); + port.postMessage({ack: 'Acking value: ' + message.value}); } else if ('done' in message) { - client.postMessage({done: true}); + port.postMessage({done: true}); } } diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-to-client-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-to-client-worker.js index 290a4a9b3e9d..17913063583a 100644 --- a/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-to-client-worker.js +++ b/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-to-client-worker.js @@ -1,10 +1,10 @@ self.onmessage = function(e) { - self.clients.matchAll().then(function(clients) { + e.waitUntil(self.clients.matchAll().then(function(clients) { clients.forEach(function(client) { client.postMessage('Sending message via clients'); if (!Array.isArray(clients)) client.postMessage('clients is not an array'); client.postMessage('quit'); }); - }); + })); }; diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-transferables-worker.js b/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-transferables-worker.js new file mode 100644 index 000000000000..d35c1c952b88 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/postmessage-transferables-worker.js @@ -0,0 +1,24 @@ +var messageHandler = function(port, e) { + var text_decoder = new TextDecoder; + port.postMessage({ + content: text_decoder.decode(e.data), + byteLength: e.data.byteLength + }); + + // Send back the array buffer via Client.postMessage. + port.postMessage(e.data, [e.data.buffer]); + + port.postMessage({ + content: text_decoder.decode(e.data), + byteLength: e.data.byteLength + }); +}; + +self.addEventListener('message', e => { + if (e.ports[0]) { + // Wait for messages sent via MessagePort. + e.ports[0].onmessage = messageHandler.bind(null, e.ports[0]); + return; + } + messageHandler(e.source, e); + }); diff --git a/testing/web-platform/tests/service-workers/service-worker/resources/register-iframe.html b/testing/web-platform/tests/service-workers/service-worker/resources/register-iframe.html new file mode 100644 index 000000000000..f5a040e41d96 --- /dev/null +++ b/testing/web-platform/tests/service-workers/service-worker/resources/register-iframe.html @@ -0,0 +1,4 @@ + diff --git a/testing/web-platform/tests/tools/browserutils/__init__.py b/testing/web-platform/tests/tools/browserutils/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/testing/web-platform/tests/tools/browserutils/browser.py b/testing/web-platform/tests/tools/browserutils/browser.py new file mode 100644 index 000000000000..1e48a6832c4e --- /dev/null +++ b/testing/web-platform/tests/tools/browserutils/browser.py @@ -0,0 +1,268 @@ +import logging +import os +import re +import stat +from abc import ABCMeta, abstractmethod +from configparser import RawConfigParser +from distutils.spawn import find_executable + +from utils import call, get, untar, unzip + +logger = logging.getLogger(__name__) + +uname = os.uname() + +def path(path, exe): + path = path.replace("/", os.path.sep) + if exe and uname[0] == "Windows": + path += ".exe" + return path + + +class Browser(object): + __metaclass__ = ABCMeta + + @abstractmethod + def install(self): + return NotImplemented + + @abstractmethod + def install_webdriver(self): + return NotImplemented + + @abstractmethod + def version(self): + return NotImplemented + + @abstractmethod + def requirements(self): + """Name of the browser-specific wptrunner requirements file""" + return NotImplemented + + def prepare_environment(self): + """Do any additional setup of the environment required to start the + browser successfully + """ + pass + + +class Firefox(Browser): + """Firefox-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "firefox" + binary = "firefox/firefox" + platform_ini = "firefox/platform.ini" + requirements = "requirements_firefox.txt" + + + def platform_string(self): + platform = { + "Linux": "linux", + "Windows": "win", + "Darwin": "mac" + }.get(uname[0]) + + if platform is None: + raise ValueError("Unable to construct a valid Firefox package name for current platform") + + if platform == "linux": + bits = "-%s" % uname[-1] + elif platform == "win": + bits = "64" if uname[-1] == "x86_64" else "32" + else: + bits = "" + + return "%s%s" % (platform, bits) + + def platform_string_geckodriver(self): + platform = { + "Linux": "linux", + "Windows": "win", + "Darwin": "macos" + }.get(uname[0]) + + if platform is None: + raise ValueError("Unable to construct a valid Geckodriver package name for current platform") + + if platform in ("linux", "win"): + bits = "64" if uname[-1] == "x86_64" else "32" + else: + bits = "" + + return "%s%s" % (platform, bits) + + def latest_nightly_listing(self): + return get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/") + + def get_from_nightly(self, pattern): + index = self.latest_nightly_listing() + filename = re.compile(pattern).search(index.text).group(1) + return get("https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/%s" % + filename) + + + def install(self, platform, dest=None): + """Install Firefox.""" + if dest is None: + dest = os.pwd + + self.get_from_nightly("]*>(firefox-\d+\.\d(?:\w\d)?.en-US.%s\.tar\.bz2)" % self.platform_string()) + untar(resp.raw, path=dest) + return os.path.join(dest, "firefox") + + def find_binary(self): + return find_executable("firefox") + + def find_certutil(self): + return find_executable("certutil") + + def find_webdriver(self): + return find_executable("geckodriver") + + def install_certutil(self, dest=None): + # TODO: this doesn't really work because it just gets the binary, and is missing the + # libnss3 library. Getting that means either downloading the corresponding Firefox + # and extracting the library (which is hard on mac becase DMG), or maybe downloading from + # nss's treeherder builds? + if dest is None: + dest = os.pwd + + # Don't create a path like bin/bin/certutil + split = os.path.split(dest) + if split[1] == "bin": + dest = split[0] + + resp = self.get_from_nightly( + "]*>(firefox-\d+\.\d(?:\w\d)?.en-US.%s\.common\.tests.zip)" % self.platform_string()) + bin_path = path("bin/certutil", exe=True) + unzip(resp.raw, dest=dest, limit=[bin_path]) + + return os.path.join(dest, bin_path) + + def install_prefs(self, dest=None): + if dest is None: + dest = os.pwd + + dest = os.path.join(dest, "profiles") + if not os.path.exists(dest): + os.makedirs(dest) + with open(os.path.join(dest, "prefs_general.js"), "wb") as f: + resp = get("https://hg.mozilla.org/mozilla-central/raw-file/tip/testing/profiles/prefs_general.js") + f.write(resp.content) + + return dest + + def _latest_geckodriver_version(self): + """Get and return latest version number for geckodriver.""" + # This is used rather than an API call to avoid rate limits + tags = call("git", "ls-remote", "--tags", "--refs", + "https://github.com/mozilla/geckodriver.git") + release_re = re.compile(".*refs/tags/v(\d+)\.(\d+)\.(\d+)") + latest_release = 0 + for item in tags.split("\n"): + m = release_re.match(item) + if m: + version = [int(item) for item in m.groups()] + if version > latest_release: + latest_release = version + assert latest_release != 0 + return "v%s.%s.%s" % tuple(str(item) for item in latest_release) + + def install_webdriver(self, dest=None): + """Install latest Geckodriver.""" + if dest is None: + dest = os.pwd + + version = self._latest_geckodriver_version() + logger.debug("Latest geckodriver release %s" % version) + url = ("https://github.com/mozilla/geckodriver/releases/download/%s/geckodriver-%s-%s.tar.gz" % + (version, version, self.platform_string_geckodriver())) + untar(get(url).raw, dest=dest) + return find_executable(os.path.join(dest, "geckodriver")) + + def version(self, root): + """Retrieve the release version of the installed browser.""" + platform_info = RawConfigParser() + + with open(os.path.join(root, self.platform_ini), "r") as fp: + platform_info.readfp(BytesIO(fp.read())) + return "BuildID %s; SourceStamp %s" % ( + platform_info.get("Build", "BuildID"), + platform_info.get("Build", "SourceStamp")) + + +class Chrome(Browser): + """Chrome-specific interface. + + Includes installation, webdriver installation, and wptrunner setup methods. + """ + + product = "chrome" + binary = "/usr/bin/google-chrome" + requirements = "requirements_chrome.txt" + + def platform_string(self): + platform = { + "Linux": "linux", + "Windows": "win", + "Darwin": "mac" + }.get(uname[0]) + + if platform is None: + raise ValueError("Unable to construct a valid Chrome package name for current platform") + + if platform == "linux": + bits = "64" if uname[-1] == "x86_64" else "32" + elif platform == "mac": + bits = "64" + elif platform == "win": + bits = "32" + + return "%s%s" % (platform, bits) + + def install(self): + return None + + def find_webdriver(self): + return find_executable("chromedriver") + + def install_webdriver(self, dest=None): + """Install latest Webdriver.""" + if dest is None: + dest = os.pwd + latest = get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text.strip() + url = "http://chromedriver.storage.googleapis.com/%s/chromedriver_%s.zip" % (latest, + self.platform_string()) + unzip(get(url).raw, dest) + path = os.path.join(dest, "chromedriver") + st = os.stat(path) + os.chmod(path, st.st_mode | stat.S_IEXEC) + return path + + def version(self, root): + """Retrieve the release version of the installed browser.""" + output = call(self.binary, "--version") + return re.search(r"[0-9\.]+( [a-z]+)?$", output.strip()).group(0) + + def prepare_environment(self): + # https://bugs.chromium.org/p/chromium/issues/detail?id=713947 + logger.debug("DBUS_SESSION_BUS_ADDRESS %s" % os.environ.get("DBUS_SESSION_BUS_ADDRESS")) + if "DBUS_SESSION_BUS_ADDRESS" not in os.environ: + if find_executable("dbus-launch"): + logger.debug("Attempting to start dbus") + dbus_conf = subprocess.check_output(["dbus-launch"]) + logger.debug(dbus_conf) + + # From dbus-launch(1): + # + # > When dbus-launch prints bus information to standard output, + # > by default it is in a simple key-value pairs format. + for line in dbus_conf.strip().split("\n"): + key, _, value = line.partition("=") + os.environ[key] = value + else: + logger.critical("dbus not running and can't be started") + sys.exit(1) diff --git a/testing/web-platform/tests/tools/browserutils/utils.py b/testing/web-platform/tests/tools/browserutils/utils.py new file mode 100644 index 000000000000..a3feacbb475e --- /dev/null +++ b/testing/web-platform/tests/tools/browserutils/utils.py @@ -0,0 +1,113 @@ +import logging +import os +import subprocess +import sys +import tarfile +import zipfile +from io import BytesIO + +import requests + +logger = logging.getLogger(__name__) + + +class Kwargs(dict): + def set_if_none(self, name, value, err_fn=None, desc=None, extra_cond=None): + if desc is None: + desc = name + + if self[name] is None: + if extra_cond is not None and not extra_cond(self): + return + if callable(value): + value = value() + if not value: + if err_fn is not None: + return err_fn(kwargs, "Failed to find %s" % desc) + else: + return + self[name] = value + logger.info("Set %s to %s" % (desc, value)) + + +def call(*args): + """Log terminal command, invoke it as a subprocess. + + Returns a bytestring of the subprocess output if no error. + """ + logger.debug("%s" % " ".join(args)) + try: + return subprocess.check_output(args) + except subprocess.CalledProcessError as e: + logger.critical("%s exited with return code %i" % + (e.cmd, e.returncode)) + logger.critical(e.output) + raise + + +def get_git_cmd(repo_path): + """Create a function for invoking git commands as a subprocess.""" + def git(cmd, *args): + full_cmd = ["git", cmd] + list(args) + try: + logger.debug(" ".join(full_cmd)) + return subprocess.check_output(full_cmd, cwd=repo_path, stderr=subprocess.STDOUT).strip() + except subprocess.CalledProcessError as e: + logger.error("Git command exited with status %i" % e.returncode) + logger.error(e.output) + sys.exit(1) + return git + + +def seekable(fileobj): + """Attempt to use file.seek on given file, with fallbacks.""" + try: + fileobj.seek(fileobj.tell()) + except Exception: + return BytesIO(fileobj.read()) + else: + return fileobj + + +def untar(fileobj, dest="."): + """Extract tar archive.""" + logger.debug("untar") + fileobj = seekable(fileobj) + with tarfile.open(fileobj=fileobj) as tar_data: + tar_data.extractall(path=dest) + + +def unzip(fileobj, dest=None, limit=None): + """Extract zip archive.""" + logger.debug("unzip") + fileobj = seekable(fileobj) + with zipfile.ZipFile(fileobj) as zip_data: + for info in zip_data.infolist(): + if limit is not None and info.filename not in limit: + continue + zip_data.extract(info, path=dest) + perm = info.external_attr >> 16 & 0x1FF + os.chmod(os.path.join(dest, info.filename), perm) + + +class pwd(object): + """Create context for temporarily changing present working directory.""" + def __init__(self, dir): + self.dir = dir + self.old_dir = None + + def __enter__(self): + self.old_dir = os.path.abspath(os.curdir) + os.chdir(self.dir) + + def __exit__(self, *args, **kwargs): + os.chdir(self.old_dir) + self.old_dir = None + + +def get(url): + """Issue GET request to a given URL and return the response.""" + logger.debug("GET %s" % url) + resp = requests.get(url, stream=True) + resp.raise_for_status() + return resp diff --git a/testing/web-platform/tests/tools/browserutils/virtualenv.py b/testing/web-platform/tests/tools/browserutils/virtualenv.py new file mode 100644 index 000000000000..1687800832cd --- /dev/null +++ b/testing/web-platform/tests/tools/browserutils/virtualenv.py @@ -0,0 +1,49 @@ +import os +import sys +import logging +from distutils.spawn import find_executable + +from utils import call + +logger = logging.getLogger(__name__) + +class Virtualenv(object): + def __init__(self, path): + self.path = path + self.virtualenv = find_executable("virtualenv") + if not self.virtualenv: + raise ValueError("virtualenv must be installed and on the PATH") + + @property + def exists(self): + return os.path.isdir(self.path) + + def create(self): + if os.path.exists(self.path): + shutil.rmtree(self.path) + call(self.virtualenv, "--no-download", self.path) + + @property + def bin_path(self): + if sys.platform in ("win32", "cygwin"): + return os.path.join(self.path, "Scripts") + return os.path.join(self.path, "bin") + + @property + def pip_path(self): + path = find_executable("pip", self.bin_path) + if path is None: + raise ValueError("pip not found") + return path + + def activate(self): + path = os.path.join(self.bin_path, "activate_this.py") + execfile(path, {"__file__": path}) + + def start(self): + if not self.exists: + self.create() + self.activate() + + def install_requirements(self, requirements_path): + call(self.pip_path, "install", "-r", requirements_path) diff --git a/testing/web-platform/tests/tools/conftest.py b/testing/web-platform/tests/tools/conftest.py index 010786f1a182..894fe6223ea5 100644 --- a/testing/web-platform/tests/tools/conftest.py +++ b/testing/web-platform/tests/tools/conftest.py @@ -5,9 +5,8 @@ from hypothesis import settings, HealthCheck impl = platform.python_implementation() -settings.register_profile("ci", settings(max_examples=1000)) -settings.register_profile("ci_pypy", settings(max_examples=1000, - suppress_health_check=[HealthCheck.too_slow])) +settings.register_profile("ci", settings(max_examples=1000, + suppress_health_check=[HealthCheck.too_slow])) settings.register_profile("pypy", settings(suppress_health_check=[HealthCheck.too_slow])) settings.load_profile(os.getenv("HYPOTHESIS_PROFILE", diff --git a/testing/web-platform/tests/tools/lint/lint.py b/testing/web-platform/tests/tools/lint/lint.py index 00fa6a9f011c..eac88d6d5e0c 100644 --- a/testing/web-platform/tests/tools/lint/lint.py +++ b/testing/web-platform/tests/tools/lint/lint.py @@ -45,7 +45,7 @@ setup_logging() ERROR_MSG = """You must fix all errors; for details on how to fix them, see -https://github.com/w3c/web-platform-tests/blob/master/docs/lint-tool.md +http://web-platform-tests.org/writing-tests/lint-tool.html However, instead of fixing a particular error, it's sometimes OK to add a line to the lint.whitelist file in the root of the diff --git a/testing/web-platform/tests/tools/localpaths.py b/testing/web-platform/tests/tools/localpaths.py index a4930015c05a..c932ef4b92f1 100644 --- a/testing/web-platform/tests/tools/localpaths.py +++ b/testing/web-platform/tests/tools/localpaths.py @@ -5,6 +5,7 @@ here = os.path.abspath(os.path.split(__file__)[0]) repo_root = os.path.abspath(os.path.join(here, os.pardir)) sys.path.insert(0, os.path.join(here)) +sys.path.insert(0, os.path.join(here, "browserutils")) sys.path.insert(0, os.path.join(here, "six")) sys.path.insert(0, os.path.join(here, "html5lib")) sys.path.insert(0, os.path.join(here, "wptserve")) @@ -12,3 +13,4 @@ sys.path.insert(0, os.path.join(here, "pywebsocket", "src")) sys.path.insert(0, os.path.join(here, "py")) sys.path.insert(0, os.path.join(here, "pytest")) sys.path.insert(0, os.path.join(here, "webdriver")) +sys.path.insert(0, os.path.join(here, "wptrunner")) diff --git a/testing/web-platform/tests/tools/webdriver/README.md b/testing/web-platform/tests/tools/webdriver/README.md index 194009f8a04d..015b31b254ce 100644 --- a/testing/web-platform/tests/tools/webdriver/README.md +++ b/testing/web-platform/tests/tools/webdriver/README.md @@ -33,9 +33,7 @@ which is useful if you want to contribute patches back: If you are writing WebDriver specification tests for [WPT](https://github.com/w3c/web-platform-tests), there is no need to install the client manually -as it is picked up as a submodule to -[wpt-tools](https://github.com/w3c/wpt-tools) -that is checked out in `./tools`. +as it is included in the `tools/webdriver` directory. ## Usage diff --git a/testing/web-platform/tests/tools/wptrun.py b/testing/web-platform/tests/tools/wptrun.py new file mode 100644 index 000000000000..2e393d1ccbd5 --- /dev/null +++ b/testing/web-platform/tests/tools/wptrun.py @@ -0,0 +1,259 @@ +import argparse +import os +import shutil +import subprocess +import sys +import tarfile +from distutils.spawn import find_executable + +from tools import localpaths +from browserutils import browser, utils, virtualenv +from wptrunner import wptrunner, wptcommandline +logger = None + +wpt_root = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) + + +class WptrunnerHelpAction(argparse.Action): + def __init__(self, + option_strings, + dest=argparse.SUPPRESS, + default=argparse.SUPPRESS, + help=None): + super(WptrunnerHelpAction, self).__init__( + option_strings=option_strings, + dest=dest, + default=default, + nargs=0, + help=help) + + def __call__(self, parser, namespace, values, option_string=None): + from wptrunner import wptcommandline + wptparser = wptcommandline.create_parser() + wptparser.usage = parser.usage + wptparser.print_help() + parser.exit() + + +def create_parser(): + parser = argparse.ArgumentParser() + parser.add_argument("product", action="store", + help="Browser to run tests in") + parser.add_argument("tests", action="store", nargs="*", + help="Path to tests to run") + parser.add_argument("wptrunner_args", nargs=argparse.REMAINDER, + help="Arguments to pass through to wptrunner") + parser.add_argument("--yes", "-y", dest="prompt", action="store_false", default=True, + help="Don't prompt before installing components") + parser.add_argument("--wptrunner-help", + action=WptrunnerHelpAction, default=argparse.SUPPRESS, + help="Print wptrunner help") + return parser + + +def exit(msg): + logger.error(msg) + sys.exit(1) + + +def args_general(kwargs): + kwargs.set_if_none("tests_root", wpt_root) + kwargs.set_if_none("metadata_root", wpt_root) + kwargs.set_if_none("manifest_update", True) + + +def check_environ(product): + if product != "firefox": + expected_hosts = set(["web-platform.test", + "www.web-platform.test", + "www1.web-platform.test", + "www2.web-platform.test", + "xn--n8j6ds53lwwkrqhv28a.web-platform.test", + "xn--lve-6lad.web-platform.test", + "nonexistent-origin.web-platform.test"]) + if os.uname()[0] != "Windows": + hosts_path = "/etc/hosts" + else: + hosts_path = "C:\Windows\System32\drivers\etc\hosts" + with open(hosts_path, "r") as f: + for line in f: + line = line.split("#", 1)[0].strip() + parts = line.split() + if len(parts) == 2: + host = parts[1] + expected_hosts.discard(host) + if expected_hosts: + exit("""Missing hosts file configuration for %s. +See README.md for more details.""" % ",".join(expected_hosts)) + +def prompt_install(component, prompt): + if not prompt: + return True + while True: + resp = raw_input("Download and install %s [Y/n]? " % component).strip().lower() + if not resp or resp == "y": + return True + elif resp == "n": + return False + + +def args_firefox(venv, kwargs, firefox, prompt=True): + if kwargs["binary"] is None: + binary = firefox.find_binary() + if binary is None: + exit("""Firefox binary not found on $PATH. + +Install Firefox or use --binary to set the binary path""") + kwargs["binary"] = binary + + if kwargs["certutil_binary"] is None and kwargs["ssl_type"] != "none": + certutil = firefox.find_certutil() + + if certutil is None: + # Can't download this for now because it's missing the libnss3 library + exit("""Can't find certutil. + +This must be installed using your OS package manager or directly e.g. + +Debian/Ubuntu: +sudo apt install libnss3-tools + +macOS/Homebrew: +brew install nss + +Others: +Download the firefox archive and common.tests.zip archive for your platform +from +https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/ +Then extract certutil[.exe] from the tests.zip package and +libnss3[.so|.dll|.dynlib] and but the former on your path and the latter on +your library path. +""") + else: + print("Using certutil %s" % certutil) + + if certutil is not None: + kwargs["certutil_binary"] = certutil + else: + print("Unable to find or install certutil, setting ssl-type to none") + kwargs["ssl_type"] = "none" + + if kwargs["webdriver_binary"] is None and "wdspec" in kwargs["test_types"]: + webdriver_binary = firefox.find_webdriver() + + if webdriver_binary is None: + install = prompt_install("geckodriver", prompt) + + if install: + print("Downloading geckodriver") + webdriver_binary = firefox.install_webdriver(dest=venv.bin_path) + else: + print("Using webdriver binary %s" % webdriver_binary) + + if webdriver_binary: + kwargs["webdriver_binary"] = webdriver_binary + else: + print("Unable to find or install geckodriver, skipping wdspec tests") + kwargs["test_types"].remove("wdspec") + + if kwargs["prefs_root"] is None: + print("Downloading gecko prefs") + prefs_root = firefox.install_prefs(venv.path) + kwargs["prefs_root"] = prefs_root + + +def setup_firefox(venv, kwargs, prompt=True): + firefox = browser.Firefox() + args_firefox(venv, kwargs, firefox, prompt) + venv.install_requirements(os.path.join(wpt_root, "tools", "wptrunner", firefox.requirements)) + + +def args_chrome(venv, kwargs, chrome, prompt=True): + if kwargs["webdriver_binary"] is None: + webdriver_binary = chrome.find_webdriver() + + if webdriver_binary is None: + install = prompt_install("chromedriver", prompt) + + if install: + print("Downloading chromedriver") + webdriver_binary = chrome.install_webdriver(dest=venv.bin_path) + else: + print("Using webdriver binary %s" % webdriver_binary) + + if webdriver_binary: + kwargs["webdriver_binary"] = webdriver_binary + else: + exit("Unable to locate or install chromedriver binary") + + +def setup_chrome(venv, kwargs, prompt=True): + chrome = browser.Chrome() + args_chrome(venv, kwargs, chrome, prompt) + venv.install_requirements(os.path.join(wpt_root, "tools", "wptrunner", chrome.requirements)) + + +def setup_edge(kwargs): + raise NotImplementedError + + +def setup_sauce(kwargs): + raise NotImplementedError + + +def setup_servo(kwargs): + raise NotImplementedError + + +product_setup = { + "firefox": setup_firefox, + "chrome": setup_chrome +} + + +def setup_wptrunner(venv, product, tests, wptrunner_args, prompt=True,): + global logger + + wptparser = wptcommandline.create_parser() + kwargs = utils.Kwargs(vars(wptparser.parse_args(wptrunner_args)).iteritems()) + + wptrunner.setup_logging(kwargs, {"mach": sys.stdout}) + logger = wptrunner.logger + + kwargs["product"] = product + kwargs["test_list"] = tests + + check_environ(product) + args_general(kwargs) + + if product not in product_setup: + exit("Unsupported product %s" % product) + + product_setup[product](venv, kwargs, prompt) + + wptcommandline.check_args(kwargs) + + wptrunner_path = os.path.join(wpt_root, "tools", "wptrunner") + + venv.install_requirements(os.path.join(wptrunner_path, "requirements.txt")) + + return kwargs + + +def main(): + parser = create_parser() + args = parser.parse_args() + + venv = virtualenv.Virtualenv(os.path.join(wpt_root, "_venv")) + venv.start() + + kwargs = setup_wptrunner(venv, args.product, args.tests, args.wptrunner_args, prompt=args.prompt) + wptrunner.start(**kwargs) + + +if __name__ == "__main__": + import pdb + try: + main() + except: + pdb.post_mortem() diff --git a/testing/web-platform/tests/tools/wptrunner/wptrunner/wptrunner.py b/testing/web-platform/tests/tools/wptrunner/wptrunner/wptrunner.py index 5c184554f0d9..bf9b74e4398f 100644 --- a/testing/web-platform/tests/tools/wptrunner/wptrunner/wptrunner.py +++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/wptrunner.py @@ -231,6 +231,13 @@ def run_tests(config, test_paths, product, **kwargs): return unexpected_total == 0 +def start(**kwargs): + if kwargs["list_test_groups"]: + list_test_groups(**kwargs) + elif kwargs["list_disabled"]: + list_disabled(**kwargs) + else: + return not run_tests(**kwargs) def main(): """Main entry point when calling from the command line""" @@ -242,12 +249,7 @@ def main(): setup_logging(kwargs, {"raw": sys.stdout}) - if kwargs["list_test_groups"]: - list_test_groups(**kwargs) - elif kwargs["list_disabled"]: - list_disabled(**kwargs) - else: - return not run_tests(**kwargs) + return start(**kwargs) except Exception: if kwargs["pdb"]: import pdb, traceback diff --git a/testing/web-platform/tests/url/interfaces.html b/testing/web-platform/tests/url/interfaces.any.js similarity index 52% rename from testing/web-platform/tests/url/interfaces.html rename to testing/web-platform/tests/url/interfaces.any.js index 0daf3f58c978..5e330d114a7c 100644 --- a/testing/web-platform/tests/url/interfaces.html +++ b/testing/web-platform/tests/url/interfaces.any.js @@ -1,15 +1,8 @@ - -URL IDL tests - - - - +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js -

URL IDL tests

-
- - - + +idlArray.add_objects({ + URL: ['new URL("http://foo")'], + URLSearchParams: ['new URLSearchParams("hi=there&thank=you")'] +}); +idlArray.test(); + +done(); diff --git a/testing/web-platform/tests/url/urltestdata.json b/testing/web-platform/tests/url/urltestdata.json index fe13d3f1edfc..3682913637c3 100644 --- a/testing/web-platform/tests/url/urltestdata.json +++ b/testing/web-platform/tests/url/urltestdata.json @@ -3559,6 +3559,22 @@ "search": "", "hash": "" }, + "Leading and trailing C0 control or space", + { + "input": "\u0000\u001b\u0004\u0012 http://example.com/\u001f \u000d ", + "base": "about:blank", + "href": "http://example.com/", + "origin": "http://example.com", + "protocol": "http:", + "username": "", + "password": "", + "host": "example.com", + "hostname": "example.com", + "port": "", + "pathname": "/", + "search": "", + "hash": "" + }, "Ideographic full stop (full-width period for Chinese, etc.) should be treated as a dot. U+3002 is mapped to U+002E (dot)", { "input": "http://www.foo。bar.com", @@ -3656,7 +3672,7 @@ "input": "http://你好你好", "base": "http://other.com/", "href": "http://xn--6qqa088eba/", - "origin": "http://你好你好", + "origin": "http://xn--6qqa088eba", "protocol": "http:", "username": "", "password": "", @@ -3671,7 +3687,7 @@ "input": "https://faß.ExAmPlE/", "base": "about:blank", "href": "https://xn--fa-hia.example/", - "origin": "https://faß.example", + "origin": "https://xn--fa-hia.example", "protocol": "https:", "username": "", "password": "", @@ -3686,6 +3702,7 @@ "input": "sc://faß.ExAmPlE/", "base": "about:blank", "href": "sc://fa%C3%9F.ExAmPlE/", + "origin": "null", "protocol": "sc:", "username": "", "password": "", @@ -4594,7 +4611,7 @@ "input": "ftp://%e2%98%83", "base": "about:blank", "href": "ftp://xn--n3h/", - "origin": "ftp://☃", + "origin": "ftp://xn--n3h", "protocol": "ftp:", "username": "", "password": "", @@ -4609,7 +4626,7 @@ "input": "https://%e2%98%83", "base": "about:blank", "href": "https://xn--n3h/", - "origin": "https://☃", + "origin": "https://xn--n3h", "protocol": "https:", "username": "", "password": "", @@ -5480,6 +5497,20 @@ "search": "", "hash": "" }, + { + "input": "C|\n/", + "base": "file://host/dir/file", + "href": "file:///C:/", + "protocol": "file:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "/C:/", + "search": "", + "hash": "" + }, { "input": "C|\\", "base": "file://host/dir/file", diff --git a/testing/web-platform/tests/wai-aria/alertdialog_modal_false-manual.html b/testing/web-platform/tests/wai-aria/alertdialog_modal_false-manual.html index b830f72db9c3..b4be8c6e5f66 100644 --- a/testing/web-platform/tests/wai-aria/alertdialog_modal_false-manual.html +++ b/testing/web-platform/tests/wai-aria/alertdialog_modal_false-manual.html @@ -79,20 +79,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -109,21 +95,7 @@ "true" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/alertdialog_modal_true-manual.html b/testing/web-platform/tests/wai-aria/alertdialog_modal_true-manual.html index f550a99d8ba4..07f33ca0e7a1 100644 --- a/testing/web-platform/tests/wai-aria/alertdialog_modal_true-manual.html +++ b/testing/web-platform/tests/wai-aria/alertdialog_modal_true-manual.html @@ -79,20 +79,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -109,21 +95,7 @@ "false" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/aria-current_not_declared-manual.html b/testing/web-platform/tests/wai-aria/aria-current_not_declared-manual.html index b48180ef1022..2698002c19f0 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_not_declared-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_not_declared-manual.html @@ -91,20 +91,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_changes-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_changes-manual.html index d17139a14c77..5ae92b517fbd 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_changes-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_changes-manual.html @@ -84,20 +84,6 @@ "is", "PropertyChangedEvent" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 2", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_date-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_date-manual.html index d6c3f5689705..631c542b47dc 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_date-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_date-manual.html @@ -91,20 +91,6 @@ "is", "date" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_location-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_location-manual.html index ca9f962f2437..eaadd0721bdb 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_location-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_location-manual.html @@ -91,20 +91,6 @@ "is", "location" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_page-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_page-manual.html index d8bb3e086252..c3e17b066ea1 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_page-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_page-manual.html @@ -91,20 +91,6 @@ "is", "page" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_step-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_step-manual.html index 57b4c300b94f..a6c4238029e5 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_step-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_step-manual.html @@ -91,20 +91,6 @@ "is", "step" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_time-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_time-manual.html index b3bab4d44699..9e9583e736ce 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_time-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_time-manual.html @@ -91,20 +91,6 @@ "is", "time" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_true-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_true-manual.html index e299ffe2dac9..903bdd95b940 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_true-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_true-manual.html @@ -91,20 +91,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-current_with_value_unspecified-manual.html b/testing/web-platform/tests/wai-aria/aria-current_with_value_unspecified-manual.html index 5ad291fe245f..8377d6d1a072 100644 --- a/testing/web-platform/tests/wai-aria/aria-current_with_value_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-current_with_value_unspecified-manual.html @@ -85,20 +85,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/aria-details_pointing_to_details_element-manual.html b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_details_element-manual.html index 66ccd7d1c28d..fa6a96aaea95 100644 --- a/testing/web-platform/tests/wai-aria/aria-details_pointing_to_details_element-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_details_element-manual.html @@ -47,20 +47,6 @@ "is", "[details]" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -85,21 +71,7 @@ "test" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/aria-details_pointing_to_div_element-manual.html b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_div_element-manual.html index 9e55dad74e70..7b740233865b 100644 --- a/testing/web-platform/tests/wai-aria/aria-details_pointing_to_div_element-manual.html +++ b/testing/web-platform/tests/wai-aria/aria-details_pointing_to_div_element-manual.html @@ -47,20 +47,6 @@ "is", "[details]" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -85,21 +71,7 @@ "test" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/article_in_feed_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/article_in_feed_posinset_and_setsize-manual.html index 36107530671b..fc5de8d4c02a 100644 --- a/testing/web-platform/tests/wai-aria/article_in_feed_posinset_and_setsize-manual.html +++ b/testing/web-platform/tests/wai-aria/article_in_feed_posinset_and_setsize-manual.html @@ -145,20 +145,6 @@ "contains", "setsize:8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/article_in_feed_setsize_-1-manual.html b/testing/web-platform/tests/wai-aria/article_in_feed_setsize_-1-manual.html index 95bc16a5f348..d77db21e89ae 100644 --- a/testing/web-platform/tests/wai-aria/article_in_feed_setsize_-1-manual.html +++ b/testing/web-platform/tests/wai-aria/article_in_feed_setsize_-1-manual.html @@ -115,20 +115,6 @@ "contains", "setsize:-1" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/article_not_in_feed_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/article_not_in_feed_posinset_and_setsize-manual.html index d21f6be588aa..0726e84e9397 100644 --- a/testing/web-platform/tests/wai-aria/article_not_in_feed_posinset_and_setsize-manual.html +++ b/testing/web-platform/tests/wai-aria/article_not_in_feed_posinset_and_setsize-manual.html @@ -145,20 +145,6 @@ "contains", "setsize:8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_dialog-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_dialog-manual.html index a01e690746b1..14ced7503ee4 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_dialog-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_dialog-manual.html @@ -103,20 +103,6 @@ "contains", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_emptystring-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_emptystring-manual.html index 8733740b5161..1d69c08dfff2 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_emptystring-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_emptystring-manual.html @@ -103,20 +103,6 @@ "doesNotContain", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_false-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_false-manual.html index 0061302839a5..774c7130b7a6 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_false-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_false-manual.html @@ -97,20 +97,6 @@ "doesNotContain", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_foo-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_foo-manual.html index 18d6aecdff61..94c22caa0c1b 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_foo-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_foo-manual.html @@ -103,20 +103,6 @@ "doesNotContain", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_grid-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_grid-manual.html index ea3fcba41add..7ceb8c23e014 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_grid-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_grid-manual.html @@ -103,20 +103,6 @@ "contains", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_listbox-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_listbox-manual.html index 9e9d5f04fc38..573a9db93620 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_listbox-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_listbox-manual.html @@ -103,20 +103,6 @@ "contains", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_menu-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_menu-manual.html index 2378c9e05c7e..8f021294d876 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_menu-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_menu-manual.html @@ -103,20 +103,6 @@ "contains", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_tree-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_tree-manual.html index f3937c76f6b7..0a5f939ece06 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_tree-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_tree-manual.html @@ -103,20 +103,6 @@ "contains", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_true-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_true-manual.html index 650a85361598..8f378ace18c7 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_true-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_true-manual.html @@ -103,20 +103,6 @@ "contains", "ExpandCollapse" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_haspopup_unspecified-manual.html b/testing/web-platform/tests/wai-aria/button_haspopup_unspecified-manual.html index 1077b4ce249a..3bb4ea319147 100644 --- a/testing/web-platform/tests/wai-aria/button_haspopup_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/button_haspopup_unspecified-manual.html @@ -103,20 +103,6 @@ "exists", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_roledescription_empty-manual.html b/testing/web-platform/tests/wai-aria/button_roledescription_empty-manual.html index f0dd6fdd0884..81b64553f78c 100644 --- a/testing/web-platform/tests/wai-aria/button_roledescription_empty-manual.html +++ b/testing/web-platform/tests/wai-aria/button_roledescription_empty-manual.html @@ -79,20 +79,6 @@ "is", "Button" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_roledescription_valid-manual.html b/testing/web-platform/tests/wai-aria/button_roledescription_valid-manual.html index 4588658c53a5..df0f42e5925f 100644 --- a/testing/web-platform/tests/wai-aria/button_roledescription_valid-manual.html +++ b/testing/web-platform/tests/wai-aria/button_roledescription_valid-manual.html @@ -79,20 +79,6 @@ "is", "SassyButton" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/button_roledescription_whitespace_only-manual.html b/testing/web-platform/tests/wai-aria/button_roledescription_whitespace_only-manual.html index 592ef4f05cc7..cbf10a035a31 100644 --- a/testing/web-platform/tests/wai-aria/button_roledescription_whitespace_only-manual.html +++ b/testing/web-platform/tests/wai-aria/button_roledescription_whitespace_only-manual.html @@ -79,20 +79,6 @@ "is", "Button" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/cell-manual.html b/testing/web-platform/tests/wai-aria/cell-manual.html index d4de8c35537d..78fd24bd147e 100644 --- a/testing/web-platform/tests/wai-aria/cell-manual.html +++ b/testing/web-platform/tests/wai-aria/cell-manual.html @@ -63,20 +63,6 @@ "is", "8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -202,20 +188,6 @@ "MUST NOT contain", "invoke pattern" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 2", diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_div-manual.html index 8efa3a37b5a8..739de21480be 100644 --- a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html index f0fb9cacf5f5..f7cb02c486c8 100644 --- a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3-manual.html @@ -32,8 +32,8 @@ [ "result", "atk_table_cell_get_row_column_span()", - "contains", - "column_span=3" + "doesNotContain", + "column_span=2" ] ], "AXAPI" : [ @@ -46,8 +46,8 @@ [ "property", "AXColumnIndexRange.length", - "is", - "3" + "isNot", + "2" ] ], "IAccessible2" : [ @@ -60,8 +60,8 @@ [ "property", "colspan", - "is", - "3" + "isNot", + "2" ] ], "MSAA" : [ @@ -74,8 +74,8 @@ [ "property", "colspan", - "is", - "3" + "isNot", + "2" ] ], "UIA" : [ @@ -88,22 +88,8 @@ [ "property", "TableItem.ColumnSpan", - "is", - "3" - ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" + "isNot", + "2" ] ] }, diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html index 6a18692667dc..242f51bdaaf4 100644 --- a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_headers_and_border-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html new file mode 100644 index 000000000000..7afdeea857d2 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_html_colspan_3_with_three_actual_columns-manual.html @@ -0,0 +1,116 @@ + + + + cell aria-colspan 2 on td html colspan 3 with three actual columns + + + + + + + + +

This test examines the ARIA properties for cell aria-colspan 2 on td html colspan 3 with three actual columns.

+ + + + + + + +
123
test cell
+ +
+
+
+ + + diff --git a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html index c343951509b3..894d074020ee 100644 --- a/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_aria-colspan_2_on_td_with_html_colspan_not_specified-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_div-manual.html index 44bde642c882..e61de96fcb76 100644 --- a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html index 47fbc4221f71..fd6eb3381a3b 100644 --- a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3-manual.html @@ -32,8 +32,8 @@ [ "result", "atk_table_cell_get_row_column_span()", - "contains", - "row_span=3" + "doesNotContain", + "row_span=2" ] ], "AXAPI" : [ @@ -46,8 +46,8 @@ [ "property", "AXRowIndexRange.length", - "is", - "3" + "isNot", + "2" ] ], "IAccessible2" : [ @@ -60,8 +60,8 @@ [ "property", "rowspan", - "is", - "3" + "isNot", + "2" ] ], "MSAA" : [ @@ -74,8 +74,8 @@ [ "property", "rowspan", - "is", - "3" + "isNot", + "2" ] ], "UIA" : [ @@ -88,22 +88,8 @@ [ "property", "TableItem.RowSpan", - "is", - "3" - ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" + "isNot", + "2" ] ] }, diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html new file mode 100644 index 000000000000..b2eefe48082b --- /dev/null +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_html_rowspan_3_with_three_actual_rows-manual.html @@ -0,0 +1,120 @@ + + + + cell aria-rowspan 2 on td html rowspan 3 with three actual rows + + + + + + + + +

This test examines the ARIA properties for cell aria-rowspan 2 on td html rowspan 3 with three actual rows.

+ + + + + + + + + + + +
1test cell
2
3
+ +
+
+
+ + + diff --git a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html index 81c1cd5e36ef..d473ed4111b5 100644 --- a/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_aria-rowspan_2_on_td_with_html_rowspan_not_specified-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/cell_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/cell_colindex_4-manual.html index a2622d3cfe43..7ed668943a0c 100644 --- a/testing/web-platform/tests/wai-aria/cell_colindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_colindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/cell_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/cell_rowindex_4-manual.html index 827801353831..8b4dea547e6b 100644 --- a/testing/web-platform/tests/wai-aria/cell_rowindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/cell_rowindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/checkbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/checkbox_readonly_false-manual.html index 691193fa8fdd..61647ce395c0 100644 --- a/testing/web-platform/tests/wai-aria/checkbox_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/checkbox_readonly_false-manual.html @@ -91,20 +91,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/checkbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/checkbox_readonly_true-manual.html index 82518ebe16d9..ab9892d8a1fc 100644 --- a/testing/web-platform/tests/wai-aria/checkbox_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/checkbox_readonly_true-manual.html @@ -103,20 +103,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/checkbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/checkbox_readonly_unspecified-manual.html index 5f5396a3230e..6f359dc94601 100644 --- a/testing/web-platform/tests/wai-aria/checkbox_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/checkbox_readonly_unspecified-manual.html @@ -91,20 +91,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_div-manual.html index aefc9819da64..ce05c29847f3 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html index 225967c16227..b24e00b4cc5c 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3-manual.html @@ -32,8 +32,8 @@ [ "result", "atk_table_cell_get_row_column_span()", - "contains", - "column_span=3" + "doesNotContain", + "column_span=2" ] ], "AXAPI" : [ @@ -46,8 +46,8 @@ [ "property", "AXColumnIndexRange.length", - "is", - "3" + "isNot", + "2" ] ], "IAccessible2" : [ @@ -60,8 +60,8 @@ [ "property", "colspan", - "is", - "3" + "isNot", + "2" ] ], "MSAA" : [ @@ -74,8 +74,8 @@ [ "property", "colspan", - "is", - "3" + "isNot", + "2" ] ], "UIA" : [ @@ -88,22 +88,8 @@ [ "property", "HeaderItem.ColumnSpan", - "is", - "3" - ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" + "isNot", + "2" ] ] }, diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html new file mode 100644 index 000000000000..0654a5d288df --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_html_colspan_3_with_three_actual_columns-manual.html @@ -0,0 +1,116 @@ + + + + columnheader aria-colspan 2 on th html colspan 3 with three actual columns + + + + + + + + +

This test examines the ARIA properties for columnheader aria-colspan 2 on th html colspan 3 with three actual columns.

+ + + + + + + +
123
test cell
+ +
+
+
+ + + diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html index 400bb4a1af5a..99f35b083289 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-colspan_2_on_th_with_html_colspan_not_specified-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_div-manual.html index 652132ed387a..09d958d46122 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html index b9c862a34d72..6447f6c52672 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3-manual.html @@ -32,8 +32,8 @@ [ "result", "atk_table_cell_get_row_column_span()", - "contains", - "row_span=3" + "doesNotContain", + "row_span=2" ] ], "AXAPI" : [ @@ -46,8 +46,8 @@ [ "property", "AXRowIndexRange.length", - "is", - "3" + "isNot", + "2" ] ], "IAccessible2" : [ @@ -60,8 +60,8 @@ [ "property", "rowspan", - "is", - "3" + "isNot", + "2" ] ], "MSAA" : [ @@ -74,8 +74,8 @@ [ "property", "rowspan", - "is", - "3" + "isNot", + "2" ] ], "UIA" : [ @@ -88,22 +88,8 @@ [ "property", "HeaderItem.RowSpan", - "is", - "3" - ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" + "isNot", + "2" ] ] }, diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html new file mode 100644 index 000000000000..988cf857a496 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_html_rowspan_3_with_three_actual_rows-manual.html @@ -0,0 +1,120 @@ + + + + columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows + + + + + + + + +

This test examines the ARIA properties for columnheader aria-rowspan 2 on th html rowspan 3 with three actual rows.

+ + + + + + + + + + + +
1test cell
2
3
+ +
+
+
+ + + diff --git a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html index ece90b25b0f4..4c5c1ec5f182 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_aria-rowspan_2_on_th_with_html_rowspan_not_specified-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/columnheader_colindex_4-manual.html index 1626a3915b40..b071f4b86bb8 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_colindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_colindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/columnheader_rowindex_4-manual.html index a00f89e0fb61..f233f9224390 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_rowindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_rowindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html index 3fc91f6fcad0..95a1758f3b56 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_selected_false_not_automatically_propagated-manual.html @@ -101,20 +101,6 @@ "is", "test1" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html index b7b9bd2ef084..0902894b4c47 100644 --- a/testing/web-platform/tests/wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html +++ b/testing/web-platform/tests/wai-aria/columnheader_selected_true_not_automatically_propagated-manual.html @@ -101,20 +101,6 @@ "is", "test1" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_controls_an_invalid_id-manual.html b/testing/web-platform/tests/wai-aria/combobox_controls_an_invalid_id-manual.html index 3754a3e048bf..ecc54781ccd8 100644 --- a/testing/web-platform/tests/wai-aria/combobox_controls_an_invalid_id-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_controls_an_invalid_id-manual.html @@ -47,20 +47,6 @@ "doesNotContain", "myID" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -85,21 +71,7 @@ "IA2_RELATION_CONTROLLED_BY" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_dialog-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_dialog-manual.html index a72107a517ac..0d41e5c22af5 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_dialog-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_dialog-manual.html @@ -133,20 +133,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_false-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_false-manual.html index 636df15da641..14b281477f8b 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_false-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_false-manual.html @@ -127,20 +127,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_grid-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_grid-manual.html index e3a4f1ac301e..25a8964d3db3 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_grid-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_grid-manual.html @@ -133,20 +133,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_listbox-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_listbox-manual.html index 0e20001eb098..845015c39540 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_listbox-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_listbox-manual.html @@ -133,20 +133,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_menu-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_menu-manual.html index 4c44aee34aa5..69ca2f208cbd 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_menu-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_menu-manual.html @@ -133,20 +133,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_tree-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_tree-manual.html index 30f566a548be..c4ee41b4a3c9 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_tree-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_tree-manual.html @@ -133,20 +133,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_true-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_true-manual.html index d02f62c93a9a..e9083b9daee6 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_true-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_true-manual.html @@ -133,20 +133,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_haspopup_unspecified-manual.html b/testing/web-platform/tests/wai-aria/combobox_haspopup_unspecified-manual.html index 9188c902dfbd..ef75ece29d6f 100644 --- a/testing/web-platform/tests/wai-aria/combobox_haspopup_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_haspopup_unspecified-manual.html @@ -133,20 +133,6 @@ "is", "Expanded" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/combobox_orientation_horizontal-manual.html index a55ac6eae2ce..459a54207340 100644 --- a/testing/web-platform/tests/wai-aria/combobox_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_orientation_horizontal-manual.html @@ -97,20 +97,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/combobox_orientation_unspecified-manual.html index bb4824354235..e6e07164485c 100644 --- a/testing/web-platform/tests/wai-aria/combobox_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_orientation_unspecified-manual.html @@ -59,7 +59,7 @@ "property", "AXOrientation", "is", - "" + "AXUnknownOrientation" ] ], "IAccessible2" : [ @@ -97,20 +97,6 @@ "is", "null" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/combobox_orientation_vertical-manual.html index e147ebc3a29b..59e108c80a79 100644 --- a/testing/web-platform/tests/wai-aria/combobox_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_orientation_vertical-manual.html @@ -97,20 +97,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/combobox_readonly_false-manual.html index 32c605058b93..c037ad8356d2 100644 --- a/testing/web-platform/tests/wai-aria/combobox_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_readonly_false-manual.html @@ -109,20 +109,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/combobox_readonly_true-manual.html index 689fd5ae7f8e..26a066621a59 100644 --- a/testing/web-platform/tests/wai-aria/combobox_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_readonly_true-manual.html @@ -115,20 +115,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/combobox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/combobox_readonly_unspecified-manual.html index 9ba189576dbf..9c7d08e7c761 100644 --- a/testing/web-platform/tests/wai-aria/combobox_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/combobox_readonly_unspecified-manual.html @@ -109,20 +109,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/dialog_modal_false-manual.html b/testing/web-platform/tests/wai-aria/dialog_modal_false-manual.html index 52df096603aa..f3e0889f1e54 100644 --- a/testing/web-platform/tests/wai-aria/dialog_modal_false-manual.html +++ b/testing/web-platform/tests/wai-aria/dialog_modal_false-manual.html @@ -79,20 +79,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -109,21 +95,7 @@ "true" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/dialog_modal_true-manual.html b/testing/web-platform/tests/wai-aria/dialog_modal_true-manual.html index fcbf3fe34975..e355d6501749 100644 --- a/testing/web-platform/tests/wai-aria/dialog_modal_true-manual.html +++ b/testing/web-platform/tests/wai-aria/dialog_modal_true-manual.html @@ -79,20 +79,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -109,21 +95,7 @@ "false" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/dialog_modal_unspecified-manual.html b/testing/web-platform/tests/wai-aria/dialog_modal_unspecified-manual.html index fafdc3df2970..9351d52822e6 100644 --- a/testing/web-platform/tests/wai-aria/dialog_modal_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/dialog_modal_unspecified-manual.html @@ -79,20 +79,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -109,21 +95,7 @@ "true" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/div_element_without_role_roledescription_valid-manual.html b/testing/web-platform/tests/wai-aria/div_element_without_role_roledescription_valid-manual.html index c5c6d52961cb..3c55e708a152 100644 --- a/testing/web-platform/tests/wai-aria/div_element_without_role_roledescription_valid-manual.html +++ b/testing/web-platform/tests/wai-aria/div_element_without_role_roledescription_valid-manual.html @@ -97,20 +97,6 @@ "is", "Group" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/errormessage_object_in_invalid_state-manual.html b/testing/web-platform/tests/wai-aria/errormessage_object_in_invalid_state-manual.html index 07f89a6bedf8..7be7673189a1 100644 --- a/testing/web-platform/tests/wai-aria/errormessage_object_in_invalid_state-manual.html +++ b/testing/web-platform/tests/wai-aria/errormessage_object_in_invalid_state-manual.html @@ -47,20 +47,6 @@ "exists", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -85,21 +71,7 @@ "false" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/errormessage_object_in_valid_state-manual.html b/testing/web-platform/tests/wai-aria/errormessage_object_in_valid_state-manual.html index 6f45595ff7bf..5748915eed72 100644 --- a/testing/web-platform/tests/wai-aria/errormessage_object_in_valid_state-manual.html +++ b/testing/web-platform/tests/wai-aria/errormessage_object_in_valid_state-manual.html @@ -47,20 +47,6 @@ "is", "error" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -85,21 +71,7 @@ "test" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/feed-manual.html b/testing/web-platform/tests/wai-aria/feed-manual.html index 19573fe6b13c..873e8fab33fe 100644 --- a/testing/web-platform/tests/wai-aria/feed-manual.html +++ b/testing/web-platform/tests/wai-aria/feed-manual.html @@ -41,13 +41,13 @@ "property", "AXSubrole", "is", - "" + "AXApplicationGroup" ], [ "property", "AXRoleDescription", "is", - "group" + "feed" ] ], "IAccessible2" : [ @@ -79,20 +79,6 @@ "is", "feed" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/figure-manual.html b/testing/web-platform/tests/wai-aria/figure-manual.html index edb9be19b9f8..b460d6427160 100644 --- a/testing/web-platform/tests/wai-aria/figure-manual.html +++ b/testing/web-platform/tests/wai-aria/figure-manual.html @@ -79,20 +79,6 @@ "is", "figure" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html index d5e8f530a1ad..8e73577e0301 100644 --- a/testing/web-platform/tests/wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_aria-readonly_false_automatically_propagated-manual.html @@ -91,20 +91,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -168,20 +154,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 2", @@ -245,20 +217,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 3", diff --git a/testing/web-platform/tests/wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html index ccd14f4de857..96a6db40334c 100644 --- a/testing/web-platform/tests/wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_aria-readonly_true_automatically_propagated-manual.html @@ -91,20 +91,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -168,20 +154,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 2", @@ -245,20 +217,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 3", diff --git a/testing/web-platform/tests/wai-aria/grid_busy_false-manual.html b/testing/web-platform/tests/wai-aria/grid_busy_false-manual.html index 7e761ba9d974..cc83a03ae158 100644 --- a/testing/web-platform/tests/wai-aria/grid_busy_false-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_busy_false-manual.html @@ -127,20 +127,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_busy_true-manual.html b/testing/web-platform/tests/wai-aria/grid_busy_true-manual.html index e78ecfc31741..29b7ff931fa7 100644 --- a/testing/web-platform/tests/wai-aria/grid_busy_true-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_busy_true-manual.html @@ -121,20 +121,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_busy_value_changes-manual.html b/testing/web-platform/tests/wai-aria/grid_busy_value_changes-manual.html index 9b8cf044c22f..e296b0b49241 100644 --- a/testing/web-platform/tests/wai-aria/grid_busy_value_changes-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_busy_value_changes-manual.html @@ -164,20 +164,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 2", diff --git a/testing/web-platform/tests/wai-aria/grid_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/grid_colcount_8-manual.html index 33ff54896c71..baf08989fd25 100644 --- a/testing/web-platform/tests/wai-aria/grid_colcount_8-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_colcount_8-manual.html @@ -109,20 +109,6 @@ "is", "8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_false-manual.html index 603bb8288049..00379b6daf44 100644 --- a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_false-manual.html @@ -71,20 +71,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_true-manual.html index 0aebe102bb52..da5491710065 100644 --- a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_true-manual.html @@ -71,20 +71,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_unspecified-manual.html index 557a94e00fb2..862ebb75e4c3 100644 --- a/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_readonly_unspecified-manual.html @@ -71,20 +71,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_required_false-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_required_false-manual.html index 98698a258fd3..7ebebbfed664 100644 --- a/testing/web-platform/tests/wai-aria/grid_columnheader_required_false-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_required_false-manual.html @@ -85,20 +85,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_required_true-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_required_true-manual.html index 8125d68291a9..e6aead6abd4d 100644 --- a/testing/web-platform/tests/wai-aria/grid_columnheader_required_true-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_required_true-manual.html @@ -85,20 +85,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_columnheader_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_columnheader_required_unspecified-manual.html index 2bd73cf51e27..39d3ba20cb17 100644 --- a/testing/web-platform/tests/wai-aria/grid_columnheader_required_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_columnheader_required_unspecified-manual.html @@ -85,20 +85,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/grid_rowcount_3-manual.html index 0abdfa423d3f..86d15e065cd7 100644 --- a/testing/web-platform/tests/wai-aria/grid_rowcount_3-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_rowcount_3-manual.html @@ -109,20 +109,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_false-manual.html index 944ffc827867..de9f681fae60 100644 --- a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_false-manual.html @@ -71,20 +71,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_true-manual.html index 6bb940e54f98..d7ac28398d68 100644 --- a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_true-manual.html @@ -71,20 +71,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_unspecified-manual.html index 2b6ef835e078..789bd7e2974e 100644 --- a/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_readonly_unspecified-manual.html @@ -71,20 +71,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_required_false-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_required_false-manual.html index fd945bf5f9c9..f37ad4052cba 100644 --- a/testing/web-platform/tests/wai-aria/grid_rowheader_required_false-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_required_false-manual.html @@ -85,20 +85,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_required_true-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_required_true-manual.html index 34fd1e89d1f7..89a302408ee2 100644 --- a/testing/web-platform/tests/wai-aria/grid_rowheader_required_true-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_required_true-manual.html @@ -85,20 +85,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/grid_rowheader_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/grid_rowheader_required_unspecified-manual.html index 3cdaaabffc02..1e89d79c27d1 100644 --- a/testing/web-platform/tests/wai-aria/grid_rowheader_required_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/grid_rowheader_required_unspecified-manual.html @@ -85,20 +85,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/gridcell_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/gridcell_aria-colspan_2_on_div-manual.html index d98739746fd7..aa35eb04d3f0 100644 --- a/testing/web-platform/tests/wai-aria/gridcell_aria-colspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/gridcell_aria-colspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/gridcell_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/gridcell_aria-rowspan_2_on_div-manual.html index 240b6f31f449..4fa60114a3a6 100644 --- a/testing/web-platform/tests/wai-aria/gridcell_aria-rowspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/gridcell_aria-rowspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/gridcell_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/gridcell_colindex_4-manual.html index a534af355bc6..427bb593cc86 100644 --- a/testing/web-platform/tests/wai-aria/gridcell_colindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/gridcell_colindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/gridcell_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/gridcell_rowindex_4-manual.html index 314a07a9759d..0cdc0a7451c0 100644 --- a/testing/web-platform/tests/wai-aria/gridcell_rowindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/gridcell_rowindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_not_rendered-manual.html b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_not_rendered-manual.html index 560db79be830..4fe2852f55ad 100644 --- a/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_not_rendered-manual.html +++ b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_not_rendered-manual.html @@ -55,20 +55,6 @@ "exists", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_rendered-manual.html b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_rendered-manual.html index 86ede6c86bd3..00c60ca8f7b7 100644 --- a/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_rendered-manual.html +++ b/testing/web-platform/tests/wai-aria/group_hidden_undefined_element_rendered-manual.html @@ -97,20 +97,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/heading_level_unspecified-manual.html b/testing/web-platform/tests/wai-aria/heading_level_unspecified-manual.html index bb54c453fe20..dd399096962a 100644 --- a/testing/web-platform/tests/wai-aria/heading_level_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/heading_level_unspecified-manual.html @@ -95,20 +95,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/keyshortcuts_multiple_shortcuts-manual.html b/testing/web-platform/tests/wai-aria/keyshortcuts_multiple_shortcuts-manual.html index 5f205cf847b8..59d0f074bb74 100644 --- a/testing/web-platform/tests/wai-aria/keyshortcuts_multiple_shortcuts-manual.html +++ b/testing/web-platform/tests/wai-aria/keyshortcuts_multiple_shortcuts-manual.html @@ -83,20 +83,6 @@ "is", "Shift+Space Alt+Space" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/keyshortcuts_one_shortcut-manual.html b/testing/web-platform/tests/wai-aria/keyshortcuts_one_shortcut-manual.html index 6d32946c63f9..97d5f78bc9b8 100644 --- a/testing/web-platform/tests/wai-aria/keyshortcuts_one_shortcut-manual.html +++ b/testing/web-platform/tests/wai-aria/keyshortcuts_one_shortcut-manual.html @@ -83,20 +83,6 @@ "is", "Shift+Space" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_busy_false-manual.html b/testing/web-platform/tests/wai-aria/listbox_busy_false-manual.html index 84a2e338d92f..a40e2d0c983d 100644 --- a/testing/web-platform/tests/wai-aria/listbox_busy_false-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_busy_false-manual.html @@ -95,20 +95,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_busy_true-manual.html b/testing/web-platform/tests/wai-aria/listbox_busy_true-manual.html index b496f0122f85..1fc7e05b7f7b 100644 --- a/testing/web-platform/tests/wai-aria/listbox_busy_true-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_busy_true-manual.html @@ -83,20 +83,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/listbox_orientation_horizontal-manual.html index a90b0a67ab8b..2255425ea13e 100644 --- a/testing/web-platform/tests/wai-aria/listbox_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_orientation_horizontal-manual.html @@ -103,20 +103,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/listbox_orientation_unspecified-manual.html index 78e8857219c1..1b1a68932b54 100644 --- a/testing/web-platform/tests/wai-aria/listbox_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_orientation_unspecified-manual.html @@ -103,20 +103,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/listbox_orientation_vertical-manual.html index 54512b50d344..3e45ecd9e4a1 100644 --- a/testing/web-platform/tests/wai-aria/listbox_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_orientation_vertical-manual.html @@ -103,20 +103,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/listbox_readonly_false-manual.html index 08b2c0ade308..8cbf21cbf1de 100644 --- a/testing/web-platform/tests/wai-aria/listbox_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_readonly_false-manual.html @@ -91,20 +91,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/listbox_readonly_true-manual.html index 1cff318234b0..867c1d3a4918 100644 --- a/testing/web-platform/tests/wai-aria/listbox_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_readonly_true-manual.html @@ -97,20 +97,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/listbox_readonly_unspecified-manual.html index a0e90e23d989..a0e5be9cb916 100644 --- a/testing/web-platform/tests/wai-aria/listbox_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/listbox_readonly_unspecified-manual.html @@ -91,20 +91,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/listitem_setsize_-1-manual.html b/testing/web-platform/tests/wai-aria/listitem_setsize_-1-manual.html index e178ead7605e..dccb3ebc41a4 100644 --- a/testing/web-platform/tests/wai-aria/listitem_setsize_-1-manual.html +++ b/testing/web-platform/tests/wai-aria/listitem_setsize_-1-manual.html @@ -109,20 +109,6 @@ "contains", "selectionitem" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menu_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/menu_orientation_horizontal-manual.html index f871870ed57f..4265de223c31 100644 --- a/testing/web-platform/tests/wai-aria/menu_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/menu_orientation_horizontal-manual.html @@ -85,20 +85,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menu_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menu_orientation_unspecified-manual.html index 699bcba0c1a9..e20e8a8e6a5d 100644 --- a/testing/web-platform/tests/wai-aria/menu_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/menu_orientation_unspecified-manual.html @@ -97,20 +97,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menu_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/menu_orientation_vertical-manual.html index 91bb6cea354a..3e1bf3792d41 100644 --- a/testing/web-platform/tests/wai-aria/menu_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/menu_orientation_vertical-manual.html @@ -85,20 +85,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menubar_busy_false-manual.html b/testing/web-platform/tests/wai-aria/menubar_busy_false-manual.html index 1ec6786838ee..48b2b9d818e6 100644 --- a/testing/web-platform/tests/wai-aria/menubar_busy_false-manual.html +++ b/testing/web-platform/tests/wai-aria/menubar_busy_false-manual.html @@ -103,20 +103,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menubar_busy_true-manual.html b/testing/web-platform/tests/wai-aria/menubar_busy_true-manual.html index 3b5635dec73c..16afee19bcf0 100644 --- a/testing/web-platform/tests/wai-aria/menubar_busy_true-manual.html +++ b/testing/web-platform/tests/wai-aria/menubar_busy_true-manual.html @@ -103,20 +103,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menubar_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/menubar_orientation_horizontal-manual.html index b0fbf91c5742..617be2808c8d 100644 --- a/testing/web-platform/tests/wai-aria/menubar_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/menubar_orientation_horizontal-manual.html @@ -85,20 +85,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menubar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menubar_orientation_unspecified-manual.html index 6798c77269f6..86dc4fb8bd49 100644 --- a/testing/web-platform/tests/wai-aria/menubar_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/menubar_orientation_unspecified-manual.html @@ -85,20 +85,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menubar_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/menubar_orientation_vertical-manual.html index f14bca5fc101..75698ef91a43 100644 --- a/testing/web-platform/tests/wai-aria/menubar_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/menubar_orientation_vertical-manual.html @@ -85,20 +85,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitem_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/menuitem_posinset_and_setsize-manual.html index 4bafcc71b8fe..4fa42ce5d490 100644 --- a/testing/web-platform/tests/wai-aria/menuitem_posinset_and_setsize-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitem_posinset_and_setsize-manual.html @@ -121,20 +121,6 @@ "contains", "setsize:8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html index 2bfd680a8746..39f86f3dfeb6 100644 --- a/testing/web-platform/tests/wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_posinset_and_setsize-manual.html @@ -157,20 +157,6 @@ "contains", "setsize:8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_false-manual.html index 88d2f328ee34..8bc0e24f93c0 100644 --- a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_false-manual.html @@ -103,20 +103,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_true-manual.html index 52f01c7dd5dc..1c0bd8c14ce7 100644 --- a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_true-manual.html @@ -103,20 +103,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_unspecified-manual.html index e1212a72cd27..2b8fc57c30b9 100644 --- a/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemcheckbox_readonly_unspecified-manual.html @@ -97,20 +97,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_posinset_and_setsize-manual.html index a21eec759a38..d0da9968cf51 100644 --- a/testing/web-platform/tests/wai-aria/menuitemradio_posinset_and_setsize-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemradio_posinset_and_setsize-manual.html @@ -169,20 +169,6 @@ "contains", "setsize:8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_false-manual.html index 3c5a1c5c0a62..3ff91d30ae10 100644 --- a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_false-manual.html @@ -103,20 +103,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_true-manual.html index 90c0d7233560..45d8294fdf3a 100644 --- a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_true-manual.html @@ -115,20 +115,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_unspecified-manual.html index 38f6ecc9eb51..f06ed0750d27 100644 --- a/testing/web-platform/tests/wai-aria/menuitemradio_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/menuitemradio_readonly_unspecified-manual.html @@ -103,20 +103,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/none-manual.html b/testing/web-platform/tests/wai-aria/none-manual.html index 1a971989aa6f..bb36df8797f8 100644 --- a/testing/web-platform/tests/wai-aria/none-manual.html +++ b/testing/web-platform/tests/wai-aria/none-manual.html @@ -55,20 +55,6 @@ "exists", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/option_selected_false-manual.html b/testing/web-platform/tests/wai-aria/option_selected_false-manual.html index 38bc29e7e4b6..9851fcac1c76 100644 --- a/testing/web-platform/tests/wai-aria/option_selected_false-manual.html +++ b/testing/web-platform/tests/wai-aria/option_selected_false-manual.html @@ -101,20 +101,6 @@ "doesNotContain", "SelectionItem" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/option_selected_true-manual.html b/testing/web-platform/tests/wai-aria/option_selected_true-manual.html index 269ac000fa4e..a70ca31a0baa 100644 --- a/testing/web-platform/tests/wai-aria/option_selected_true-manual.html +++ b/testing/web-platform/tests/wai-aria/option_selected_true-manual.html @@ -101,20 +101,6 @@ "Is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/option_selected_undefined-manual.html b/testing/web-platform/tests/wai-aria/option_selected_undefined-manual.html index 5b31d62de08e..ce4dc1276a22 100644 --- a/testing/web-platform/tests/wai-aria/option_selected_undefined-manual.html +++ b/testing/web-platform/tests/wai-aria/option_selected_undefined-manual.html @@ -101,20 +101,6 @@ "doesNotContain", "SelectionItem" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/option_selected_value_changes-manual.html b/testing/web-platform/tests/wai-aria/option_selected_value_changes-manual.html index 05d99683b72b..bd44dec26081 100644 --- a/testing/web-platform/tests/wai-aria/option_selected_value_changes-manual.html +++ b/testing/web-platform/tests/wai-aria/option_selected_value_changes-manual.html @@ -80,20 +80,6 @@ "is", "UIA_SelectionItem_ElementSelectedEventId" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 4", @@ -110,21 +96,7 @@ "object:selection-changed" ] ], - "AXAPI" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "AXAPI" : [] }, "title" : "step 5", "type" : "test" @@ -145,20 +117,6 @@ "is", "0" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 6", diff --git a/testing/web-platform/tests/wai-aria/radiogroup_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_orientation_horizontal-manual.html index 1cb59a4f8dbd..3af635594cf1 100644 --- a/testing/web-platform/tests/wai-aria/radiogroup_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/radiogroup_orientation_horizontal-manual.html @@ -85,20 +85,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/radiogroup_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_orientation_unspecified-manual.html index 23e07b30cbdc..277649824a6b 100644 --- a/testing/web-platform/tests/wai-aria/radiogroup_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/radiogroup_orientation_unspecified-manual.html @@ -59,7 +59,7 @@ "property", "AXOrientation", "is", - "" + "AXUnknownOrientation" ] ], "IAccessible2" : [ @@ -103,20 +103,6 @@ "isNot", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/radiogroup_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_orientation_vertical-manual.html index 873b48a02f5d..539967e05eed 100644 --- a/testing/web-platform/tests/wai-aria/radiogroup_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/radiogroup_orientation_vertical-manual.html @@ -85,20 +85,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/radiogroup_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_readonly_false-manual.html index f0b0879d47ba..62556327677c 100644 --- a/testing/web-platform/tests/wai-aria/radiogroup_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/radiogroup_readonly_false-manual.html @@ -97,20 +97,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/radiogroup_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_readonly_true-manual.html index 0eb0c6304556..1f881d7bbc7a 100644 --- a/testing/web-platform/tests/wai-aria/radiogroup_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/radiogroup_readonly_true-manual.html @@ -97,20 +97,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/radiogroup_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/radiogroup_readonly_unspecified-manual.html index e6f90b303d51..af22109175df 100644 --- a/testing/web-platform/tests/wai-aria/radiogroup_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/radiogroup_readonly_unspecified-manual.html @@ -97,20 +97,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/region_with_name-manual.html b/testing/web-platform/tests/wai-aria/region_with_name-manual.html index f754e9a9635d..68187b17de8a 100644 --- a/testing/web-platform/tests/wai-aria/region_with_name-manual.html +++ b/testing/web-platform/tests/wai-aria/region_with_name-manual.html @@ -89,20 +89,6 @@ "is", "region" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/region_without_name-manual.html b/testing/web-platform/tests/wai-aria/region_without_name-manual.html index 7b25cce07f6a..b026c6553fab 100644 --- a/testing/web-platform/tests/wai-aria/region_without_name-manual.html +++ b/testing/web-platform/tests/wai-aria/region_without_name-manual.html @@ -103,20 +103,6 @@ "isNot", "region" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -131,7 +117,7 @@

This test examines the ARIA properties for region without name.

-
+
This is article 1
diff --git a/testing/web-platform/tests/wai-aria/row_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/row_colindex_4-manual.html index 084d26757ed0..e70cf24c4713 100644 --- a/testing/web-platform/tests/wai-aria/row_colindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/row_colindex_4-manual.html @@ -79,20 +79,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -129,21 +115,7 @@ "4" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/row_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/row_rowindex_4-manual.html index 1c813c8e43a7..e3e12c2a83f4 100644 --- a/testing/web-platform/tests/wai-aria/row_rowindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/row_rowindex_4-manual.html @@ -79,20 +79,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", @@ -129,21 +115,7 @@ "4" ] ], - "UIA" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "UIA" : [] }, "title" : "step 2", "type" : "test" diff --git a/testing/web-platform/tests/wai-aria/rowheader_aria-colspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/rowheader_aria-colspan_2_on_div-manual.html index 888db4d50710..c14243dd63b7 100644 --- a/testing/web-platform/tests/wai-aria/rowheader_aria-colspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/rowheader_aria-colspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/rowheader_aria-rowspan_2_on_div-manual.html b/testing/web-platform/tests/wai-aria/rowheader_aria-rowspan_2_on_div-manual.html index 5687d892ca37..4b5351355516 100644 --- a/testing/web-platform/tests/wai-aria/rowheader_aria-rowspan_2_on_div-manual.html +++ b/testing/web-platform/tests/wai-aria/rowheader_aria-rowspan_2_on_div-manual.html @@ -91,20 +91,6 @@ "is", "2" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/rowheader_colindex_4-manual.html b/testing/web-platform/tests/wai-aria/rowheader_colindex_4-manual.html index 35c4aff96063..ce483873dbff 100644 --- a/testing/web-platform/tests/wai-aria/rowheader_colindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/rowheader_colindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/rowheader_rowindex_4-manual.html b/testing/web-platform/tests/wai-aria/rowheader_rowindex_4-manual.html index a26439c88e59..344bda5e95bd 100644 --- a/testing/web-platform/tests/wai-aria/rowheader_rowindex_4-manual.html +++ b/testing/web-platform/tests/wai-aria/rowheader_rowindex_4-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html index 75638d77b272..fe23f4a3867e 100644 --- a/testing/web-platform/tests/wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html +++ b/testing/web-platform/tests/wai-aria/rowheader_selected_false_not_automatically_propagated-manual.html @@ -101,20 +101,6 @@ "is", "test1" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html b/testing/web-platform/tests/wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html index 5676f7ea7191..6b683f9890d6 100644 --- a/testing/web-platform/tests/wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html +++ b/testing/web-platform/tests/wai-aria/rowheader_selected_true_not_automatically_propagated-manual.html @@ -101,20 +101,6 @@ "is", "test1" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/scripts/ATTAcomm.js b/testing/web-platform/tests/wai-aria/scripts/ATTAcomm.js new file mode 100644 index 000000000000..8ad7a62efacb --- /dev/null +++ b/testing/web-platform/tests/wai-aria/scripts/ATTAcomm.js @@ -0,0 +1,940 @@ +/* globals Promise, window, done, assert_true, on_event, promise_test */ + +/** + * Creates an ATTAcomm object. If the parameters are supplied + * it sets up event listeners to send the test data to an ATTA if one + * is available. If the ATTA does not respond, it will assume the test + * is being done manually and the results are being entered in the + * parent test window. + * + * @constructor + * @param {object} params + * @param {string} [params.test] - object containing JSON test definition + * @param {string} [params.testFile] - URI of a file with JSON test definition + * @param {string} params.ATTAuri - URI to use to exercise the window + * @event DOMContentLoaded Calls go once DOM is fully loaded + * @returns {object} Reference to the new object + * + */ + +function ATTAcomm(params) { + 'use strict'; + + this.Params = null; // parameters passed in + this.Promise = null; // master Promise that resolves when intialization is complete + this.Properties = null; // testharness_properties from the opening window + this.Tests = null; // test object being processed + this.testName = ""; // name of test being run + this.log = ""; // a buffer to capture log information for debugging + this.startReponse = {}; // startTest response will go in here for debugging + + this.loading = true; + + this.timeout = 5000; + + var pending = [] ; + + // set up in case DOM finishes loading early + pending.push(new Promise(function(resolve) { + on_event(document, "DOMContentLoaded", function() { + resolve(true); + }.bind(this)); + }.bind(this))); + + // if we are under runner, then there are props in the parent window + // + // if "output" is set in that, then pause at the end of running so the output + // can be analyzed. @@@TODO@@@ + if (window && window.opener && window.opener.testharness_properties) { + this.Properties = window.opener.testharness_properties; + } + + this.Params = params; + + if (this.Params.hasOwnProperty("ATTAuri")) { + this.ATTAuri = this.Params.ATTAuri; + } else { + this.ATTAuri = "http://localhost:4119"; + } + + if (this.Params.hasOwnProperty("title")) { + this.testName = this.Params.title; + } + + // start by loading the test (it might be inline, but + // loadTest deals with that + pending.push(this.loadTest(params) + .then(function(tests) { + // if the test is NOT an object, turn it into one + if (typeof tests === 'string') { + tests = JSON.parse(tests) ; + } + + this.Tests = tests; + + }.bind(this))); + + this.Promise = new Promise(function(resolve, reject) { + // once the DOM and the test is loaded... set us up + Promise.all(pending) + .then(function() { + // Everything is loaded + this.loading = false ; + // run the automated tests (or setup for manual testing) + this.go(); + resolve(this); + }.bind(this)) + .catch(function(err) { + // loading the components failed somehow - report the errors and mark the test failed + test( function() { + assert_true(false, "Loading of test components failed: " +JSON.stringify(err)) ; + }, "Loading test components"); + this.dumpLog(); + done() ; + reject("Loading of test components failed: "+JSON.stringify(err)); + return ; + }.bind(this)); + }.bind(this)); + + return this; +} + +ATTAcomm.prototype = { + + /** + * go sets up the connection to the ATTA + * + * If that succeeds and the tests in this test file have methods for + * the API supported by the ATTA, then it automatically runs those tests. + * + * Otherwise it sets up for manualt testing. + */ + go: function() { + 'use strict'; + // everything is ready. Let's talk to the ATTA + this.startTest().then(function(res) { + + // start was successful - iterate over steps + var API = res.body.API; + + var subtestsForAPI = false; + + // check main and potentially nested lists of tests for + // tests with this API. If any step is missing this API + // mapping, then we need to be manual + this.Tests.forEach(function(subtest) { + if (subtest.hasOwnProperty("test") && + subtest.test.hasOwnProperty(API)) { + // there is at least one subtest for this API so + // this is a test that needs to be looked at by an atta + subtestsForAPI = true; + } else if (Array.isArray(subtest)) { + subtest.forEach(function(st) { + if (st.hasOwnProperty("test") && + st.test.hasOwnProperty(API)) { + subtestsForAPI = true; + } + }); + } + }); + + if (subtestsForAPI) { + this.runTests(API, this.Tests) + .then(function() { + // the tests all ran; close it out + this.endTest().then(function() { + this.dumpLog(); + done(); + }.bind(this)); + }.bind(this)) + .catch(function(err) { + this.endTest().then(function() { + this.dumpLog(); + done(); + }.bind(this)); + }.bind(this)); + } else { + // we don't know this API for this test + this.setupManualTest("Unknown AT API: " + API); + } + }.bind(this)) + .catch(function(res) { + // startTest failed so just sit and wait for a manual test to occur + if (res.timeout || res.status === 102) { + this.setupManualTest("No response from ATTA at " + this.ATTAuri); + } else if (res.status === 200 ) { + this.setupManualTest(res.message); + } else if (res.statusText === "No response from ATTA") { + this.setupManualTest(""); + } else { + this.setupManualTest("Error from ATTA: " + res.status + ": " + res.statusText); + } + }.bind(this)); + }, + + runTests: function(API, collection) { + // this method returns a promise + + return new Promise(function(resolve, reject) { + // accumulate promises; complete when done + var pending = []; + var testCount = 0; + + this.sendEvents(API, collection) + .then(function(eventStatus) { + + /* Loop strategy... + * + * If the the step is a 'test' then push it into the pending queue as a promise + * + * If the step is anything else, then if there is anything in pending, wait on it + * Once it resolves, clear the queue and then execute the other step. + * + */ + collection.forEach(function(subtest) { + // what "type" of step in the sequence is this? + var theType = "test" ; + if (Array.isArray(subtest)) { + // it is a group + Promise.all(pending).then(function() { + pending = []; + // recursively run the tests + pending.push(this.runTests(API, subtest)); + }.bind(this)); + } else if (subtest.hasOwnProperty("type")) { + theType = subtest.type; + } + testCount++; + if (theType === "test") { + // this is a set of assertions that should be evaluated + pending.push(this.runTest(testCount, API, subtest)); + } else if (theType === "script") { + Promise.all(pending).then(function() { + pending = []; + // execute the script + this.runScript(testCount, subtest); + }.bind(this)); + } else if (theType === "attribute") { + Promise.all(pending).then(function() { + pending = []; + // raise the event + this.handleAttribute(testCount, subtest); + }.bind(this)); + // } else { + } else if (theType === "event") { + Promise.all(pending).then(function() { + pending = []; + // raise the event + this.raiseEvent(testCount, subtest); + }.bind(this)); + // } else { + } + }.bind(this)); + + Promise.all(pending) + .then(function() { + // this collection all ran + if (eventStatus !== "NOEVENTS") { + // there were some events at the beginning + this.sendStopListen().then(function() { + resolve(true); + }); + } else { + resolve(true); + } + }.bind(this)); + }.bind(this)); + }.bind(this)); + }, + + setupManualTest: function(message) { + // if we determine the test should run manually, then expose all of the conditions that are + // in the TEST data structure so that a human can to the inspection and calculate the result + // + 'use strict'; + + var ref = document.getElementById("manualMode"); + if (ref) { + // we have a manualMode block. Populate it + var content = "

Manual Mode Enabled

"+message+"

"; + if (this.Tests.hasOwnProperty("description")) { + content += "

" + this.Tests.description + "

"; + } + var theTable = ""; + this.Tests.forEach(function(subtest) { + var type = "test"; + if (subtest.hasOwnProperty("type")) { + type = subtest.type; + } + var id = "" ; + if (subtest.hasOwnProperty("element")) { + id = subtest.element; + } + theTable += ""; + theTable += ""; + theTable += ""; + + // now what do we put over here? depends on the type + if (type === "test") { + // it is a test; dump the assertions + theTable += ""; + } else if (type === "attribute" ) { + if (subtest.hasOwnProperty("attribute") && subtest.hasOwnProperty("value") && subtest.hasOwnProperty("element")) { + if (subtest.value === "none") { + theTable += ""; + } else { + theTable += ""; + } + } + } else if (type === "event" ) { + // it is some events + if (subtest.hasOwnProperty("event") && subtest.hasOwnProperty("element")) { + theTable += ""; + } + } else if (type === "script" ) { + // it is a script fragment + theTable += ""; + } else { + theTable += ""; + } + theTable += ""; + + + }.bind(this)); + + theTable += "
StepTypeElement IDAssertions
" + subtest.title +"" + type + "" + id +"" + this.buildAssertionTable(subtest.test) + "Remove attribute " + subtest.attribute + " from the element with ID " + subtest.element + "Set attribute " + subtest.attribute + " on the element with ID " + subtest.element + " to the value " + subtest.value + "Send event " + subtest.event + " to the element with ID " + subtest.element + "Script: " + subtest.script + "Unknown type: " + type + "
"; + ref.innerHTML = content + theTable ; + } + }, + + buildAssertionTable: function(asserts) { + "use strict"; + var output = ""; + var APIs = [] ; + for (var k in asserts) { + if (asserts.hasOwnProperty(k)) { + APIs.push(k); + } + } + + APIs.sort().forEach(function(theAPI) { + var rows = asserts[theAPI] ; + var height = rows.length; + output += ""; + var lastRow = rows.length - 1; + rows.forEach(function(theRow, index) { + var span = 4 - theRow.length; + var colspan = span ? " colspan='"+span+"'" : ""; + theRow.forEach(function(item) { + output += "" + item + ""; + }); + output += ""; + if (index < lastRow) { + output += ""; + } + }); + }); + + output += "
API NameAssertions
"+theAPI+"
"; + return output; + }, + + // eventList - find the events for an API + // + // @param {string} API + // @param {array} collection - a collection of tests + // @returns {array} list of event names + + eventList: function(API, collection) { + var eventHash = {}; + + if (!API || API === "") { + return []; + } + + collection.forEach(function(subtest) { + if (subtest.hasOwnProperty("test") && + subtest.test.hasOwnProperty(API)) { + // this is a subtest for this API; look at the events + subtest.test[API].forEach(function(assert) { + // look for event names + if (assert[0] === "event" && assert[1] === "type" && assert[2] === "is") { + eventHash[assert[3]] = 1; + } + }); + } + }); + + return Object.keys(eventHash); + }, + + // handleAttribute - set or clear an attribute + /** + * @param {integer} testNum - The subtest number + * @param {object} subtest - attribute information to set + */ + handleAttribute: function(testNum, subtest) { + "use strict"; + if (subtest) { + if (subtest.hasOwnProperty("attribute") && subtest.hasOwnProperty("element") && subtest.hasOwnProperty("value")) { + // update an attribute + try { + var node = document.getElementById(subtest.element); + if (node) { + if (subtest.value === "none") { + // remove this attribute + node.removeAttribute(subtest.attribute); + } else if (subtest.value === '""') { + node.setAttribute(subtest.attribute, ""); + } else if (subtest.value.match(/^"/) ) { + var v = subtest.value; + v = v.replace(/^"/, ''); + v = v.replace(/"$/, ''); + node.setAttribute(subtest.attribute, v); + } else { + node.setAttribute(subtest.attribute, subtest.value); + } + } + } + catch (e) { + test(function() { + assert_true(false, "Subtest attribute failed to update: " +e); + }, "Attribute subtest " + testNum); + } + } else { + test(function() { + var err = ""; + if (!subtest.hasOwnProperty("attribute")) { + err += "Attribute subtest has no attribute property; "; + } else if (!subtest.hasOwnProperty("value")) { + err += "Attribute subtest has no value property; "; + } else if (!subtest.hasOwnProperty("element")) { + err += "Attribute subtest has no element property; "; + } + assert_true(false, err); + }, "Attribute subtest " + testNum ); + } + } + return; + }, + + + + // raiseEvent - throw an event at an item + /** + * @param {integer} testNum - The subtest number + * @param {object} subtest - event information to throw + */ + raiseEvent: function(testNum, subtest) { + "use strict"; + var evt; + if (subtest) { + var kp = function(target, key) { + evt = document.createEvent("KeyboardEvent"); + evt.initKeyEvent ("keypress", true, true, window, + 0, 0, 0, 0, 0, "e".charCodeAt(0)); + target.dispatchEvent(evt); + }; + if (subtest.hasOwnProperty("event") && subtest.hasOwnProperty("element")) { + // throw an event + try { + var node = document.getElementById(subtest.element); + if (node) { + if (subtest.event === "focus") { + node.focus(); + } else if (subtest.event === "select") { + node.click(); + } else if (subtest.event.startsWith('key:')) { + var key = subtest.event.replace('key:', ''); + evt = new KeyboardEvent("keypress", { "key": key}); + node.dispatchEvent(evt); + } else { + evt = new Event(subtest.element); + node.dispatchEvent(evt); + } + } + } + catch (e) { + test(function() { + assert_true(false, "Subtest event failed to dispatch: " +e); + }, "Event subtest " + testNum); + } + } else { + test(function() { + var err = ""; + if (!subtest.hasOwnProperty("event")) { + err += "Event subtest has no event property; "; + } else if (!subtest.hasOwnProperty("element")) { + err += "Event subtest has no element property; "; + } + assert_true(false, err); + }, "Event subtest " + testNum ); + } + } + return; + }, + + // runScript - run a script in the context of the window + /** + * @param {integer} testNum - The subtest number + * @param {object} subtest - script and related information + */ + runScript: function(testNum, subtest) { + "use strict"; + if (subtest) { + if (subtest.hasOwnProperty("script") && typeof subtest.script === "string") { + try { + /* jshint evil:true */ + eval(subtest.script); + } + catch (e) { + test(function() { + assert_true(false, "Subtest script " + subtest.script + " failed to evaluate: " +e); + }, "Event subtest " + testNum); + } + } else { + test(function() { + assert_true(false, "Event subtest has no script property"); + }, "Event subtest " + testNum ); + } + } + return; + }, + + // runTest - process subtest + /** + * @param {integer} testNum - The subtest number + * @param {string} API - name of the API being tested + * @param {object} subtest - a subtest to run; contains 'title', 'element', and + * 'test array' + * @returns {Promise} - a Promise that resolves when the test completes + */ + runTest: function(testNum, API, subtest) { + 'use strict'; + + var data = { + "title" : subtest.title, + "id" : subtest.element, + "data": this.normalize(subtest.test[API]) + }; + + return new Promise(function(resolve) { + var ANNO = this; + if (subtest.test[API]) { + // we actually have a test to run + promise_test(function() { + // force a resolve of the promise regardless + this.add_cleanup(function() { resolve(true); }); + return ANNO.sendTest(data) + .then(function(res) { + if (typeof res.body === "object" && res.body.hasOwnProperty("status")) { + // we got some sort of response + if (res.body.status === "OK") { + // the test ran - yay! + var messages = ""; + var thisResult = null; + var theLog = ""; + var assertionCount = 0; + res.body.results.forEach( function (a) { + if (typeof a === "object") { + // we have a result for this assertion + // first, what is the assertion? + var aRef = data.data[assertionCount]; + var assertionText = '"' + aRef.join(" ") +'"'; + + if (a.hasOwnProperty("log") && a.log !== null && a.log !== '' ) { + // there is log data - save it + theLog += "\n--- Assertion " + assertionCount + " ---"; + theLog += "\nAssertion: " + assertionText + "\nLog data: "+a.log ; + } + + // is there a message? + var theMessage = ""; + if (a.hasOwnProperty("message")) { + theMessage = a.message; + } + if (!a.hasOwnProperty("result")) { + messages += "ATTA did not report a result " + theMessage + "; "; + } else if (a.result === "ERROR") { + messages += "ATTA reported ERROR with message: " + theMessage + "; "; + } else if (a.result === "FAIL") { + thisResult = false; + messages += assertionText + " failed " + theMessage + "; "; + } else if (a.result === "PASS" && thisResult === null) { + // if we got a pass and there was no other result thus far + // then we are passing + thisResult = true; + } + } + assertionCount++; + }); + if (theLog !== "") { + ANNO.saveLog("runTest", theLog, subtest); + } + if (thisResult !== null) { + assert_true(thisResult, messages); + } else { + assert_true(false, "ERROR: No results reported from ATTA; " + messages); + } + } else if (res.body.status === "ERROR") { + assert_true(false, "ATTA returned ERROR with message: " + res.body.statusText); + } else { + assert_true(false, "ATTA returned unknown status " + res.body.status + " with message: " + res.body.statusText); + } + } else { + // the return wasn't an object! + assert_true(false, "ATTA failed to return a result object: returned: "+JSON.stringify(res)); + } + }); + }, subtest.name ); + } else { + // there are no test steps for this API. fake a subtest result + promise_test(function() { + // force a resolve of the promise regardless + this.add_cleanup(function() { resolve(true); }); + return new Promise(function(innerResolve) { + innerResolve(true); + }) + .then(function(res) { + var theLog = "\nSUBTEST SKIPPED: No assertions for API " + API + "\n"; + if (theLog !== "") { + ANNO.saveLog("runTest", theLog, subtest); + } + assert_false(true, "SKIPPED: No assertion for API " + API); + }); + }, subtest.name ); + } + }.bind(this)); + }, + + // loadTest - load a test from an external JSON file + // + // returns a promise that resolves with the contents of the + // test + + loadTest: function(params) { + 'use strict'; + + if (params.hasOwnProperty('stepFile')) { + // the test is referred to by a file name + return this._fetch("GET", params.stepFile); + } // else + return new Promise(function(resolve, reject) { + if (params.hasOwnProperty('steps')) { + resolve(params.steps); + } else { + reject("Must supply a 'steps' or 'stepFile' parameter"); + } + }); + }, + + /* dumpLog - put log information into the log div on the page if it exists + */ + + dumpLog: function() { + 'use strict'; + if (this.log !== "") { + var ref = document.getElementById("ATTAmessages"); + if (ref) { + // we have a manualMode block. Populate it + var content = "

Logging information recorded

"; + if (this.startResponse && this.startResponse.hasOwnProperty("API")) { + content += "

ATTA Information

"; + content += "
"+JSON.stringify(this.startResponse, null, "  ")+"
"; + } + content += ""; + ref.innerHTML = content ; + } + } + }, + + /* saveLog - capture logging information so that it can be displayed on the page after testing is complete + * + * @param {string} caller name + * @param {string} log message + * @param {object} subtest + */ + + saveLog: function(caller, message, subtest) { + 'use strict'; + + if (typeof message === "string" && message !== "") { + this.log += "============================================================\n"; + this.log += "Message from " + caller + "\n"; + if (subtest && typeof subtest === "object") { + var API = this.startResponse.API; + this.log += "\n SUBTEST TITLE: " + subtest.title; + this.log += "\n SUBTEST ELEMENT: " + subtest.element; + this.log += "\n SUBTEST DATA: " + JSON.stringify(subtest.test[API]); + this.log += "\n\n"; + } + this.log += message; + } + return; + }, + + // startTest - send the test start message + // + // @returns {Promise} resolves if the start is successful, or rejects with + + startTest: function() { + 'use strict'; + + return new Promise(function(resolve, reject) { + var params = { + test: this.testName || window.title, + url: document.location.href + }; + + this._fetch("POST", this.ATTAuri + "/start", null, params) + .then(function(res) { + if (res.body.hasOwnProperty("status")) { + if (res.body.status === "READY") { + this.startResponse = res.body; + if (res.body.hasOwnProperty("log")) { + // there is some logging data - capture it + this.saveLog("startTest", res.body.log); + } + // the system is ready for us - is it really? + if (res.body.hasOwnProperty("API")) { + resolve(res); + } else { + res.message = "No API in response from ATTA"; + reject(res); + } + } else { + // the system reported something else - fail out with the statusText as a result + res.message = "ATTA reported an error: " + res.body.statusText; + reject(res); + } + } else { + res.message = "ATTA did not report a status"; + reject(res); + } + }.bind(this)) + .catch(function(res) { + reject(res); + }); + }.bind(this)); + }, + + // sendEvents - send the list of events the ATTA needs to listen for + // + // @param {string} API + // @param {array} collection - a list of tests + // @returns {Promise} resolves if the message is successful, or rejects with + + sendEvents: function(API, collection) { + 'use strict'; + + return new Promise(function(resolve, reject) { + var eList = this.eventList(API, collection) ; + if (eList && eList.length) { + var params = { + events: eList + }; + + this._fetch("POST", this.ATTAuri + "/startlisten", null, params) + .then(function(res) { + if (res.body.hasOwnProperty("status")) { + if (res.body.status === "READY") { + if (res.body.hasOwnProperty("log")) { + // there is some logging data - capture it + this.saveLog("sendEvents", res.body.log); + } + resolve(res.body.status); + } else { + // the system reported something else - fail out with the statusText as a result + res.message = "ATTA reported an error: " + res.body.statusText; + reject(res); + } + } else { + res.message = "ATTA did not report a status"; + reject(res); + } + }.bind(this)) + .catch(function(res) { + reject(res); + }); + } else { + // there are no events + resolve("NOEVENTS"); + } + }.bind(this)); + }, + + sendStopListen: function() { + 'use strict'; + + return this._fetch("POST", this.ATTAuri + "/stoplisten", null, null) + }, + + // sendTest - send test data to an ATTA and wait for a response + // + // returns a promise that resolves with the results of the test + + sendTest: function(testData) { + 'use strict'; + + if (typeof testData !== "string") { + testData = JSON.stringify(testData); + } + var ret = this._fetch("POST", this.ATTAuri + "/test", null, testData, true); + ret.then(function(res) { + if (res.body.hasOwnProperty("log")) { + // there is some logging data - capture it + this.saveLog("sendTest", res.body.log); + } + }.bind(this)); + return ret; + }, + + endTest: function() { + 'use strict'; + + return this._fetch("GET", this.ATTAuri + "/end"); + }, + + /* normalize - ensure subtest data conforms to ATTA spec + */ + + normalize: function( data ) { + 'use strict'; + + var ret = [] ; + + if (data) { + data.forEach(function(assert) { + var normal = [] ; + // ensure if there is a value list it is compressed + if (Array.isArray(assert)) { + // we have an array + normal[0] = assert[0]; + normal[1] = assert[1]; + normal[2] = assert[2]; + if ("string" === typeof assert[3] && assert[3].match(/^\[.*\]$/)) { + // it is a string and matches the valuelist pattern + normal[3] = assert[3].replace(/, +/, ','); + } else { + normal[3] = assert[3]; + } + ret.push(normal); + } else { + ret.push(assert); + } + }); + } + return ret; + }, + + // _fetch - return a promise after sending data + // + // Resolves with the returned information in a structure + // including: + // + // xhr - a raw xhr object + // headers - an array of headers sent in the request + // status - the status code + // statusText - the text of the return status + // text - raw returned data + // body - an object parsed from the returned content + // + + _fetch: function (method, url, headers, content, parse) { + 'use strict'; + if (method === null || method === undefined) { + method = "GET"; + } + if (parse === null || parse === undefined) { + parse = true; + } + if (headers === null || headers === undefined) { + headers = []; + } + + + // note that this Promise always resolves - there is no reject + // condition + + return new Promise(function (resolve, reject) { + var xhr = new XMLHttpRequest(); + + // this gets returned when the request completes + var resp = { + xhr: xhr, + headers: null, + status: 0, + statusText: "", + body: null, + text: "" + }; + + xhr.open(method, url); + + // headers? + headers.forEach(function(ref) { + xhr.setRequestHeader(ref[0], ref[1]); + }); + + //if (this.timeout) { + // xhr.timeout = this.timeout; + //} + + xhr.ontimeout = function() { + resp.timeout = this.timeout; + resolve(resp); + }; + + xhr.onerror = function() { + if (this.status) { + resp.status = this.status; + resp.statusText = xhr.statusText; + } else if (this.status === 0) { + resp.status = 0; + resp.statusText = "No response from ATTA"; + } + reject(resp); + }; + + xhr.onload = function () { + resp.status = this.status; + if (this.status >= 200 && this.status < 300) { + var d = xhr.response; + // return the raw text of the response + resp.text = d; + // we have it; what is it? + if (parse) { + try { + d = JSON.parse(d); + resp.body = d; + } + catch(err) { + resp.body = null; + } + } + resolve(resp); + } else { + reject({ + status: this.status, + statusText: xhr.statusText + }); + } + }; + + if (content !== null && content !== undefined) { + if ("object" === typeof(content)) { + xhr.send(JSON.stringify(content)); + } else if ("function" === typeof(content)) { + xhr.send(content()); + } else if ("string" === typeof(content)) { + xhr.send(content); + } + } else { + xhr.send(); + } + }); + }, + +}; + +// vim: set ts=2 sw=2: diff --git a/testing/web-platform/tests/wai-aria/scripts/manual.css b/testing/web-platform/tests/wai-aria/scripts/manual.css new file mode 100644 index 000000000000..0e4f4a03e4b7 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/scripts/manual.css @@ -0,0 +1,70 @@ +html { + font-family:DejaVu Sans, Bitstream Vera Sans, Arial, Sans; +} + +table#steps { + border-collapse:collapse; + table-layout:fixed; + width:100%; +} + +table#steps th:last-child, +table#steps td:last-child { + width:70%; +} + +// table#steps.assertions th:last-child, +// table#steps.assertions td:last-child { +// width:35%; +// } + +table#steps th { + padding:0; + padding-bottom:0.25; + border-bottom:medium solid black; +} + +table#steps td { + padding-top:0.25em; + padding-bottom:0.25em; + padding-left:0.5em; + padding-right:0.5em; + border-right:thin solid black; + border-top:thin solid black; + border-bottom:thin solid black; +} + +table#steps td.step, table#steps td.type, table#steps td.element { + vertical-align:top; +} +table#api { + border-collapse:collapse; + table-layout:fixed; + width:100%; +} + +// table#steps.assertions th:last-child, +// table#steps.assertions td:last-child { +// width:35%; +// } + +table#api th { + padding:0; + padding-bottom:0.25; + border-bottom:medium solid black; +} + +table#api td { + padding-top:0.25em; + padding-bottom:0.25em; + padding-left:0.5em; + padding-right:0.5em; + border-right:thin solid black; + border-top:thin solid black; + border-bottom:thin solid black; +} + +table#api td.step, table#api td.type, table#api td.element { + vertical-align:top; +} +} diff --git a/testing/web-platform/tests/wai-aria/scrollbar_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/scrollbar_all_values_unspecified-manual.html index 55faba3fc80c..12ab554ed607 100644 --- a/testing/web-platform/tests/wai-aria/scrollbar_all_values_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/scrollbar_all_values_unspecified-manual.html @@ -151,20 +151,6 @@ "is", "100" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/scrollbar_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/scrollbar_only_valuenow_unspecified-manual.html index 4944cd4d3747..02414e7f7a7d 100644 --- a/testing/web-platform/tests/wai-aria/scrollbar_only_valuenow_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/scrollbar_only_valuenow_unspecified-manual.html @@ -151,20 +151,6 @@ "is", "40" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/scrollbar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/scrollbar_orientation_unspecified-manual.html index a8ffd3824813..5c403d94cf9e 100644 --- a/testing/web-platform/tests/wai-aria/scrollbar_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/scrollbar_orientation_unspecified-manual.html @@ -103,20 +103,6 @@ "contains", "Range control pattern" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox-manual.html b/testing/web-platform/tests/wai-aria/searchbox-manual.html index f91750bedd8c..35269b4ca5c9 100644 --- a/testing/web-platform/tests/wai-aria/searchbox-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox-manual.html @@ -97,20 +97,6 @@ "is", "search box" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_both-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_both-manual.html index 78bce151d09f..7f0c6368e66f 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_both-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_both-manual.html @@ -121,20 +121,6 @@ "is", "both" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_inline-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_inline-manual.html index f15d3f6a8990..4695dc31bd00 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_inline-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_inline-manual.html @@ -121,20 +121,6 @@ "is", "inline" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_list-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_list-manual.html index d005f6bb4200..1e06f284dfe4 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_list-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_list-manual.html @@ -121,20 +121,6 @@ "is", "list" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_none-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_none-manual.html index ad36df44d3ca..88871bdf5735 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_none-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_none-manual.html @@ -121,20 +121,6 @@ "is", "none" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_unspecified-manual.html index 93de9808214d..cced42a59e3e 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_autocomplete_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_autocomplete_unspecified-manual.html @@ -115,20 +115,6 @@ "is", "none" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_multiline_false-manual.html b/testing/web-platform/tests/wai-aria/searchbox_multiline_false-manual.html index b105aedb0011..dacf24f9f408 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_multiline_false-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_multiline_false-manual.html @@ -85,20 +85,6 @@ "is", "search box" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_multiline_true-manual.html b/testing/web-platform/tests/wai-aria/searchbox_multiline_true-manual.html index cfa3cf49e0d6..eae20ae69d28 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_multiline_true-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_multiline_true-manual.html @@ -109,20 +109,6 @@ "contains", "multiline:true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_multiline_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_multiline_unspecified-manual.html index bbaafdf179ef..9a8914a987cd 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_multiline_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_multiline_unspecified-manual.html @@ -85,20 +85,6 @@ "is", "search box" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_placeholder-manual.html b/testing/web-platform/tests/wai-aria/searchbox_placeholder-manual.html index ba6c9c9f39fa..3ca34ed06e62 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_placeholder-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_placeholder-manual.html @@ -115,20 +115,6 @@ "is", "DD/MM/YYYY" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/searchbox_readonly_false-manual.html index ca3ed753bc52..4b5ae2963ce4 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_readonly_false-manual.html @@ -127,20 +127,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/searchbox_readonly_true-manual.html index ec3e9a8b06e3..9afe83afdb63 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_readonly_true-manual.html @@ -127,20 +127,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_readonly_unspecified-manual.html index 011060c8ba73..d3affe0e8aee 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_readonly_unspecified-manual.html @@ -127,20 +127,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_required_false-manual.html b/testing/web-platform/tests/wai-aria/searchbox_required_false-manual.html index 9c3678e3b518..d895157b97e8 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_required_false-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_required_false-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_required_true-manual.html b/testing/web-platform/tests/wai-aria/searchbox_required_true-manual.html index 67c95ed1f382..6dba349dba09 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_required_true-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_required_true-manual.html @@ -115,20 +115,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/searchbox_required_unspecified-manual.html b/testing/web-platform/tests/wai-aria/searchbox_required_unspecified-manual.html index 4d3c82cac8a5..bda0004a3ca8 100644 --- a/testing/web-platform/tests/wai-aria/searchbox_required_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/searchbox_required_unspecified-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/separator_focusable_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_focusable_all_values_unspecified-manual.html index b4dc8b6153cf..b36413c39139 100644 --- a/testing/web-platform/tests/wai-aria/separator_focusable_all_values_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/separator_focusable_all_values_unspecified-manual.html @@ -151,20 +151,6 @@ "is", "100" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/separator_focusable_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_focusable_only_valuenow_unspecified-manual.html index 2a50e13e71ae..4cebd9216e3a 100644 --- a/testing/web-platform/tests/wai-aria/separator_focusable_only_valuenow_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/separator_focusable_only_valuenow_unspecified-manual.html @@ -151,20 +151,6 @@ "is", "100" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/separator_focusable_valuetext-manual.html b/testing/web-platform/tests/wai-aria/separator_focusable_valuetext-manual.html index c192c59361db..fbe0268ceab2 100644 --- a/testing/web-platform/tests/wai-aria/separator_focusable_valuetext-manual.html +++ b/testing/web-platform/tests/wai-aria/separator_focusable_valuetext-manual.html @@ -181,20 +181,6 @@ "is", "Bonaire" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/separator_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_orientation_unspecified-manual.html index bc884aa74fbf..bf678cf208e7 100644 --- a/testing/web-platform/tests/wai-aria/separator_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/separator_orientation_unspecified-manual.html @@ -91,20 +91,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/separator_unfocusable_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/separator_unfocusable_all_values_unspecified-manual.html index 0f6f39aaca9c..4834a0d22e2d 100644 --- a/testing/web-platform/tests/wai-aria/separator_unfocusable_all_values_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/separator_unfocusable_all_values_unspecified-manual.html @@ -59,20 +59,6 @@ "is", "Separator" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/separator_unfocusable_valuetext-manual.html b/testing/web-platform/tests/wai-aria/separator_unfocusable_valuetext-manual.html index 6b68b60226f3..98e7c3ccdbb4 100644 --- a/testing/web-platform/tests/wai-aria/separator_unfocusable_valuetext-manual.html +++ b/testing/web-platform/tests/wai-aria/separator_unfocusable_valuetext-manual.html @@ -91,20 +91,6 @@ "doesNotContain", "Value" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/slider_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_all_values_unspecified-manual.html index 24868825e4b1..07540dd1b988 100644 --- a/testing/web-platform/tests/wai-aria/slider_all_values_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/slider_all_values_unspecified-manual.html @@ -151,20 +151,6 @@ "is", "100" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/slider_only_valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_only_valuenow_unspecified-manual.html index ffd89f4366a4..05e02e1ffcb7 100644 --- a/testing/web-platform/tests/wai-aria/slider_only_valuenow_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/slider_only_valuenow_unspecified-manual.html @@ -151,20 +151,6 @@ "is", "40" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/slider_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_orientation_unspecified-manual.html index 8a5a3706163c..052830779d68 100644 --- a/testing/web-platform/tests/wai-aria/slider_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/slider_orientation_unspecified-manual.html @@ -103,20 +103,6 @@ "contains", "Range control pattern" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/slider_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/slider_readonly_false-manual.html index 63e4d821885f..bc997a19a0b7 100644 --- a/testing/web-platform/tests/wai-aria/slider_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/slider_readonly_false-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/slider_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/slider_readonly_true-manual.html index fbf8a531c314..7e48600c4dfb 100644 --- a/testing/web-platform/tests/wai-aria/slider_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/slider_readonly_true-manual.html @@ -115,20 +115,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/slider_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/slider_readonly_unspecified-manual.html index 3cb835b7a4b8..0fdaba39473d 100644 --- a/testing/web-platform/tests/wai-aria/slider_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/slider_readonly_unspecified-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/spinbutton_all_values_unspecified-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_all_values_unspecified-manual.html index d099b1b5d4c6..cac28e46f826 100644 --- a/testing/web-platform/tests/wai-aria/spinbutton_all_values_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/spinbutton_all_values_unspecified-manual.html @@ -151,20 +151,6 @@ "isGTE", "9007199254740992" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html index e3c07f72599c..62276a0f9b25 100644 --- a/testing/web-platform/tests/wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/spinbutton_only_aria-valuenow_unspecified-manual.html @@ -151,20 +151,6 @@ "is", "100" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/spinbutton_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_readonly_false-manual.html index 50a6a6ecf351..7f6b515cd55a 100644 --- a/testing/web-platform/tests/wai-aria/spinbutton_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/spinbutton_readonly_false-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/spinbutton_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_readonly_true-manual.html index 879d90376001..b264c47be66f 100644 --- a/testing/web-platform/tests/wai-aria/spinbutton_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/spinbutton_readonly_true-manual.html @@ -115,20 +115,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/spinbutton_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/spinbutton_readonly_unspecified-manual.html index d49e7773ee28..00c0acaf85d3 100644 --- a/testing/web-platform/tests/wai-aria/spinbutton_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/spinbutton_readonly_unspecified-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/switch_checked_false-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_false-manual.html index 67e96de5a22d..5e7bf6e00f0f 100644 --- a/testing/web-platform/tests/wai-aria/switch_checked_false-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_checked_false-manual.html @@ -101,20 +101,6 @@ "is", "Off" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/switch_checked_mixed-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_mixed-manual.html index d25f829225b6..c662c63bc7c6 100644 --- a/testing/web-platform/tests/wai-aria/switch_checked_mixed-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_checked_mixed-manual.html @@ -107,20 +107,6 @@ "is", "Off" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/switch_checked_true-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_true-manual.html index 9262deabaccc..c90a6c02c88f 100644 --- a/testing/web-platform/tests/wai-aria/switch_checked_true-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_checked_true-manual.html @@ -115,20 +115,6 @@ "is", "On" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/switch_checked_undefined-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_undefined-manual.html index 18ca4afa7278..ed2f0e532780 100644 --- a/testing/web-platform/tests/wai-aria/switch_checked_undefined-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_checked_undefined-manual.html @@ -101,20 +101,6 @@ "is", "Off" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/switch_checked_value_changes-manual.html b/testing/web-platform/tests/wai-aria/switch_checked_value_changes-manual.html index 1960f0183bb6..0f573d991ed2 100644 --- a/testing/web-platform/tests/wai-aria/switch_checked_value_changes-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_checked_value_changes-manual.html @@ -140,20 +140,6 @@ "is", "Toggle.ToggleStateProperty" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 2", diff --git a/testing/web-platform/tests/wai-aria/switch_readonly_false-manual.html b/testing/web-platform/tests/wai-aria/switch_readonly_false-manual.html index de7ec876d246..87bed9e243ea 100644 --- a/testing/web-platform/tests/wai-aria/switch_readonly_false-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_readonly_false-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/switch_readonly_true-manual.html b/testing/web-platform/tests/wai-aria/switch_readonly_true-manual.html index 71020183e1d1..2bdca202136c 100644 --- a/testing/web-platform/tests/wai-aria/switch_readonly_true-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_readonly_true-manual.html @@ -115,20 +115,6 @@ "is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/switch_readonly_unspecified-manual.html b/testing/web-platform/tests/wai-aria/switch_readonly_unspecified-manual.html index 174c3f9a5c00..2679fb4de5cd 100644 --- a/testing/web-platform/tests/wai-aria/switch_readonly_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/switch_readonly_unspecified-manual.html @@ -115,20 +115,6 @@ "is", "false" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/tab_posinset_and_setsize-manual.html b/testing/web-platform/tests/wai-aria/tab_posinset_and_setsize-manual.html index 1c5cc69c1411..d598abaf222f 100644 --- a/testing/web-platform/tests/wai-aria/tab_posinset_and_setsize-manual.html +++ b/testing/web-platform/tests/wai-aria/tab_posinset_and_setsize-manual.html @@ -157,20 +157,6 @@ "isNot", "IsSelected" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/table_colcount_-1-manual.html b/testing/web-platform/tests/wai-aria/table_colcount_-1-manual.html index c4eb0175bd5e..fd367f11ec49 100644 --- a/testing/web-platform/tests/wai-aria/table_colcount_-1-manual.html +++ b/testing/web-platform/tests/wai-aria/table_colcount_-1-manual.html @@ -91,20 +91,6 @@ "is", "-1" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/table_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/table_colcount_8-manual.html index b9a88ef5e618..1d52fa07984b 100644 --- a/testing/web-platform/tests/wai-aria/table_colcount_8-manual.html +++ b/testing/web-platform/tests/wai-aria/table_colcount_8-manual.html @@ -91,20 +91,6 @@ "is", "8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/table_rowcount_-1-manual.html b/testing/web-platform/tests/wai-aria/table_rowcount_-1-manual.html index 7b6d7955d831..5ef7a50f224e 100644 --- a/testing/web-platform/tests/wai-aria/table_rowcount_-1-manual.html +++ b/testing/web-platform/tests/wai-aria/table_rowcount_-1-manual.html @@ -91,20 +91,6 @@ "is", "-1" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/table_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/table_rowcount_3-manual.html index af66b287c80f..098a852a0900 100644 --- a/testing/web-platform/tests/wai-aria/table_rowcount_3-manual.html +++ b/testing/web-platform/tests/wai-aria/table_rowcount_3-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/tablist_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/tablist_orientation_horizontal-manual.html index 5d494fe6e294..3fb8d088fc6f 100644 --- a/testing/web-platform/tests/wai-aria/tablist_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/tablist_orientation_horizontal-manual.html @@ -109,20 +109,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/tablist_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/tablist_orientation_unspecified-manual.html index dc1c72632011..c23666d54e1e 100644 --- a/testing/web-platform/tests/wai-aria/tablist_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/tablist_orientation_unspecified-manual.html @@ -103,20 +103,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/tablist_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/tablist_orientation_vertical-manual.html index c8a904a74eb4..29e8ae8a3332 100644 --- a/testing/web-platform/tests/wai-aria/tablist_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/tablist_orientation_vertical-manual.html @@ -103,20 +103,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/term_role-manual.html b/testing/web-platform/tests/wai-aria/term_role-manual.html index 01692263b0e7..331e30cc334c 100644 --- a/testing/web-platform/tests/wai-aria/term_role-manual.html +++ b/testing/web-platform/tests/wai-aria/term_role-manual.html @@ -77,20 +77,6 @@ "is", "ListItem" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/textbox_placeholder-manual.html b/testing/web-platform/tests/wai-aria/textbox_placeholder-manual.html index 95f3ed6d2c6e..e2147c0bff65 100644 --- a/testing/web-platform/tests/wai-aria/textbox_placeholder-manual.html +++ b/testing/web-platform/tests/wai-aria/textbox_placeholder-manual.html @@ -103,20 +103,6 @@ "is", "DD/MM/YYYY" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/toolbar_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/toolbar_orientation_horizontal-manual.html index 826ce8f8634c..f954c0a51b56 100644 --- a/testing/web-platform/tests/wai-aria/toolbar_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/toolbar_orientation_horizontal-manual.html @@ -91,20 +91,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/toolbar_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/toolbar_orientation_unspecified-manual.html index 5f82839bf135..aa42984ca804 100644 --- a/testing/web-platform/tests/wai-aria/toolbar_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/toolbar_orientation_unspecified-manual.html @@ -91,20 +91,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/toolbar_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/toolbar_orientation_vertical-manual.html index 7938d916cde9..6b9ad6554635 100644 --- a/testing/web-platform/tests/wai-aria/toolbar_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/toolbar_orientation_vertical-manual.html @@ -91,20 +91,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/tools/convert_wiki.pl b/testing/web-platform/tests/wai-aria/tools/convert_wiki.pl new file mode 100644 index 000000000000..d3415f265387 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tools/convert_wiki.pl @@ -0,0 +1,648 @@ +#!/usr/bin/perl +# +# convert_wiki.pl - Transform an old-style wiki into the new format +# +# This script assumes that a wiki has testable statement entries +# with varying lemgth lines. Those lines will be converted into +# the format described by the specification at +# https://spec-ops.github.io/atta-api/index.html +# +# usage: convert_wiki.pl -f file | -w wiki_title -o outFile + +use strict; + +use IO::String ; +use JSON ; +use MediaWiki::API ; +use Getopt::Long; + +my @apiNames = qw(UIA MSAA ATK IAccessible2 AXAPI); + +# dir is determined based upon the short name of the spec and is defined +# by the input or on the command line + +my $file = undef ; +my $spec = undef ; +my $wiki_title = undef ; +my $dir = undef; +my $outFile = undef; + +my $result = GetOptions( + "f|file=s" => \$file, + "w|wiki=s" => \$wiki_title, + "s|spec=s" => \$spec, + "o|output=s" => \$outFile); + +my $wiki_config = { + "api_url" => "https://www.w3.org/wiki/api.php" +}; + +my %specs = ( + "aria11" => { + title => "ARIA_1.1_Testable_Statements", + specURL => "https://www.w3.org/TR/wai-aria11" + }, + "svg" => { + title => "SVG_Accessibility/Testing/Test_Assertions_with_Tables_for_ATTA", + specURL => "https://www.w3.org/TR/svg-aam-1.0/" + } +); + +my $io ; +our $theSpecURL = ""; + +if ($spec) { + $wiki_title = $specs{$spec}->{title}; + $theSpecURL = $specs{$spec}->{specURL}; +} + +if ($wiki_title) { + my $MW = MediaWiki::API->new( $wiki_config ); + my $page = $MW->get_page( { title => $wiki_title } ); + my $theContent = $page->{'*'}; + $io = IO::String->new($theContent); +} elsif ($file) { + open($io, "<", $file) || die("Failed to open $file: " . $@); +} else { + usage() ; +} + +my $outH ; +if (defined $outFile) { + open($outH, ">", $outFile) || die("Failed to create file $outFile: $@"); +} else { + $outH = new IO::Handle; + $outH->fdopen(fileno(STDOUT), "w"); +} + + +# Now let's walk through the content and spit it back out +# transformed +# + +# iterate over the content + +# my $io ; +# open($io, "<", "raw") ; + +my $state = 0; # between items +my $theCode = ""; +my $theAttributes = {}; +my $theAsserts = {} ; +my $theAssertCount = 0; +my $theAPI = ""; +my $typeRows = 0; +my $theType = ""; +my $theName = ""; +my $theRef = ""; + +my $before = "" ; +my $after = "" ; + +my @errors = () ; +my $linecount = 0; + +while (<$io>) { + $linecount++; + # look for state + if ($state == 0) { + if (scalar(keys(%$theAsserts))) { + # we were in an item; dump it + print $outH dump_table($theAsserts) ; + $theAsserts = {}; + } + print $outH $_; + } + if (m/^\{\|/) { + # table started + $state = 4; + $theAPI = ""; + } + if ($state == 4) { + if (m/^\|-/) { + if ($theAPI + && exists($theAsserts->{$theAPI}->[$theAssertCount]) + && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) { + $theAssertCount++; + } + # start of a table row + if ($theType ne "" && $typeRows) { + # we are still processing items for a type + $typeRows--; + # populate the first cell + $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ; + } else { + $theType = ""; + } + } elsif (m/^\|\}/) { + # ran out of table + $state = 0; + } elsif (m/^\|rowspan="*([0-9])"*\|(.*)$/) { + # someone put a rowspan in here.. is ht an API? + my $rows = $1; + my $theString = $2; + $theString =~ s/ +$//; + $theString =~ s/^ +//; + $theString = "IAccessible2" if ($theString eq "IA2") ; + if (grep { $_ eq $theString } @apiNames) { + $theAssertCount = 0; + # this is a new API section + $theAPI = $theString ; + $theAsserts->{$theAPI} = [ [] ] ; + $theType = ""; + } else { + # nope, this is a multi-row type + $theType = $theString; + $typeRows = $rows; + $typeRows--; + # populate the first cell + if ($theAPI + && exists($theAsserts->{$theAPI}->[$theAssertCount]) + && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) { + $theAssertCount++; + } + $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ; + } + } elsif (m/^\|note/) { + # there is a note in the table... throw it out + # and the next line too + my $l = <$io>; + } elsif (m/^\|(MSAA|UIA|IA2|IAccessible2|ATK|AXAPI) *$/) { + # they FORGOT a rowspan on an API. That means there is only 1 + # row + my $theString = $1; + $theString =~ s/ +$//; + $theString =~ s/^ +//; + $theString = "IAccessible2" if ($theString eq "IA2") ; + if (grep { $_ eq $theString } @apiNames) { + $theAssertCount = 0; + # this is a new API section + $theAPI = $theString ; + $theAsserts->{$theAPI} = [ [] ] ; + $theType = ""; + } else { + push(@errors, "Bad API Name at $linecount: $theString"); + } + } elsif (m/^\|(.*)$/) { + my $item = $1; + $item =~ s/^ *//; + $item =~ s/ *$//; + $item =~ s/^['"]//; + $item =~ s/['"]$//; + # add into the data structure for the API + if (!exists $theAsserts->{$theAPI}->[$theAssertCount]) { + $theAsserts->{$theAPI}->[$theAssertCount] = [ $item ] ; + } else { + push(@{$theAsserts->{$theAPI}->[$theAssertCount]}, $item); + } + } + next; + } +}; + +if ($state == 0) { + if (scalar(keys(%$theAsserts))) { + # we were in an item; dump it + print $outH dump_table($theAsserts) ; + } +} + +if (@errors) { + print "There were the following errors:\n"; + foreach my $err (@errors) { + print $err . "\n"; + } +} + +exit 0; + + +sub dump_table() { + my $asserts = shift; + + if (!scalar(keys(%$asserts)) ) { + # no actual assertions + return ""; + } + + my $output = "" ; + + my @keywords = qw(property result event); + + foreach my $API (sort(keys(%$asserts))) { + # looking at each API in turn + my $ref = $asserts->{$API}; + my $rowcount = scalar(@$ref) ; + # $output .= "|-\n|rowspan=$count|$API\n" ; + # now we are in the assertions; special case each API + my @conditions = @$ref; + for (my $i = 0; $i < scalar(@conditions); $i++) { + my (@new, @additional) ; + if ($i) { + $output .= "|-\n"; + } + if ($API eq "ATK") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + + if ($conditions[$i]->[$start] =~ m/^ROLE_/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start]; + } elsif ($conditions[$i]->[$start] =~ m/^xml-roles/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^description/) { + my $id = $conditions[$i]->[$start+1]; + $new[0] = "property"; + $new[1] = "description"; + $new[2] = $assert; + $new[3] = $id; + push(@{$additional[0]}, ("relation", "RELATION_DESCRIBED_BY", $assert, $id)); + push(@{$additional[1]}, ("relation", "RELATION_DESCRIPTION_FOR", $assert, "test")); + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^RELATION/) { + $new[0] = "relation"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/(.*) interface/i) { + $new[0] = "property"; + $new[1] = "interfaces"; + $new[3] = $1; + if ($conditions[$i]->[$start+1] ne '' + && $conditions[$i]->[$start+1] !~ m/true/i ) { + $assert = "doesNotContain"; + } else { + $assert = "contains"; + } + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] eq "object" || $conditions[$i]->[$start] eq "attribute" ) { + $new[0] = "property"; + $new[1] = "objectAttributes"; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^STATE_/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $conditions[$i]->[$start]; + if ($assert eq "true") { + $new[2] = "contains"; + } else { + $new[2] = "doesNotContain"; + } + } elsif ($conditions[$i]->[$start] =~ m/^object attribute (.*)/) { + my $name = $1; + $new[0] = "property"; + $new[0] = "objectAttributes"; + my $val = $conditions[$i]->[1]; + $val =~ s/"//g; + if ($val eq "not exposed" || $val eq "not mapped") { + $new[3] = $name; + $new[2] = "doesNotContain"; + } else { + $new[3] = $name . ":" . $val; + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^name/) { + my $name = $conditions[$i]->[1]; + my $cond = "is" ; + if ($name eq "" ) { + $cond = "empty"; + $name = "true" + } elsif ($name eq "") { + $cond = "empty"; + $name = "false"; + } + $new[0] = "property"; + $new[1] = "name"; + $new[2] = $cond; + $new[3] = $name; + } else { + @new = @{$conditions[$i]}; + if ($conditions[$i]->[2] eq '') { + $new[2] = "contains"; + } + } + $conditions[$i] = \@new; + } elsif ($API eq "UIA") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[$start] =~ m/\./) { + my $val = $conditions[$i]->[$start+1]; + $val =~ s/"//g; + $val =~ s/'//g; + $new[0] = "result"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^(AriaProperties|Toggle|ExpandCollapse)/) { + my $name = $conditions[$i]->[1]; + $new[0] = "property"; + $new[1] = $1; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + if ($val eq "not exposed" || $val eq "not mapped") { + $new[3] = $name; + $new[2] = "doesNotContain"; + } else { + $new[3] = $name . ":" . $val; + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^LabeledBy/i) { + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^Name/) { + my $name = $conditions[$i]->[1]; + my $cond = "is" ; + if ($name eq "" ) { + $cond = "empty"; + $name = "true" + } elsif ($name eq "") { + $cond = "empty"; + $name = "false"; + } + $new[0] = "property"; + $new[1] = "Name"; + $new[2] = $cond; + $new[3] = $name; + } elsif ($conditions[$i]->[$start] =~ m/^TBD/) { + $new[0] = "TBD"; + $new[1] = $new[2] = $new[3] = ""; + } else { + if ($conditions[$i]->[1] ne '' + && $conditions[$i]->[1] !~ m/true/i ) { + $assert = "isNot"; + } else { + $assert = "is"; + } + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } + } elsif ($API eq "MSAA") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + + if ($conditions[$i]->[$start] =~ m/^role/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^xml-roles/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^(accName|accDescription)/) { + my $name = $conditions[$i]->[$start+1]; + my $cond = "is" ; + if ($name eq "" ) { + $cond = "empty"; + $name = "true" + } elsif ($name eq "") { + $cond = "empty"; + $name = "false"; + } + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $cond; + $new[3] = $name; + } elsif ($conditions[$i]->[$start] =~ m/^ROLE_/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start]; + } elsif ($conditions[$i]->[$start] =~ m/^(STATE_.*) *([^ ]*)/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $1; + if ($2 && $2 eq "cleared") { + print "MATCHED $1, $2\n"; + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^TBD/) { + $new[0] = "TBD"; + $new[1] = $new[2] = $new[3] = ""; + } + } elsif ($API eq "IAccessible2") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + if ($conditions[$i]->[$start] =~ m/^IA2_ROLE_/) { + $new[0] = "property"; + $new[1] = "role"; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start]; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^IA2_RELATION_/) { + $new[0] = "relation"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^IA2_STATE_/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $conditions[$i]->[$start]; + if ($assert eq "true") { + $new[2] = "contains"; + } else { + $new[2] = "doesNotContain"; + } + } elsif ($conditions[$i]->[$start] =~ m/^IA2_/) { + $new[0] = "property"; + $new[1] = "states"; + $new[3] = $conditions[$i]->[$start]; + if ($assert eq "true") { + $new[2] = "contains"; + } else { + $new[2] = "doesNotContain"; + } + } elsif ($conditions[$i]->[$start] =~ m/(IAccessibleTable2)/i) { + $new[0] = "property"; + $new[1] = "interfaces"; + $new[3] = $1; + if ($conditions[$i]->[$start+1] ne '' + && $conditions[$i]->[$start+1] !~ m/true/i ) { + $assert = "doesNotContain"; + } else { + $assert = "contains"; + } + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] =~ m/(.*) interface/i) { + $new[0] = "property"; + $new[1] = "interfaces"; + $new[3] = $1; + if ($conditions[$i]->[$start+1] ne '' + && $conditions[$i]->[$start+1] !~ m/true/i ) { + $assert = "doesNotContain"; + } else { + $assert = "contains"; + } + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] =~ m/(.*)\(\)/) { + $new[0] = "result"; + $new[1] = $conditions[$i]->[$start]; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/(.*localizedExtendedRole)/) { + $new[0] = "result"; + $new[1] = $conditions[$i]->[$start]; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] eq "object" || $conditions[$i]->[$start] eq "attribute" ) { + $new[0] = "property"; + $new[1] = "objectAttributes"; + my $val = $conditions[$i]->[2]; + $val =~ s/"//g; + $new[3] = $conditions[$i]->[1] . ":" . $val; + if ($conditions[$i]->[1] eq "not exposed" + || $conditions[$i]->[2] eq "false") { + $new[2] = "doesNotContain"; + } else { + $new[2] = "contains"; + } + } elsif ($conditions[$i]->[$start] =~ m/^object attribute (.*)/) { + my $name = $1; + $new[0] = "property"; + $new[1] = "objectAttributes"; + my $val = $conditions[$i]->[1]; + $val =~ s/"//g; + if ($val eq "not exposed" || $val eq "not mapped") { + $new[3] = $name; + $new[2] = "doesNotContain"; + } else { + $new[3] = $name . ":" . $val; + $new[2] = "contains"; + } + } else { + @new = @{$conditions[$i]}; + if ($conditions[$i]->[2] eq '') { + $new[2] = "contains"; + } + } + $conditions[$i] = \@new; + } elsif ($API eq "AXAPI") { + my $start = 0; + my $assert = "is"; + if ($conditions[$i]->[0] =~ m/^NOT/) { + $start = 1; + $assert = "isNot"; + } + if ($conditions[$i]->[$start] =~ m/^AXElementBusy/) { + if ($conditions[$i]->[$start+1] =~ m/yes/i) { + $new[3] = "true"; + } else { + $new[3] = "false"; + } + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + } elsif ($conditions[$i]->[$start] =~ m/not in accessibility tree/i) { + @new = qw(property accessible exists false); + } elsif ($conditions[$i]->[$start] =~ m/^AX/) { + $new[0] = "property"; + $new[1] = $conditions[$i]->[$start]; + $new[2] = $assert; + $new[3] = $conditions[$i]->[$start+1]; + } elsif ($conditions[$i]->[$start] =~ m/^TBD/) { + $new[0] = "TBD"; + $new[1] = $new[2] = $new[3] = ""; + } else { + if ($conditions[$i]->[1] ne '' + && $conditions[$i]->[1] !~ m/true/i ) { + $assert = "isNot"; + } else { + $assert = "is"; + } + $new[0] = "result"; + $new[1] = $conditions[$i]->[0]; + $new[2] = $assert; + $new[3] = "true"; + } + } + if ($i == 0) { + if (scalar(@additional)) { + $rowcount += scalar(@additional); + } + $output .= "|-\n|rowspan=$rowcount|$API\n"; + } + foreach my $row (@new) { + $output .= "|$row\n"; + } + if (scalar(@additional)) { + foreach my $arow (@additional) { + $output .= "|-\n" ; + foreach my $aItem (@$arow) { + $output .= "|$aItem\n"; + } + } + } + } + } + $output .= "|}\n"; + + return $output; +} + +sub usage() { + print STDERR q(usage: make_tests.pl -f file | -w wiki_title | -s spec [-n -v -d dir ] + + -s specname - the name of a spec known to the system + -w wiki_title - the TITLE of a wiki page with testable statements + -f file - the file from which to read + -o outFile - the file to fill with the converted wiki; defaults to STDOUT + + -n - do nothing + -v - be verbose + ); + exit 1; +} + +# vim: ts=2 sw=2 ai: diff --git a/testing/web-platform/tests/wai-aria/tools/make_tests.pl b/testing/web-platform/tests/wai-aria/tools/make_tests.pl new file mode 100644 index 000000000000..159008cbb3d9 --- /dev/null +++ b/testing/web-platform/tests/wai-aria/tools/make_tests.pl @@ -0,0 +1,588 @@ +#!/usr/bin/perl +# +# make_tests.pl - generate WPT test cases from the testable statements wiki +# +# This script assumes that a wiki has testable statement entries +# in the format described by the specification at +# https://spec-ops.github.io/atta-api/index.html +# +# usage: make_tests.pl -f file | -w wiki_title | -s spec -d dir + +use strict; + +use IO::String ; +use JSON ; +use MediaWiki::API ; +use Getopt::Long; + +my %specs = ( + "aria11" => { + title => "ARIA_1.1_Testable_Statements", + specURL => "https://www.w3.org/TR/wai-aria11/", + dir => "aria11" + }, + "svg" => { + title => "SVG_Accessibility/Testing/Test_Assertions_with_Tables_for_ATTA", + specURL => "https://www.w3.org/TR/svg-aam-1.0/", + dir => "svg", + fragment => '%code%' + } +); + +my @apiNames = qw(UIA MSAA ATK IAccessible2 AXAPI); + +# the suffix to attach to the automatically generated test case names +my $theSuffix = "-manual.html"; + +# dir is determined based upon the short name of the spec and is defined +# by the input or on the command line + +my $file = undef ; +my $spec = undef ; +my $wiki_title = undef ; +my $dir = undef; +my $theSpecFragment = "%code%"; +my $preserveWiki = ""; +my $fake = 0; + +my $result = GetOptions( + "f|file=s" => \$file, + "p=s" => \$preserveWiki, + "w|wiki=s" => \$wiki_title, + "s|spec=s" => \$spec, + "f|fake" => \$fake, + "d|dir=s" => \$dir) || usage(); + +my $wiki_config = { + "api_url" => "https://www.w3.org/wiki/api.php" +}; + +my $io ; +our $theSpecURL = ""; + +if ($spec) { + print "Processing spec $spec\n"; + $wiki_title = $specs{$spec}->{title}; + $theSpecURL = $specs{$spec}->{specURL}; + if (!$dir) { + $dir = "../" . $specs{$spec}->{dir}; + } + $theSpecFragment = $specs{$spec}->{fragment}; +} + +if (!$dir) { + $dir = "../raw"; +} + +if (!-d $dir) { + print STDERR "No such directory: $dir\n"; + exit 1; +} + +if ($file) { + open($io, "<", $file) || die("Failed to open $file: " . $@); +} elsif ($wiki_title) { + my $MW = MediaWiki::API->new( $wiki_config ); + + $MW->{config}->{on_error} = \&on_error; + + sub on_error { + print "Error code: " . $MW->{error}->{code} . "\n"; + print $MW->{error}->{stacktrace}."\n"; + die; + } + my $page = $MW->get_page( { title => $wiki_title } ); + my $theContent = $page->{'*'}; + print "Loaded " . length($theContent) . " from $wiki_title\n"; + if ($preserveWiki) { + if (open(OUTPUT, ">$preserveWiki")) { + print OUTPUT $theContent; + close OUTPUT; + print "Wiki preserved in $preserveWiki\n"; + exit 0; + } else { + print "Failed to create $preserveWiki. Terminating.\n"; + exit 1; + } + } + $io = IO::String->new($theContent); +} else { + usage() ; +} + + + +# Now let's walk through the content and build a test page for every item +# + +# iterate over the content + +# my $io ; +# open($io, "<", "raw") ; + +# data structure: +# +# steps is a list of steps to be performed. +# Each step is an object that has a type property and other properties based upon that type. +# +# Types include: +# +# 'test' - has a property for each ATAPI for which there are tests +# 'attribute' - has a property for the target id, attribute name, and value +# 'event' - has a property for the target id and event name +my $state = 0; # between items +my $theStep = undef; +my $current = ""; +my $theCode = ""; +my $theAttributes = {}; +my @steps ; +my $theAsserts = {} ; +my $theAssertCount = 0; +my $theAPI = ""; +my $typeRows = 0; +my $theType = ""; +my $theName = ""; +my $theRef = ""; +my $lineCounter = 0; +my $skipping = 0; + +our $testNames = {} ; + +while (<$io>) { + if (m//) { + last; + } + $lineCounter++; + # look for state + if (m/^SpecURL: (.*)$/) { + $theSpecURL = $1; + $theSpecURL =~ s/^ *//; + $theSpecURL =~ s/ *$//; + } + if ($state == 5 && m/^; \/\/ (.*)/) { + # we found another test inside a block + # we were in an item; dump it + build_test($current, $theAttributes, $theCode, \@steps, $theSpecFragment) ; + # print "Finished $current and new subblock $1\n"; + $state = 1; + $theAttributes = {} ; + $theAPI = ""; + @steps = (); + $theCode = ""; + $theAsserts = undef; + $theName = ""; + } elsif (m/^=== +(.*[^ ]) +===/) { + if ($state != 0) { + if ($skipping) { + print STDERR "Flag on assertion $current; skipping\n"; + } else { + # we were in an item; dump it + build_test($current, $theAttributes, $theCode, \@steps, $theSpecFragment) ; + # print "Finished $current\n"; + } + } + $state = 1; + $current = $1; + $theAttributes = {} ; + @steps = (); + $theCode = ""; + $theAsserts = undef; + $theAPI = ""; + $theName = ""; + if ($current =~ m/\(/) { + # there is a paren in the name -skip it + $skipping = 1; + } else { + $skipping = 0; + } + } + + if ($state == 1) { + if (m/
/) {
+      # we are now in the code block
+      $state = 2;
+      next;
+    } elsif (m/==== +(.*) +====/) {
+      # we are in some other block
+      $theName = lc($1);
+      $theAttributes->{$theName} = "";
+      next;
+    }
+    if (m/^Reference: +(.*)$/) {
+      $theAttributes->{reference} = $theSpecURL . "#" . $1;
+    } elsif ($theName ne "") {
+      # accumulate whatever was in the block under the data for it
+      chomp();
+      $theAttributes->{$theName} .= $_;
+    } elsif (m/TODO/) {
+      $state = 0;
+    }
+  }
+
+  if ($state == 2) {
+    if (m/<\/pre>/) {
+      # we are done with the code block
+      $state = 3;
+    } else  {
+      if (m/^\s/ && !m/if given/) {
+        # trim any trailing whitespace
+        $theCode =~ s/ +$//;
+        $theCode =~ s/\t/ /g;
+        $theCode .= $_;
+      }
+    }
+  } elsif ($state == 3) {
+    # look for a table
+    if (m/^\{\|/) {
+      # table started
+      $state = 4;
+    }
+  } elsif ($state == 4) {
+    if (m/^\|-/) {
+      if ($theAPI
+        && exists($theAsserts->{$theAPI}->[$theAssertCount])
+        && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) {
+        $theAssertCount++;
+      }
+      # start of a table row
+      if ($theType ne "" && $typeRows) {
+        # print qq($theType typeRows was $typeRows\n);
+        # we are still processing items for a type
+        $typeRows--;
+        # populate the first cell
+        $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ;
+      } else {
+        $theType = "";
+      }
+    } elsif (m/^\|\}/) {
+      # ran out of table
+      $state = 5;
+    # adding processing for additional block types
+    # a colspan followed by a keyword triggers a start
+    # so |colspan=5|element triggers a new collection
+    # |colspan=5|attribute triggers the setting of an attribute
+    } elsif (m/^\|colspan="*([0-9])"*\|([^ ]+) (.*)$/) {
+      my $type = $2;
+      my $params = $3;
+
+      my $obj = {} ;
+      if ($type eq "attribute") {
+        if ($params =~ m/([^:]+):([^ ]+) +(.*)$/) {
+          $obj = {
+            type => $type,
+            element => $1,
+            attribute => $2,
+            value => $3
+          };
+          $theStep = undef;
+        } else {
+          print STDERR "Malformed attribute instruction at line $lineCounter: " . $_ . "\n";
+        }
+        push(@steps, $obj);
+      } elsif ($type eq "event") {
+        print STDERR "Event support from wikis is not yet implemnted at line #lineCounter\n";
+      } elsif ($type eq "element") {
+        $obj = {
+          type => "test",
+          element => $3
+        };
+        push(@steps, $obj);
+        $theStep = scalar(@steps) - 1;
+        $theAsserts = $steps[$theStep];
+      } else {
+        print STDERR "Unknown operation type: $type at line " . $lineCounter . "; skipping.\n";
+      }
+    } elsif (m/^\|rowspan="*([0-9])"*\|(.*)$/) {
+      my $rows = $1;
+      my $theString = $2;
+      $theString =~ s/ +$//;
+      $theString =~ s/^ +//;
+      if ($theString eq "IA2") {
+        $theString = "IAccessible2" ;
+      }
+      if (grep { $_ eq $theString } @apiNames) {
+        # we found an API name - were we already processing assertions?
+        if (!$theAsserts) {
+          # nope - now what?
+          $theAsserts = {
+            type => "test",
+            element => "test"
+          };
+          push(@steps, $theAsserts);
+        }
+        $theAssertCount = 0;
+        # this is a new API section
+        $theAPI = $theString ;
+        $theAsserts->{$theAPI} = [ [] ] ;
+        $theType = "";
+      } else {
+        # this is a multi-row type
+        $theType = $theString;
+        $typeRows = $rows;
+        # print qq(Found multi-row $theString for $theAPI with $typeRows rows\n);
+        $typeRows--;
+        # populate the first cell
+        if ($theAPI
+          && exists($theAsserts->{$theAPI}->[$theAssertCount])
+          && scalar(@{$theAsserts->{$theAPI}->[$theAssertCount]})) {
+          $theAssertCount++;
+        }
+        $theAsserts->{$theAPI}->[$theAssertCount] = [ $theType ] ;
+      }
+    } elsif (m/^\|(.*)$/) {
+      my $item = $1;
+      $item =~ s/^ *//;
+      $item =~ s/ *$//;
+      $item =~ s/^['"]//;
+      $item =~ s/['"]$//;
+      # add into the data structure for the API
+      if (!exists $theAsserts->{$theAPI}->[$theAssertCount]) {
+        $theAsserts->{$theAPI}->[$theAssertCount] = [ $item ] ;
+      } else {
+        push(@{$theAsserts->{$theAPI}->[$theAssertCount]}, $item);
+      }
+    }
+  }
+};
+
+if ($state != 0) {
+  build_test($current, $theAttributes, $theCode, \@steps, $theSpecFragment) ;
+  print "Finished $current\n";
+}
+
+exit 0;
+
+# build_test
+#
+# create a test file
+#
+# attempts to create unique test names
+
+sub build_test() {
+  my $title = shift ;
+  my $attrs = shift ;
+  my $code = shift ;
+  my $steps = shift;
+  my $frag = shift ;
+
+  if ($title eq "") {
+    print STDERR "No name provided!";
+    return;
+  }
+
+  if ($frag ne "") {
+    $frag =~ s/%code%/$code/;
+    $code = $frag;
+  }
+
+  $code =~ s/ +$//m;
+  $code =~ s/\t/ /g;
+
+  my $title_reference = $title;
+
+  if ($code eq "") {
+    print STDERR "No code for $title; skipping.\n";
+    return;
+  }
+  if ( $steps eq {}) {
+    print STDERR "No assertions for $title; skipping.\n";
+    return;
+  }
+
+  my $testDef =
+  { "title" => $title,
+    "steps" => []
+  };
+  my $stepCount = 0;
+  foreach my $asserts (@$steps) {
+    $stepCount++;
+    my $step =
+      {
+        "type" => $asserts->{"type"},
+        "title"=> "step " . $stepCount,
+      };
+
+    if ($asserts->{type} eq "test") {
+      # everything in the block is about testing an element
+      $step->{"element"} = ( $asserts->{"element"} || "test" );
+
+      my $tests = {};
+      if ($fake) {
+        $tests->{"WAIFAKE"} = [ [ "property", "role", "is", "ROLE_TABLE_CELL" ], [ "property", "interfaces", "contains", "TableCell" ] ];
+      }
+      foreach my $name (@apiNames) {
+        if (exists $asserts->{$name}) {
+          $tests->{$name} = $asserts->{$name};
+        }
+      };
+
+
+      # massage the data to make it more sensible
+      if (exists $tests->{"ATK"}) {
+        # # print "processing ATK for $title\n";
+        my @conditions = @{$tests->{"ATK"}};
+        for (my $i = 0; $i < scalar(@conditions); $i++) {
+          my @new = ();
+          my $start = 0;
+          my $assert = "true";
+          if ($conditions[$i]->[0] =~ m/^NOT/) {
+            $start = 1;
+            $assert = "false";
+          }
+
+          # print qq(Looking at $title $conditions[$i]->[$start]\n);
+          if ($conditions[$i]->[$start] =~ m/^ROLE_/) {
+            $new[0] = "role";
+            $new[1] = $conditions[$i]->[$start];
+            $new[2] = $assert;
+          } elsif ($conditions[$i]->[$start] =~ m/(.*) interface/i) {
+            $new[0] = "interface";
+            $new[1] = $1;
+            # print "$1 condition is " . $conditions[$i]->[1] . "\n";
+            if ($conditions[$i]->[1] ne ''
+              && $conditions[$i]->[1] !~ m/true/i ) {
+              $assert = "false";
+            }
+            $new[2] = $assert;
+          } elsif ($conditions[$i]->[$start] eq "object" || $conditions[$i]->[$start] eq "attribute" ) {
+            $new[0] = "attribute";
+            my $val = $conditions[$i]->[2];
+            $val =~ s/"//g;
+            $new[1] = $conditions[$i]->[1] . ":" . $val;
+            if ($conditions[$i]->[3] eq "not exposed"
+              || $conditions[$i]->[3] eq "false") {
+              $new[2] = "false";
+            } else {
+              $new[2] = "true";
+            }
+          } elsif ($conditions[$i]->[$start] =~ m/^STATE_/) {
+            $new[0] = "state";
+            $new[1] = $conditions[$i]->[$start];
+            $new[2] = $assert;
+          } elsif ($conditions[$i]->[$start] =~ m/^object attribute (.*)/) {
+            my $name = $1;
+            $new[0] = "attribute";
+            my $val = $conditions[$i]->[1];
+            $val =~ s/"//g;
+            if ($val eq "not exposed" || $val eq "not mapped") {
+              $new[1] = $name;
+              $new[2] = "false";
+            } else {
+              $new[1] = $name . ":" . $val;
+              $new[2] = "true";
+            }
+          } else {
+            @new = @{$conditions[$i]};
+            if ($conditions[$i]->[2] eq '') {
+              $new[2] = "true";
+            }
+          }
+          $conditions[$i] = \@new;
+        }
+        $tests->{"ATK"} = \@conditions;
+      }
+      $step->{test} = $tests;
+
+    } elsif ($asserts->{type} eq "attribute") {
+      $step->{type} = "attribute";
+      $step->{element} = $asserts->{"element"};
+      $step->{attribute} = $asserts->{"attribute"};
+      $step->{value} = $asserts->{value};
+    } else {
+      print STDERR "Invalid step type: " . $asserts->{type} . "\n";
+      next;
+    }
+    push(@{$testDef->{steps}}, $step);
+  }
+
+
+  # populate the rest of the test definition
+
+  if (scalar(keys(%$attrs))) {
+    while (my $key = each(%$attrs)) {
+      # print "Copying $key \n";
+      $testDef->{$key} = $attrs->{$key};
+    }
+  }
+
+  if (exists $attrs->{reference}) {
+    $title_reference = "" . $title_reference . "" ;
+  }
+
+  my $testDef_json = to_json($testDef, { canonical => 1, pretty => 1, utf8 => 1});
+
+  my $fileName = $title;
+  $fileName =~ s/\s*$//;
+  $fileName =~ s/\///g;
+  $fileName =~ s/\s+/_/g;
+  $fileName =~ s/[",=]/_/g;
+
+  my $count = 2;
+  if ($testNames->{$fileName}) {
+    while (exists $testNames->{$fileName . "_$count"}) {
+      $count++;
+    }
+    $fileName .= "_$count";
+  }
+
+  $fileName = lc($fileName);
+
+  $testNames->{$fileName} = 1;
+
+  $fileName .= $theSuffix;
+
+  my $template = qq(
+
+  
+    $title
+    
+    
+    
+    
+    
+    
+  
+  
+  

This test examines the ARIA properties for $title_reference.

+ $code +
+
+
+ + +); + + my $file ; + + if (open($file, ">", "$dir/$fileName")) { + print $file $template; + print $file "\n"; + close $file; + } else { + print STDERR qq(Failed to create file "$dir/$fileName" $!\n); + } + + return; +} + +sub usage() { + print STDERR q(usage: make_tests.pl -f file | -w wiki_title | -s spec [-n -v -d dir ] + + -s specname - the name of a spec known to the system + -w wiki_title - the TITLE of a wiki page with testable statements + -f file - the file from which to read + + -n - do nothing + -v - be verbose + -d dir - put generated tests in directory dir + ); + exit 1; +} + +# vim: ts=2 sw=2 ai: diff --git a/testing/web-platform/tests/wai-aria/tree_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/tree_orientation_horizontal-manual.html index c9b78ea55cc3..803ac34d3fbd 100644 --- a/testing/web-platform/tests/wai-aria/tree_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/tree_orientation_horizontal-manual.html @@ -97,20 +97,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/tree_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/tree_orientation_unspecified-manual.html index fe7a977ae63a..da013a8e96d2 100644 --- a/testing/web-platform/tests/wai-aria/tree_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/tree_orientation_unspecified-manual.html @@ -97,20 +97,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/tree_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/tree_orientation_vertical-manual.html index 6494ce9b6d33..a89001003ce4 100644 --- a/testing/web-platform/tests/wai-aria/tree_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/tree_orientation_vertical-manual.html @@ -97,20 +97,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treegrid_colcount_8-manual.html b/testing/web-platform/tests/wai-aria/treegrid_colcount_8-manual.html index 036368e932f1..f3ea21edcc1b 100644 --- a/testing/web-platform/tests/wai-aria/treegrid_colcount_8-manual.html +++ b/testing/web-platform/tests/wai-aria/treegrid_colcount_8-manual.html @@ -91,20 +91,6 @@ "is", "8" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treegrid_orientation_horizontal-manual.html b/testing/web-platform/tests/wai-aria/treegrid_orientation_horizontal-manual.html index 997c57d75963..2796352dca8a 100644 --- a/testing/web-platform/tests/wai-aria/treegrid_orientation_horizontal-manual.html +++ b/testing/web-platform/tests/wai-aria/treegrid_orientation_horizontal-manual.html @@ -103,20 +103,6 @@ "is", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treegrid_orientation_unspecified-manual.html b/testing/web-platform/tests/wai-aria/treegrid_orientation_unspecified-manual.html index f5feb763d70e..fcc381f09f8a 100644 --- a/testing/web-platform/tests/wai-aria/treegrid_orientation_unspecified-manual.html +++ b/testing/web-platform/tests/wai-aria/treegrid_orientation_unspecified-manual.html @@ -121,20 +121,6 @@ "isNot", "horizontal" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treegrid_orientation_vertical-manual.html b/testing/web-platform/tests/wai-aria/treegrid_orientation_vertical-manual.html index 570100eb7f21..000876ac7104 100644 --- a/testing/web-platform/tests/wai-aria/treegrid_orientation_vertical-manual.html +++ b/testing/web-platform/tests/wai-aria/treegrid_orientation_vertical-manual.html @@ -103,20 +103,6 @@ "is", "vertical" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treegrid_rowcount_3-manual.html b/testing/web-platform/tests/wai-aria/treegrid_rowcount_3-manual.html index 156905477f82..0727d667d585 100644 --- a/testing/web-platform/tests/wai-aria/treegrid_rowcount_3-manual.html +++ b/testing/web-platform/tests/wai-aria/treegrid_rowcount_3-manual.html @@ -91,20 +91,6 @@ "is", "3" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_false-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_false-manual.html index 042904eee3cd..4f1fe1eb74bf 100644 --- a/testing/web-platform/tests/wai-aria/treeitem_selected_false-manual.html +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_false-manual.html @@ -95,20 +95,6 @@ "doesNotContain", "SelectionItem" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_true-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_true-manual.html index 98632078f5a1..c1aa9c7d2423 100644 --- a/testing/web-platform/tests/wai-aria/treeitem_selected_true-manual.html +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_true-manual.html @@ -95,20 +95,6 @@ "Is", "true" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_undefined-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_undefined-manual.html index 8d57c1a5b254..8958c53f86d8 100644 --- a/testing/web-platform/tests/wai-aria/treeitem_selected_undefined-manual.html +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_undefined-manual.html @@ -95,20 +95,6 @@ "doesNotContain", "SelectionItem" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 1", diff --git a/testing/web-platform/tests/wai-aria/treeitem_selected_value_changes-manual.html b/testing/web-platform/tests/wai-aria/treeitem_selected_value_changes-manual.html index 0e6a80218cab..2364fc6d0a12 100644 --- a/testing/web-platform/tests/wai-aria/treeitem_selected_value_changes-manual.html +++ b/testing/web-platform/tests/wai-aria/treeitem_selected_value_changes-manual.html @@ -80,20 +80,6 @@ "is", "UIA_SelectionItem_ElementSelectedEventId" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 4", @@ -110,21 +96,7 @@ "object:selection-changed" ] ], - "AXAPI" : [], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] - ] + "AXAPI" : [] }, "title" : "step 5", "type" : "test" @@ -145,20 +117,6 @@ "is", "0" ] - ], - "WAIFAKE" : [ - [ - "property", - "role", - "is", - "ROLE_TABLE_CELL" - ], - [ - "property", - "interfaces", - "contains", - "TableCell" - ] ] }, "title" : "step 6", diff --git a/testing/web-platform/tests/webmessaging/broadcastchannel/origin.window.js b/testing/web-platform/tests/webmessaging/broadcastchannel/origin.window.js new file mode 100644 index 000000000000..7e9d602af194 --- /dev/null +++ b/testing/web-platform/tests/webmessaging/broadcastchannel/origin.window.js @@ -0,0 +1,10 @@ +async_test(t => { + const crossOriginURL = new URL("resources/origin.html", self.location.href).href.replace("://", "://天気の良い日."), + frame = document.createElement("iframe"); + frame.src = crossOriginURL; + document.body.appendChild(frame); + t.add_cleanup(() => frame.remove()); + self.onmessage = t.step_func_done(e => { + assert_equals(e.data, self.origin.replace("://", "://xn--n8j6ds53lwwkrqhv28a.")); + }); +}, "Serialization of BroadcastChannel origin"); diff --git a/testing/web-platform/tests/webmessaging/broadcastchannel/resources/origin.html b/testing/web-platform/tests/webmessaging/broadcastchannel/resources/origin.html new file mode 100644 index 000000000000..f57d582bbb87 --- /dev/null +++ b/testing/web-platform/tests/webmessaging/broadcastchannel/resources/origin.html @@ -0,0 +1,8 @@ + diff --git a/testing/web-platform/tests/webrtc/OWNERS b/testing/web-platform/tests/webrtc/OWNERS index 3e4538bb585c..4991d1f8ccae 100644 --- a/testing/web-platform/tests/webrtc/OWNERS +++ b/testing/web-platform/tests/webrtc/OWNERS @@ -5,3 +5,4 @@ @guidou @henbos @phoglund +@rwaldron diff --git a/testing/web-platform/tests/webrtc/RTCDataChannel-id.html b/testing/web-platform/tests/webrtc/RTCDataChannel-id.html new file mode 100644 index 000000000000..7128da8bc04a --- /dev/null +++ b/testing/web-platform/tests/webrtc/RTCDataChannel-id.html @@ -0,0 +1,60 @@ + + +RTCDataChannel id attribute + + + diff --git a/testing/web-platform/tests/webrtc/RTCPeerConnection-createDataChannel.html b/testing/web-platform/tests/webrtc/RTCPeerConnection-createDataChannel.html index cb05e2ca0680..9a50b18c41e6 100644 --- a/testing/web-platform/tests/webrtc/RTCPeerConnection-createDataChannel.html +++ b/testing/web-platform/tests/webrtc/RTCPeerConnection-createDataChannel.html @@ -29,8 +29,9 @@ test(() => { assert_equals(channel.maxRetransmits, null, 'maxRetransmits'); assert_equals(channel.protocol, '', 'protocol'); assert_equals(channel.negotiated, false, 'negotiated'); - // Initial id value is not defined. - assert_equals(typeof channel.id, 'number', 'id type'); + // Since no offer/answer exchange has occurred yet, the DTLS role is unknown + // and so the ID should be null. + assert_equals(channel.id, null, 'id'); assert_equals(channel.priority, 'low', 'priority'); }, 'createDataChannel defaults'); diff --git a/testing/web-platform/tests/websockets/opening-handshake/003.html b/testing/web-platform/tests/websockets/opening-handshake/003.html index 8e806ea34015..df0c55ea6e86 100644 --- a/testing/web-platform/tests/websockets/opening-handshake/003.html +++ b/testing/web-platform/tests/websockets/opening-handshake/003.html @@ -1,4 +1,5 @@ + WebSockets: origin @@ -8,8 +9,10 @@
diff --git a/testing/web-platform/tests/webusb/resources/featurepolicytest.js b/testing/web-platform/tests/webusb/resources/featurepolicytest.js new file mode 100644 index 000000000000..243242eefbbd --- /dev/null +++ b/testing/web-platform/tests/webusb/resources/featurepolicytest.js @@ -0,0 +1,14 @@ +function assert_usb_available_in_iframe(test, origin, expected) { + let frame = document.createElement('iframe'); + frame.src = origin + '/webusb/resources/check-availability.html'; + + window.addEventListener('message', test.step_func(evt => { + if (evt.source == frame.contentWindow) { + assert_equals(evt.data, expected); + document.body.removeChild(frame); + test.done(); + } + })); + + document.body.appendChild(frame); +} diff --git a/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy-attribute.https.sub.html b/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy-attribute.https.sub.html new file mode 100644 index 000000000000..302e7f4a5650 --- /dev/null +++ b/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy-attribute.https.sub.html @@ -0,0 +1,24 @@ + + + + + + diff --git a/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html b/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html new file mode 100644 index 000000000000..288a3acc71dc --- /dev/null +++ b/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html @@ -0,0 +1,21 @@ + + + + + + + diff --git a/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html.headers b/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html.headers new file mode 100644 index 000000000000..f10a282c5560 --- /dev/null +++ b/testing/web-platform/tests/webusb/usb-allowed-by-feature-policy.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: {"usb": ["*"]} diff --git a/testing/web-platform/tests/webusb/usb-default-feature-policy.https.sub.html b/testing/web-platform/tests/webusb/usb-default-feature-policy.https.sub.html new file mode 100644 index 000000000000..157981591c4b --- /dev/null +++ b/testing/web-platform/tests/webusb/usb-default-feature-policy.https.sub.html @@ -0,0 +1,21 @@ + + + + + + + diff --git a/testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html b/testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html new file mode 100644 index 000000000000..b1e555cb9966 --- /dev/null +++ b/testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html @@ -0,0 +1,25 @@ + + + + + + + diff --git a/testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html.headers b/testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html.headers new file mode 100644 index 000000000000..24332c7398e8 --- /dev/null +++ b/testing/web-platform/tests/webusb/usb-disabled-by-feature-policy.https.sub.html.headers @@ -0,0 +1 @@ +Feature-Policy: {"usb": []} diff --git a/testing/web-platform/tests/workers/Worker_ErrorEvent_error.htm b/testing/web-platform/tests/workers/Worker_ErrorEvent_error.htm index 1c1257d1bd22..f3d0b08af0f7 100644 --- a/testing/web-platform/tests/workers/Worker_ErrorEvent_error.htm +++ b/testing/web-platform/tests/workers/Worker_ErrorEvent_error.htm @@ -18,8 +18,7 @@ test(function() { worker.onmessage = t2.step_func(function(e) { ++messages; var data = e.data; - assert_true(data.source == "onerror" || - data.source == "event listener"); + assert_in_array(data.source, ["onerror", "event listener"]); assert_equals(data.value, "hello"); if (messages == 2) { t2.done(); diff --git a/testing/web-platform/tests/workers/name-property.html b/testing/web-platform/tests/workers/name-property.html new file mode 100644 index 000000000000..b16be688f8fe --- /dev/null +++ b/testing/web-platform/tests/workers/name-property.html @@ -0,0 +1,19 @@ + + +Test the name property of shared and dedicated workers via the name constructor option + + + + + + + + diff --git a/testing/web-platform/tests/workers/semantics/multiple-workers/001.html b/testing/web-platform/tests/workers/semantics/multiple-workers/001.html index 82ddcc3c177f..65e7917ad7aa 100644 --- a/testing/web-platform/tests/workers/semantics/multiple-workers/001.html +++ b/testing/web-platform/tests/workers/semantics/multiple-workers/001.html @@ -38,4 +38,3 @@ async_test(function() { - diff --git a/testing/web-platform/tests/workers/semantics/xhr/004.html b/testing/web-platform/tests/workers/semantics/xhr/004.html index ec5893a4b791..d0d82f2e82e2 100644 --- a/testing/web-platform/tests/workers/semantics/xhr/004.html +++ b/testing/web-platform/tests/workers/semantics/xhr/004.html @@ -32,5 +32,3 @@ function runtest() { - - diff --git a/testing/web-platform/tests/workers/shared-worker-name-via-options.html b/testing/web-platform/tests/workers/shared-worker-name-via-options.html new file mode 100644 index 000000000000..cf7fd4664928 --- /dev/null +++ b/testing/web-platform/tests/workers/shared-worker-name-via-options.html @@ -0,0 +1,37 @@ + + +Test the name property of shared workers mixing constructor options and constructor strings + + + + + + + + diff --git a/testing/web-platform/tests/workers/support/name.js b/testing/web-platform/tests/workers/support/name.js new file mode 100644 index 000000000000..0f3537cce26e --- /dev/null +++ b/testing/web-platform/tests/workers/support/name.js @@ -0,0 +1,9 @@ +"use strict"; +importScripts("/resources/testharness.js"); + +test(() => { + assert_true(self.hasOwnProperty("name"), "property exists on the global") + assert_equals(self.name, "my name") +}, `name property value for ${self.constructor.name}`); + +done(); diff --git a/testing/web-platform/tests/workers/support/shared-name.js b/testing/web-platform/tests/workers/support/shared-name.js new file mode 100644 index 000000000000..f00448271922 --- /dev/null +++ b/testing/web-platform/tests/workers/support/shared-name.js @@ -0,0 +1,8 @@ +"use strict"; + +self.counter = 0; + +self.onconnect = e => { + ++self.counter; + e.source.postMessage({ counter: self.counter, name: self.name }); +}; diff --git a/testing/web-platform/tests/wptrun b/testing/web-platform/tests/wptrun new file mode 100755 index 000000000000..309f1a899de4 --- /dev/null +++ b/testing/web-platform/tests/wptrun @@ -0,0 +1,4 @@ +#!/usr/bin/env python + +from tools import wptrun +wptrun.main()