https://bugs.webkit.org/show_bug.cgi?id=178241
Patch by Youenn Fablet <youenn@apple.com> on 2017-10-14
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
* resources/TestRepositories:
* resources/resource-files.json:
* web-platform-tests/IndexedDB/idb-binary-key-detached.htm:
* web-platform-tests/IndexedDB/keypath-exceptions.htm:
* web-platform-tests/WebCryptoAPI/digest/digest.js:
(run_test.):
* web-platform-tests/XMLHttpRequest/abort-after-stop-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/abort-after-stop.htm: Removed.
* web-platform-tests/XMLHttpRequest/event-error-order.sub-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/event-error-order.sub.html: Removed.
* web-platform-tests/XMLHttpRequest/event-timeout-order-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/event-timeout-order.htm: Removed.
* web-platform-tests/XMLHttpRequest/open-url-worker-origin-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm: Removed.
* web-platform-tests/XMLHttpRequest/responsetype-expected.txt:
* web-platform-tests/XMLHttpRequest/send-after-setting-document-domain-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-after-setting-document-domain.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-entity-body-basic-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-entity-body-basic.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub.htm: Removed.
* web-platform-tests/XMLHttpRequest/timeout-sync-expected.txt:
* web-platform-tests/XMLHttpRequest/w3c-import.log:
* web-platform-tests/background-fetch/interfaces-expected.txt:
* web-platform-tests/background-fetch/interfaces.idl:
* web-platform-tests/background-fetch/interfaces.worker-expected.txt:
* web-platform-tests/background-fetch/interfaces.worker.js:
* web-platform-tests/beacon/headers/header-content-type-expected.txt:
* web-platform-tests/common/vendor-prefix.js: Removed.
* web-platform-tests/common/w3c-import.log:
* web-platform-tests/css/css-grid-1/abspos/w3c-import.log:
* web-platform-tests/css/css-grid-1/support/w3c-import.log:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-box-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-007.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-008.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-009.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-010.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-011.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-computed-shape-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-computed-shape-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-007.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-008.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-009.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-010.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-011.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-007.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-008.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-009.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-box-pair-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-inherit-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-initial-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-none-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-notation-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/support/parsing-utils.js:
(convertToPx):
(each):
(setupFonts):
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-012.html:
* web-platform-tests/css/css-shapes-1/w3c-import.log:
* web-platform-tests/css/css-ui-3/cursor-image-005-nfs.html:
* web-platform-tests/css/selectors4/w3c-import.log:
* web-platform-tests/cssom/OWNERS:
* web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt:
* web-platform-tests/cssom/getComputedStyle-pseudo.html:
* web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt:
* web-platform-tests/cssom/style-sheet-interfaces-001.html:
* web-platform-tests/cssom/w3c-import.log:
* web-platform-tests/custom-elements/Document-createElement-expected.txt:
* web-platform-tests/custom-elements/Document-createElement.html:
* web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt:
* web-platform-tests/custom-elements/w3c-import.log:
* web-platform-tests/dom/events/Event-timestamp-safe-resolution.html:
* web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
* web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument-expected.txt:
* web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
* web-platform-tests/dom/nodes/Document-constructor.html:
* web-platform-tests/dom/nodes/Element-matches-expected.txt:
* web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
* web-platform-tests/dom/nodes/selectors.js:
* web-platform-tests/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/eventsource-constructor-non-same-origin-expected.txt:
* web-platform-tests/eventsource/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/resources/last-event-id.py:
(main):
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt:
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/fetch/api/basic/integrity-expected.txt:
* web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:
* web-platform-tests/fetch/api/basic/integrity.js:
(integrity):
* web-platform-tests/fetch/api/headers/headers-combine-expected.txt:
* web-platform-tests/fetch/api/headers/headers-combine.html:
* web-platform-tests/fetch/api/request/request-error-expected.txt:
* web-platform-tests/fetch/api/request/request-error.js:
* web-platform-tests/fetch/api/request/request-headers-expected.txt:
* web-platform-tests/fetch/api/request/request-headers.html:
* web-platform-tests/fetch/api/request/request-idl-expected.txt:
* web-platform-tests/fetch/api/request/request-idl.html:
* web-platform-tests/fetch/api/request/request-structure-expected.txt:
* web-platform-tests/fetch/api/request/request-structure.html:
* web-platform-tests/fetch/api/request/w3c-import.log:
* web-platform-tests/fetch/api/response/response-clone-expected.txt:
* web-platform-tests/fetch/api/response/response-init-001-expected.txt:
* web-platform-tests/fetch/api/response/response-init-001.html:
* web-platform-tests/fetch/api/response/w3c-import.log:
* web-platform-tests/fonts/Ahem.ttf:
* web-platform-tests/hr-time/idlharness-expected.txt:
* web-platform-tests/hr-time/idlharness.html:
* web-platform-tests/html/README.md:
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/w3c-import.log:
* web-platform-tests/html/browsers/origin/origin-of-data-document-expected.txt:
* web-platform-tests/html/dom/interfaces.html:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_canplaythrough.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_playing.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadedmetadata_loadeddata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadstart_progress.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_pause.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_play.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_playing.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_progress.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/historical-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/historical.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/paused_false_during_play.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplaythrough.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadeddata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadedmetadata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_playing.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/video_008.htm:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/blank.htm:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-fieldset-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-progress-element/progress-expected.txt:
* web-platform-tests/html/semantics/forms/the-progress-element/w3c-import.log:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
* web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/w3c-import.log:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing-expected.txt:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error-expected.txt:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw-expected.txt:
* web-platform-tests/lint.whitelist:
* web-platform-tests/mediacapture-fromelement/capture.html:
* web-platform-tests/mediacapture-fromelement/creation.html:
* web-platform-tests/mediacapture-fromelement/ended.html:
* web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.sub.html:
* web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html:
* web-platform-tests/resource-timing/idlharness-expected.txt:
* web-platform-tests/resource-timing/idlharness.html:
* web-platform-tests/resources/idlharness.js:
(IdlInterface.prototype.test_to_json_operation):
* web-platform-tests/resources/test/tests/api-tests-1.html:
* web-platform-tests/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html:
* web-platform-tests/resources/testharness.js:
* web-platform-tests/service-workers/service-worker/fetch-event-redirect.https.html:
* web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html:
* web-platform-tests/service-workers/service-worker/navigation-preload/resources/redirect-scope.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/bytecheck-worker-imported-script.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/bytecheck-worker.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/fetch-event-redirect-iframe.html: Removed.
* web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html:
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope1.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope2.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/update-max-aged-worker.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/w3c-import.log:
* web-platform-tests/service-workers/service-worker/w3c-import.log:
* web-platform-tests/shadow-dom/Extensions-to-Event-Interface-expected.txt:
* web-platform-tests/shadow-dom/Extensions-to-Event-Interface.html:
* web-platform-tests/shadow-dom/event-inside-shadow-tree-expected.txt:
* web-platform-tests/shadow-dom/event-with-related-target.html:
* web-platform-tests/shadow-dom/leaktests/get-elements-expected.txt:
* web-platform-tests/shadow-dom/resources/event-path-test-helpers.js:
(dispatchEventWithEventLog):
* web-platform-tests/shadow-dom/slotchange-event-expected.txt:
* web-platform-tests/shadow-dom/w3c-import.log:
* web-platform-tests/streams/piping/general-expected.txt:
* web-platform-tests/streams/readable-byte-streams/general.js:
(promise_test):
* web-platform-tests/streams/readable-byte-streams/w3c-import.log:
* web-platform-tests/streams/readable-streams/pipe-through-expected.txt: Removed.
* web-platform-tests/tools/manifest/catalog/xhtml.dtd:
* web-platform-tests/tools/manifest/sourcefile.py:
(SourceFile.references):
(SourceFile.spec_links):
* web-platform-tests/tools/manifest/tests/test_sourcefile.py:
(test_relpath_normalized):
(test_reftest_url_whitespace):
(test_spec_links_whitespace):
* web-platform-tests/tools/wptserve/tests/functional/test_handlers.py:
(TestDirectoryHandler.test_subdirectory_no_trailing_slash):
* web-platform-tests/tools/wptserve/wptserve/handlers.py:
(DirectoryHandler.__call__):
* web-platform-tests/update-built-tests.sh:
* web-platform-tests/url/a-element-expected.txt:
* web-platform-tests/url/a-element-xhtml-expected.txt:
* web-platform-tests/url/url-constructor-expected.txt:
* web-platform-tests/url/urltestdata.json:
* web-platform-tests/webrtc/RTCCertificate.html:
* web-platform-tests/webrtc/RTCConfiguration-iceServers-expected.txt:
* web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.html: Removed.
* web-platform-tests/webrtc/RTCDTMFSender-ontonechange-long.html: Removed.
* web-platform-tests/webrtc/RTCDTMFSender-ontonechange.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-addTrack.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-getStats.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-ontrack.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-removeTrack.html: Removed.
* web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.html: Removed.
* web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.html: Removed.
* web-platform-tests/webrtc/historical-expected.txt:
* web-platform-tests/webrtc/historical.html:
* web-platform-tests/webrtc/simplecall-expected.txt:
* web-platform-tests/webrtc/simplecall.html:
* web-platform-tests/webrtc/w3c-import.log:
LayoutTests:
Rebasing expectations.
* TestExpectations: Skipping unsupported tests.
* http/wpt/fetch/request-clone-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt: Added.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
* platform/mac-wk1/imported/w3c/web-platform-tests/background-fetch/interfaces-expected.txt:
* tests-options.json:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@223327
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2017-10-14 Youenn Fablet <youenn@apple.com>
+
+ Resync tests up to c1716b039411090428e7073158b1aea081dafe71
+ https://bugs.webkit.org/show_bug.cgi?id=178241
+
+ Reviewed by Ryosuke Niwa.
+
+ Rebasing expectations.
+
+ * TestExpectations: Skipping unsupported tests.
+ * http/wpt/fetch/request-clone-expected.txt:
+ * platform/ios-wk2/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt: Added.
+ * platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin-expected.txt:
+ * platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
+ * platform/mac-wk1/imported/w3c/web-platform-tests/background-fetch/interfaces-expected.txt:
+ * tests-options.json:
+
2017-10-14 Youenn Fablet <youenn@apple.com>
Implement Cache API support for WPE/GTK
imported/w3c/web-platform-tests/fetch/api/abort/general.any.html [ Skip ]
imported/w3c/web-platform-tests/fetch/api/abort/general.any.worker.html [ Skip ]
+# Not supported
+imported/w3c/web-platform-tests/background-fetch [ Skip ]
+
#//////////////////////////////////////////////////////////////////////////////////////////
# End platform-specific tests.
#//////////////////////////////////////////////////////////////////////////////////////////
webkit.org/b/161312 imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html [ Failure Pass ]
+webkit.org/b/178241 imported/w3c/web-platform-tests/fetch/api/basic/integrity.html [ Pass Failure ]
+webkit.org/b/178241 imported/w3c/web-platform-tests/fetch/api/basic/integrity-worker.html [ Pass Failure ]
+
imported/w3c/web-platform-tests/XMLHttpRequest/send-conditional-cors.htm [ Failure ]
imported/w3c/web-platform-tests/fetch/http-cache/partial.html [ Failure ]
webkit.org/b/159724 imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm [ Failure Pass ]
PASS Check request clone use structureClone for teed ReadableStreams (Int8Arraychunk)
PASS Check request clone use structureClone for teed ReadableStreams (Int16Arraychunk)
PASS Check request clone use structureClone for teed ReadableStreams (Int32Arraychunk)
-PASS Check request clone use structureClone for teed ReadableStreams (ArrayBufferchunk)
+FAIL Check request clone use structureClone for teed ReadableStreams (ArrayBufferchunk) assert_array_equals: Cloned buffer chunks have the same content value is object "[object ArrayBuffer]", expected array
PASS Check request clone use structureClone for teed ReadableStreams (Uint8Arraychunk)
PASS Check request clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk)
PASS Check request clone use structureClone for teed ReadableStreams (Uint16Arraychunk)
PASS Check request clone use structureClone for teed ReadableStreams (Uint32Arraychunk)
PASS Check request clone use structureClone for teed ReadableStreams (Float32Arraychunk)
PASS Check request clone use structureClone for teed ReadableStreams (Float64Arraychunk)
-PASS Check request clone use structureClone for teed ReadableStreams (DataViewchunk)
+FAIL Check request clone use structureClone for teed ReadableStreams (DataViewchunk) assert_array_equals: Cloned buffer chunks have the same content value is object "[object DataView]", expected array
+2017-10-14 Youenn Fablet <youenn@apple.com>
+
+ Resync tests up to c1716b039411090428e7073158b1aea081dafe71
+ https://bugs.webkit.org/show_bug.cgi?id=178241
+
+ Reviewed by Ryosuke Niwa.
+
+ * resources/TestRepositories:
+ * resources/resource-files.json:
+ * web-platform-tests/IndexedDB/idb-binary-key-detached.htm:
+ * web-platform-tests/IndexedDB/keypath-exceptions.htm:
+ * web-platform-tests/WebCryptoAPI/digest/digest.js:
+ (run_test.):
+ * web-platform-tests/XMLHttpRequest/abort-after-stop-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/abort-after-stop.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/event-error-order.sub-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/event-error-order.sub.html: Removed.
+ * web-platform-tests/XMLHttpRequest/event-timeout-order-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/event-timeout-order.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/open-url-worker-origin-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/responsetype-expected.txt:
+ * web-platform-tests/XMLHttpRequest/send-after-setting-document-domain-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/send-after-setting-document-domain.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic-cors.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-basic.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-entity-body-basic-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/send-entity-body-basic.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Removed.
+ * web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub.htm: Removed.
+ * web-platform-tests/XMLHttpRequest/timeout-sync-expected.txt:
+ * web-platform-tests/XMLHttpRequest/w3c-import.log:
+ * web-platform-tests/background-fetch/interfaces-expected.txt:
+ * web-platform-tests/background-fetch/interfaces.idl:
+ * web-platform-tests/background-fetch/interfaces.worker-expected.txt:
+ * web-platform-tests/background-fetch/interfaces.worker.js:
+ * web-platform-tests/beacon/headers/header-content-type-expected.txt:
+ * web-platform-tests/common/vendor-prefix.js: Removed.
+ * web-platform-tests/common/w3c-import.log:
+ * web-platform-tests/css/css-grid-1/abspos/w3c-import.log:
+ * web-platform-tests/css/css-grid-1/support/w3c-import.log:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-002.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-003.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-002.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-003.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-004.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-005.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-box-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-002.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-003.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-004.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-005.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-006.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-007.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-008.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-009.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-010.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-011.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-computed-shape-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-computed-shape-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-002.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-003.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-004.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-005.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-006.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-007.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-008.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-009.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-010.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-011.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-002.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-003.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-004.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-005.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-006.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-007.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-008.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-009.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-002.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-003.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-004.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-005.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-006.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-001.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-box-pair-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-inherit-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-initial-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-none-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-notation-000.html:
+ * web-platform-tests/css/css-shapes-1/shape-outside/values/support/parsing-utils.js:
+ (convertToPx):
+ (each):
+ (setupFonts):
+ * web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-012.html:
+ * web-platform-tests/css/css-shapes-1/w3c-import.log:
+ * web-platform-tests/css/css-ui-3/cursor-image-005-nfs.html:
+ * web-platform-tests/css/selectors4/w3c-import.log:
+ * web-platform-tests/cssom/OWNERS:
+ * web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt:
+ * web-platform-tests/cssom/getComputedStyle-pseudo.html:
+ * web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt:
+ * web-platform-tests/cssom/style-sheet-interfaces-001.html:
+ * web-platform-tests/cssom/w3c-import.log:
+ * web-platform-tests/custom-elements/Document-createElement-expected.txt:
+ * web-platform-tests/custom-elements/Document-createElement.html:
+ * web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt:
+ * web-platform-tests/custom-elements/w3c-import.log:
+ * web-platform-tests/dom/events/Event-timestamp-safe-resolution.html:
+ * web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
+ * web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument-expected.txt:
+ * web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
+ * web-platform-tests/dom/nodes/Document-constructor.html:
+ * web-platform-tests/dom/nodes/Element-matches-expected.txt:
+ * web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
+ * web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
+ * web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
+ * web-platform-tests/dom/nodes/selectors.js:
+ * web-platform-tests/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm:
+ * web-platform-tests/eventsource/eventsource-constructor-non-same-origin-expected.txt:
+ * web-platform-tests/eventsource/eventsource-constructor-non-same-origin.htm:
+ * web-platform-tests/eventsource/resources/last-event-id.py:
+ (main):
+ * web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt:
+ * web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm:
+ * web-platform-tests/fetch/api/basic/integrity-expected.txt:
+ * web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:
+ * web-platform-tests/fetch/api/basic/integrity.js:
+ (integrity):
+ * web-platform-tests/fetch/api/headers/headers-combine-expected.txt:
+ * web-platform-tests/fetch/api/headers/headers-combine.html:
+ * web-platform-tests/fetch/api/request/request-error-expected.txt:
+ * web-platform-tests/fetch/api/request/request-error.js:
+ * web-platform-tests/fetch/api/request/request-headers-expected.txt:
+ * web-platform-tests/fetch/api/request/request-headers.html:
+ * web-platform-tests/fetch/api/request/request-idl-expected.txt:
+ * web-platform-tests/fetch/api/request/request-idl.html:
+ * web-platform-tests/fetch/api/request/request-structure-expected.txt:
+ * web-platform-tests/fetch/api/request/request-structure.html:
+ * web-platform-tests/fetch/api/request/w3c-import.log:
+ * web-platform-tests/fetch/api/response/response-clone-expected.txt:
+ * web-platform-tests/fetch/api/response/response-init-001-expected.txt:
+ * web-platform-tests/fetch/api/response/response-init-001.html:
+ * web-platform-tests/fetch/api/response/w3c-import.log:
+ * web-platform-tests/fonts/Ahem.ttf:
+ * web-platform-tests/hr-time/idlharness-expected.txt:
+ * web-platform-tests/hr-time/idlharness.html:
+ * web-platform-tests/html/README.md:
+ * web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log:
+ * web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/w3c-import.log:
+ * web-platform-tests/html/browsers/origin/origin-of-data-document-expected.txt:
+ * web-platform-tests/html/dom/interfaces.html:
+ * web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay_noautoplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough_noautoplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata_noautoplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata_noautoplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_canplaythrough.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_playing.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadedmetadata_loadeddata.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadstart_progress.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_pause.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_play.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_playing.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_progress.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/historical-expected.txt:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/historical.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/paused_false_during_play.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplay.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplaythrough.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadeddata.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadedmetadata.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_playing.html:
+ * web-platform-tests/html/semantics/embedded-content/media-elements/video_008.htm:
+ * web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross-expected.txt:
+ * web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html:
+ * web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect-expected.txt:
+ * web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html:
+ * web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/blank.htm:
+ * web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
+ * web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
+ * web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
+ * web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
+ * web-platform-tests/html/semantics/forms/the-fieldset-element/w3c-import.log:
+ * web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
+ * web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
+ * web-platform-tests/html/semantics/forms/the-progress-element/progress-expected.txt:
+ * web-platform-tests/html/semantics/forms/the-progress-element/w3c-import.log:
+ * web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
+ * web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/w3c-import.log:
+ * web-platform-tests/html/syntax/serializing-html-fragments/serializing-expected.txt:
+ * web-platform-tests/html/syntax/serializing-html-fragments/serializing.html:
+ * web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error-expected.txt:
+ * web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt:
+ * web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw-expected.txt:
+ * web-platform-tests/lint.whitelist:
+ * web-platform-tests/mediacapture-fromelement/capture.html:
+ * web-platform-tests/mediacapture-fromelement/creation.html:
+ * web-platform-tests/mediacapture-fromelement/ended.html:
+ * web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.sub.html:
+ * web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html:
+ * web-platform-tests/resource-timing/idlharness-expected.txt:
+ * web-platform-tests/resource-timing/idlharness.html:
+ * web-platform-tests/resources/idlharness.js:
+ (IdlInterface.prototype.test_to_json_operation):
+ * web-platform-tests/resources/test/tests/api-tests-1.html:
+ * web-platform-tests/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html:
+ * web-platform-tests/resources/testharness.js:
+ * web-platform-tests/service-workers/service-worker/fetch-event-redirect.https.html:
+ * web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html:
+ * web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html:
+ * web-platform-tests/service-workers/service-worker/navigation-preload/resources/redirect-scope.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/bytecheck-worker-imported-script.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/bytecheck-worker.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/fetch-event-redirect-iframe.html: Removed.
+ * web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html:
+ * web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope1.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope2.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/update-max-aged-worker.py:
+ (main):
+ * web-platform-tests/service-workers/service-worker/resources/w3c-import.log:
+ * web-platform-tests/service-workers/service-worker/w3c-import.log:
+ * web-platform-tests/shadow-dom/Extensions-to-Event-Interface-expected.txt:
+ * web-platform-tests/shadow-dom/Extensions-to-Event-Interface.html:
+ * web-platform-tests/shadow-dom/event-inside-shadow-tree-expected.txt:
+ * web-platform-tests/shadow-dom/event-with-related-target.html:
+ * web-platform-tests/shadow-dom/leaktests/get-elements-expected.txt:
+ * web-platform-tests/shadow-dom/resources/event-path-test-helpers.js:
+ (dispatchEventWithEventLog):
+ * web-platform-tests/shadow-dom/slotchange-event-expected.txt:
+ * web-platform-tests/shadow-dom/w3c-import.log:
+ * web-platform-tests/streams/piping/general-expected.txt:
+ * web-platform-tests/streams/readable-byte-streams/general.js:
+ (promise_test):
+ * web-platform-tests/streams/readable-byte-streams/w3c-import.log:
+ * web-platform-tests/streams/readable-streams/pipe-through-expected.txt: Removed.
+ * web-platform-tests/tools/manifest/catalog/xhtml.dtd:
+ * web-platform-tests/tools/manifest/sourcefile.py:
+ (SourceFile.references):
+ (SourceFile.spec_links):
+ * web-platform-tests/tools/manifest/tests/test_sourcefile.py:
+ (test_relpath_normalized):
+ (test_reftest_url_whitespace):
+ (test_spec_links_whitespace):
+ * web-platform-tests/tools/wptserve/tests/functional/test_handlers.py:
+ (TestDirectoryHandler.test_subdirectory_no_trailing_slash):
+ * web-platform-tests/tools/wptserve/wptserve/handlers.py:
+ (DirectoryHandler.__call__):
+ * web-platform-tests/update-built-tests.sh:
+ * web-platform-tests/url/a-element-expected.txt:
+ * web-platform-tests/url/a-element-xhtml-expected.txt:
+ * web-platform-tests/url/url-constructor-expected.txt:
+ * web-platform-tests/url/urltestdata.json:
+ * web-platform-tests/webrtc/RTCCertificate.html:
+ * web-platform-tests/webrtc/RTCConfiguration-iceServers-expected.txt:
+ * web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.html: Removed.
+ * web-platform-tests/webrtc/RTCDTMFSender-ontonechange-long.html: Removed.
+ * web-platform-tests/webrtc/RTCDTMFSender-ontonechange.html: Removed.
+ * web-platform-tests/webrtc/RTCPeerConnection-addTrack.html: Removed.
+ * web-platform-tests/webrtc/RTCPeerConnection-getStats.html: Removed.
+ * web-platform-tests/webrtc/RTCPeerConnection-ontrack.html: Removed.
+ * web-platform-tests/webrtc/RTCPeerConnection-removeTrack.html: Removed.
+ * web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.html: Removed.
+ * web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.html: Removed.
+ * web-platform-tests/webrtc/historical-expected.txt:
+ * web-platform-tests/webrtc/historical.html:
+ * web-platform-tests/webrtc/simplecall-expected.txt:
+ * web-platform-tests/webrtc/simplecall.html:
+ * web-platform-tests/webrtc/w3c-import.log:
+
2017-10-13 Chris Dumez <cdumez@apple.com>
DOMTokenList shouldn't add empty attributes
{
"name": "web-platform-tests",
"url": "https://github.com/w3c/web-platform-tests.git",
- "revision": "f65af411d63ec13ee8fe208b4effd730a4a8b7fe",
+ "revision": "c1716b039411090428e7073158b1aea081dafe71",
"paths_to_skip": [
"conformance-checkers",
"docs",
"web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-3.html",
"web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name-4.html",
"web-platform-tests/html/browsers/browsing-the-web/history-traversal/browsing_context_name_cross_origin-0.html",
+ "web-platform-tests/html/browsers/browsing-the-web/history-traversal/support/window-name-navigation.sub.html",
"web-platform-tests/html/browsers/browsing-the-web/history-traversal/unset_context_name.html",
"web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/001-1.html",
"web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/001-2.html",
"web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-tried-to-be-navigated-by-its-child.html",
"web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-its-child.html",
"web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe-trying-to-navigate-itself.html",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_001.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_002.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_003.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_004.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_006.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_007.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_008.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_010.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_012.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_020.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_020a.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_021.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_021a.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_022.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_023.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_024.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_026.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_027.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_028.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_029.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_031.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/iframe_sandbox_032.htm",
"web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/navigation-changed-iframe.html",
"web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/sandbox_allow_script.html",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/standalone-fail.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/standalone-iframe-content.htm",
+ "web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/standalone-pass.htm",
"web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/iframed.sub.html",
"web-platform-tests/html/semantics/embedded-content/the-img-element/ismap/img-ismap-coordinates-iframe-after.html",
"web-platform-tests/html/semantics/embedded-content/the-img-element/ismap/img-ismap-coordinates-iframe-before.html",
"web-platform-tests/html/semantics/forms/the-button-element/button-activate-frame.html",
"web-platform-tests/html/semantics/forms/the-label-element/iframe-label-attributes.html",
"web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-iframe.sub.html",
+ "web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/102.html",
+ "web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/pages/helloworld-postMessage.html",
+ "web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/pages/helloworld.html",
"web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-import-different.sub.html",
"web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-import-missingheader.sub.html",
"web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-import-same.sub.html",
const tx = db.transaction('store', 'readwrite');
const store = tx.objectStore('store');
- const buffer = new Uint8Array([1,2,3,4]).buffer;
- assert_equals(buffer.byteLength, 4);
+ const array = new Uint8Array([1,2,3,4]);
+ const buffer = array.buffer;
+ assert_equals(array.byteLength, 4);
// Detach the ArrayBuffer by transferring it to a worker.
const worker = new Worker(URL.createObjectURL(new Blob([])));
worker.postMessage('', [buffer]);
- assert_equals(buffer.byteLength, 0);
+ assert_equals(array.byteLength, 0);
assert_throws(new TypeError, () => { store.put('', buffer); });
t.done();
const array = [];
array[99] = 1;
- const getter_called = 0;
+ let getter_called = 0;
const prop = '50';
Object.defineProperty(Object.prototype, prop, {
enumerable: true, configurable: true,
}, upCase + " with " + size + " source data");
promise_test(function(test) {
- var promise = subtle.digest({name: mixedCase}, sourceData[size])
+ var promise = subtle.digest({name: downCase}, sourceData[size])
.then(function(result) {
assert_true(equalBuffers(result, digestedData[alg][size]), "digest() yielded expected result for " + alg + ":" + size);
}, function(err) {
- assert_unreached("digest() threw an error for " + alg + ":" + size + " - " + err.message);mixedCase
+ assert_unreached("digest() threw an error for " + alg + ":" + size + " - " + err.message);
});
return promise;
-CONSOLE MESSAGE: line 1249: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
-CONSOLE MESSAGE: line 1249: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
-CONSOLE MESSAGE: line 1249: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
-CONSOLE MESSAGE: line 1249: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
-CONSOLE MESSAGE: line 1249: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
-CONSOLE MESSAGE: line 1249: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
+CONSOLE MESSAGE: line 1253: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
+CONSOLE MESSAGE: line 1253: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
+CONSOLE MESSAGE: line 1253: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
+CONSOLE MESSAGE: line 1253: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
+CONSOLE MESSAGE: line 1253: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
+CONSOLE MESSAGE: line 1253: XMLHttpRequest.responseType cannot be changed for synchronous HTTP(S) requests made from the window context.
PASS Initial value of responseType
PASS Set responseType to "" when readyState is UNSENT.
-CONSOLE MESSAGE: line 1249: XMLHttpRequest.timeout cannot be set for synchronous HTTP(S) requests made from the window context.
+CONSOLE MESSAGE: line 1253: XMLHttpRequest.timeout cannot be set for synchronous HTTP(S) requests made from the window context.
CONSOLE MESSAGE: line 21: Synchronous XMLHttpRequests must not have a timeout value set.
PASS setting timeout attribute on sync request
FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
FAIL BackgroundFetchRegistration interface: attribute id assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute icons assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute totalDownloadSize assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute title assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute fetches assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute uploadTotal assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute uploaded assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute downloadTotal assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute downloaded assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute onprogress assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
FAIL BackgroundFetchRegistration interface: operation abort() assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface object length assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface object name assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface: attribute request assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
+FAIL BackgroundFetchFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface object length assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface object name assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface: attribute request assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
PASS BackgroundFetchEvent interface: existence and properties of interface object
-PASS BackgroundFetchEndEvent interface: existence and properties of interface object
+PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
-PASS BackgroundFetchFailEvent interface: existence and properties of interface object
+PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
+PASS BackgroundFetchUpdateEvent interface: existence and properties of interface object
PASS BackgroundFetchClickEvent interface: existence and properties of interface object
-// 3.1. Extensions to ServiceWorkerRegistration
+// 4.1. Extensions to ServiceWorkerGlobalScope
+
+partial interface ServiceWorkerGlobalScope {
+ attribute EventHandler onbackgroundfetched;
+ attribute EventHandler onbackgroundfetchfail;
+ attribute EventHandler onbackgroundfetchabort;
+ attribute EventHandler onbackgroundfetchclick;
+};
+
+// 4.2. Extensions to ServiceWorkerRegistration
partial interface ServiceWorkerRegistration {
readonly attribute BackgroundFetchManager backgroundFetch;
};
-// 3.2. BackgroundFetchManager
+// 4.3. BackgroundFetchManager
[Exposed=(Window,Worker)]
interface BackgroundFetchManager {
dictionary BackgroundFetchOptions {
sequence<IconDefinition> icons;
DOMString title;
- long totalDownloadSize;
+ unsigned long long downloadTotal;
};
// This is taken from https://w3c.github.io/manifest/#icons-member.
DOMString type;
};
-// 3.3. BackgroundFetchRegistration
+// 4.4. BackgroundFetchRegistration
[Exposed=(Window,Worker)]
-interface BackgroundFetchRegistration {
+interface BackgroundFetchRegistration : EventTarget {
readonly attribute DOMString id;
- readonly attribute FrozenArray<IconDefinition> icons;
- readonly attribute long totalDownloadSize;
- readonly attribute DOMString title;
- readonly attribute FrozenArray<BackgroundFetchActiveFetches> fetches;
+ readonly attribute unsigned long long uploadTotal;
+ readonly attribute unsigned long long uploaded;
+ readonly attribute unsigned long long downloadTotal;
+ readonly attribute unsigned long long downloaded;
+ readonly attribute BackgroundFetchActiveFetches activeFetches;
+
+ attribute EventHandler onprogress;
- void abort();
+ Promise<boolean> abort();
};
[Exposed=(Window,Worker)]
-interface BackgroundFetchFetches {
+interface BackgroundFetchFetch {
readonly attribute Request request;
};
[Exposed=(Window,Worker)]
-interface BackgroundFetchActiveFetches : BackgroundFetchFetches {
- readonly attribute Promise<Response> responseReady;
- // TODO: this will include fetch controller/observer objects
+interface BackgroundFetchActiveFetches {
+ Promise<BackgroundFetchActiveFetch> match(RequestInfo request);
+ Promise<FrozenArray<BackgroundFetchActiveFetch>> values();
};
-// 3.4. Events
-
-partial interface ServiceWorkerGlobalScope {
- attribute EventHandler onbackgroundfetched;
- attribute EventHandler onbackgroundfetchfail;
- attribute EventHandler onbackgroundfetchabort;
- attribute EventHandler onbackgroundfetchclick;
+[Exposed=(Window,Worker)]
+interface BackgroundFetchActiveFetch : BackgroundFetchFetch {
+ readonly attribute Promise<Response> responseReady;
+ // In future this will include a fetch observer
};
-// 3.4.1. BackgroundFetchEvent
+// 4.4.3. BackgroundFetchEvent
[Constructor(DOMString type, BackgroundFetchEventInit init), Exposed=ServiceWorker]
interface BackgroundFetchEvent : ExtendableEvent {
required DOMString id;
};
-// 3.4.2. BackgroundFetchEndEvent
+// 4.4.4. BackgroundFetchSettledEvent
-[Constructor(DOMString type, BackgroundFetchEndEventInit init), Exposed=ServiceWorker]
-interface BackgroundFetchEndEvent : BackgroundFetchEvent {
- readonly attribute FrozenArray<BackgroundFetchSettledFetches> completeFetches;
+[Constructor(DOMString type, BackgroundFetchSettledEventInit init), Exposed=ServiceWorker]
+interface BackgroundFetchSettledEvent : BackgroundFetchEvent {
+ readonly attribute BackgroundFetchSettledFetches fetches;
+};
- Promise<void> updateUI(DOMString title);
+dictionary BackgroundFetchSettledEventInit : BackgroundFetchEventInit {
+ required BackgroundFetchSettledFetches fetches;
};
-dictionary BackgroundFetchEndEventInit : BackgroundFetchEventInit {
- required BackgroundFetchSettledFetches completeFetches;
+[Exposed=ServiceWorker]
+interface BackgroundFetchSettledFetches {
+ Promise<BackgroundFetchSettledFetch> match(RequestInfo request);
+ Promise<FrozenArray<BackgroundFetchSettledFetch>> values();
};
[Exposed=ServiceWorker]
-interface BackgroundFetchSettledFetches : BackgroundFetchFetches {
+interface BackgroundFetchSettledFetch : BackgroundFetchFetch {
readonly attribute Response? response;
};
-// 3.4.3. BackgroundFetchFailEvent
+// 4.4.5. BackgroundFetchUpdateEvent
-[Constructor(DOMString type, BackgroundFetchEndEventInit init), Exposed=ServiceWorker]
-interface BackgroundFetchFailEvent : BackgroundFetchEndEvent {
- readonly attribute FrozenArray<BackgroundFetchSettledFetches> failedFetches;
-};
-
-dictionary BackgroundFetchFailEventInit : BackgroundFetchEndEventInit {
- required BackgroundFetchSettledFetches failedFetches;
+[Constructor(DOMString type, BackgroundFetchSettledEventInit init), Exposed=ServiceWorker]
+interface BackgroundFetchUpdateEvent : BackgroundFetchSettledEvent {
+ Promise<void> updateUI(DOMString title);
};
-// 3.4.4. BackgroundFetchClickEvent
+// 4.4.6. BackgroundFetchClickEvent
-[Constructor(DOMString type, BackgroundFetchEndEventInit init), Exposed=ServiceWorker]
+[Constructor(DOMString type, BackgroundFetchClickEventInit init), Exposed=ServiceWorker]
interface BackgroundFetchClickEvent : BackgroundFetchEvent {
readonly attribute BackgroundFetchState state;
};
-Harness Error (TIMEOUT), message = null
-
PASS Exposed interfaces in a Service Worker.
PASS ServiceWorkerRegistration interface: existence and properties of interface object
PASS ServiceWorkerGlobalScope interface: existence and properties of interface object
FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
FAIL BackgroundFetchRegistration interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
FAIL BackgroundFetchRegistration interface: attribute id assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute icons assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute totalDownloadSize assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute title assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchRegistration interface: attribute fetches assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute uploadTotal assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute uploaded assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute downloadTotal assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute downloaded assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute activeFetches assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
+FAIL BackgroundFetchRegistration interface: attribute onprogress assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
FAIL BackgroundFetchRegistration interface: operation abort() assert_own_property: self does not have own property "BackgroundFetchRegistration" expected property "BackgroundFetchRegistration" missing
-FAIL BackgroundFetchFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface object length assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface object name assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
-FAIL BackgroundFetchFetches interface: attribute request assert_own_property: self does not have own property "BackgroundFetchFetches" expected property "BackgroundFetchFetches" missing
+FAIL BackgroundFetchFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface object length assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface object name assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
+FAIL BackgroundFetchFetch interface: attribute request assert_own_property: self does not have own property "BackgroundFetchFetch" expected property "BackgroundFetchFetch" missing
FAIL BackgroundFetchActiveFetches interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
FAIL BackgroundFetchActiveFetches interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
-FAIL BackgroundFetchActiveFetches interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetches interface: operation match(RequestInfo) assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetches interface: operation values() assert_own_property: self does not have own property "BackgroundFetchActiveFetches" expected property "BackgroundFetchActiveFetches" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface object length assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface object name assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: existence and properties of interface prototype object's "constructor" property assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
+FAIL BackgroundFetchActiveFetch interface: attribute responseReady assert_own_property: self does not have own property "BackgroundFetchActiveFetch" expected property "BackgroundFetchActiveFetch" missing
PASS BackgroundFetchEvent interface: existence and properties of interface object
-PASS BackgroundFetchEndEvent interface: existence and properties of interface object
+PASS BackgroundFetchSettledEvent interface: existence and properties of interface object
PASS BackgroundFetchSettledFetches interface: existence and properties of interface object
-PASS BackgroundFetchFailEvent interface: existence and properties of interface object
+PASS BackgroundFetchSettledFetch interface: existence and properties of interface object
+PASS BackgroundFetchUpdateEvent interface: existence and properties of interface object
PASS BackgroundFetchClickEvent interface: existence and properties of interface object
idlArray.test();
});
}, 'Exposed interfaces in a Service Worker.');
+
+done();
PASS Test content-type header for a body string
-FAIL Test content-type header for a body ArrayBufferView assert_equals: Correct Content-Type header result expected "" but got "application/x-www-form-urlencoded"
-FAIL Test content-type header for a body ArrayBuffer assert_equals: Correct Content-Type header result expected "" but got "application/x-www-form-urlencoded"
+PASS Test content-type header for a body ArrayBufferView
+PASS Test content-type header for a body ArrayBuffer
PASS Test content-type header for a body Blob
PASS Test content-type header for a body FormData
PASS Test content-type header for a body URLSearchParams
+++ /dev/null
-/* Use this script when you want to test APIs that use vendor prefixes
- and define which objects need to be checked for prefixed versions, Ã la
- <script src="vendor-prefix.js"
- data-prefixed-objects='[{"ancestors":["navigator"], "name":"getUserMedia"}]'
- data-prefixed-prototypes='[{"ancestors":["HTMLMediaElement"],"name":"srcObject"}]'></script>
- data-prefixed-objects lets prefix objects in the global space
- data-prefixed-prototypes adds prefixes to interfaces, for objects that
- get created during the tests
-
- NB: vendor prefixes are expected to go away in favor of putting
- new features behind flag, so hopefully there will be only limited
- need to use this
-*/
-
-(function () {
- var aliases = {};
- var documentingPrefixUsage = document.createElement('div');
- var vendorPrefixes = ["moz", "ms", "o", "webkit", "Moz", "MS", "O", "WebKit", "op"];
-
- function getParentObject(ancestors) {
- var parent = window;
- var currentName = "";
- ancestors.forEach(function (p) {
- currentName = currentName ? currentName + "." + p : p;
- if (parent[p] === undefined) {
- throw currentName + " is undefined, cannot set prefix alias on child object";
- }
- parent = parent[p];
- });
- return parent;
- }
-
- function prependPrefix(prefix, name) {
- var newName = name[0].toUpperCase() + name.substr(1, name.length);
- return prefix + newName;
- }
-
- function setPrototypeAlias(obj) {
- var parent = getParentObject(obj.ancestors);
- if (!parent.prototype.hasOwnProperty(obj.name)) {
- vendorPrefixes.forEach(function (prefix) {
- if (parent.prototype.hasOwnProperty(prependPrefix(prefix, obj.name))) {
- Object.defineProperty(parent.prototype, obj.name,
- {get: function() {return this[prependPrefix(prefix, obj.name)];},
- set: function(v) {this[prependPrefix(prefix, obj.name)] = v;}
- });
- aliases[obj.ancestors.join(".") + ".prototype." + obj.name] = obj.ancestors.join(".") + ".prototype." + prependPrefix(prefix, obj.name);
- return;
- }
- });
- }
- }
-
- function setAlias(obj) {
- var parent = getParentObject(obj.ancestors);
- if (parent[obj.name] === undefined) {
- vendorPrefixes.forEach(function (prefix) {
- if (parent[prependPrefix(prefix, obj.name)] !== undefined) {
- parent[obj.name] = parent[prependPrefix(prefix, obj.name)];
- aliases[obj.ancestors.join(".") + "." + obj.name] = obj.ancestors.join(".") + "." + prependPrefix(prefix, obj.name);
- return;
- }
- });
- }
- }
-
- if (location.search.indexOf('usePrefixes=1') !== -1) {
- if (document.querySelector("script[data-prefixed-objects]")) {
- var prefixObjectsData = document.querySelector("script[data-prefixed-objects]").dataset["prefixedObjects"];
- try {
- var prefixedObjects = JSON.parse(prefixObjectsData);
- } catch (e) {
- throw "couldn't parse data-prefixed-objects as JSON:" + e;
- }
- prefixedObjects.forEach(setAlias);
- }
- if (document.querySelector("script[data-prefixed-prototypes]")) {
- var prefixProtoData = document.querySelector("script[data-prefixed-prototypes]").dataset["prefixedPrototypes"];
- try {
- var prefixedPrototypes = JSON.parse(prefixProtoData);
- } catch (e) {
- throw "couldn't parse data-prefixed-prototypes as JSON:" + e;
- }
- prefixedPrototypes.forEach(setPrototypeAlias);
- }
- var ul = document.createElement("ul");
- Object.keys(aliases).forEach(function (alias) {
- var li = document.createElement("li");
- li.appendChild(document.createTextNode(alias + " has been set to be an alias of vendor-prefixed " + aliases[alias]));
- ul.appendChild(li);
- });
- documentingPrefixUsage.appendChild(ul);
- } else {
- // Document that the test can be run with prefixes enabled
-
- var a = document.createElement('a');
- var link = "";
- if (location.search) {
- link = location.search + "&usePrefixes=1";
- } else {
- link = "?usePrefixes=1";
- }
- a.setAttribute("href", link);
- a.appendChild(document.createTextNode("with vendor prefixes enabled"));
- documentingPrefixUsage.appendChild(document.createTextNode("The feature(s) tested here are known to have been made available via vendor prefixes; you can run this test "));
- documentingPrefixUsage.appendChild(a);
- documentingPrefixUsage.appendChild(document.createTextNode("."));
- }
- var log = document.getElementById('log');
- if (log) {
- log.parentNode.insertBefore(documentingPrefixUsage, log);
- } else {
- document.body.appendChild(documentingPrefixUsage);
- }
-})();
/LayoutTests/imported/w3c/web-platform-tests/common/text-plain.txt
/LayoutTests/imported/w3c/web-platform-tests/common/utils.js
/LayoutTests/imported/w3c/web-platform-tests/common/utils.js.headers
-/LayoutTests/imported/w3c/web-platform-tests/common/vendor-prefix.js
/LayoutTests/imported/w3c/web-platform-tests/common/vendor-prefix.js.headers
None
------------------------------------------------------------------------
List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/absolute-positioning-changing-containing-block-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/absolute-positioning-changing-containing-block-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/absolute-positioning-definite-sizes-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/absolute-positioning-grid-container-containing-block-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/absolute-positioning-grid-container-parent-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-item-absolute-positioning-dynamic-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-item-absolute-positioning-dynamic-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-paint-positioned-children-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-paint-positioned-children-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-children-writing-modes-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-children-writing-modes-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-item-dynamic-change-001-expected.xht
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-item-dynamic-change-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-background-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-background-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-background-rtl-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-background-rtl-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-content-alignment-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-content-alignment-rtl-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-gaps-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-gaps-rtl-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-implicit-grid-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-implicit-grid-line-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-padding-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-unknown-named-grid-line-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-positioned-items-within-grid-implicit-track-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/grid-sizing-positioned-items-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001-expected.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/orthogonal-positioned-grid-items-002-expected.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-016.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-017-expected.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-017.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-should-not-create-implicit-tracks-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-should-not-take-up-space-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-sizing-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-sizing-001.html
------------------------------------------------------------------------
List of files:
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/support/check-layout-th.js
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/support/grid-alignment.css
+/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/support/grid.css
/LayoutTests/imported/w3c/web-platform-tests/css/css-grid-1/support/style-change.js
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-image-threshold-property">
<meta name="assert" content="shape-image-threshold is any valid number and computed the
clipped value between 0 and 1.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-image-threshold-property">
<meta name="assert" content="shape-image-threshold may take calc values and computed the
clipped value between 0 and 1.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-image-threshold-property">
<meta name="assert" content="shape-image-threshold is set to 0 when an invalid value is specified.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-image-threshold-property">
<meta name="assert" content="shape-outside can be assigned the 'inherit' value and does not inherit by default.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
<meta name="assert" content="shape-margin values may be either a length or percentage">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
<meta name="assert" content="shape-margin values may be in any length unit">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
<meta name="assert" content="shape-margin values may be either a length or percentage">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
<meta name="assert" content="shape-margin values may be calc() values">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
<meta name="assert" content="shape-margin values may only be positive length units.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="author" title="Rebecca Hauck" href="mailto:rhauck@adobe.com">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-margin-property">
<meta name="assert" content="The shape-margin value is not inherited and can be assigned the 'inherit' value.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#typedef-shape-box">
<meta name="assert" content="Shape-outside may be one of the box model box values">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A circular basic shape has an optional radius and position component">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A circle's radius may be a length, percentage, or keyword.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
or [ left|center|right ]
or [ left|center|right top|center|bottom ]
or [ top|center|bottom ]. ">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
or [ left|center|right top|center|bottom ]
or [ top|center|bottom ].
All position arguments not in this form are invalid.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#lengths">
<meta name="assert" content="A circle's position arguments may in any valid <length> unit allowed by a <position> value.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A circle's radius may be in any valid length unit.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A circle's radius may be in signed positive or decimal/non-decimal format. Negative
radii are invalid.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="This test verifies that invalid shape-radius arguments on circle() don't parse.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-circle">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="This test verifies that invalid position arguments on circle() don't parse">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A circle's position arguments may be in signed positive/negative or
decimal/non-decimal format.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
<meta name="assert" content="A circle's arguments may be in calc() values.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
<meta name="assert" content="A circle's <position> arguments may be in calc() values.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css-cascade-3/#computed">
<meta name="assert" content="The basic shape can contain relative length formats, which resolve to the computed (absolute) length value">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<script type="text/javascript">
// font relative units: em, ex, ch, rem
var units = ['em', 'ex', 'ch', 'rem'];
- var div = document.createElement('div');
- document.body.appendChild(div);
var resolveds = {};
- units.forEach(function(unit) {
- div.style.width = '10' + unit;
- var s = getComputedStyle(div);
- resolveds[unit] = parseFloat(s.width);
- });
- document.body.removeChild(div);
+ ParsingUtils.setupFonts(function () {
+ var div = document.createElement('div');
+ document.body.appendChild(div);
+ units.forEach(function(unit) {
+ div.style.width = '10' + unit;
+ var s = getComputedStyle(div);
+ resolveds[unit] = parseFloat(s.width);
+ });
+ document.body.removeChild(div);
+ })();
function fillArray(string, length) {
return Array.apply(null, new Array(length)).map(String.prototype.valueOf, string);
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css-cascade-3/#computed">
<meta name="assert" content="The basic shape can contain percentages, which remain unchanged when computed">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An elliptical basic shape has two optional components, radii (2) and a position.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An elliptical basic shape's radii may be keywords, lengths or percentages">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
or [ left|center|right ]
or [ left|center|right top|center|bottom ]
or [ top|center|bottom ]. ">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
or [ left|center|right top|center|bottom ]
or [ top|center|bottom ].
All position arguments not in this form are invalid.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#lengths">
<meta name="assert" content="An ellipse's position arguments may in any valid <length> unit allowed by a <position> value.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An ellipse's radii may be in any valid length unit.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An ellipse's radii may be in signed positive or decimal/non-decimal format. Negative
radii are invalid.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="This test verifies that invalid shape-radius arguments on ellipse() don't parse.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-ellipse">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="This test verifies that invalid position arguments on ellipse() don't parse">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An ellipse's position arguments may be in signed positive/negative or
decimal/non-decimal format.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
<meta name="assert" content="An ellipse's arguments may be in calc() values.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
<meta name="assert" content="An ellipse's <position> arguments may be in calc() values.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An inset has 1 to 4 insets, and optional border radii that follow the border-radius format">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An inset has 1 to 4 insets as percentages or length in any unit">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="An inset's radial component has 1 to 4 length/percentages, optionally followed by a '/'
and an additional 1 to 4 length/percentages and lengths can be in any unit.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#lengths">
<meta name="assert" content="An inset's radial component's values can be in any length unit">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="These tests verify that shape-outside inset() arguments can be numbers that are signed in
positive and negative and/or decimal/non-decimal form.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="These tests verifies that invalid inset() arguments don't parse.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="These tests verify that shape-outside inset() radial component can be numbers that are in
signed positive and/or decimal/non-decimal form. Negative values are not allowed">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-inset">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="These tests verify invalid radial component arguments don't parse.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
<meta name="assert" content="An inset's arguments may be in calc() values.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
<meta name="assert" content="An inset's radial component arguments may be in calc() values.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A polygonal basic shape has an optional fill-rule and one or more pairs of coordinates">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A polygonal basic shape's optional fill-rule may be either 'nonzero' or 'evenodd'">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A polygonal basic shape's points may be either lengths or percentages">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A polygonal basic shape's points may be either lengths or percentages">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#lengths">
<meta name="assert" content="A polygon's veritices may in percentage or any valid <length> units.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#funcdef-polygon">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="A polygon's vertices can be in signed positive/negative or decimal/non-decimal format">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
<meta name="assert" content="A polygon's arguments may be in calc() values.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-css-values">
<meta name="assert" content="A basic basic shape can contain any length unit type, or percentage">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-css-values">
<meta name="assert" content="The basic shape can contain all valid number formats">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#typedef-shape-box">
<meta name="assert" content="Shape-outside may be a pair of shape and box values">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="reviewer" title="Alan Stearns" href="mailto:stearns@adobe.com"> <!-- 2014-03-04 -->
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="Shape-outside takes can be assigned the 'inherit' value.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="reviewer" title="Alan Stearns" href="mailto:stearns@adobe.com"> <!-- 2014-03-04 -->
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="Shape-outside takes its default value of none when assigned the 'initial' value">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
<link rel="reviewer" title="Alan Stearns" href="mailto:stearns@adobe.com"> <!-- 2014-03-04 -->
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<meta name="assert" content="shape-outside can be explictly assigned the default value of none.">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
-<!DOCTYPE html>
+ <!DOCTYPE html>
<html>
<head>
<title>Shape Outside Valid Basic Shape Functional Notation</title>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property">
<link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-css-values">
<meta name="assert" content="Basic shapes use functional notation, and may contain optional whitespace inside the parentheses">
- <meta name="flags" content="dom">
+ <meta name="flags" content="ahem dom">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/parsing-utils.js"></script>
} else if (unit == 'em') {
number = (16 * number);
} else if (unit == 'ex') {
- number = (7.1796875 * number);
+ number = (12.8 * number);
} else if (unit == 'ch') {
- number = (8 * number);
+ number = (16 * number);
} else if (unit == 'rem') {
number = (16 * number);
} else if (unit == 'vw') {
return results;
}
+function each(object, func) {
+ for (var prop in object) {
+ if (object.hasOwnProperty(prop)) {
+ func(prop, object[prop]);
+ }
+ }
+}
+
+function setupFonts(func) {
+ return function () {
+ var fontProperties = {
+ 'font-family': 'Ahem',
+ 'font-size': '16px',
+ 'line-height': '1'
+ };
+ var savedValues = { };
+ each(fontProperties, function (key, value) {
+ savedValues[key] = document.body.style.getPropertyValue(key);
+ document.body.style.setProperty(key, value);
+ });
+ func.apply(this, arguments);
+ each(fontProperties, function (key, value) {
+ if (value) {
+ document.body.style.setProperty(key, value);
+ }
+ else {
+ document.body.style.removeProperty(key);
+ }
+ });
+ };
+}
+
var validUnits = [
"cm","mm","in","pt","pc", // Absolute length units (omitting px b/c we default to that in all tests)
"em","ex","ch","rem", // Font relative length units
return {
testInlineStyle: testInlineStyle,
- testComputedStyle: testComputedStyle,
+ testComputedStyle: setupFonts(testComputedStyle),
testShapeMarginInlineStyle: testShapeMarginInlineStyle,
- testShapeMarginComputedStyle: testShapeMarginComputedStyle,
+ testShapeMarginComputedStyle: setupFonts(testShapeMarginComputedStyle),
testShapeThresholdInlineStyle: testShapeThresholdInlineStyle,
- testShapeThresholdComputedStyle: testShapeThresholdComputedStyle,
+ testShapeThresholdComputedStyle: setupFonts(testShapeThresholdComputedStyle),
buildTestCases: buildTestCases,
buildRadiiTests: buildRadiiTests,
buildPositionTests: buildPositionTests,
buildCalcTests: buildCalcTests,
validUnits: validUnits,
calcTestValues: calcTestValues,
- roundResultStr: roundResultStr
+ roundResultStr: roundResultStr,
+ setupFonts: setupFonts
}
})();
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shapes-from-image"/>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-outside-property"/>
<link rel="help" href="http://www.w3.org/TR/css-shapes-1/#shape-image-threshold-property"/>
- <link rel="match" href="reference/shape-outside-012-ref.html"/>
<meta name="flags" content="ahem dom"/>
<meta name="assert" content="This test verifies content flows around a shape that is
defined in the image's alpha channel and adjusted by the
------------------------------------------------------------------------
List of files:
/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes-1/OWNERS
+/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes-1/basic-shape-circle-ellipse-serialization.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes-1/shape-outside-invalid-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes-1/shape-outside-invalid-circle-000.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes-1/shape-outside-invalid-circle-001.html
<link rel="reviewer" title="Florian Rivoal" href="http://florian.rivoal.net/"> <!-- 2015-04-12 -->
<link rel="help" href="http://www.w3.org/TR/css3-ui/#cursor">
<link rel="help" href="http://www.w3.org/TR/css3-images/#default-object-size">
-<meta name="flags" content="interact svg">
+<meta name="flags" content="interact svg may">
<meta charset="UTF-8">
<meta name="assert" content="Test checks that an SVG image with no fixed size is supported as a custom cursor at the default object size for cursor images.">
<style>
/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/focus-within-shadow-006.html
/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/of-type-selectors-expected.xhtml
/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/of-type-selectors.xhtml
+/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/scope-without-scoping-expected.xht
+/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/scope-without-scoping.html
/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required-expected.html
/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selector-required.html
/LayoutTests/imported/w3c/web-platform-tests/css/selectors4/selectors-dir-selector-ltr-001-expected.xht
@dbaron
@plinss
-@rune-opera
@lilles
@therealglazou
FAIL Resolution of width is correct for ::before and ::after pseudo-elements of display: contents elements assert_equals: expected "50px" but got "50%"
PASS Resolution of nonexistent pseudo-element styles
FAIL Resolution of pseudo-element styles in display: none elements assert_equals: Pseudo-styles of display: none elements should be correct expected "\"Foo\"" but got "Foo"
+PASS Item-based blockification of pseudo-elements
+FAIL Item-based blockification of nonexistent pseudo-elements assert_equals: Pseudo-styles of display: flex elements should get blockified expected "block" but got "inline"
#test::before,
#test::after,
#contents::before,
-#contents::after {
+#contents::after,
+#flex::before,
+#flex::after {
content: " ";
width: 50%;
height: 10px;
#none::after {
content: "Foo";
}
+#flex {
+ display: flex;
+}
+#flex-no-pseudo {
+ display: flex;
+}
</style>
<div id="test">
<div id="contents"></div>
<div id="none"></div>
+ <div id="flex"></div>
+ <div id="flex-no-pseudo"></div>
</div>
<script>
test(function() {
"Pseudo-styles of display: none elements should be correct");
});
}, "Resolution of pseudo-element styles in display: none elements");
+test(function() {
+ var flex = document.getElementById('flex');
+ [":before", ":after"].forEach(function(pseudo) {
+ assert_equals(getComputedStyle(flex, pseudo).display, "block",
+ "Pseudo-styles of display: flex elements should get blockified");
+ });
+}, "Item-based blockification of pseudo-elements");
+test(function() {
+ var flexNoPseudo = document.getElementById('flex-no-pseudo');
+ [":before", ":after"].forEach(function(pseudo) {
+ assert_equals(getComputedStyle(flexNoPseudo, pseudo).display, "block",
+ "Pseudo-styles of display: flex elements should get blockified");
+ });
+}, "Item-based blockification of nonexistent pseudo-elements");
</script>
FAIL sheet_property assert_own_property: expected property "sheet" missing
+PASS sheet_property_updates
FAIL CSSStyleSheet_properties undefined is not an object (evaluating 'object.hasOwnProperty')
FAIL CSSStyleSheet_property_values undefined is not an object (evaluating 'styleSheet.ownerRule')
FAIL StyleSheet_properties undefined is not an object (evaluating 'object.hasOwnProperty')
assert: [ "styleElement.sheet exists", "styleElement.sheet is a CSSStyleSheet",
"linkElement.sheet exists", "linkElement.sheet is a CSSStyleSheet"] });
+ test(function () {
+ var style = document.createElement("style");
+ document.querySelector("head").appendChild(style);
+ var sheet1 = style.sheet;
+ assert_equals(sheet1.cssRules.length, 0);
+ style.appendChild(document.createTextNode("a { color: green; }"));
+ assert_equals(style.sheet.cssRules.length, 1);
+ }, "sheet_property_updates",
+ { help: "https://www.w3.org/TR/cssom-1/#the-linkstyle-interface",
+ assert: "The sheet property on LinkStyle should always return the current associated style sheet." });
+
test(function() {
assert_own_property(styleSheet, "ownerRule");
assert_own_property(styleSheet, "cssRules");
/LayoutTests/imported/w3c/web-platform-tests/cssom/CSSStyleSheet.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/GetBoundingRect.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList.html
+/LayoutTests/imported/w3c/web-platform-tests/cssom/MediaList2.xhtml
/LayoutTests/imported/w3c/web-platform-tests/cssom/OWNERS
/LayoutTests/imported/w3c/web-platform-tests/cssom/StyleSheetList.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/computed-style-001.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/medialist-interfaces-004.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/overflow-serialization.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorSerialize.html
+/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001-expected.html
+/LayoutTests/imported/w3c/web-platform-tests/cssom/selectorText-modification-restyle-001.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/serialization-CSSDeclaration-with-important.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-namespaced-type-selectors.html
/LayoutTests/imported/w3c/web-platform-tests/cssom/serialize-values.html
-CONSOLE MESSAGE: line 225: ReferenceError: Can't find variable: document_types
PASS document.createElement must create an instance of custom elements
PASS document.createElement must report a TypeError when the result of Construct is not a DOM node
PASS document.createElement must not report a NotSupportedError when an element child is added and removed during construction
PASS document.createElement must report a NotSupportedError when the element gets inserted into another element during construction
PASS document.createElement must not report a NotSupportedError when the element is inserted and removed from another element during construction
+PASS document.createElement must report a NotSupportedError when the element is adopted into a the document of the template elements during construction
+PASS document.createElement must report a NotSupportedError when the element is inserted into a the document of the template elements during construction
+PASS document.createElement must not report a NotSupportedError when the element is adopted back from a the document of the template elements during construction
+PASS document.createElement must report a NotSupportedError when the element is adopted into a a new document during construction
+PASS document.createElement must report a NotSupportedError when the element is inserted into a a new document during construction
+PASS document.createElement must not report a NotSupportedError when the element is adopted back from a a new document during construction
+PASS document.createElement must report a NotSupportedError when the element is adopted into a a cloned document during construction
+PASS document.createElement must report a NotSupportedError when the element is inserted into a a cloned document during construction
+PASS document.createElement must not report a NotSupportedError when the element is adopted back from a a cloned document during construction
+PASS document.createElement must report a NotSupportedError when the element is adopted into a a document created by createHTMLDocument during construction
+PASS document.createElement must report a NotSupportedError when the element is inserted into a a document created by createHTMLDocument during construction
+PASS document.createElement must not report a NotSupportedError when the element is adopted back from a a document created by createHTMLDocument during construction
+PASS document.createElement must report a NotSupportedError when the element is adopted into a an HTML document created by createDocument during construction
+PASS document.createElement must report a NotSupportedError when the element is inserted into a an HTML document created by createDocument during construction
+PASS document.createElement must not report a NotSupportedError when the element is adopted back from a an HTML document created by createDocument during construction
+PASS document.createElement must report a NotSupportedError when the element is adopted into a the document of an iframe during construction
+PASS document.createElement must report a NotSupportedError when the element is inserted into a the document of an iframe during construction
+PASS document.createElement must not report a NotSupportedError when the element is adopted back from a the document of an iframe during construction
+PASS document.createElement must report a NotSupportedError when the element is adopted into a an HTML document fetched by XHR during construction
+PASS document.createElement must report a NotSupportedError when the element is inserted into a an HTML document fetched by XHR during construction
+PASS document.createElement must not report a NotSupportedError when the element is adopted back from a an HTML document fetched by XHR during construction
+PASS document.createElement must report a NotSupportedError when the local name of the element does not match that of the custom element
+PASS document.createElement must report an exception thrown by a custom element constructor
<link rel="help" content="https://dom.spec.whatwg.org/#concept-create-element">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="resources/custom-elements-helper.js"></script>
+<script src="resources/custom-elements-helpers.js"></script>
</head>
<body>
<div id="log"></div>
CONSOLE MESSAGE: TypeError: The result of constructing a custom element must be a HTMLElement
CONSOLE MESSAGE: line 35: ReferenceError: Cannot access uninitialized variable.
CONSOLE MESSAGE: line 41: Bad
-CONSOLE MESSAGE: line 1397: Error: Tried to create a test with file_is_test
+CONSOLE MESSAGE: line 1401: Error: Tried to create a test with file_is_test
PASS Custom Elements: Changes to the HTML parser
/LayoutTests/imported/w3c/web-platform-tests/custom-elements/connected-callbacks.html
/LayoutTests/imported/w3c/web-platform-tests/custom-elements/custom-element-reaction-queue.html
/LayoutTests/imported/w3c/web-platform-tests/custom-elements/disconnected-callbacks.html
+/LayoutTests/imported/w3c/web-platform-tests/custom-elements/historical.html
/LayoutTests/imported/w3c/web-platform-tests/custom-elements/microtasks-and-constructors.html
/LayoutTests/imported/w3c/web-platform-tests/custom-elements/reaction-timing.html
/LayoutTests/imported/w3c/web-platform-tests/custom-elements/upgrading.html
<!DOCTYPE html>
-
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script type="text/javascript">
'use strict';
+// Computes greatest common divisor of a and b using Euclid's algorithm
+function computeGCD(a, b) {
+ if (!Number.isInteger(a) || !Number.isInteger(b)) {
+ throw new Error('Parameters must be integer numbers');
+ }
+
+ var r;
+ while (b != 0) {
+ r = a % b;
+ a = b;
+ b = r;
+ }
+ return (a < 0) ? -a : a;
+}
+
+// Finds minimum resolution Δ given a set of samples which are known to be in the form of N*Δ.
+// We use GCD of all samples as a simple estimator.
+function estimateMinimumResolution(samples) {
+ var gcd;
+ for (const sample of samples) {
+ gcd = gcd ? computeGCD(gcd, sample) : sample;
+ }
+
+ return gcd;
+}
+
test(function() {
- let e1 = new MouseEvent('test1');
- let e2 = new MouseEvent('test2');
+ const samples = [];
+ for (var i = 0; i < 1e3; i++) {
+ var deltaInMicroSeconds = 0;
+ const e1 = new MouseEvent('test1');
+ do {
+ const e2 = new MouseEvent('test2');
+ deltaInMicroSeconds = Math.round((e2.timeStamp - e1.timeStamp) * 1000);
+ } while (deltaInMicroSeconds == 0) // only collect non-zero samples
- while (e1.timeStamp == e2.timeStamp)
- e2 = new MouseEvent('test2');
+ samples.push(deltaInMicroSeconds);
+ }
- let expectedResolutionMilliseconds = 0.005;
- let integerMultipleOfResolution = (e2.timeStamp - e1.timeStamp) / expectedResolutionMilliseconds;
- let shouldBeNearZeroOrOne = integerMultipleOfResolution % 1;
- assert_true(shouldBeNearZeroOrOne < 1e-10 || Math.abs(shouldBeNearZeroOrOne - 1) < 1e-10);
+ const minResolution = estimateMinimumResolution(samples);
+ assert_greater_than_equal(minResolution, 5);
}, 'Event timestamp should not have a resolution better that 5 microseconds');
</script>
\ No newline at end of file
if (expected === null) {
test(function() {
var doc = document.implementation.createDocument(namespace, qualifiedName, doctype)
+ assert_equals(doc.location, null)
assert_equals(doc.compatMode, "CSS1Compat")
assert_equals(doc.characterSet, "UTF-8")
assert_equals(doc.contentType, namespace == htmlNamespace ? "application/xhtml+xml"
PASS createHTMLDocument(): metadata
PASS createHTMLDocument(): characterSet aliases
PASS createHTMLDocument(): URL parsing
+PASS createHTMLDocument(): document location getter is null
a.href = "http://example.org/?\u00E4";
assert_equals(a.href, "http://example.org/?%C3%A4");
}, "createHTMLDocument(): URL parsing")
+
+// Test the document location getter is null outside of browser context
+test(function() {
+ var doc = document.implementation.createHTMLDocument();
+ assert_equals(doc.location, null);
+}, "createHTMLDocument(): document location getter is null")
</script>
test(function() {
var doc = new Document();
+ assert_equals(doc.location, null);
assert_equals(doc.URL, "about:blank");
assert_equals(doc.documentURI, "about:blank");
assert_equals(doc.compatMode, "CSS1Compat");
PASS Detached Element.matches: Unknown pseudo-element: div::example
PASS Detached Element.matches: Unknown pseudo-element: ::example
PASS Detached Element.matches: Invalid pseudo-element: :::before
+PASS Detached Element.matches: Invalid pseudo-element: :: before
PASS Detached Element.matches: Undeclared namespace: ns|div
PASS Detached Element.matches: Undeclared namespace: :not(ns|div)
PASS Detached Element.matches: Invalid namespace: ^|div
PASS In-document Element.matches: Unknown pseudo-element: div::example
PASS In-document Element.matches: Unknown pseudo-element: ::example
PASS In-document Element.matches: Invalid pseudo-element: :::before
+PASS In-document Element.matches: Invalid pseudo-element: :: before
PASS In-document Element.matches: Undeclared namespace: ns|div
PASS In-document Element.matches: Undeclared namespace: :not(ns|div)
PASS In-document Element.matches: Invalid namespace: ^|div
PASS Detached Element.webkitMatchesSelector: Unknown pseudo-element: div::example
PASS Detached Element.webkitMatchesSelector: Unknown pseudo-element: ::example
PASS Detached Element.webkitMatchesSelector: Invalid pseudo-element: :::before
+PASS Detached Element.webkitMatchesSelector: Invalid pseudo-element: :: before
PASS Detached Element.webkitMatchesSelector: Undeclared namespace: ns|div
PASS Detached Element.webkitMatchesSelector: Undeclared namespace: :not(ns|div)
PASS Detached Element.webkitMatchesSelector: Invalid namespace: ^|div
PASS In-document Element.webkitMatchesSelector: Unknown pseudo-element: div::example
PASS In-document Element.webkitMatchesSelector: Unknown pseudo-element: ::example
PASS In-document Element.webkitMatchesSelector: Invalid pseudo-element: :::before
+PASS In-document Element.webkitMatchesSelector: Invalid pseudo-element: :: before
PASS In-document Element.webkitMatchesSelector: Undeclared namespace: ns|div
PASS In-document Element.webkitMatchesSelector: Undeclared namespace: :not(ns|div)
PASS In-document Element.webkitMatchesSelector: Invalid namespace: ^|div
PASS Document.querySelectorAll: Unknown pseudo-element: ::example
PASS Document.querySelector: Invalid pseudo-element: :::before
PASS Document.querySelectorAll: Invalid pseudo-element: :::before
+PASS Document.querySelector: Invalid pseudo-element: :: before
+PASS Document.querySelectorAll: Invalid pseudo-element: :: before
PASS Document.querySelector: Undeclared namespace: ns|div
PASS Document.querySelectorAll: Undeclared namespace: ns|div
PASS Document.querySelector: Undeclared namespace: :not(ns|div)
PASS Detached Element.querySelectorAll: Unknown pseudo-element: ::example
PASS Detached Element.querySelector: Invalid pseudo-element: :::before
PASS Detached Element.querySelectorAll: Invalid pseudo-element: :::before
+PASS Detached Element.querySelector: Invalid pseudo-element: :: before
+PASS Detached Element.querySelectorAll: Invalid pseudo-element: :: before
PASS Detached Element.querySelector: Undeclared namespace: ns|div
PASS Detached Element.querySelectorAll: Undeclared namespace: ns|div
PASS Detached Element.querySelector: Undeclared namespace: :not(ns|div)
PASS Fragment.querySelectorAll: Unknown pseudo-element: ::example
PASS Fragment.querySelector: Invalid pseudo-element: :::before
PASS Fragment.querySelectorAll: Invalid pseudo-element: :::before
+PASS Fragment.querySelector: Invalid pseudo-element: :: before
+PASS Fragment.querySelectorAll: Invalid pseudo-element: :: before
PASS Fragment.querySelector: Undeclared namespace: ns|div
PASS Fragment.querySelectorAll: Undeclared namespace: ns|div
PASS Fragment.querySelector: Undeclared namespace: :not(ns|div)
PASS In-document Element.querySelectorAll: Unknown pseudo-element: ::example
PASS In-document Element.querySelector: Invalid pseudo-element: :::before
PASS In-document Element.querySelectorAll: Invalid pseudo-element: :::before
+PASS In-document Element.querySelector: Invalid pseudo-element: :: before
+PASS In-document Element.querySelectorAll: Invalid pseudo-element: :: before
PASS In-document Element.querySelector: Undeclared namespace: ns|div
PASS In-document Element.querySelectorAll: Undeclared namespace: ns|div
PASS In-document Element.querySelector: Undeclared namespace: :not(ns|div)
PASS Document.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS Document.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS Document.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS Document.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Document.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Document.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS Document.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS Document.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS Document.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS Document.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Document.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Document.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS Document.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS Document.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS Document.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS Document.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS Document.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASS Detached Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS Detached Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS Detached Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Detached Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS Detached Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS Detached Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS Detached Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Detached Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS Detached Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS Detached Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS Detached Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASS Fragment.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS Fragment.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS Fragment.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Fragment.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS Fragment.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS Fragment.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS Fragment.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Fragment.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS Fragment.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS Fragment.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS Fragment.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS Fragment.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS Fragment.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASS In-document Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS In-document Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS In-document Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS In-document Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS In-document Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS In-document Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS In-document Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS In-document Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS In-document Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS In-document Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS In-document Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASS Document.querySelectorAll: Unknown pseudo-element: ::example
PASS Document.querySelector: Invalid pseudo-element: :::before
PASS Document.querySelectorAll: Invalid pseudo-element: :::before
+PASS Document.querySelector: Invalid pseudo-element: :: before
+PASS Document.querySelectorAll: Invalid pseudo-element: :: before
PASS Document.querySelector: Undeclared namespace: ns|div
PASS Document.querySelectorAll: Undeclared namespace: ns|div
PASS Document.querySelector: Undeclared namespace: :not(ns|div)
PASS Detached Element.querySelectorAll: Unknown pseudo-element: ::example
PASS Detached Element.querySelector: Invalid pseudo-element: :::before
PASS Detached Element.querySelectorAll: Invalid pseudo-element: :::before
+PASS Detached Element.querySelector: Invalid pseudo-element: :: before
+PASS Detached Element.querySelectorAll: Invalid pseudo-element: :: before
PASS Detached Element.querySelector: Undeclared namespace: ns|div
PASS Detached Element.querySelectorAll: Undeclared namespace: ns|div
PASS Detached Element.querySelector: Undeclared namespace: :not(ns|div)
PASS Fragment.querySelectorAll: Unknown pseudo-element: ::example
PASS Fragment.querySelector: Invalid pseudo-element: :::before
PASS Fragment.querySelectorAll: Invalid pseudo-element: :::before
+PASS Fragment.querySelector: Invalid pseudo-element: :: before
+PASS Fragment.querySelectorAll: Invalid pseudo-element: :: before
PASS Fragment.querySelector: Undeclared namespace: ns|div
PASS Fragment.querySelectorAll: Undeclared namespace: ns|div
PASS Fragment.querySelector: Undeclared namespace: :not(ns|div)
PASS In-document Element.querySelectorAll: Unknown pseudo-element: ::example
PASS In-document Element.querySelector: Invalid pseudo-element: :::before
PASS In-document Element.querySelectorAll: Invalid pseudo-element: :::before
+PASS In-document Element.querySelector: Invalid pseudo-element: :: before
+PASS In-document Element.querySelectorAll: Invalid pseudo-element: :: before
PASS In-document Element.querySelector: Undeclared namespace: ns|div
PASS In-document Element.querySelectorAll: Undeclared namespace: ns|div
PASS In-document Element.querySelector: Undeclared namespace: :not(ns|div)
PASS Document.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS Document.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS Document.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS Document.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS Document.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Document.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Document.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS Document.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS Document.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS Document.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS Document.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS Document.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Document.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Document.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS Document.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS Document.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS Document.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS Document.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS Document.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Document.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Document.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASS Detached Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS Detached Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS Detached Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS Detached Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Detached Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Detached Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS Detached Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS Detached Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS Detached Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS Detached Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Detached Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Detached Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS Detached Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS Detached Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS Detached Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS Detached Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Detached Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Detached Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASS Fragment.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS Fragment.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS Fragment.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS Fragment.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Fragment.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS Fragment.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS Fragment.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS Fragment.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS Fragment.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS Fragment.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Fragment.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS Fragment.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS Fragment.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS Fragment.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS Fragment.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS Fragment.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS Fragment.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Fragment.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS Fragment.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
PASS In-document Element.querySelector: Attribute begins with selector, matching href attributes beginning with specified substring: #attr-begins a[href^="http://www"]
PASS In-document Element.querySelectorAll: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
PASS In-document Element.querySelector: Attribute begins with selector, matching lang attributes beginning with specified substring, : #attr-begins [lang^="en-"]
+PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
+PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute with empty value: #attr-begins [class^=""]
PASS In-document Element.querySelectorAll: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS In-document Element.querySelector: Attribute begins with selector, not matching class attribute not beginning with specified substring: #attr-begins [class^=apple]
PASS In-document Element.querySelectorAll: Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring: #attr-begins [class^=' apple']
PASS In-document Element.querySelector: Attribute ends with selector, matching href attributes ending with specified substring: #attr-ends a[href$=".org"]
PASS In-document Element.querySelectorAll: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
PASS In-document Element.querySelector: Attribute ends with selector, matching lang attributes ending with specified substring, : #attr-ends [lang$="-CH"]
+PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
+PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute with empty value: #attr-ends [class$=""]
PASS In-document Element.querySelectorAll: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS In-document Element.querySelector: Attribute ends with selector, not matching class attribute not ending with specified substring: #attr-ends [class$=apple]
PASS In-document Element.querySelectorAll: Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring: #attr-ends [class$='apple ']
PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes beginning with specified substring, : #attr-contains [lang*="en-"]
PASS In-document Element.querySelectorAll: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
PASS In-document Element.querySelector: Attribute contains selector, matching lang attributes ending with specified substring, : #attr-contains [lang*="-CH"]
+PASS In-document Element.querySelectorAll: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
+PASS In-document Element.querySelector: Attribute contains selector, not matching class attribute with empty value: #attr-contains [class*=""]
PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS In-document Element.querySelector: Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring: #attr-contains [class*=' apple']
PASS In-document Element.querySelectorAll: Attribute contains selector with single-quoted value, matching class attribute ending with specified substring: #attr-contains [class*='orange ']
{name: "Unknown pseudo-element", selector: "div::example"},
{name: "Unknown pseudo-element", selector: "::example"},
{name: "Invalid pseudo-element", selector: ":::before"},
+ {name: "Invalid pseudo-element", selector: ":: before"},
{name: "Undeclared namespace", selector: "ns|div"},
{name: "Undeclared namespace", selector: ":not(ns|div)"},
{name: "Invalid namespace", selector: "^|div"},
// - substring begins-with [att^=val] (Level 3)
{name: "Attribute begins with selector, matching href attributes beginning with specified substring", selector: "#attr-begins a[href^=\"http://www\"]", expect: ["attr-begins-a1", "attr-begins-a3"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute begins with selector, matching lang attributes beginning with specified substring, ", selector: "#attr-begins [lang^=\"en-\"]", expect: ["attr-begins-div2", "attr-begins-div4"], level: 3, testType: TEST_QSA | TEST_MATCH},
+ {name: "Attribute begins with selector, not matching class attribute with empty value", selector: "#attr-begins [class^=\"\"]", expect: [] /*no matches*/, level: 3, testType: TEST_QSA},
{name: "Attribute begins with selector, not matching class attribute not beginning with specified substring", selector: "#attr-begins [class^=apple]", expect: [] /*no matches*/, level: 3, testType: TEST_QSA},
{name: "Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring", selector: "#attr-begins [class^=' apple']", expect: ["attr-begins-p1"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring", selector: "#attr-begins [class^=\" apple\"]", expect: ["attr-begins-p1"], level: 3, testType: TEST_QSA | TEST_MATCH},
// - substring ends-with [att$=val] (Level 3)
{name: "Attribute ends with selector, matching href attributes ending with specified substring", selector: "#attr-ends a[href$=\".org\"]", expect: ["attr-ends-a1", "attr-ends-a3"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute ends with selector, matching lang attributes ending with specified substring, ", selector: "#attr-ends [lang$=\"-CH\"]", expect: ["attr-ends-div2", "attr-ends-div4"], level: 3, testType: TEST_QSA | TEST_MATCH},
+ {name: "Attribute ends with selector, not matching class attribute with empty value", selector: "#attr-ends [class$=\"\"]", expect: [] /*no matches*/, level: 3, testType: TEST_QSA},
{name: "Attribute ends with selector, not matching class attribute not ending with specified substring", selector: "#attr-ends [class$=apple]", expect: [] /*no matches*/, level: 3, testType: TEST_QSA},
{name: "Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring", selector: "#attr-ends [class$='apple ']", expect: ["attr-ends-p1"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring", selector: "#attr-ends [class$=\"apple \"]", expect: ["attr-ends-p1"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute contains selector, matching href attributes containing specified substring", selector: "#attr-contains a[href*=\".example.\"]", expect: ["attr-contains-a1", "attr-contains-a3"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute contains selector, matching lang attributes beginning with specified substring, ", selector: "#attr-contains [lang*=\"en-\"]", expect: ["attr-contains-div2", "attr-contains-div6"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute contains selector, matching lang attributes ending with specified substring, ", selector: "#attr-contains [lang*=\"-CH\"]", expect: ["attr-contains-div3", "attr-contains-div5"], level: 3, testType: TEST_QSA | TEST_MATCH},
+ {name: "Attribute contains selector, not matching class attribute with empty value", selector: "#attr-contains [class*=\"\"]", expect: [] /*no matches*/, level: 3, testType: TEST_QSA},
{name: "Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring", selector: "#attr-contains [class*=' apple']", expect: ["attr-contains-p1"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute contains selector with single-quoted value, matching class attribute ending with specified substring", selector: "#attr-contains [class*='orange ']", expect: ["attr-contains-p1"], level: 3, testType: TEST_QSA | TEST_MATCH},
{name: "Attribute contains selector with single-quoted value, matching class attribute containing specified substring", selector: "#attr-contains [class*='ple banana ora']", expect: ["attr-contains-p1"], level: 3, testType: TEST_QSA | TEST_MATCH},
// - substring begins-with [att^=val] (Level 3)
{name: "Attribute begins with selector, matching href attributes beginning with specified substring", selector: "a[href^=\"http://www\"]", ctx: "#attr-begins", expect: ["attr-begins-a1", "attr-begins-a3"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute begins with selector, matching lang attributes beginning with specified substring, ", selector: "[lang^=\"en-\"]", ctx: "#attr-begins", expect: ["attr-begins-div2", "attr-begins-div4"], level: 3, testType: TEST_FIND | TEST_MATCH},
+ {name: "Attribute begins with selector, not matching class attribute with empty value", selector: "[class^=\"\"]", ctx: "#attr-begins", expect: [] /*no matches*/, level: 3, testType: TEST_FIND},
{name: "Attribute begins with selector, not matching class attribute not beginning with specified substring", selector: "[class^=apple]", ctx: "#attr-begins", expect: [] /*no matches*/, level: 3, testType: TEST_FIND},
{name: "Attribute begins with selector with single-quoted value, matching class attribute beginning with specified substring", selector: "[class^=' apple']", ctx: "#attr-begins", expect: ["attr-begins-p1"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute begins with selector with double-quoted value, matching class attribute beginning with specified substring", selector: "[class^=\" apple\"]", ctx: "#attr-begins", expect: ["attr-begins-p1"], level: 3, testType: TEST_FIND | TEST_MATCH},
// - substring ends-with [att$=val] (Level 3)
{name: "Attribute ends with selector, matching href attributes ending with specified substring", selector: "a[href$=\".org\"]", ctx: "#attr-ends", expect: ["attr-ends-a1", "attr-ends-a3"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute ends with selector, matching lang attributes ending with specified substring, ", selector: "[lang$=\"-CH\"]", ctx: "#attr-ends", expect: ["attr-ends-div2", "attr-ends-div4"], level: 3, testType: TEST_FIND | TEST_MATCH},
+ {name: "Attribute ends with selector, not matching class attribute with empty value", selector: "[class$=\"\"]", ctx: "#attr-ends", expect: [] /*no matches*/, level: 3, testType: TEST_FIND},
{name: "Attribute ends with selector, not matching class attribute not ending with specified substring", selector: "[class$=apple]", ctx: "#attr-ends", expect: [] /*no matches*/, level: 3, testType: TEST_FIND},
{name: "Attribute ends with selector with single-quoted value, matching class attribute ending with specified substring", selector: "[class$='apple ']", ctx: "#attr-ends", expect: ["attr-ends-p1"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute ends with selector with double-quoted value, matching class attribute ending with specified substring", selector: "[class$=\"apple \"]", ctx: "#attr-ends", expect: ["attr-ends-p1"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute contains selector, matching href attributes containing specified substring", selector: "a[href*=\".example.\"]", ctx: "#attr-contains", expect: ["attr-contains-a1", "attr-contains-a3"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute contains selector, matching lang attributes beginning with specified substring, ", selector: "[lang*=\"en-\"]", ctx: "#attr-contains", expect: ["attr-contains-div2", "attr-contains-div6"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute contains selector, matching lang attributes ending with specified substring, ", selector: "[lang*=\"-CH\"]", ctx: "#attr-contains", expect: ["attr-contains-div3", "attr-contains-div5"], level: 3, testType: TEST_FIND | TEST_MATCH},
+ {name: "Attribute contains selector, not matching class attribute with empty value", selector: "[class*=\"\"]", ctx: "#attr-contains", expect: [] /*no matches*/, level: 3, testType: TEST_FIND},
{name: "Attribute contains selector with single-quoted value, matching class attribute beginning with specified substring", selector: "[class*=' apple']", ctx: "#attr-contains", expect: ["attr-contains-p1"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute contains selector with single-quoted value, matching class attribute ending with specified substring", selector: "[class*='orange ']", ctx: "#attr-contains", expect: ["attr-contains-p1"], level: 3, testType: TEST_FIND | TEST_MATCH},
{name: "Attribute contains selector with single-quoted value, matching class attribute containing specified substring", selector: "[class*='ple banana ora']", ctx: "#attr-contains", expect: ["attr-contains-p1"], level: 3, testType: TEST_FIND | TEST_MATCH},
}
})
}
- fetchFail("http://example.not/")
- fetchFail("https://example.not/test")
fetchFail("ftp://example.not/")
fetchFail("about:blank")
fetchFail("mailto:whatwg@awesome.example")
-Blocked access to external URL http://example.not/
-CONSOLE MESSAGE: EventSource cannot load http://example.not/.
-Blocked access to external URL https://example.not/test
-CONSOLE MESSAGE: EventSource cannot load https://example.not/test.
CONSOLE MESSAGE: EventSource cannot load ftp://example.not/. Cross origin requests are only supported for HTTP.
CONSOLE MESSAGE: EventSource cannot load about:blank. Cross origin requests are only supported for HTTP.
CONSOLE MESSAGE: EventSource cannot load mailto:whatwg@awesome.example. Cross origin requests are only supported for HTTP.
CONSOLE MESSAGE: EventSource cannot load javascript:alert('FAIL'). Cross origin requests are only supported for HTTP.
-PASS EventSource: constructor (act as if there is a network error) (http://example.not/)
-PASS EventSource: constructor (act as if there is a network error) (https://example.not/test)
PASS EventSource: constructor (act as if there is a network error) (ftp://example.not/)
PASS EventSource: constructor (act as if there is a network error) (about:blank)
PASS EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example)
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
- <div id="log"></div>
<script>
function fetchFail(url) {
var test = async_test(document.title + " (" + url + ")", { timeout: 20000 })
}
})
}
- fetchFail("http://example.not/")
- fetchFail("https://example.not/test")
fetchFail("ftp://example.not/")
fetchFail("about:blank")
fetchFail("mailto:whatwg@awesome.example")
- # -*- coding: utf-8 -*-
-
def main(request, response):
response.headers.set("Content-Type", "text/event-stream")
- last_event_id = request.headers.get('Last-Event-ID', None)
- value = request.GET.first("idvalue", "…")
- if(last_event_id):
- return "data: " + last_event_id + "\n\n"
+ last_event_id = request.headers.get("Last-Event-ID", None)
+ if last_event_id:
+ return "data: " + last_event_id + "\n\n"
else:
- return "id: " + value + "\nretry: 200\ndata: hello\n\n"
+ idvalue = request.GET.first("idvalue", u"\u2026")
+ return "id: " + idvalue + "\nretry: 200\ndata: hello\n\n"
-FAIL shared worker - EventSource: constructor (act as if there is a network error) (http://example.not) Can't find variable: SharedWorker
-FAIL shared worker - EventSource: constructor (act as if there is a network error) (https://example.not/test) Can't find variable: SharedWorker
FAIL shared worker - EventSource: constructor (act as if there is a network error) (ftp://example.not) Can't find variable: SharedWorker
FAIL shared worker - EventSource: constructor (act as if there is a network error) (about:blank) Can't find variable: SharedWorker
FAIL shared worker - EventSource: constructor (act as if there is a network error) (mailto:whatwg@awesome.example) Can't find variable: SharedWorker
}
})
}
- fetchFail("http://example.not")
- fetchFail("https://example.not/test")
fetchFail("ftp://example.not")
fetchFail("about:blank")
fetchFail("mailto:whatwg@awesome.example")
PASS CORS empty integrity
PASS CORS SHA-512 integrity
PASS CORS invalid integrity
+PASS Empty string integrity for opaque response
+PASS SHA-* integrity for opaque response
PASS CORS empty integrity
PASS CORS SHA-512 integrity
PASS CORS invalid integrity
+PASS Empty string integrity for opaque response
+PASS SHA-* integrity for opaque response
importScripts("../resources/utils.js");
}
-function integrity(desc, url, integrity, shouldPass) {
- if (shouldPass) {
+function integrity(desc, url, integrity, initRequestMode, shouldPass) {
+ var fetchRequestInit = {'integrity': integrity}
+ if (!!initRequestMode && initRequestMode !== "") {
+ fetchRequestInit.mode = initRequestMode;
+ }
+
+ if (shouldPass) {
promise_test(function(test) {
- return fetch(url, {'integrity': integrity}).then(function(resp) {
- assert_equals(resp.status, 200, "Response's status is 200");
+ return fetch(url, fetchRequestInit).then(function(resp) {
+ if (initRequestMode !== "no-cors") {
+ assert_equals(resp.status, 200, "Response's status is 200");
+ } else {
+ assert_equals(resp.status, 0, "Opaque response's status is 0");
+ assert_equals(resp.type, "opaque");
+ }
});
}, desc);
} else {
promise_test(function(test) {
- return promise_rejects(test, new TypeError(), fetch(url, {'integrity': integrity}));
+ return promise_rejects(test, new TypeError(), fetch(url, fetchRequestInit));
}, desc);
}
}
var corsUrl = "http://{{host}}:{{ports[http][1]}}" + dirname(location.pathname) + RESOURCES_DIR + "top.txt";
/* Enable CORS*/
corsUrl += "?pipe=header(Access-Control-Allow-Origin,*)";
+var corsUrl2 = "https://{{host}}:{{ports[https][0]}}/fetch/api/resource/top.txt";
+
+integrity("Empty string integrity", url, "", /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("SHA-256 integrity", url, topSha256, /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("SHA-384 integrity", url, topSha384, /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("SHA-512 integrity", url, topSha512, /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("Invalid integrity", url, invalidSha256,
+ /* initRequestMode */ undefined, /* shouldPass */ false);
+integrity("Multiple integrities: valid stronger than invalid", url,
+ invalidSha256 + " " + topSha384, /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("Multiple integrities: invalid stronger than valid",
+ url, invalidSha512 + " " + topSha384, /* initRequestMode */ undefined,
+ /* shouldPass */ false);
+integrity("Multiple integrities: invalid as strong as valid", url,
+ invalidSha512 + " " + topSha512, /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("Multiple integrities: both are valid", url,
+ topSha384 + " " + topSha512, /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("Multiple integrities: both are invalid", url,
+ invalidSha256 + " " + invalidSha512, /* initRequestMode */ undefined,
+ /* shouldPass */ false);
+integrity("CORS empty integrity", corsUrl, "", /* initRequestMode */ undefined,
+ /* shouldPass */ true);
+integrity("CORS SHA-512 integrity", corsUrl, topSha512,
+ /* initRequestMode */ undefined, /* shouldPass */ true);
+integrity("CORS invalid integrity", corsUrl, invalidSha512,
+ /* initRequestMode */ undefined, /* shouldPass */ false);
-integrity("Empty string integrity", url, "", true);
-integrity("SHA-256 integrity", url, topSha256, true);
-integrity("SHA-384 integrity", url, topSha384, true);
-integrity("SHA-512 integrity", url, topSha512, true);
-integrity("Invalid integrity", url, invalidSha256, false);
-integrity("Multiple integrities: valid stronger than invalid", url, invalidSha256 + " " + topSha384, true);
-integrity("Multiple integrities: invalid stronger than valid", url, invalidSha512 + " " + topSha384, false);
-integrity("Multiple integrities: invalid as strong as valid", url, invalidSha512 + " " + topSha512, true);
-integrity("Multiple integrities: both are valid", url, topSha384 + " " + topSha512, true);
-integrity("Multiple integrities: both are invalid", url, invalidSha256 + " " + invalidSha512, false);
-integrity("CORS empty integrity", corsUrl, "", true);
-integrity("CORS SHA-512 integrity", corsUrl, topSha512, true);
-integrity("CORS invalid integrity", corsUrl, invalidSha512, false);
+integrity("Empty string integrity for opaque response", corsUrl2, "",
+ /* initRequestMode */ "no-cors", /* shouldPass */ true);
+integrity("SHA-* integrity for opaque response", corsUrl2, topSha512,
+ /* initRequestMode */ "no-cors", /* shouldPass */ false);
done();
PASS Check delete and has methods when using same name for different values
PASS Check set methods when called with already used name
PASS Check append methods when called with already used name
+PASS Iterate combined values
+PASS Iterate combined values in sorted order
<html>
<head>
<meta charset="utf-8">
- <title>Headers nameshake</title>
+ <title>Headers have combined (and sorted) values</title>
<meta name="help" href="https://fetch.spec.whatwg.org/#headers">
<meta name="author" title="Canon Research France" href="https://www.crf.canon.fr">
<script src="/resources/testharness.js"></script>
assert_equals(headers.get(name), (value + ", " + "newSingleValue"));
}
}, "Check append methods when called with already used name");
+
+ test(() => {
+ const headers = new Headers([["1", "a"],["1", "b"]]);
+ for(let header of headers) {
+ assert_array_equals(header, ["1", "a, b"]);
+ }
+ }, "Iterate combined values");
+
+ test(() => {
+ const headers = new Headers([["2", "a"], ["1", "b"], ["2", "b"]]),
+ expected = [["1", "b"], ["2", "a, b"]];
+ let i = 0;
+ for(let header of headers) {
+ assert_array_equals(header, expected[i]);
+ i++;
+ }
+ assert_equals(i, 2);
+ }, "Iterate combined values in sorted order")
</script>
</body>
</html>
PASS RequestInit's method is invalid
PASS RequestInit's method is forbidden
PASS RequestInit's mode is no-cors and method is not simple
-PASS RequestInit's mode is no-cors and integrity is not empty
PASS RequestInit's cache mode is only-if-cached and mode is not same-origin
PASS Request with cache mode: only-if-cached and fetch mode cors
PASS Request with cache mode: only-if-cached and fetch mode no-cors
args: ["", { "mode": "no-cors", "method": "PUT" }],
testName: "RequestInit's mode is no-cors and method is not simple"
},
- {
- args: ["", { "mode": "no-cors", "integrity": "not an empty string" }],
- testName: "RequestInit's mode is no-cors and integrity is not empty"
- },
{
args: ["", { "mode": "cors", "cache": "only-if-cached" }],
testName: "RequestInit's cache mode is only-if-cached and mode is not same-origin"
PASS Request should get its content-type from init headers if one is provided
PASS Testing request header creations with various objects
PASS Testing empty Request Content-Type header
+PASS Test that Request.headers has the [SameObject] extended attribute
});
}, "Testing empty Request Content-Type header");
+ test(function() {
+ const request1 = new Request("");
+ assert_equals(request1.headers, request1.headers);
+
+ const request2 = new Request("", {"headers": {"X-Foo": "bar"}});
+ assert_equals(request2.headers, request2.headers);
+ const headers = request2.headers;
+ request2.headers.set("X-Foo", "quux");
+ assert_equals(headers, request2.headers);
+ headers.set("X-Other-Header", "baz");
+ assert_equals(headers, request2.headers);
+ }, "Test that Request.headers has the [SameObject] extended attribute");
+
</script>
</body>
</html>
PASS Request interface: attribute method
PASS Request interface: attribute url
PASS Request interface: attribute headers
-PASS Request interface: attribute type
PASS Request interface: attribute destination
PASS Request interface: attribute referrer
PASS Request interface: attribute referrerPolicy
PASS Request interface: new Request("") must inherit property "method" with the proper type
PASS Request interface: new Request("") must inherit property "url" with the proper type
PASS Request interface: new Request("") must inherit property "headers" with the proper type
-PASS Request interface: new Request("") must inherit property "type" with the proper type
PASS Request interface: new Request("") must inherit property "destination" with the proper type
PASS Request interface: new Request("") must inherit property "referrer" with the proper type
PASS Request interface: new Request("") must inherit property "referrerPolicy" with the proper type
readonly attribute USVString url;
[SameObject] readonly attribute Headers headers;
- readonly attribute RequestType type;
readonly attribute RequestDestination destination;
readonly attribute USVString referrer;
readonly attribute ReferrerPolicy referrerPolicy;
PASS Check method attribute
PASS Check url attribute
PASS Check headers attribute
-PASS Check type attribute
PASS Check destination attribute
PASS Check referrer attribute
PASS Check referrerPolicy attribute
var attributes = ["method",
"url",
"headers",
- "type",
"destination",
"referrer",
"referrerPolicy",
return;
break;
- case "type":
- defaultValue = "";
- newValue = "style";
- break;
-
case "destination":
defaultValue = "";
newValue = "worker";
/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-init-003.sub.html
/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota.html
/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-structure.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-type-attribute-historical.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/url-encoding.html
PASS Check orginal response's body after cloning
PASS Check cloned response's body
PASS Cannot clone a disturbed response
-PASS Cloned responses should provide the same data
+FAIL Cloned responses should provide the same data assert_array_equals: cloned responses should provide the same data value is object "[object ArrayBuffer]", expected array
PASS Cancelling stream should not affect cloned one
PASS Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk)
PASS Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk)
PASS Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk)
-PASS Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk)
+FAIL Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk) assert_array_equals: Cloned buffer chunks have the same content value is object "[object ArrayBuffer]", expected array
PASS Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk)
PASS Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk)
PASS Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk)
PASS Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk)
PASS Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk)
PASS Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk)
-PASS Check response clone use structureClone for teed ReadableStreams (DataViewchunk)
+FAIL Check response clone use structureClone for teed ReadableStreams (DataViewchunk) assert_array_equals: Cloned buffer chunks have the same content value is object "[object DataView]", expected array
PASS Check default value for body attribute
PASS Check status init values and associated getter
PASS Check statusText init values and associated getter
+PASS Test that Response.headers has the [SameObject] extended attribute
"Expect response.ok is " + isOkStatus(response.status));
}
}, "Check " + attributeName + " init values and associated getter");
+
+ test(function() {
+ const response1 = new Response("");
+ assert_equals(response1.headers, response1.headers);
+
+ const response2 = new Response("", {"headers": {"X-Foo": "bar"}});
+ assert_equals(response2.headers, response2.headers);
+ const headers = response2.headers;
+ response2.headers.set("X-Foo", "quux");
+ assert_equals(headers, response2.headers);
+ headers.set("X-Other-Header", "baz");
+ assert_equals(headers, response2.headers);
+ }, "Test that Response.headers has the [SameObject] extended attribute");
</script>
</body>
</html>
/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-3.html
/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-4.html
/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-5.html
+/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-stream-disturbed-6.html
/LayoutTests/imported/w3c/web-platform-tests/fetch/api/response/response-trailer.html
High Resolution Time IDL tests
-PASS Window interface: attribute performance
-PASS WorkerGlobalScope interface: existence and properties of interface object
+PASS WindowOrWorkerGlobalScope interface: existence and properties of interface object
PASS Performance interface: existence and properties of interface object
PASS Performance interface object length
PASS Performance interface object name
PASS Performance interface: existence and properties of interface prototype object
PASS Performance interface: existence and properties of interface prototype object's "constructor" property
PASS Performance interface: operation now()
+FAIL Performance interface: attribute timeOrigin assert_true: The prototype object must have a property "timeOrigin" expected true got false
FAIL Performance interface: operation toJSON() assert_own_property: interface prototype object missing non-static operation expected property "toJSON" missing
-PASS Performance must be primary interface of window.performance
-PASS Stringification of window.performance
-PASS Performance interface: window.performance must inherit property "now()" with the proper type
-FAIL Performance interface: window.performance must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
+PASS Performance must be primary interface of [object Performance]
+PASS Stringification of [object Performance]
+PASS Performance interface: [object Performance] must inherit property "now()" with the proper type
+FAIL Performance interface: [object Performance] must inherit property "timeOrigin" with the proper type assert_inherits: property "timeOrigin" not found in prototype chain
+FAIL Performance interface: [object Performance] must inherit property "toJSON()" with the proper type assert_inherits: property "toJSON" not found in prototype chain
FAIL Test default toJSON operation of Performance memberHolderObject.toJSON is not a function. (In 'memberHolderObject.toJSON()', 'memberHolderObject.toJSON' is undefined)
typedef double DOMHighResTimeStamp;
[Exposed=(Window,Worker)]
interface Performance : EventTarget {
DOMHighResTimeStamp now();
- [Default] object toJSON();
+ readonly attribute DOMHighResTimeStamp timeOrigin;
+ [Default] object toJSON();
};
-[NoInterfaceObject,
- Exposed=(Window,Worker)]
-interface GlobalPerformance {
+partial interface WindowOrWorkerGlobalScope {
[Replaceable]
readonly attribute Performance performance;
};
-Window implements GlobalPerformance;
-
-WorkerGlobalScope implements GlobalPerformance;
-
<div id="log"></div>
<pre id='untested_idl' style='display:none'>
-[PrimaryGlobal]
-interface Window {
-};
-
-[Exposed=Worker]
-interface WorkerGlobalScope {
+[Exposed=Windows,Worker]
+interface WindowOrWorkerGlobalScope {
};
[Exposed=(Window,Worker)]
interface EventTarget {
};
+
+[Exposed=Window]
+interface PerformanceTiming {
+};
+
+[Exposed=Window]
+interface PerformanceNavigation {
+};
+
+// from nav-timing
+partial interface Performance {
+ [SameObject]
+ readonly attribute PerformanceTiming timing;
+ [SameObject]
+ readonly attribute PerformanceNavigation navigation;
+ [Default] object toJSON();
+};
</pre>
<pre id='idl'>
[Exposed=(Window,Worker)]
interface Performance : EventTarget {
DOMHighResTimeStamp now();
- [Default] object toJSON();
+ readonly attribute DOMHighResTimeStamp timeOrigin;
+ [Default] object toJSON();
};
-[NoInterfaceObject,
- Exposed=(Window,Worker)]
-interface GlobalPerformance {
+partial interface WindowOrWorkerGlobalScope {
[Replaceable]
readonly attribute Performance performance;
};
-
-Window implements GlobalPerformance;
-
-WorkerGlobalScope implements GlobalPerformance;
</pre>
<script>
idl_array.add_untested_idls(document.getElementById("untested_idl").textContent);
idl_array.add_idls(document.getElementById("idl").textContent);
- idl_array.add_objects({Performance: ["window.performance"]});
+ idl_array.add_objects({Performance: [window.performance]});
idl_array.test();
})();
Sub-directory names should be based on the URL of the corresponding part of the
multipage-version specification. For example, The URL of
-"8.3 Base64 utility methods" is [https://html.spec.whatwg.org/multipage/webappapis.html#atob](https://html.spec.whatwg.org/multipage/webappapis.html#atob). So the directory in WPT is [webappsapis/atob/](webappsapis/atob).
+"8.3 Base64 utility methods" is [https://html.spec.whatwg.org/multipage/webappapis.html#atob](https://html.spec.whatwg.org/multipage/webappapis.html#atob). So the directory in WPT is [webappapis/atob/](/html/webappapis/atob).
+
+For historical reasons, parts of HTML have their own directories:
+
+* [/2dcontext](/2dcontext)
+* [/custom-elements](/custom-elements)
+* [/eventsource](/eventsource)
+* [/imagebitmap-renderingcontext](/imagebitmap-renderingconte