haikuwebkit/LayoutTests/intersection-observer/target-deleted.html

41 lines
1.3 KiB
HTML
Raw Permalink Normal View History

[Testing] Rename test header commands to match names in WebPreferences*.yaml https://bugs.webkit.org/show_bug.cgi?id=217654 Reviewed by Simon Fraser. Tools: Renames all the test header commands (e.g. useAcceleratedDrawing) to match name in WebPreferences*.yaml files (e.g. AcceleratedDrawingEnabled). Also splits up TestFeatures into test runner specific features (e.g. runSingly) that don't have a WebPreferences counterpart, and WebPreferences specific features. This will allow future patches to support arbritrary WebPreferences more easily. * DumpRenderTree/TestOptions.cpp: * DumpRenderTree/TestOptions.h: * DumpRenderTree/mac/DumpRenderTree.mm: (setWebPreferencesForTestOptions): * TestRunnerShared/TestFeatures.cpp: * TestRunnerShared/TestFeatures.h: * WebKitTestRunner/TestController.cpp: * WebKitTestRunner/TestOptions.cpp: * WebKitTestRunner/TestOptions.h: * WebKitTestRunner/cocoa/TestControllerCocoa.mm: * WebKitTestRunner/gtk/TestControllerGtk.cpp: * WebKitTestRunner/mac/TestControllerMac.mm: * WebKitTestRunner/wpe/TestControllerWPE.cpp: LayoutTests: Update test header commands to match names in the WebPreferences*.yaml configuration files. * accessibility/attachment-element.html: * accessibility/content-changed-notification-causes-crash.html: * accessibility/contenteditable-table-check-causes-crash.html: * accessibility/duplicate-axrenderobject-crash.html: * accessibility/ios-simulator/attributed-string-for-range.html: * accessibility/ios-simulator/has-touch-event-listener-with-shadow.html: * accessibility/ios-simulator/media-with-aria-label.html: * accessibility/mac/attachment-element-replacement-character.html: * accessibility/mac/video-tag-hit-test.html: * accessibility/mac/video-volume-slider-accessibility.html: * accessibility/media-element.html: * accessibility/media-emits-object-replacement.html: * accessibility/media-with-aria-label.html: * animations/resume-after-page-cache.html: * compositing/accelerated-layers-after-back.html: * compositing/iframes/page-cache-layer-tree.html: * compositing/page-cache-back-crash.html: * compositing/show-composited-iframe-on-back-button.html: * compositing/video/poster-expected.html: * compositing/video/poster.html: * css3/color-filters/color-filter-animation.html: * css3/color-filters/color-filter-apple-invert-lightness.html: * css3/color-filters/color-filter-backgrounds-borders.html: * css3/color-filters/color-filter-box-shadow.html: * css3/color-filters/color-filter-brightness.html: * css3/color-filters/color-filter-caret-color.html: * css3/color-filters/color-filter-color-property-list-item.html: * css3/color-filters/color-filter-color-property.html: * css3/color-filters/color-filter-color-text-decorations.html: * css3/color-filters/color-filter-column-rule.html: * css3/color-filters/color-filter-composition-underline-color-expected.html: * css3/color-filters/color-filter-composition-underline-color.html: * css3/color-filters/color-filter-contrast.html: * css3/color-filters/color-filter-current-color.html: * css3/color-filters/color-filter-filter-list.html: * css3/color-filters/color-filter-gradients.html: * css3/color-filters/color-filter-grayscale.html: * css3/color-filters/color-filter-hue-rotate.html: * css3/color-filters/color-filter-ignore-semantic-expected.html: * css3/color-filters/color-filter-ignore-semantic.html: * css3/color-filters/color-filter-inherits.html: * css3/color-filters/color-filter-invert.html: * css3/color-filters/color-filter-opacity.html: * css3/color-filters/color-filter-outline.html: * css3/color-filters/color-filter-parsing.html: * css3/color-filters/color-filter-saturate.html: * css3/color-filters/color-filter-sepia.html: * css3/color-filters/color-filter-text-decoration-shadow.html: * css3/color-filters/color-filter-text-emphasis.html: * css3/color-filters/color-filter-text-shadow.html: * css3/color-filters/color-filter-text-stroke.html: * css3/color-filters/svg/color-filter-inline-svg.html: * editing/async-clipboard/clipboard-change-data-while-reading.html: * editing/async-clipboard/clipboard-change-data-while-writing.html: * editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html: * editing/async-clipboard/clipboard-read-text-from-platform.html: * editing/async-clipboard/clipboard-read-text-same-origin.html: * editing/async-clipboard/clipboard-read-while-pasting.html: * editing/async-clipboard/sanitize-when-reading-markup.html: * editing/execCommand/set-backColor-with-color-filter-from-scripts.html: * editing/execCommand/set-foreColor-with-color-filter-from-scripts.html: * editing/mac/attributed-string/attrib-string-colors-with-color-filter.html: * editing/mac/attributed-string/attrib-string-range-with-color-filter.html: * editing/mac/attributed-string/attribute-string-for-copy-with-color-filter.html: * editing/mac/attributed-string/attributed-string-for-typing-with-color-filter.html: * editing/mac/input/unconfirmed-text-navigation-with-page-cache.html: * editing/pasteboard/copy-paste-attachment.html: * editing/pasteboard/dom-paste/dom-paste-confirmation.html: * editing/pasteboard/dom-paste/dom-paste-consecutive-confirmations.html: * editing/pasteboard/dom-paste/dom-paste-rejection.html: * editing/pasteboard/dom-paste/dom-paste-requires-user-gesture.html: * editing/pasteboard/dom-paste/dom-paste-same-origin.html: * editing/pasteboard/drag-file-promises-to-editable-element-as-URLs.html: * editing/pasteboard/drag-file-promises-to-editable-element-as-attachment.html: * editing/pasteboard/drag-files-to-editable-element-as-URLs.html: * editing/pasteboard/drag-files-to-editable-element-as-attachment.html: * editing/pasteboard/entries-api/DirectoryEntry-getFile-back-forward-cache.html: * editing/pasteboard/entries-api/DirectoryReader-readEntries-back-forward-cache.html: * editing/pasteboard/paste-dark-mode-color-filtered.html: * editing/selection/selection-change-in-disconnected-frame-crash.html: * editing/style/inverse-color-filter.html: * editing/style/set-backColor-with-color-filter.html: * editing/style/set-foreColor-with-color-filter.html: * fast/attachment/attachment-action-expected.html: * fast/attachment/attachment-action.html: * fast/attachment/attachment-border-should-stay-inside-attachment.html: * fast/attachment/attachment-borderless-expected-mismatch.html: * fast/attachment/attachment-borderless.html: * fast/attachment/attachment-default-icon-expected.html: * fast/attachment/attachment-default-icon.html: * fast/attachment/attachment-dom.html: * fast/attachment/attachment-dynamic-type.html: * fast/attachment/attachment-folder-icon-expected.html: * fast/attachment/attachment-folder-icon.html: * fast/attachment/attachment-icon-from-file-extension-expected.html: * fast/attachment/attachment-icon-from-file-extension.html: * fast/attachment/attachment-label-highlight.html: * fast/attachment/attachment-progress.html: * fast/attachment/attachment-rendering.html: * fast/attachment/attachment-respects-css-size.html: * fast/attachment/attachment-select-on-click-inside-user-select-all.html: * fast/attachment/attachment-select-on-click.html: * fast/attachment/attachment-subtitle-resize.html: * fast/attachment/attachment-subtitle.html: * fast/attachment/attachment-thumbnail-preserves-aspect-ratio.html: * fast/attachment/attachment-title-with-rtl-expected.html: * fast/attachment/attachment-title-with-rtl.html: * fast/attachment/attachment-title.html: * fast/attachment/attachment-type-attribute-expected.html: * fast/attachment/attachment-type-attribute.html: * fast/attachment/attachment-uti-expected.html: * fast/attachment/attachment-uti.html: * fast/attachment/attachment-wrapping-action-expected-mismatch.html: * fast/attachment/attachment-wrapping-action.html: * fast/block/float/float-not-removed-from-first-letter.html: * fast/block/float/split-inline-sibling-of-float-crash.html: * fast/canvas/2d.currentPoint.html: * fast/canvas/2d.getPath.modification.html: * fast/canvas/2d.getPath.newobject.html: * fast/canvas/2d.setPath.html: * fast/canvas/webgl/canvas-webgl-page-cache.html: * fast/css/fontloader-page-cache.html: * fast/css/has-attachment.html: * fast/css/pseudo-required-optional-unapplied.html: * fast/dom/DeviceMotion/no-page-cache.html: * fast/dom/DeviceOrientation/event-after-navigation.html: * fast/dom/DeviceOrientation/no-page-cache.html: * fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html: * fast/dom/HTMLKeygenElement/keygen-keytype.html: * fast/dom/HTMLKeygenElement/keygen.html: * fast/dom/Window/timer-resume-on-navigation-back.html: * fast/dom/adopt-node-crash-2.html: * fast/dom/attribute-set-before-element-in-tree.html: * fast/dom/domstring-attribute-reflection.html: * fast/dom/set-custom-validity-with-too-few-arguments.html: * fast/dom/tabindex-defaults.html: * fast/dom/wrapper-classes.html: * fast/dynamic/insertAdjacentHTML-allowed-parents.html: * fast/events/ios/do-not-show-keyboard-when-focusing-after-blur.html: * fast/events/ios/pdf-modifer-key-down-crash.html: * fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation.html: * fast/events/onunload-back-to-page-cache.html: * fast/events/pagehide-timeout.html: * fast/events/pagehide-xhr-open.html: * fast/events/pageshow-pagehide-on-back-cached-with-frames.html: * fast/events/pageshow-pagehide-on-back-cached.html: * fast/events/suspend-timers.html: * fast/files/file-reader-back-forward-cache.html: * fast/flexbox/crash-button-keygen.html: * fast/forms/ValidityState-001.html: * fast/forms/autocomplete-off-with-default-value-does-not-clear.html: * fast/forms/autofocus-keygen.html: * fast/forms/checkValidity-001.html: * fast/forms/fieldset/fieldset-elements-htmlcollection.html: * fast/forms/fieldset/fieldset-elements.html: * fast/forms/form-associated-element-crash3.html: * fast/forms/form-attribute.html: * fast/forms/form-collection-elements-order.html: * fast/forms/form-collection-elements.html: * fast/forms/form-collection-radio-node-list.html: * fast/forms/ios/no-scrolling-when-moving-focus-between-adjacent-fields.html: * fast/forms/label/labelable-elements.html: * fast/forms/label/labels-add-htmlFor-label.html: * fast/forms/label/labels-add-parent-label.html: * fast/forms/label/labels-change-htmlFor-attribute.html: * fast/forms/label/labels-multiple-sibling-labels.html: * fast/forms/label/labels-parent-and-sibling-labels.html: * fast/forms/label/labels-remove-htmlFor-attribute.html: * fast/forms/label/labels-remove-htmlFor-label.html: * fast/forms/label/labels-remove-parent-label.html: * fast/forms/large-parts.html: * fast/forms/scrollheight-with-mutation-crash.html: * fast/forms/setCustomValidity-arguments.html: * fast/forms/setCustomValidity-existence.html: * fast/forms/setCustomValidity-null-parameter.html: * fast/forms/state-restore-skip-stateless.html: * fast/forms/update-form-owner-in-moved-subtree-assertion-failure.html: * fast/forms/validationMessage.html: * fast/forms/willvalidate.html: * fast/frames/frame-crash-with-page-cache.html: * fast/frames/frame-unload-navigate-and-setTimeout-assert-fail.html: * fast/frames/page-hide-document-open.html: * fast/frames/restoring-page-cache-should-not-run-scripts-via-style-update.html: * fast/frames/restoring-page-cache-should-not-run-scripts.html: * fast/harness/page-cache-crash-on-data-urls.html: * fast/harness/use-page-cache.html: * fast/hidpi/video-controls-in-hidpi.html: * fast/history/back-forward-cache-visibility-state.html: * fast/history/back-from-page-with-focused-iframe.html: * fast/history/go-back-to-iframe-with-plugin.html: * fast/history/go-back-to-object-subframe.html: * fast/history/history-back-while-pdf-in-pagecache.html: * fast/history/multiple-back-forward-navigations.html: * fast/history/page-cache-MessagePort-pending-message.html: * fast/history/page-cache-active-fetch-request-blobReadAsBlob.html: * fast/history/page-cache-active-fetch-request-blobReadAsReadableStream.html: * fast/history/page-cache-active-fetch-request-blobReadAsText.html: * fast/history/page-cache-active-fetch-response-blobReadAsBlob.html: * fast/history/page-cache-after-window-open.html: * fast/history/page-cache-back-navigation-crash.html: * fast/history/page-cache-clearing.html: * fast/history/page-cache-closed-audiocontext.html: * fast/history/page-cache-createImageBitmap.html: * fast/history/page-cache-createObjectURL-using-open-panel.html: * fast/history/page-cache-createObjectURL.html: * fast/history/page-cache-destroy-document.html: * fast/history/page-cache-element-state-focused.html: * fast/history/page-cache-execute-script-during-restore.html: * fast/history/page-cache-geolocation-active-oneshot.html: * fast/history/page-cache-geolocation-active-watcher.html: * fast/history/page-cache-geolocation.html: * fast/history/page-cache-gpu-canvas-context.html: * fast/history/page-cache-iframe-js-url.html: * fast/history/page-cache-indexed-closed-db.html: * fast/history/page-cache-indexed-opened-db.html: * fast/history/page-cache-media-recorder.html: * fast/history/page-cache-media-source-closed-2.html: * fast/history/page-cache-media-source-closed.html: * fast/history/page-cache-media-source-opened.html: * fast/history/page-cache-navigate-during-restore.html: * fast/history/page-cache-notification-showing.html: * fast/history/page-cache-notification-suspendable.html: * fast/history/page-cache-removed-source-buffer.html: * fast/history/page-cache-running-audiocontext.html: * fast/history/page-cache-subframes-with-provisional-load.html: * fast/history/page-cache-suspended-audiocontext.html: * fast/history/page-cache-webdatabase-no-transaction-db.html: * fast/history/page-cache-webdatabase-pending-transaction.html: * fast/history/page-cache-with-opener.html: * fast/history/pagehide-remove-iframe-crash.html: * fast/history/resources/page-cache-window-with-iframe.html: * fast/history/resources/page-cache-window-with-opener.html: * fast/history/timed-refresh-in-cached-frame.html: * fast/html/clone-keygen.html: * fast/html/keygen.html: * fast/html/marquee-reparent-check.html: * fast/html/menuitem-element.html: * fast/images/animated-gif-restored-from-bfcache.html: * fast/invalid/residual-style-expected.html: * fast/invalid/residual-style.html: * fast/layers/video-layer.html: * fast/loader/data-url-load-denied.html: * fast/loader/frames-with-unload-handlers-in-page-cache.html: * fast/loader/image-in-page-cache.html: * fast/loader/input-element-page-cache-crash.html: * fast/loader/navigate-with-new-target-after-back-forward-navigation.html: * fast/loader/navigate-with-post-to-new-target-after-back-forward-navigation.html: * fast/loader/scroll-position-restored-on-back.html: * fast/loader/stateobjects/no-popstate-when-back-to-stateless-entry-with-page-cache.html: * fast/loader/stateobjects/popstate-fires-with-page-cache.html: * fast/loader/unschedule-relayout-after-unload.html: * fast/loader/window-properties-restored-from-page-cache.html: * fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: * fast/mediastream/RTCPeerConnection-page-cache.html: * fast/mediastream/captureInGPUProcess.html: * fast/mediastream/media-stream-track-interrupted.html: * fast/multicol/span/positioned-child-not-removed-crash.html: * fast/overflow/horizontal-scroll-after-back.html: * fast/ruby/float-object-doesnt-crash.html: * fast/sandbox/ios/sandbox-mach-lookup-attachment-element.html: * fast/scrolling/iframe-scrollable-after-back.html: * fast/scrolling/ios/scroll-events-back-forward-after-pageshow.html: * fast/scrolling/ios/scroll-events-back-forward.html: * fast/scrolling/ios/touch-scroll-back-forward.html: * fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html: * fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html: * fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-hovered.html: * fast/scrolling/mac/scrollbars/overflow-overlay-scrollbar-reveal.html: * fast/scrolling/mac/scrollbars/overlay-scrollbar-hovered.html: * fast/scrolling/mac/scrollbars/overlay-scrollbar-reveal.html: * fast/scrolling/mac/scrollbars/overlay-scrollbar-state.html: * fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html: * fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal.html: * fast/scrolling/overflow-scrollable-after-back.html: * fast/scrolling/page-cache-back-overflow-scroll-restore.html: * fast/scrolling/rtl-scrollbars-animation-property.html: * fast/shadow-dom/keygen-shadow-manipulation.html: * fast/table/crash-splitColumn-2.html: * fast/table/multiple-captions-crash3-expected.html: * fast/table/multiple-captions-crash3.html: * fast/text-autosizing/ios/text-autosizing-after-back.html: * fast/viewport/ios/ignore-minimum-device-width-for-page-with-viewport-device-width.html: * fast/viewport/ios/minimum-scale-after-changing-view-scale.html: * fast/viewport/ios/resources/go-back.html: * fast/viewport/ios/shrink-to-fit-content-constant-width.html: * fast/viewport/ios/shrink-to-fit-content-large-constant-width.html: * fast/viewport/ios/shrink-to-fit-content-large-width-breakpoint.html: * fast/viewport/ios/shrink-to-fit-content-no-viewport.html: * fast/viewport/ios/shrink-to-fit-content-responsive-viewport-with-horizontal-overflow.html: * fast/viewport/ios/shrink-to-fit-content-temporary-overflow.html: * fast/viewport/ios/shrink-to-fit-for-page-without-viewport-meta.html: * fast/viewport/ios/shrink-to-fit-large-content-width.html: * fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html: * fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html: * fast/viewport/viewport-128.html: * fast/workers/worker-page-cache.html: * fullscreen/video-controls-drag.html: * fullscreen/video-controls-override.html: * fullscreen/video-controls-rtl.html: * fullscreen/video-controls-timeline.html: * http/tests/cache-storage/page-cache-domcache-pending-promise.html: * http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html: * http/tests/cache/display-image-unset-allows-cached-image-load.html: * http/tests/eventsource/eventsource-page-cache-connected.html: * http/tests/eventsource/eventsource-page-cache-connecting.html: * http/tests/loading/main-resource-delegates-on-back-navigation.html: * http/tests/loading/unfinished-load-back-to-cached-page-callbacks.html: * http/tests/loading/unfinished-main-resource-back-to-cached-page-callbacks.html: * http/tests/media/hls/video-controls-live-stream.html: * http/tests/media/hls/video-duration-accessibility.html: * http/tests/media/reload-after-dialog.html: * http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials.html: * http/tests/misc/resources/check-keygen-post.php: * http/tests/misc/submit-post-keygen.html: * http/tests/navigation/go-back-to-error-page.html: * http/tests/navigation/https-in-page-cache.html: * http/tests/navigation/https-no-store-subframe-in-page-cache.html: * http/tests/navigation/image-load-in-pagehide-handler.html: * http/tests/navigation/page-cache-failed-xhr.html: * http/tests/navigation/page-cache-fontfaceset.html: * http/tests/navigation/page-cache-fragment-referrer.html: * http/tests/navigation/page-cache-getUserMedia-pending-promise.html: * http/tests/navigation/page-cache-iframe-no-current-historyItem.html: * http/tests/navigation/page-cache-iframe-provisional-load-async-delegates.html: * http/tests/navigation/page-cache-iframe-provisional-load.html: * http/tests/navigation/page-cache-mediakeysession.html: * http/tests/navigation/page-cache-mediastream.html: * http/tests/navigation/page-cache-pending-image-load-cache-partition.html: * http/tests/navigation/page-cache-pending-image-load.html: * http/tests/navigation/page-cache-pending-load.html: * http/tests/navigation/page-cache-pending-ping-load-cross-origin.html: * http/tests/navigation/page-cache-pending-ping-load-same-origin.html: * http/tests/navigation/page-cache-requestAnimationFrame.html: * http/tests/navigation/page-cache-video.html: * http/tests/navigation/page-cache-xhr-in-loading-iframe.html: * http/tests/navigation/page-cache-xhr-in-pagehide.html: * http/tests/navigation/page-cache-xhr.html: * http/tests/navigation/resources/https-in-page-cache-3.html: * http/tests/navigation/subframe-pagehide-handler-starts-load.html: * http/tests/navigation/subframe-pagehide-handler-starts-load2.html: * http/tests/paymentrequest/page-cache-closed-payment-request.https.html: * http/tests/paymentrequest/page-cache-completed-payment-response.https.html: * http/tests/paymentrequest/page-cache-created-payment-request.https.html: * http/tests/paymentrequest/page-cache-created-payment-response.https.html: * http/tests/paymentrequest/page-cache-interactive-payment-request.https.html: * http/tests/paymentrequest/page-cache-retried-payment-response.https.html: * http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html: * http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html: * http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html: * http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html: * http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials.html: * http/tests/security/cross-origin-window-open-insert-script.html: * http/tests/security/cross-origin-window-open-javascript-url.html: * http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: * http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html: * http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: * http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: * http/tests/security/navigate-when-restoring-cached-page.html: * http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html: * http/tests/security/xss-DENIED-script-inject-into-inactive-window.html: * http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html: * http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html: * http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html: * http/tests/ssl/applepay/page-cache-active-apple-pay-session.html: * http/tests/ssl/applepay/page-cache-inactive-apple-pay-session.html: * http/tests/websocket/tests/hybi/closed-when-entering-page-cache.html: * http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html: * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html: * http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html: * http/tests/workers/service/page-cache-service-worker-pending-promise.https.html: * http/tests/workers/service/page-caching.html: * http/wpt/beacon/support/sendBeacon-onpagehide-window.html: * http/wpt/fetch/resources/fetch-in-pagehide-window.html: * http/wpt/notifications/constructor-basic-bfcache.html: * http/wpt/service-workers/mac/throttleable.https.html: * http/wpt/service-workers/service-worker-spinning-activate.https.html: * http/wpt/service-workers/service-worker-spinning-fetch.https.html: * http/wpt/service-workers/service-worker-spinning-install.https.html: * http/wpt/service-workers/service-worker-spinning-message.https.html: * imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow-expected.html: * imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow.html: * imported/blink/fast/text/international-iteration-simple-text.html: * inspector/css/pseudo-element-matches.html: * intersection-observer/intersection-observer-entry-interface.html: * intersection-observer/intersection-observer-interface.html: * intersection-observer/root-element-deleted.html: * intersection-observer/root-element-moved.html: * intersection-observer/target-deleted.html: * js/dom/regress-157246.html: * loader/go-back-cached-main-resource.html: * loader/go-back-to-different-window-size.html: * media/accessibility-closed-captions-has-aria-owns.html: * media/adopt-node-crash.html: * media/airplay-allows-buffering.html: * media/airplay-autoplay.html: * media/audio-as-video-fullscreen.html: * media/audio-controls-do-not-fade-out.html: * media/audio-controls-rendering.html: * media/audio-controls-timeline-in-media-document.html: * media/audio-delete-while-slider-thumb-clicked.html: * media/audio-repaint.html: * media/click-placeholder-not-pausing.html: * media/click-volume-bar-not-pausing.html: * media/controls-after-reload.html: * media/controls-drag-timebar.html: * media/controls-right-click-on-timebar.html: * media/controls-strict.html: * media/controls-styling.html: * media/controls-without-preload.html: * media/controls/airplay-controls.html: * media/controls/airplay-picker.html: * media/controls/basic.html: * media/controls/elementOrder.html: * media/controls/forced-tracks-only.html: * media/controls/fullscreen-button-inline-layout.html: * media/controls/inline-elements-dropoff-order.html: * media/controls/picture-in-picture.html: * media/controls/pip-placeholder-without-video-controls.html: * media/controls/showControlsButton.html: * media/controls/statusDisplay.html: * media/controls/statusDisplayBad.html: * media/controls/track-menu.html: * media/crash-closing-page-with-media-as-plugin-fallback.html: * media/mac/controls-panel-not-clipped-out-expected.html: * media/mac/controls-panel-not-clipped-out.html: * media/media-captions-no-controls.html: * media/media-controller-drag-crash.html: * media/media-controls-accessibility.html: * media/media-controls-cancel-events.html: * media/media-controls-clone.html: * media/media-controls-drag-timeline-set-controls-property.html: * media/media-controls-timeline-updates-after-playing.html: * media/media-controls-timeline-updates-when-hovered.html: * media/media-controls-timeline-updates.html: * media/media-document-audio-controls-visible.html: * media/media-document-audio-repaint.html: * media/media-fullscreen-loop-inline.html: * media/media-fullscreen-pause-inline.html: * media/media-fullscreen-return-to-inline.html: * media/media-source/media-source-page-cache.html: * media/nodesFromRect-shadowContent.html: * media/progress-events-generated-correctly.html: * media/require-user-gesture-to-load-video.html: * media/restore-from-page-cache.html: * media/tab-focus-inside-media-elements.html: * media/track/track-cue-rendering-horizontal.html: * media/track/track-cue-rendering-snap-to-lines-not-set.html: * media/track/track-cue-rendering-vertical.html: * media/track/track-cues-cuechange.html: * media/track/track-cues-enter-exit.html: * media/track/track-in-band-duplicate-tracks-when-source-changes.html: * media/track/track-manual-mode.html: * media/video-click-dblckick-standalone.html: * media/video-controls-audiotracks-trackmenu.html: * media/video-controls-captions-trackmenu-localized.html: * media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles.html: * media/video-controls-captions-trackmenu-sorted.html: * media/video-controls-captions-trackmenu.html: * media/video-controls-drop-and-restore-timeline.html: * media/video-controls-in-media-document.html: * media/video-controls-no-display-with-text-track.html: * media/video-controls-rendering.html: * media/video-controls-show-on-kb-or-ax-event.html: * media/video-controls-toggling.html: * media/video-controls-transformed.html: * media/video-controls-visible-audio-only.html: * media/video-controls-visible-exiting-fullscreen.html: * media/video-controls-zoomed.html: * media/video-display-toggle.html: * media/video-empty-source.html: * media/video-fullscreen-only-controls.html: * media/video-fullscreen-only-playback.html: * media/video-initially-hidden-volume-slider-up.html: * media/video-no-audio.html: * media/video-play-audio-require-user-gesture.html: * media/video-play-require-user-gesture.html: * media/video-trackmenu-selection.html: * media/video-volume-slider-drag.html: * media/video-volume-slider.html: * media/video-zoom-controls.html: * media/volume-bar-empty-when-muted.html: * platform/ios/ios/fixed/fixed-back-forward.html: * platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html: * platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html: * platform/ios/mediastream/audio-muted-in-background-tab.html: * platform/ios/mediastream/getUserMedia-single-capture-gpu-process.html: * platform/ios/mediastream/getUserMedia-single-capture.html: * platform/ipad/fast/viewport/meta-viewport-ignored.html: * platform/ipad/fast/viewport/viewport-overriden-by-minimum-effective-width-if-ignore-meta-viewport.html: * plugins/crash-restoring-plugin-page-from-page-cache.html: * plugins/frameset-with-plugin-frame.html: * plugins/netscape-plugin-page-cache-works.html: * requestidlecallback/requestidlecallback-in-page-cache.html: * storage/indexeddb/IDBRequest-page-cache.html: * storage/indexeddb/IDBTransaction-page-cache.html: * svg/dom/css-animate-input-foucs-crash.html: * swipe/basic-cached-back-swipe.html: * swipe/main-frame-pinning-requirement.html: * swipe/pushState-cached-back-swipe.html: * swipe/pushState-programmatic-back-while-swiping-crash.html: * swipe/pushstate-with-manual-scrollrestoration.html: * tiled-drawing/scrolling/null-parent-back-crash.html: * tiled-drawing/tiled-drawing-scroll-position-page-cache-restoration.html: * webanimations/animation-page-cache.html: * webrtc/datachannel/datachannel-page-cache-send.html: * webrtc/datachannel/datachannel-page-cache.html: * webrtc/peerconnection-new-candidate-page-cache.html: * webrtc/peerconnection-page-cache-long.html: * webrtc/peerconnection-page-cache.html: * webrtc/video-rotation-no-cvo.html: Canonical link: https://commits.webkit.org/230409@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-10-13 17:16:15 +00:00
<!DOCTYPE html><!-- webkit-test-runner [ IntersectionObserverEnabled=true ] -->
IntersectionObserver doesn't keep target's JS wrapper alive https://bugs.webkit.org/show_bug.cgi?id=190235 Reviewed by Ryosuke Niwa. Source/WebCore: Retain JS wrappers of targets in queued entries using a vector of GCReachableRef owned by IntersectionObserver, which gets cleared after the entries have been delivered. Make IntersectionObserver::takeRecords return a struct which has both the vector of GCReachableRefs for targets and the vector of intersection observer entries, so that the GCReachableRefs survive until the creation of JS wrappers for the entries. Modify IntersectionObserver::hasPendingActivity to keep the observer alive while it has entries to deliver. Tests: intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html intersection-observer/target-deleted.html * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSIntersectionObserverEntryCustom.cpp: (WebCore::JSIntersectionObserverEntry::visitAdditionalChildren): Keep the target element's wrapper alive while the IntersectionObserverEntry's wrapper is alive. * page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::takeRecords): Change return type to include GCReachableRefs for each record's target, so that each target can be kept until a JS wrapper is constructed for its IntersectionObserverEntry. (WebCore::IntersectionObserver::appendQueuedEntry): (WebCore::IntersectionObserver::notify): Erase GCReachableRefs for targets after delivering the corresponding records. (WebCore::IntersectionObserver::hasPendingActivity const): Keep the IntersectionObserver alive until queued entries are delivered. (WebCore::IntersectionObserver::stop): * page/IntersectionObserver.h: * page/IntersectionObserver.idl: * page/IntersectionObserverEntry.h: (WebCore::IntersectionObserverEntry::target const): Make this return a raw pointer instead of a RefPtr so that it can be called in JSIntersectionObserverEntry::visitAdditionalChildren, which runs on the GC thread (it's illegal to ref a Node on a non-main thread). * page/IntersectionObserverEntry.idl: LayoutTests: Add test coverage. Update test that depends on a target getting GC'd to call takeRecords() since targets with pending entries are no logner GC'd. * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive-expected.txt: Added. * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html: Added. * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive-expected.txt: Added. * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html: Added. * intersection-observer/root-element-deleted.html: * intersection-observer/target-deleted-expected.txt: Added. * intersection-observer/target-deleted.html: Added. Canonical link: https://commits.webkit.org/206123@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237880 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-06 20:52:51 +00:00
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../resources/gc.js"></script>
<body>
<div id="target" style="width: 100px; height: 100px; background-color: green"></div>
<script>
function observerShouldBeRemoved()
{
return new Promise(function(resolve) {
function testIfRemoved() {
gc();
if (internals && internals.numberOfIntersectionObservers(document) == 0)
resolve();
else
requestAnimationFrame(testIfRemoved);
}
testIfRemoved();
});
}
IntersectionObserver doesn't keep target's JS wrapper alive https://bugs.webkit.org/show_bug.cgi?id=190235 Reviewed by Ryosuke Niwa. Source/WebCore: Retain JS wrappers of targets in queued entries using a vector of GCReachableRef owned by IntersectionObserver, which gets cleared after the entries have been delivered. Make IntersectionObserver::takeRecords return a struct which has both the vector of GCReachableRefs for targets and the vector of intersection observer entries, so that the GCReachableRefs survive until the creation of JS wrappers for the entries. Modify IntersectionObserver::hasPendingActivity to keep the observer alive while it has entries to deliver. Tests: intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html intersection-observer/target-deleted.html * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSIntersectionObserverEntryCustom.cpp: (WebCore::JSIntersectionObserverEntry::visitAdditionalChildren): Keep the target element's wrapper alive while the IntersectionObserverEntry's wrapper is alive. * page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::takeRecords): Change return type to include GCReachableRefs for each record's target, so that each target can be kept until a JS wrapper is constructed for its IntersectionObserverEntry. (WebCore::IntersectionObserver::appendQueuedEntry): (WebCore::IntersectionObserver::notify): Erase GCReachableRefs for targets after delivering the corresponding records. (WebCore::IntersectionObserver::hasPendingActivity const): Keep the IntersectionObserver alive until queued entries are delivered. (WebCore::IntersectionObserver::stop): * page/IntersectionObserver.h: * page/IntersectionObserver.idl: * page/IntersectionObserverEntry.h: (WebCore::IntersectionObserverEntry::target const): Make this return a raw pointer instead of a RefPtr so that it can be called in JSIntersectionObserverEntry::visitAdditionalChildren, which runs on the GC thread (it's illegal to ref a Node on a non-main thread). * page/IntersectionObserverEntry.idl: LayoutTests: Add test coverage. Update test that depends on a target getting GC'd to call takeRecords() since targets with pending entries are no logner GC'd. * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive-expected.txt: Added. * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html: Added. * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive-expected.txt: Added. * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html: Added. * intersection-observer/root-element-deleted.html: * intersection-observer/target-deleted-expected.txt: Added. * intersection-observer/target-deleted.html: Added. Canonical link: https://commits.webkit.org/206123@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237880 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-06 20:52:51 +00:00
async_test(function(t) {
let observer = new IntersectionObserver(function(entries) {
if (entries[0].isIntersecting) {
entries[0].target.remove();
observerShouldBeRemoved().then(function() {
t.done();
});
IntersectionObserver doesn't keep target's JS wrapper alive https://bugs.webkit.org/show_bug.cgi?id=190235 Reviewed by Ryosuke Niwa. Source/WebCore: Retain JS wrappers of targets in queued entries using a vector of GCReachableRef owned by IntersectionObserver, which gets cleared after the entries have been delivered. Make IntersectionObserver::takeRecords return a struct which has both the vector of GCReachableRefs for targets and the vector of intersection observer entries, so that the GCReachableRefs survive until the creation of JS wrappers for the entries. Modify IntersectionObserver::hasPendingActivity to keep the observer alive while it has entries to deliver. Tests: intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html intersection-observer/target-deleted.html * Sources.txt: * WebCore.xcodeproj/project.pbxproj: * bindings/js/JSIntersectionObserverEntryCustom.cpp: (WebCore::JSIntersectionObserverEntry::visitAdditionalChildren): Keep the target element's wrapper alive while the IntersectionObserverEntry's wrapper is alive. * page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::takeRecords): Change return type to include GCReachableRefs for each record's target, so that each target can be kept until a JS wrapper is constructed for its IntersectionObserverEntry. (WebCore::IntersectionObserver::appendQueuedEntry): (WebCore::IntersectionObserver::notify): Erase GCReachableRefs for targets after delivering the corresponding records. (WebCore::IntersectionObserver::hasPendingActivity const): Keep the IntersectionObserver alive until queued entries are delivered. (WebCore::IntersectionObserver::stop): * page/IntersectionObserver.h: * page/IntersectionObserver.idl: * page/IntersectionObserverEntry.h: (WebCore::IntersectionObserverEntry::target const): Make this return a raw pointer instead of a RefPtr so that it can be called in JSIntersectionObserverEntry::visitAdditionalChildren, which runs on the GC thread (it's illegal to ref a Node on a non-main thread). * page/IntersectionObserverEntry.idl: LayoutTests: Add test coverage. Update test that depends on a target getting GC'd to call takeRecords() since targets with pending entries are no logner GC'd. * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive-expected.txt: Added. * intersection-observer/intersection-observer-entry-keeps-js-wrapper-of-target-alive.html: Added. * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive-expected.txt: Added. * intersection-observer/intersection-observer-keeps-js-wrapper-of-target-alive.html: Added. * intersection-observer/root-element-deleted.html: * intersection-observer/target-deleted-expected.txt: Added. * intersection-observer/target-deleted.html: Added. Canonical link: https://commits.webkit.org/206123@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237880 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-11-06 20:52:51 +00:00
}
});
observer.observe(document.getElementById("target"));
assert_equals(internals.numberOfIntersectionObservers(document), 1);
}, "IntersectionObserver doesn't keep unreachable target alive");
</script>
</body>
</html>