Timeline



Nov 7, 2021:

2:16 PM Changeset in webkit [285396] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore

Non-unified build fixes, early November 2021 edition take two
https://bugs.webkit.org/show_bug.cgi?id=232801

Unreviewed non-unified build fixes.

  • Modules/WebGPU/GPUColorWrite.h:
  • Modules/WebGPU/GPUSupportedLimits.h:
  • Modules/WebGPU/GPUValidationError.h:
  • css/parser/CSSParserIdioms.h:
1:29 PM Changeset in webkit [285395] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Pass MatchedProperties PropertyCascade setters
https://bugs.webkit.org/show_bug.cgi?id=232799

Reviewed by Alan Bujtas.

Reduce the number of arguments and make it easier to expand.

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::setPropertyInternal):
(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::setDeferred):
(WebCore::Style::PropertyCascade::addMatch):

  • style/PropertyCascade.h:
1:13 PM Changeset in webkit [285394] by Cameron McCormack
  • 12 edits
    405 adds in trunk/LayoutTests

Restore canvas WPTs removed in bug 232449
https://bugs.webkit.org/show_bug.cgi?id=232795
<rdar://problem/85108161>

Rubber-stamped by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/manual/README.md: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_arcto_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_arcto_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_beziercurveto_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/canvas_complexshapes_beziercurveto_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/building-paths/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/canvas_compositing_globalcompositeoperation_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/canvas_compositing_globalcompositeoperation_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/compositing/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/canvas-with-padding-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/canvas-with-padding.html: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/getContextAttributes-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/getContextAttributes.html: Added.
  • web-platform-tests/html/canvas/element/manual/context-attributes/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas_self_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_crossorigin.sub-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_crossorigin.sub.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_html_image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_html_image.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_1-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_1.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-blob.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-blob.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height-orientation-none.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height-orientation-none.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-from-element.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-with-src-rect.tentative-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/drawImage-with-src-rect.tentative.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/image-orientation/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/canvas_complexshapes_ispointInpath_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/canvas_complexshapes_ispointInpath_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_002-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_003-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_004-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_005-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-paths-to-the-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.extra-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.normal-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.normal.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.semi-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-condensed-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-condensed.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-expanded-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.fontStretch.ultra-expanded.html: Added.
  • web-platform-tests/html/canvas/element/manual/drawing-text-to-the-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/canvas_colorsandstyles_createlineargradient_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/canvas_colorsandstyles_createlineargradient_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-rotation-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient-rotation.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/conic-gradient.html: Added.
  • web-platform-tests/html/canvas/element/manual/fill-and-stroke-styles/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-blur-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-blur.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-component-transfer-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-component-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-convolve-matrix-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/canvas-filter-object-convolve-matrix.html: Added.
  • web-platform-tests/html/canvas/element/manual/filters/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/imagesmoothing-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/imagesmoothing.html: Added.
  • web-platform-tests/html/canvas/element/manual/image-smoothing/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-ImageBitmap-close-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-ImageBitmap-close.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-video-resize.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/common.sub.js: Added.

(makeCanvas):
(imageBitmapVideoPromise.new.Promise.video.oncanplaythrough):
(imageBitmapVideoPromise.new.Promise):
(makeVideo):
(response.arrayBuffer.then.):
(response.arrayBuffer.then):
(makeMakeHTMLImage.):
(makeMakeHTMLImage):
(makeBlob.):
(factory.makeMakeHTMLImage):
(factory.makeMakeSVGImage):

  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-blob-invalidtype-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-blob-invalidtype.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-bounds-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-bounds.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-closed-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-closed.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-exif-orientation.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-flipY.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-in-worker-transfer-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-in-worker-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-origin.sub-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-origin.sub.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-sizeOverflow-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-sizeOverflow.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-worker.js: Added.

(makeBlob.):
(makeBlob):

  • web-platform-tests/html/canvas/element/manual/imagebitmap/imageBitmap-from-imageData-no-image-rotation-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/imageBitmap-from-imageData-no-image-rotation.html: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/resources/squares.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/transfer-worker.js: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/imagebitmap/worker-onmessage-noop.js: Added.

(self.onmessage):

  • web-platform-tests/html/canvas/element/manual/line-styles/canvas_linestyles_linecap_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/canvas_linestyles_linecap_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_a-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_a.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/lineto_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/setLineDash-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/setLineDash.html: Added.
  • web-platform-tests/html/canvas/element/manual/line-styles/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_001-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_002-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_002.htm: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_system_colors-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/canvas_shadows_system_colors.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/shadowBlur_gaussian_tolerance.1-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/shadowBlur_gaussian_tolerance.1.html: Added.
  • web-platform-tests/html/canvas/element/manual/shadows/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/canvas_text_font_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/canvas_text_font_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/text-styles/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.state.saverestore.imageSmoothingEnabled-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.state.saverestore.imageSmoothingEnabled.html: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.zero.size.canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/2d.zero.size.canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/canvas_state_restore_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/canvas_state_restore_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/the-canvas-state/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/2d.transformation.getTransform-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/2d.transformation.getTransform.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_reset_001-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_reset_001.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_scale_001-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/canvas_transformations_scale_001.htm: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_a-expected.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_a.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/transform_ref.html: Added.
  • web-platform-tests/html/canvas/element/manual/transformations/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-1-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-1.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-2-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-2.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-3-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-3.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-4-expected.htm: Added.
  • web-platform-tests/html/canvas/element/manual/unclosed-canvas-4.htm: Added.
  • web-platform-tests/html/canvas/element/manual/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/ImageData-fidelity-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/ImageData-fidelity.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorspace-arguments-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-colorspace-arguments.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createImageBitmap-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-Blob-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-Blob.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageBitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageBitmap.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageData-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-ImageData.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-cloned.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-image.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage.https.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-canvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-pattern-image.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-settings.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js: Added.

(pixelsApproximatelyEqual):

  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-getImageData-e_srgb.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imageData-colorManagedBehavior.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imagedata-no-color-settings-crash-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/imagedata-no-color-settings-crash.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Adobe-RGB-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-0.7333-0-0.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-1-0-0.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Display-P3-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Generic-CMYK-BE000000.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Generic-CMYK-FF000000.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-p3d65.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-rec2020.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-semitransparent-srgb.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-fullcolor.ogv: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.avif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.bmp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.ico: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb-transparent.webp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.avif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.bmp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.gif: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.ico: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.jpg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/pattern-srgb.webp: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_interlaced_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_16bit_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_AdobeRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_AdobeRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_DisplayP3_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_DisplayP3_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_ProPhoto_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_ProPhoto_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_Rec2020_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_Rec2020_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_sRGB_opaque.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/2x2_8bit_sRGB_transparent.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/png-16bit/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BBBC00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BBBC00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000.svg: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000CC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0000FF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.mp4: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.webm: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FFFF00000000CCCC.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FFFF00000000FFFF.png: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/w3c-import.log: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/transferFromImageBitmap.html: Added.
  • web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/offscreencanvas.convert.to.blob.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/convert-to-blob/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.js: Added.

(getRegularContextForFilter):
(matchImageDataResults):
(createPatternCanvas):

  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/filter/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/image.smoothing.worker.js: Added.

(createTestImage):
(test):
(test.draw):

  • web-platform-tests/html/canvas/offscreen/manual/image-smoothing/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.commit.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker.js: Added.

(t1.step):
(t2.step):

  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext.worker.js: Added.

(test):

  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.to.imagebitmap.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transferrable.w.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/w3c-import.log: Added.
  • web-platform-tests/html/canvas/offscreen/manual/transformations/2d.transformation.getTransform-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/manual/transformations/2d.transformation.getTransform.html: Added.
  • web-platform-tests/html/canvas/offscreen/manual/transformations/w3c-import.log: Added.

LayoutTests:

  • TestExpectations:
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-14/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-catalina/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
1:12 PM Changeset in webkit [285393] by mmaxfield@apple.com
  • 6 edits
    122 copies
    8 adds in trunk/Source/WebCore

[WebGPU] Add internal WebGPU API interface
https://bugs.webkit.org/show_bug.cgi?id=232792

Reviewed by Dean Jackson.

Source/WebCore:

Tiny fixup.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUCompilationInfo.cpp:

(WebCore::GPUCompilationInfo::messages const):

Source/WebCore/PAL:

Whenever we add new public API, we always have an internal version of the API which doesn't
know anything about things like promises and ActiveDOMObject. (One example is the difference
between FontFace and CSSFontFace.)

Adding such a internal version of the WebGPU API has 2 benefits:

  1. We can use WebGPU to implement WebKit features. For example, if we wanted to, we could

implement hardware accelerated SVG filters using WebGPU.

  1. We are actually going to have two implementations of the WebGPU API - one that is

implemented in WebKit (rather than WebCore) and implements all commands by simply
sending messages to the GPU process, and a second implementation in PAL that is
hooked up to WebGPU.framework (or Dawn or WGPU for the non-Apple ports). When the GPU
process receives the messages, it will forward them to the second implementation to
be executed. This new internal API provides a great places to provide virtual
function signatures which can be implemented in both places.

Mechanically, this new API lives in its own namespace within PAL: WebGPU, and therefore stops
using prefixes for all the type names. So, for example, the Javascript type named "GPUDevice"
corresponds to PAL::WebGPU::Device. This new API lives in PAL because it shouldn't need to
know anything about the DOM or style or anything like that.

There are no .cpp files in this patch - this patch just adds interfaces. Those interfaces will
be hooked up to real implementations in subsequent patches.

  • pal/graphics/WebGPU/WebGPU.h: Added.
  • pal/graphics/WebGPU/WebGPUAdapter.h: Added.

(PAL::WebGPU::Adapter::name const):
(PAL::WebGPU::Adapter::features const):
(PAL::WebGPU::Adapter::limits const):
(PAL::WebGPU::Adapter::isFallbackAdapter const):
(PAL::WebGPU::Adapter::Adapter):

  • pal/graphics/WebGPU/WebGPUAddressMode.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroup.h: Added.

(PAL::WebGPU::BindGroup::label const):
(PAL::WebGPU::BindGroup::setLabel):

  • pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroupEntry.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroupLayout.h: Added.

(PAL::WebGPU::BindGroupLayout::label const):
(PAL::WebGPU::BindGroupLayout::setLabel):

  • pal/graphics/WebGPU/WebGPUBindGroupLayoutDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendComponent.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendFactor.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendOperation.h: Added.
  • pal/graphics/WebGPU/WebGPUBlendState.h: Added.
  • pal/graphics/WebGPU/WebGPUBuffer.h: Added.

(PAL::WebGPU::Buffer::label const):
(PAL::WebGPU::Buffer::setLabel):

  • pal/graphics/WebGPU/WebGPUBufferBinding.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferBindingType.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUBufferUsage.h: Added.
  • pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h: Added.
  • pal/graphics/WebGPU/WebGPUCanvasConfiguration.h: Added.
  • pal/graphics/WebGPU/WebGPUColorDict.h: Added.
  • pal/graphics/WebGPU/WebGPUColorTargetState.h: Added.
  • pal/graphics/WebGPU/WebGPUColorWrite.h: Added.
  • pal/graphics/WebGPU/WebGPUCommandBuffer.h: Added.

(PAL::WebGPU::CommandBuffer::label const):
(PAL::WebGPU::CommandBuffer::setLabel):

  • pal/graphics/WebGPU/WebGPUCommandBufferDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUCommandEncoder.h: Added.

(PAL::WebGPU::CommandEncoder::label const):
(PAL::WebGPU::CommandEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPUCommandEncoderDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUCompareFunction.h: Added.
  • pal/graphics/WebGPU/WebGPUCompilationInfo.h: Added.
  • pal/graphics/WebGPU/WebGPUCompilationMessage.h: Added.
  • pal/graphics/WebGPU/WebGPUCompilationMessageType.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePassDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePassEncoder.h: Added.

(PAL::WebGPU::ComputePassEncoder::label const):
(PAL::WebGPU::ComputePassEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePassTimestampWrite.h: Added.
  • pal/graphics/WebGPU/WebGPUComputePipeline.h: Added.

(PAL::WebGPU::ComputePipeline::label const):
(PAL::WebGPU::ComputePipeline::setLabel):

  • pal/graphics/WebGPU/WebGPUComputePipelineDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUCullMode.h: Added.
  • pal/graphics/WebGPU/WebGPUDepthStencilState.h: Added.
  • pal/graphics/WebGPU/WebGPUDevice.h: Added.

(PAL::WebGPU::Device::label const):
(PAL::WebGPU::Device::setLabel):
(PAL::WebGPU::Device::registerDeviceLostClient):
(PAL::WebGPU::Device::unregisterDeviceLostClient):

  • pal/graphics/WebGPU/WebGPUDeviceDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUDeviceLostInfo.h: Added.
  • pal/graphics/WebGPU/WebGPUDeviceLostReason.h: Added.
  • pal/graphics/WebGPU/WebGPUError.h: Added.
  • pal/graphics/WebGPU/WebGPUErrorFilter.h: Added.
  • pal/graphics/WebGPU/WebGPUExtent3DDict.h: Added.
  • pal/graphics/WebGPU/WebGPUExternalTexture.h: Added.

(PAL::WebGPU::ExternalTexture::label const):
(PAL::WebGPU::ExternalTexture::setLabel):

  • pal/graphics/WebGPU/WebGPUExternalTextureBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUFeatureName.h: Added.
  • pal/graphics/WebGPU/WebGPUFilterMode.h: Added.
  • pal/graphics/WebGPU/WebGPUFragmentState.h: Added.
  • pal/graphics/WebGPU/WebGPUFrontFace.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyBuffer.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyTexture.h: Added.
  • pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h: Added.
  • pal/graphics/WebGPU/WebGPUImageDataLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUIndexFormat.h: Added.
  • pal/graphics/WebGPU/WebGPUIntegralTypes.h: Added.
  • pal/graphics/WebGPU/WebGPULoadOp.h: Added.
  • pal/graphics/WebGPU/WebGPUMapMode.h: Added.
  • pal/graphics/WebGPU/WebGPUMultisampleState.h: Added.
  • pal/graphics/WebGPU/WebGPUObjectDescriptorBase.h: Added.
  • pal/graphics/WebGPU/WebGPUOrigin2DDict.h: Added.
  • pal/graphics/WebGPU/WebGPUOrigin3DDict.h: Added.
  • pal/graphics/WebGPU/WebGPUOutOfMemoryError.h: Added.
  • pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h: Added.
  • pal/graphics/WebGPU/WebGPUPipelineLayout.h: Added.

(PAL::WebGPU::PipelineLayout::label const):
(PAL::WebGPU::PipelineLayout::setLabel):

  • pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUPipelineStatisticName.h: Added.
  • pal/graphics/WebGPU/WebGPUPowerPreference.h: Added.
  • pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h: Added.
  • pal/graphics/WebGPU/WebGPUPrimitiveState.h: Added.
  • pal/graphics/WebGPU/WebGPUPrimitiveTopology.h: Added.
  • pal/graphics/WebGPU/WebGPUProgrammableStage.h: Added.
  • pal/graphics/WebGPU/WebGPUQuerySet.h: Added.

(PAL::WebGPU::QuerySet::label const):
(PAL::WebGPU::QuerySet::setLabel):

  • pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUQueryType.h: Added.
  • pal/graphics/WebGPU/WebGPUQueue.h: Added.

(PAL::WebGPU::Queue::label const):
(PAL::WebGPU::Queue::setLabel):

  • pal/graphics/WebGPU/WebGPURenderBundle.h: Added.

(PAL::WebGPU::RenderBundle::label const):
(PAL::WebGPU::RenderBundle::setLabel):

  • pal/graphics/WebGPU/WebGPURenderBundleDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURenderBundleEncoder.h: Added.

(PAL::WebGPU::RenderBundleEncoder::label const):
(PAL::WebGPU::RenderBundleEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassEncoder.h: Added.

(PAL::WebGPU::RenderPassEncoder::label const):
(PAL::WebGPU::RenderPassEncoder::setLabel):

  • pal/graphics/WebGPU/WebGPURenderPassLayout.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPassTimestampWrite.h: Added.
  • pal/graphics/WebGPU/WebGPURenderPipeline.h: Added.

(PAL::WebGPU::RenderPipeline::label const):
(PAL::WebGPU::RenderPipeline::setLabel):

  • pal/graphics/WebGPU/WebGPURenderPipelineDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPURequestAdapterOptions.h: Added.
  • pal/graphics/WebGPU/WebGPUSampler.h: Added.

(PAL::WebGPU::Sampler::label const):
(PAL::WebGPU::Sampler::setLabel):

  • pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUSamplerBindingType.h: Added.
  • pal/graphics/WebGPU/WebGPUSamplerDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUShaderModule.h: Added.

(PAL::WebGPU::ShaderModule::label const):
(PAL::WebGPU::ShaderModule::setLabel):

  • pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUShaderStage.h: Added.
  • pal/graphics/WebGPU/WebGPUStencilFaceState.h: Added.
  • pal/graphics/WebGPU/WebGPUStencilOperation.h: Added.
  • pal/graphics/WebGPU/WebGPUStorageTextureAccess.h: Added.
  • pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUStoreOp.h: Added.
  • pal/graphics/WebGPU/WebGPUSupportedFeatures.h: Added.
  • pal/graphics/WebGPU/WebGPUSupportedLimits.h: Added.
  • pal/graphics/WebGPU/WebGPUTexture.h: Added.

(PAL::WebGPU::Texture::label const):
(PAL::WebGPU::Texture::setLabel):

  • pal/graphics/WebGPU/WebGPUTextureAspect.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureBindingLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureDimension.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureFormat.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureSampleType.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureUsage.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureView.h: Added.

(PAL::WebGPU::TextureView::label const):
(PAL::WebGPU::TextureView::setLabel):

  • pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h: Added.
  • pal/graphics/WebGPU/WebGPUTextureViewDimension.h: Added.
  • pal/graphics/WebGPU/WebGPUUncapturedErrorEvent.h: Added.
  • pal/graphics/WebGPU/WebGPUUncapturedErrorEventInit.h: Added.
  • pal/graphics/WebGPU/WebGPUValidationError.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexAttribute.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexBufferLayout.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexFormat.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexState.h: Added.
  • pal/graphics/WebGPU/WebGPUVertexStepMode.h: Added.
10:58 AM Changeset in webkit [285392] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

Use narrower types for style scope ordinal and cascade layer priority
https://bugs.webkit.org/show_bug.cgi?id=232797

Reviewed by Alan Bujtas.

This shrinks critical ElementRuleCollector data structures like MatchedRule.

64k layers ought to be enough for anybody (and 256 scopes).

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::matchSlottedPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRulesForScope):

Check the scope depth limits.

  • style/ElementRuleCollector.h:
  • style/RuleSet.h:

(WebCore::Style::RuleSet::cascadeLayerPriorityForIdentifier const):
(WebCore::Style::RuleSet::cascadeLayerPriorityFor const):

Add a type alias and make it uint16_t.

  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::updateCascadeLayerPriorities):

  • style/StyleScopeOrdinal.h:

(WebCore::Style::operator++):
(WebCore::Style::operator--):

Use int8_t. No realistic case requires more than a handful.

10:39 AM Changeset in webkit [285391] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] bidi boundary does not necessarily mean soft wrapping opportunity
https://bugs.webkit.org/show_bug.cgi?id=232793

Reviewed by Antti Koivisto.

Prior to bidi support, we only split non-whitespace content at soft break opportunities e.g. hyphen.

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity): Now we call findNextBreakablePosition on those rare bidi boundaries.
Could add a "break reason" to InlineTextItem if it turns out to be a perf issue.

8:07 AM Changeset in webkit [285390] by Simon Fraser
  • 7 edits
    2 adds in trunk

Implement UIScriptController.sendEventStream() on macOS for wheel events
https://bugs.webkit.org/show_bug.cgi?id=232794

Reviewed by Tim Horton.

eventSender.mouseScrollByWithWheelAndMomentumPhases() is problematic for timing-sensitive
scrolling behaviors because the timestamps used are not under script control. It's also
a rather unwieldy API.

To make wheel event testing easier, implement enough of UIScriptController.sendEventStream()
on macOS that it can generate a series of wheel events with predicable timestamps
(currently hardcoded to be 16.6ms apart).

Tools:

  • WebKitTestRunner/EventSenderProxy.h:
  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::cgScrollPhaseFromPhase):
(WTR::cgGesturePhaseFromString):
(WTR::EventSenderProxy::sendWheelEvent):

  • WebKitTestRunner/mac/UIScriptControllerMac.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::eventPhaseFromString):
(WTR::UIScriptControllerMac::sendEventStream):

LayoutTests:

  • fast/scrolling/mac/momentum-event-sequence-expected.txt: Added.
  • fast/scrolling/mac/momentum-event-sequence.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.async mouseWheelSequence.await.new.Promise):
(window.UIHelper.async mouseWheelSequence):

Nov 6, 2021:

9:07 PM Changeset in webkit [285389] by commit-queue@webkit.org
  • 6 edits in trunk

AX: WebKit1 PluginViewBase objects with an associated widget()->platformWidget() should be considered attachments
https://bugs.webkit.org/show_bug.cgi?id=232759

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-06
Reviewed by Chris Fleizach.

Source/WebCore:

In https://bugs.webkit.org/show_bug.cgi?id=229556 (AX: Make PDFs
loaded via <embed> accessible), we changed AccessibilityRenderObject::isAttachment
to return false if the underlying object represented a PluginViewBase
under the assumption that if a PluginViewBase existed, the object must
be a WebKit2 plugin. That assumption is wrong, because in certain
scenarios an object can be a WebKit1 PluginViewBase (e.g. attachments
inserted by WebKit1 webviews).

This patch changes isAttachment to only return false if the
PluginViewBase doesn't also have an associated platformWidget, which
should be present in WebKit1 only.

This patch also fixes a bug in the Mac -[WebAccessibilityObjectWrapper
subrole]. For objects with a role of group and no children, we
returned a subrole of AXEmptyGroup. However, we didn't check for the
presence of renderWidgetChildren that a group may have.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isAttachment const):
Consider PluginViewBase objects with an associated platformWidget to
be attachments.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper subrole]):
Don't return AXEmptyGroup subrole for objects with
renderWidgetChildren.

LayoutTests:

This patch changes the Mac WebAccessibilityObjectWrapper to not return
an AXEmptyGroup subrole for objects with renderWidgetChildren.

  • accessibility/mac/basic-embed-pdf-accessibility-expected.txt:
  • accessibility/mac/basic-embed-pdf-accessibility.html:

Add expectation that the embed container doesn't have an AXEmptyGroup
subrole.

5:34 PM Changeset in webkit [285388] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix GTK build after r285381.
https://bugs.webkit.org/show_bug.cgi?id=232657

Unreviewed.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUShaderModuleDescriptor.h:
4:58 PM Changeset in webkit [285387] by Simon Fraser
  • 14 edits in trunk/Source/WebCore

Improve ScrollAnimation logging
https://bugs.webkit.org/show_bug.cgi?id=232789

Reviewed by Wenson Hsieh.

Add ScrollAnimation::debugDescription() and implement in concrete subclasses so each
can dump more information about the animation. In particular, the destination of
a momentum scroll is useful for debugging.

Improve logging at some locations that start animations.

  • platform/ScrollAnimation.cpp:

(WebCore::operator<<):

  • platform/ScrollAnimation.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::debugDescription const):

  • platform/ScrollAnimationKinetic.h:
  • platform/ScrollAnimationMomentum.cpp:

(WebCore::ScrollAnimationMomentum::debugDescription const):

  • platform/ScrollAnimationMomentum.h:
  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::debugDescription const):

  • platform/ScrollAnimationSmooth.h:
  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::startAnimatedScrollToDestination):
(WebCore::ScrollingEffectsController::startMomentumScrollWithInitialVelocity):

  • platform/ScrollingEffectsController.h:
  • platform/mac/ScrollAnimationRubberBand.h:
  • platform/mac/ScrollAnimationRubberBand.mm:

(WebCore::ScrollAnimationRubberBand::debugDescription const):

  • platform/mac/ScrollingEffectsController.mm:

(WebCore::ScrollingEffectsController::startRubberBandAnimation): The return value isn't used
by the caller but is a convenient way to avoid an unused variable warning.

4:39 PM Changeset in webkit [285386] by ddkilzer@apple.com
  • 6 edits
    81 deletes in trunk

Remove empty directories from from svn.webkit.org repository as of r285357
<https://webkit.org/b/232773>

Unreviewed clean up.

LayoutTests:

  • canvas: Removed.
  • platform/glib/imported/w3c/web-platform-tests/cors: Removed.
  • platform/glib/imported/w3c/web-platform-tests/dom/events: Removed.
  • platform/glib/imported/w3c/web-platform-tests/eventsource: Removed.
  • platform/glib/imported/w3c/web-platform-tests/svg/shapes/scripted: Removed.
  • platform/gtk/fast/forms/fieldset: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/css/css-images: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/media-source: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/animations: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/embedded: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/geometry/reftests: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/pservers: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/svg/struct: Removed.
  • platform/gtk/media/W3C: Removed.
  • platform/gtk/media/media-source: Removed.
  • platform/gtk/media/mediacapabilities: Removed.
  • platform/gtk/webaudio: Removed.
  • platform/ios-14-wk2/imported/w3c/web-platform-tests/css: Removed.
  • platform/ios-simulator/webgl/2.0.0/conformance/buffers: Removed.
  • platform/ios-simulator/webgl/2.0.0/conformance/glsl: Removed.
  • platform/ios-simulator/webgl/2.0.0/conformance/reading: Removed.
  • platform/ios-wk2/fast/clip: Removed.
  • platform/ios-wk2/fast/dom/Window: Removed.
  • platform/ios-wk2/fast/multicol: Removed.
  • platform/ios-wk2/http/tests/adClickAttribution: Removed.
  • platform/ios-wk2/http/tests/security: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/webappapis: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/svg/painting: Removed.
  • platform/ios/compositing/contents-opaque: Removed.
  • platform/ios/css3/calc: Removed.
  • platform/ios/fast/events/constructors: Removed.
  • platform/ios/imported/w3c/web-platform-tests/cors: Removed.
  • platform/ios/imported/w3c/web-platform-tests/fetch/api/basic: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-meter-element: Removed.
  • platform/ios/imported/w3c/web-platform-tests/html/semantics/interactive-elements: Removed.
  • platform/ios/imported/w3c/web-platform-tests/web-animations: Removed.
  • platform/mac-mojave/imported/w3c/web-platform-tests/WebCryptoAPI: Removed.
  • platform/mac-wk1/fast/canvas: Removed.
  • platform/mac-wk1/http/wpt/html/browsers: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/css/geometry: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/history/joint-session-history: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/history/the-history-interface: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/svg: Removed.
  • platform/mac-wk1/inspector/model: Removed.
  • platform/mac-wk2/canvas: Removed.
  • platform/mac-wk2/editing/style: Removed.
  • platform/mac-wk2/fast/frames/flattening: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/documents: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/embedded-content: Removed.
  • platform/mac-wk2/media: Removed.
  • platform/mac/canvas: Removed.
  • platform/mac/editing/mac/selection: Removed.
  • platform/mac/fast/dom/HTMLImageElement/resources: Removed.
  • platform/mac/imported/w3c/web-platform-tests/IndexedDB: Removed.
  • platform/mac/imported/w3c/web-platform-tests/cors: Removed.
  • platform/mac/imported/w3c/web-platform-tests/css/css-masking: Removed.
  • platform/mac/security: Removed.
  • platform/mac/userscripts: Removed.
  • platform/win-7sp0/media/W3C/audio: Removed.
  • platform/win/canvas: Removed.
  • platform/wincairo/css3/calc: Removed.
  • platform/wk2/http/tests/contentdispositionattachmentsandbox: Removed.
  • platform/wk2/http/tests/contentextensions: Removed.
  • platform/wk2/imported/w3c/web-platform-tests/html/browsers: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-images: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/html/webappapis: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/embedded: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/geometry/reftests: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/pservers: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/svg/struct: Removed.

Source/ThirdParty/ANGLE:

  • src/id: Removed.
  • src/libANGLE/renderer/metal/shaders/compiled: Removed.
  • src/tests/perf_tests/restricted_traces: Removed.

Source/WebKitLegacy/mac:

  • Plugins/Hosted: Removed.

Tools:

  • WebKitTestRunner/WebKitTestRunnerApp/en.lproj: Removed.

Tools/buildstream:

  • patches/fdo: Removed.
  • patches/mesa: Removed.

Websites/perf.webkit.org:

  • public/js: Removed.
  • public/v2/js: Removed.
4:30 PM Changeset in webkit [285385] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Fixing style checks in WebGPU bindings code
https://bugs.webkit.org/show_bug.cgi?id=232790

Unreviewed.

No new tests because there is no behavior change.

  • Modules/WebGPU/GPUCompilationMessage.cpp:
  • Modules/WebGPU/GPUComputePipeline.h:
  • Modules/WebGPU/GPUDevice.h:
4:17 PM Changeset in webkit [285384] by mmaxfield@apple.com
  • 11 edits
    28 copies in trunk/Source/WebCore

font-synthesis inline/computed style should be in canonical order.
https://bugs.webkit.org/show_bug.cgi?id=186344

Patch by Joonghun Park <jh718.park@samsung.com> on 2021-11-06
Reviewed by Myles C. Maxfield.

Per the spec, https://drafts.csswg.org/css-fonts/#font-synthesis.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontSynthesisFromStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontSynthesis):

4:07 PM Changeset in webkit [285383] by jh718.park@samsung.com
  • 32 edits in trunk

font-synthesis inline/computed style should be in canonical order.
https://bugs.webkit.org/show_bug.cgi?id=186344

Reviewed by Myles C. Maxfield.

Per the spec, https://drafts.csswg.org/css-fonts/#font-synthesis.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/inheritance-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-synthesis-computed-expected.txt:
  • web-platform-tests/css/css-fonts/parsing/font-synthesis-valid-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::fontSynthesisFromStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontSynthesis):

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css3-text/font-synthesis-parse-expected.txt:
  • fast/css3-text/font-synthesis-parse.html:
  • fast/text/font-synthesis-parsing-expected.txt:
  • fast/text/font-synthesis-parsing.html:
  • platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/glib/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/glib/svg/css/getComputedStyle-basic-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
4:04 PM Changeset in webkit [285382] by mmaxfield@apple.com
  • 20 edits
    69 copies
    9 adds in trunk/Source/WebCore

[WebGPU] Bindings Part 7: Bring back command encoder bindings code
https://bugs.webkit.org/show_bug.cgi?id=232661

Reviewed by Dean Jackson.

This is the seventh chunk of bindings code, brought back from r280467.
This chunk includes the command encoder objects.
The objects have no methods inside them yet - those will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUColorDict.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUColorDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUCommandBuffer.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.

(WebCore::GPUCommandBuffer::label const):
(WebCore::GPUCommandBuffer::setLabel):

  • Modules/WebGPU/GPUCommandBuffer.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.

(WebCore::GPUCommandBuffer::create):
(WebCore::GPUCommandBuffer::GPUCommandBuffer):

  • Modules/WebGPU/GPUCommandBuffer.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUCommandBufferDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUCommandBufferDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUCommandEncoder.cpp: Added.

(WebCore::GPUCommandEncoder::label const):
(WebCore::GPUCommandEncoder::setLabel):
(WebCore::GPUCommandEncoder::beginRenderPass):
(WebCore::GPUCommandEncoder::beginComputePass):
(WebCore::GPUCommandEncoder::copyBufferToBuffer):
(WebCore::GPUCommandEncoder::copyBufferToTexture):
(WebCore::GPUCommandEncoder::copyTextureToBuffer):
(WebCore::GPUCommandEncoder::copyTextureToTexture):
(WebCore::GPUCommandEncoder::fillBuffer):
(WebCore::GPUCommandEncoder::pushDebugGroup):
(WebCore::GPUCommandEncoder::popDebugGroup):
(WebCore::GPUCommandEncoder::insertDebugMarker):
(WebCore::GPUCommandEncoder::writeTimestamp):
(WebCore::GPUCommandEncoder::resolveQuerySet):
(WebCore::GPUCommandEncoder::finish):

  • Modules/WebGPU/GPUCommandEncoder.h: Added.

(WebCore::GPUCommandEncoder::create):

  • Modules/WebGPU/GPUCommandEncoder.idl: Added.
  • Modules/WebGPU/GPUCommandEncoderDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUCommandEncoderDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUCompilationMessage.h:

(WebCore::GPUCompilationMessage::GPUCompilationMessage): Deleted.

  • Modules/WebGPU/GPUComputePassDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUComputePassDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUComputePassEncoder.cpp: Added.

(WebCore::GPUComputePassEncoder::label const):
(WebCore::GPUComputePassEncoder::setLabel):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch):
(WebCore::GPUComputePassEncoder::dispatchIndirect):
(WebCore::GPUComputePassEncoder::beginPipelineStatisticsQuery):
(WebCore::GPUComputePassEncoder::endPipelineStatisticsQuery):
(WebCore::GPUComputePassEncoder::endPass):
(WebCore::GPUComputePassEncoder::setBindGroup):
(WebCore::GPUComputePassEncoder::pushDebugGroup):
(WebCore::GPUComputePassEncoder::popDebugGroup):
(WebCore::GPUComputePassEncoder::insertDebugMarker):

  • Modules/WebGPU/GPUComputePassEncoder.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.h.

(WebCore::GPUComputePassEncoder::create):

  • Modules/WebGPU/GPUComputePassEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUComputePassTimestampLocation.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUComputePassTimestampLocation.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUComputePassTimestampWrite.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUComputePassTimestampWrite.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createShaderModule):
(WebCore::GPUDevice::createComputePipeline):
(WebCore::GPUDevice::createRenderPipeline):
(WebCore::GPUDevice::createComputePipelineAsync):
(WebCore::GPUDevice::createRenderPipelineAsync):
(WebCore::GPUDevice::createCommandEncoder):
(WebCore::GPUDevice::createRenderBundleEncoder):
(WebCore::GPUDevice::createQuerySet):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUExtent3DDict.h:
  • Modules/WebGPU/GPUImageCopyBuffer.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUImageCopyBuffer.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUImageCopyExternalImage.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUImageCopyExternalImage.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUImageCopyTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUImageCopyTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUImageCopyTextureTagged.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUImageCopyTextureTagged.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUImageDataLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUImageDataLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPULoadOp.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPULoadOp.idl: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUOrigin2DDict.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUOrigin2DDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUOrigin3DDict.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUOrigin3DDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUPipelineStatisticName.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.
  • Modules/WebGPU/GPUPipelineStatisticName.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUPowerPreference.idl:
  • Modules/WebGPU/GPUProgrammablePassEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUQuerySet.cpp: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.cpp.

(WebCore::GPUQuerySet::label const):
(WebCore::GPUQuerySet::setLabel):
(WebCore::GPUQuerySet::destroy):

  • Modules/WebGPU/GPUQuerySet.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.

(WebCore::GPUQuerySet::create):

  • Modules/WebGPU/GPUQuerySet.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUQuerySetDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPUQuerySetDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPUQueryType.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUQueryType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPUQueue.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUTexture.cpp.

(WebCore::GPUQueue::label const):
(WebCore::GPUQueue::setLabel):
(WebCore::GPUQueue::submit):
(WebCore::GPUQueue::onSubmittedWorkDone):
(WebCore::GPUQueue::writeBuffer):
(WebCore::GPUQueue::writeTexture):
(WebCore::GPUQueue::copyExternalImageToTexture):

  • Modules/WebGPU/GPUQueue.h: Copied from Source/WebCore/Modules/WebGPU/GPURenderPipeline.h.

(WebCore::GPUQueue::create):

  • Modules/WebGPU/GPUQueue.idl: Added.
  • Modules/WebGPU/GPURenderBundle.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.

(WebCore::GPURenderBundle::label const):
(WebCore::GPURenderBundle::setLabel):

  • Modules/WebGPU/GPURenderBundle.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.

(WebCore::GPURenderBundle::create):

  • Modules/WebGPU/GPURenderBundle.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderBundleDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPURenderBundleDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPURenderBundleEncoder.cpp: Added.

(WebCore::GPURenderBundleEncoder::label const):
(WebCore::GPURenderBundleEncoder::setLabel):
(WebCore::GPURenderBundleEncoder::setPipeline):
(WebCore::GPURenderBundleEncoder::setIndexBuffer):
(WebCore::GPURenderBundleEncoder::setVertexBuffer):
(WebCore::GPURenderBundleEncoder::draw):
(WebCore::GPURenderBundleEncoder::drawIndexed):
(WebCore::GPURenderBundleEncoder::drawIndirect):
(WebCore::GPURenderBundleEncoder::drawIndexedIndirect):
(WebCore::GPURenderBundleEncoder::setBindGroup):
(WebCore::GPURenderBundleEncoder::pushDebugGroup):
(WebCore::GPURenderBundleEncoder::popDebugGroup):
(WebCore::GPURenderBundleEncoder::insertDebugMarker):
(WebCore::GPURenderBundleEncoder::finish):

  • Modules/WebGPU/GPURenderBundleEncoder.h: Added.

(WebCore::GPURenderBundleEncoder::create):

  • Modules/WebGPU/GPURenderBundleEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPURenderBundleEncoderDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderEncoderBase.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPURenderPassColorAttachment.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassColorAttachment.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPassDepthStencilAttachment.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassDepthStencilAttachment.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPURenderPassDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPassEncoder.cpp: Added.

(WebCore::GPURenderPassEncoder::label const):
(WebCore::GPURenderPassEncoder::setLabel):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::setIndexBuffer):
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::drawIndexed):
(WebCore::GPURenderPassEncoder::drawIndirect):
(WebCore::GPURenderPassEncoder::drawIndexedIndirect):
(WebCore::GPURenderPassEncoder::setBindGroup):
(WebCore::GPURenderPassEncoder::pushDebugGroup):
(WebCore::GPURenderPassEncoder::popDebugGroup):
(WebCore::GPURenderPassEncoder::insertDebugMarker):
(WebCore::GPURenderPassEncoder::setViewport):
(WebCore::GPURenderPassEncoder::setScissorRect):
(WebCore::GPURenderPassEncoder::setBlendConstant):
(WebCore::GPURenderPassEncoder::setStencilReference):
(WebCore::GPURenderPassEncoder::beginOcclusionQuery):
(WebCore::GPURenderPassEncoder::endOcclusionQuery):
(WebCore::GPURenderPassEncoder::beginPipelineStatisticsQuery):
(WebCore::GPURenderPassEncoder::endPipelineStatisticsQuery):
(WebCore::GPURenderPassEncoder::executeBundles):
(WebCore::GPURenderPassEncoder::endPass):

  • Modules/WebGPU/GPURenderPassEncoder.h: Added.

(WebCore::GPURenderPassEncoder::create):

  • Modules/WebGPU/GPURenderPassEncoder.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPURenderPassLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPassTimestampLocation.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPURenderPassTimestampLocation.idl: Copied from Source/WebCore/Modules/WebGPU/GPUPowerPreference.idl.
  • Modules/WebGPU/GPURenderPassTimestampWrite.h: Copied from Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h.
  • Modules/WebGPU/GPURenderPassTimestampWrite.idl: Copied from Source/WebCore/Modules/WebGPU/GPURequestAdapterOptions.idl.
  • Modules/WebGPU/GPURenderPipeline.cpp:

(WebCore::GPURenderPipeline::label const):
(WebCore::GPURenderPipeline::setLabel):

  • Modules/WebGPU/GPURenderPipeline.h:

(WebCore::GPURenderPipeline::label const): Deleted.
(WebCore::GPURenderPipeline::setLabel): Deleted.

  • Modules/WebGPU/GPURequestAdapterOptions.idl:
  • Modules/WebGPU/GPUShaderModule.cpp:

(WebCore::GPUShaderModule::label const):
(WebCore::GPUShaderModule::setLabel):

  • Modules/WebGPU/GPUShaderModule.h:

(WebCore::GPUShaderModule::label const): Deleted.
(WebCore::GPUShaderModule::setLabel): Deleted.

  • Modules/WebGPU/GPUStoreOp.h: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUStoreOp.idl: Copied from Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp.
  • Modules/WebGPU/GPUTexture.cpp:

(WebCore::GPUTexture::label const):
(WebCore::GPUTexture::setLabel):
(WebCore::GPUTexture::createView const):
(WebCore::GPUTexture::destroy):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
3:38 PM Changeset in webkit [285381] by mmaxfield@apple.com
  • 11 edits
    70 copies in trunk/Source/WebCore

[WebGPU] Bindings Part 6: Bring back compilation bindings code
https://bugs.webkit.org/show_bug.cgi?id=232657

Reviewed by Dean Jackson.

This is the sixth chunk of bindings code, brought back from r280467.
This chunk includes the objects related to shader compilation.
The objects have no methods inside them yet - those will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUBlendComponent.h: Added.
  • Modules/WebGPU/GPUBlendComponent.idl: Added.
  • Modules/WebGPU/GPUBlendFactor.h: Added.
  • Modules/WebGPU/GPUBlendFactor.idl: Added.
  • Modules/WebGPU/GPUBlendOperation.h: Added.
  • Modules/WebGPU/GPUBlendOperation.idl: Added.
  • Modules/WebGPU/GPUBlendState.h: Added.
  • Modules/WebGPU/GPUBlendState.idl: Added.
  • Modules/WebGPU/GPUColorTargetState.h: Added.
  • Modules/WebGPU/GPUColorTargetState.idl: Added.
  • Modules/WebGPU/GPUColorWrite.h: Added.
  • Modules/WebGPU/GPUColorWrite.idl: Added.
  • Modules/WebGPU/GPUCompilationInfo.cpp: Added.

(WebCore::GPUCompilationInfo::messages const):

  • Modules/WebGPU/GPUCompilationInfo.h: Added.

(WebCore::GPUCompilationInfo::create):

  • Modules/WebGPU/GPUCompilationInfo.idl: Added.
  • Modules/WebGPU/GPUCompilationMessage.cpp: Added.

(WebCore::GPUCompilationMessage::message const):
(WebCore::GPUCompilationMessage::type const):
(WebCore::GPUCompilationMessage::lineNum const):
(WebCore::GPUCompilationMessage::linePos const):
(WebCore::GPUCompilationMessage::offset const):
(WebCore::GPUCompilationMessage::length const):

  • Modules/WebGPU/GPUCompilationMessage.h: Added.

(WebCore::GPUCompilationMessage::create):
(WebCore::GPUCompilationMessage::GPUCompilationMessage):

  • Modules/WebGPU/GPUCompilationMessage.idl: Added.
  • Modules/WebGPU/GPUCompilationMessageType.h: Added.
  • Modules/WebGPU/GPUCompilationMessageType.idl: Added.
  • Modules/WebGPU/GPUComputePipeline.cpp: Added.

(WebCore::GPUComputePipeline::label const):
(WebCore::GPUComputePipeline::setLabel):
(WebCore::GPUComputePipeline::getBindGroupLayout):

  • Modules/WebGPU/GPUComputePipeline.h: Added.

(WebCore::GPUComputePipeline::create):

  • Modules/WebGPU/GPUComputePipeline.idl: Added.
  • Modules/WebGPU/GPUComputePipelineDescriptor.h: Added.
  • Modules/WebGPU/GPUComputePipelineDescriptor.idl: Added.
  • Modules/WebGPU/GPUCullMode.h: Added.
  • Modules/WebGPU/GPUCullMode.idl: Added.
  • Modules/WebGPU/GPUDepthStencilState.h: Added.
  • Modules/WebGPU/GPUDepthStencilState.idl: Added.
  • Modules/WebGPU/GPUFragmentState.h: Added.
  • Modules/WebGPU/GPUFragmentState.idl: Added.
  • Modules/WebGPU/GPUFrontFace.h: Added.
  • Modules/WebGPU/GPUFrontFace.idl: Added.
  • Modules/WebGPU/GPUIndexFormat.h: Added.
  • Modules/WebGPU/GPUIndexFormat.idl: Added.
  • Modules/WebGPU/GPUMultisampleState.h: Added.
  • Modules/WebGPU/GPUMultisampleState.idl: Added.
  • Modules/WebGPU/GPUPipelineBase.idl: Added.
  • Modules/WebGPU/GPUPipelineDescriptorBase.h: Added.
  • Modules/WebGPU/GPUPipelineDescriptorBase.idl: Added.
  • Modules/WebGPU/GPUPrimitiveState.h: Added.
  • Modules/WebGPU/GPUPrimitiveState.idl: Added.
  • Modules/WebGPU/GPUPrimitiveTopology.h: Added.
  • Modules/WebGPU/GPUPrimitiveTopology.idl: Added.
  • Modules/WebGPU/GPUProgrammableStage.h: Added.
  • Modules/WebGPU/GPUProgrammableStage.idl: Added.
  • Modules/WebGPU/GPURenderPipeline.cpp: Added.

(WebCore::GPURenderPipeline::getBindGroupLayout):

  • Modules/WebGPU/GPURenderPipeline.h: Added.

(WebCore::GPURenderPipeline::create):
(WebCore::GPURenderPipeline::label const):
(WebCore::GPURenderPipeline::setLabel):

  • Modules/WebGPU/GPURenderPipeline.idl: Added.
  • Modules/WebGPU/GPURenderPipelineDescriptor.h: Added.
  • Modules/WebGPU/GPURenderPipelineDescriptor.idl: Added.
  • Modules/WebGPU/GPUShaderModule.cpp: Added.

(WebCore::GPUShaderModule::compilationInfo):

  • Modules/WebGPU/GPUShaderModule.h: Added.

(WebCore::GPUShaderModule::create):
(WebCore::GPUShaderModule::label const):
(WebCore::GPUShaderModule::setLabel):

  • Modules/WebGPU/GPUShaderModule.idl: Added.
  • Modules/WebGPU/GPUShaderModuleDescriptor.h: Added.
  • Modules/WebGPU/GPUShaderModuleDescriptor.idl: Added.
  • Modules/WebGPU/GPUStencilFaceState.h: Added.
  • Modules/WebGPU/GPUStencilFaceState.idl: Added.
  • Modules/WebGPU/GPUStencilOperation.h: Added.
  • Modules/WebGPU/GPUStencilOperation.idl: Added.
  • Modules/WebGPU/GPUVertexAttribute.h: Added.
  • Modules/WebGPU/GPUVertexAttribute.idl: Added.
  • Modules/WebGPU/GPUVertexBufferLayout.h: Added.
  • Modules/WebGPU/GPUVertexBufferLayout.idl: Added.
  • Modules/WebGPU/GPUVertexFormat.h: Added.
  • Modules/WebGPU/GPUVertexFormat.idl: Added.
  • Modules/WebGPU/GPUVertexState.h: Added.
  • Modules/WebGPU/GPUVertexState.idl: Added.
  • Modules/WebGPU/GPUVertexStepMode.h: Added.
  • Modules/WebGPU/GPUVertexStepMode.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
3:16 PM Changeset in webkit [285380] by mmaxfield@apple.com
  • 12 edits
    41 copies in trunk/Source/WebCore

[WebGPU] Bindings Part 5: Bring back Pipeline bindings code
https://bugs.webkit.org/show_bug.cgi?id=232612

Reviewed by Dean Jackson.

This is the fifth chunk of bindings code, brought back from r280467.
This chunk includes the PipelineLayout object. Interestingly, it
doesn't actually have any methods. Its presence is just used when
creating pipelines.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUAdapter.cpp:

(WebCore::GPUAdapter::requestDevice):

  • Modules/WebGPU/GPUBindGroup.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroup::label const):
(WebCore::GPUBindGroup::setLabel):

  • Modules/WebGPU/GPUBindGroup.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroup::create):

  • Modules/WebGPU/GPUBindGroup.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupEntry.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupEntry.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayout.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroupLayout::label const):
(WebCore::GPUBindGroupLayout::setLabel):

  • Modules/WebGPU/GPUBindGroupLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUBindGroupLayout::create):

  • Modules/WebGPU/GPUBindGroupLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutEntry.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBindGroupLayoutEntry.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBinding.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBinding.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingType.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUBufferBindingType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createBindGroupLayout):
(WebCore::GPUDevice::createPipelineLayout):
(WebCore::GPUDevice::createBindGroup):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUExternalTextureBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUExternalTextureBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUPipelineLayout.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUPipelineLayout::label const):
(WebCore::GPUPipelineLayout::setLabel):

  • Modules/WebGPU/GPUPipelineLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.

(WebCore::GPUPipelineLayout::create):

  • Modules/WebGPU/GPUPipelineLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUPipelineLayoutDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUPipelineLayoutDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingType.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUSamplerBindingType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUShaderStage.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUShaderStage.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureAccess.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureAccess.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUStorageTextureBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureBindingLayout.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureBindingLayout.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureSampleType.h: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Modules/WebGPU/GPUTextureSampleType.idl: Copied from Source/WebCore/Modules/WebGPU/GPUAdapter.cpp.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
3:02 PM Changeset in webkit [285379] by mmaxfield@apple.com
  • 11 edits
    11 copies in trunk/Source/WebCore

[WebGPU] Bindings part 4: Bring back Sampler bindings code
https://bugs.webkit.org/show_bug.cgi?id=232610

Reviewed by Dean Jackson.

This is the fourth chunk of bindings code, brought back from r280467.
This chunk includes the Sampler object. Interestingly, it doesn't actually
have any methods. Its presence is just used inside bind groups.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUAddressMode.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUAddressMode.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUCompareFunction.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUCompareFunction.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createSampler):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUFilterMode.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUFilterMode.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUSampler.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUSampler::label const):
(WebCore::GPUSampler::setLabel):

  • Modules/WebGPU/GPUSampler.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUSampler::create):

  • Modules/WebGPU/GPUSampler.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUSamplerDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUSamplerDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
2:50 PM Changeset in webkit [285378] by mmaxfield@apple.com
  • 11 edits
    25 copies
    2 adds in trunk/Source/WebCore

[WebGPU] Bindings Part 3: Bring back Texture bindings code
https://bugs.webkit.org/show_bug.cgi?id=232609

Reviewed by Dean Jackson.

This is the third chunk of bindings code, brought back from r280467.
This chunk includes the Texture object. Its methods are just stubbed out
and do nothing - those implementations will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::createTexture):
(WebCore::GPUDevice::importExternalTexture):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUExtent3DDict.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExtent3DDict.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExternalTexture.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUExternalTexture::label const):
(WebCore::GPUExternalTexture::setLabel):

  • Modules/WebGPU/GPUExternalTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUExternalTexture::create):

  • Modules/WebGPU/GPUExternalTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExternalTextureDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUExternalTextureDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTexture.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTexture::createView const):
(WebCore::GPUTexture::destroy):
(WebCore::GPUTexture::label const):
(WebCore::GPUTexture::setLabel):

  • Modules/WebGPU/GPUTexture.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTexture::create):

  • Modules/WebGPU/GPUTexture.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureAspect.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureAspect.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDimension.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureDimension.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureFormat.h: Added.
  • Modules/WebGPU/GPUTextureFormat.idl: Added.
  • Modules/WebGPU/GPUTextureUsage.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureUsage.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureView.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTextureView::label const):
(WebCore::GPUTextureView::setLabel):

  • Modules/WebGPU/GPUTextureView.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.

(WebCore::GPUTextureView::create):

  • Modules/WebGPU/GPUTextureView.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDimension.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUTextureViewDimension.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
2:08 PM Changeset in webkit [285377] by mmaxfield@apple.com
  • 16 edits
    10 copies in trunk/Source/WebCore

[WebGPU] Bindings part 2: Bring back Buffer bindings code
https://bugs.webkit.org/show_bug.cgi?id=232560

Reviewed by Alex Christensen.

This is the second chunk of bindings code, brought back from r280467.
This chunk includes the Buffer object. Its methods are just stubbed out
and do nothing - those implementations will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPUBuffer.cpp: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.

(WebCore::GPUBuffer::label const):
(WebCore::GPUBuffer::setLabel):
(WebCore::GPUBuffer::mapAsync):
(WebCore::GPUBuffer::getMappedRange):
(WebCore::GPUBuffer::unmap):
(WebCore::GPUBuffer::destroy):

  • Modules/WebGPU/GPUBuffer.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.

(WebCore::GPUBuffer::create):

  • Modules/WebGPU/GPUBuffer.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUBufferDescriptor.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUBufferDescriptor.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUBufferUsage.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUBufferUsage.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/WebGPU/GPUDevice.cpp:

(WebCore::GPUDevice::destroy):
(WebCore::GPUDevice::createBuffer):

  • Modules/WebGPU/GPUDevice.h:
  • Modules/WebGPU/GPUDevice.idl:
  • Modules/WebGPU/GPUIntegralTypes.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUMapMode.h: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.cpp.
  • Modules/WebGPU/GPUMapMode.idl: Copied from Source/WebCore/Modules/WebGPU/GPUDevice.idl.
  • Modules/applepay/ApplePayCancelEvent.cpp:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
1:50 PM Changeset in webkit [285376] by mmaxfield@apple.com
  • 19 edits
    30 adds in trunk/Source

[WebGPU] Bindings part 1: Bring back Adapter/Device bindings code
https://bugs.webkit.org/show_bug.cgi?id=232550

Reviewed by Alex Christensen.

Source/WebCore:

This is the first chunk of bindings code, brought back from r280467.
This chunk includes the Adapter and Device object. The Device object
has no methods inside it yet - those will come later.

No new tests because there is no behavior change yet.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/WebGPU/GPU.cpp: Added.

(WebCore::GPU::requestAdapter):

  • Modules/WebGPU/GPU.h: Added.

(WebCore::GPU::create):

  • Modules/WebGPU/GPU.idl: Added.
  • Modules/WebGPU/GPUAdapter.cpp: Added.

(WebCore::GPUAdapter::name const):
(WebCore::GPUAdapter::features const):
(WebCore::GPUAdapter::limits const):
(WebCore::GPUAdapter::isFallbackAdapter const):
(WebCore::GPUAdapter::requestDevice):

  • Modules/WebGPU/GPUAdapter.h: Added.

(WebCore::GPUAdapter::create):

  • Modules/WebGPU/GPUAdapter.idl: Added.
  • Modules/WebGPU/GPUDevice.cpp: Added.

(WebCore::GPUDevice::label const):
(WebCore::GPUDevice::setLabel):
(WebCore::GPUDevice::features const):
(WebCore::GPUDevice::limits const):

  • Modules/WebGPU/GPUDevice.h: Added.

(WebCore::GPUDevice::create):
(WebCore::GPUDevice::GPUDevice):

  • Modules/WebGPU/GPUDevice.idl: Added.
  • Modules/WebGPU/GPUDeviceDescriptor.h: Added.
  • Modules/WebGPU/GPUDeviceDescriptor.idl: Added.
  • Modules/WebGPU/GPUFeatureName.h: Added.
  • Modules/WebGPU/GPUFeatureName.idl: Added.
  • Modules/WebGPU/GPUObjectBase.idl: Added.
  • Modules/WebGPU/GPUObjectDescriptorBase.h: Added.
  • Modules/WebGPU/GPUObjectDescriptorBase.idl: Added.
  • Modules/WebGPU/GPUPowerPreference.h: Added.
  • Modules/WebGPU/GPUPowerPreference.idl: Added.
  • Modules/WebGPU/GPUPredefinedColorSpace.h: Added.
  • Modules/WebGPU/GPUPredefinedColorSpace.idl: Added.
  • Modules/WebGPU/GPURequestAdapterOptions.h: Added.
  • Modules/WebGPU/GPURequestAdapterOptions.idl: Added.
  • Modules/WebGPU/GPUSupportedFeatures.cpp: Added.

(WebCore::GPUSupportedFeatures::initializeSetLike const):

  • Modules/WebGPU/GPUSupportedFeatures.h: Added.

(WebCore::GPUSupportedFeatures::create):

  • Modules/WebGPU/GPUSupportedFeatures.idl: Added.
  • Modules/WebGPU/GPUSupportedLimits.cpp: Added.

(WebCore::GPUSupportedLimits::maxTextureDimension1D const):
(WebCore::GPUSupportedLimits::maxTextureDimension2D const):
(WebCore::GPUSupportedLimits::maxTextureDimension3D const):
(WebCore::GPUSupportedLimits::maxTextureArrayLayers const):
(WebCore::GPUSupportedLimits::maxBindGroups const):
(WebCore::GPUSupportedLimits::maxDynamicUniformBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxDynamicStorageBuffersPerPipelineLayout const):
(WebCore::GPUSupportedLimits::maxSampledTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxSamplersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxStorageTexturesPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBuffersPerShaderStage const):
(WebCore::GPUSupportedLimits::maxUniformBufferBindingSize const):
(WebCore::GPUSupportedLimits::maxStorageBufferBindingSize const):
(WebCore::GPUSupportedLimits::minUniformBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::minStorageBufferOffsetAlignment const):
(WebCore::GPUSupportedLimits::maxVertexBuffers const):
(WebCore::GPUSupportedLimits::maxVertexAttributes const):
(WebCore::GPUSupportedLimits::maxVertexBufferArrayStride const):
(WebCore::GPUSupportedLimits::maxInterStageShaderComponents const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupStorageSize const):
(WebCore::GPUSupportedLimits::maxComputeInvocationsPerWorkgroup const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeX const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeY const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupSizeZ const):
(WebCore::GPUSupportedLimits::maxComputeWorkgroupsPerDimension const):

  • Modules/WebGPU/GPUSupportedLimits.h: Added.

(WebCore::GPUSupportedLimits::create):

  • Modules/WebGPU/GPUSupportedLimits.idl: Added.
  • Modules/WebGPU/NavigatorGPU.idl: Added.
  • Modules/applepay/PaymentCoordinator.cpp:
  • Modules/mediasource/SourceBuffer.h:
  • Modules/webauthn/PublicKeyCredentialRequestOptions.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/scripts/CodeGenerator.pm:

(ProcessDocument):

  • dom/EventTargetFactory.in:
  • page/Navigator.idl:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::NavigatorBase):

  • page/NavigatorBase.h:

(WebCore::NavigatorBase::gpu):

  • page/WorkerNavigator.idl:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
12:43 PM Changeset in webkit [285375] by Simon Fraser
  • 6 edits in trunk/Source

WheelEventDeltaFilter::shouldApplyFilteringForEvent can be a static function
https://bugs.webkit.org/show_bug.cgi?id=232786

Reviewed by Wenson Hsieh.
Source/WebCore:

This function just looks at event phase. It can be static.

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultWheelEventHandler):

  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::shouldApplyFilteringForEvent):
(WebCore::WheelEventDeltaFilter::shouldApplyFilteringForEvent const): Deleted.

  • page/WheelEventDeltaFilter.h:

Source/WebKit:

This function just looks at event phase. It can be static.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

12:41 PM Changeset in webkit [285374] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Process all replacement, control and opaque inline items.
https://bugs.webkit.org/show_bug.cgi?id=232772

Reviewed by Antti Koivisto.

Keep track of each inline item position in the paragraph content (including the opaque items with nullopt position) in a vector.
(This offset vector is always in sync with the InlineItems vector (i.e. nth value refers to the nth inline item)
Note that it needs to grow together with the InlineItems as we split inline text content on bidi boundaries.)

  1. Walk the InlineItems up to the bidi end position and assign the computed bidi level to each entry.
  2. Split the inline text item on the bidi boundary as needed.
  3. Post-process the opaque items (items that are not part of the paragraph content).
  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::buildBidiParagraph):
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):

  • layout/formattingContexts/inline/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::split):
(WebCore::Layout::InlineTextItem::splitAt): Deleted.

  • layout/formattingContexts/inline/InlineTextItem.h:
12:20 PM Changeset in webkit [285373] by Antti Koivisto
  • 26 edits
    8 deletes in trunk/Source/WebCore

Remove separate classes for CSS wide keywords (initial/inherit/unset/revert)
https://bugs.webkit.org/show_bug.cgi?id=232750

Reviewed by Sam Weinig.

Remove CSSInitialValue, CSSInheritedValue, CSSRevertValue and CSSUnsetValue classes.
They can all be handled by CSSPrimitiveValue.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDeprecatedCSSOMValueCustom.cpp:

(WebCore::toJSNewlyCreated):

Avoid changing the class type visible in CSSOM.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::renderTextDecorationStyleFlagsToCSSValue):
(WebCore::renderTextDecorationSkipToCSSValue):

  • css/CSSInheritedValue.cpp: Removed.
  • css/CSSInheritedValue.h: Removed.
  • css/CSSInitialValue.cpp: Removed.
  • css/CSSInitialValue.h: Removed.
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::isCSSWideKeyword const):

  • css/CSSPrimitiveValue.h:
  • css/CSSRevertValue.cpp: Removed.
  • css/CSSRevertValue.h: Removed.
  • css/CSSUnsetValue.cpp: Removed.
  • css/CSSUnsetValue.h: Removed.
  • css/CSSValue.cpp:

(WebCore::CSSValue::cssValueType const):
(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):
(WebCore::CSSValue::treatAsInheritedValue const):
(WebCore::CSSValue::treatAsInitialValue const):
(WebCore::CSSValue::isInitialValue const):
(WebCore::CSSValue::isImplicitInitialValue const):
(WebCore::CSSValue::isInheritValue const):
(WebCore::CSSValue::isUnsetValue const):
(WebCore::CSSValue::isRevertValue const):
(WebCore::CSSValue::isCSSWideKeyword const):

  • css/CSSValue.h:

(WebCore::CSSValue::CSSValue):
(WebCore::CSSValue::isInheritedValue const): Deleted.
(WebCore::CSSValue::isInitialValue const): Deleted.
(WebCore::CSSValue::isUnsetValue const): Deleted.
(WebCore::CSSValue::isRevertValue const): Deleted.
(WebCore::CSSValue::isGlobalKeyword const): Deleted.

  • css/CSSValuePool.cpp:

(WebCore::StaticCSSValuePool::StaticCSSValuePool):

  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createImplicitInitialValue):
(WebCore::CSSValuePool::createInheritedValue): Deleted.
(WebCore::CSSValuePool::createExplicitInitialValue): Deleted.
(WebCore::CSSValuePool::createUnsetValue): Deleted.
(WebCore::CSSValuePool::createRevertValue): Deleted.

  • css/DeprecatedCSSOMPrimitiveValue.h:

(WebCore::DeprecatedCSSOMPrimitiveValue::isCSSWideKeyword const):

  • css/SelectorChecker.cpp:
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::borderRadiusValue const):
(WebCore::StyleProperties::pageBreakPropertyValue const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::parseKeywordValue):

  • css/parser/CSSParserIdioms.h:

(WebCore::isCSSWideKeyword):
(WebCore::isValidCustomIdentifier):

Separate the concept of valid custom identifier from that of CSS-wide keyword. The former also excludes the obsolete "default" keyword.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::maybeConsumeCSSWideKeyword):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeCustomIdent):
(WebCore::CSSPropertyParserHelpers::consumeCounterStyleNameInPrelude):
(WebCore::CSSPropertyParserHelpers::concatenateFamilyName):
(WebCore::CSSPropertyParserHelpers::isCSSWideKeyword): Deleted.

  • editing/EditingStyle.cpp:

(WebCore::fontWeightIsBold):

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::propertyValueForNode):
(HTMLConverterCaches::floatPropertyValueForNode):
(HTMLConverterCaches::colorPropertyValueForNode):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::createSharedCellStyle const):

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::addMatchedProperties):

  • style/PropertyCascade.cpp:

(WebCore::Style::PropertyCascade::addMatch):
(WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const):

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::applyProperty):
(WebCore::Style::Builder::resolveValue):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::parseAttribute):

11:35 AM Changeset in webkit [285372] by Kocsen Chung
  • 1 copy in tags/Safari-612.3.4

Tag Safari-612.3.4.

8:51 AM Changeset in webkit [285371] by commit-queue@webkit.org
  • 6 edits
    2 moves in trunk

AX: Rename usages DefinitionList to DescriptionList and DescriptionListDefinition to DescriptionListDetail
https://bugs.webkit.org/show_bug.cgi?id=232775

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-06
Reviewed by Chris Fleizach.

Rename usages of "definition list" to "description list" and
DescriptionListDefinition to DescriptionListDetail, as the latter
versions of each pair are what the corresponding HTML elements are
actually called.

Tools:

https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element
https://html.spec.whatwg.org/multipage/grouping-content.html#the-dd-element

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::isInDescriptionListDetail const): Added.
(WTR::AccessibilityUIElement::isInDescriptionListTerm const): Added.
(WTR::AccessibilityUIElement::isInDefinitionListDefinition const): Deleted.
(WTR::AccessibilityUIElement::isInDefinitionListTerm const): Deleted.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:

Rename isInDefinitionListDefinition to isInDescriptionListDetail and
isInDefinitionListTerm to isInDescriptionListTerm.

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::isInDescriptionListDetail const): Added.
(WTR::AccessibilityUIElement::isInDescriptionListTerm const): Added.
(WTR::AccessibilityUIElement::isInDefinitionListDefinition const): Deleted.
(WTR::AccessibilityUIElement::isInDefinitionListTerm const): Deleted.

LayoutTests:

Note this patch does this renaming everywhere except the interface
layers, e.g. WebAccessibilityObjectWrapperIOS.

https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element
https://html.spec.whatwg.org/multipage/grouping-content.html#the-dd-element

  • accessibility/ios-simulator/description-list-expected.txt: Renamed from LayoutTests/accessibility/ios-simulator/definition-list-expected.txt.
  • accessibility/ios-simulator/description-list.html: Renamed from LayoutTests/accessibility/ios-simulator/definition-list.html.
6:24 AM Changeset in webkit [285370] by ntim@apple.com
  • 1 edit
    1 add in trunk/LayoutTests/imported/w3c

Unreviewed, add missing green-dialog-and-backdrop.html
https://bugs.webkit.org/show_bug.cgi?id=232784

This should have been part of r285368 to avoid resource-files.json referencing an non-existing file.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/green-dialog-and-backdrop.html: Added.
5:59 AM Changeset in webkit [285369] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Build the paragraph content when all the inline items are processed
https://bugs.webkit.org/show_bug.cgi?id=232771

Reviewed by Antti Koivisto.

This patch simplifies the inline collection logic and helps with the upcoming "resolve the bidi ranges" patch.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::build):
(WebCore::Layout::buildBidiParagraph): Let's build the paragraph content at once.
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxStart):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxEnd):
(WebCore::Layout::InlineItemsBuilder::handleInlineLevelBox):
(WebCore::Layout::InlineItemsBuilder::enterBidiContext): Deleted.
(WebCore::Layout::InlineItemsBuilder::exitBidiContext): Deleted.
(WebCore::Layout::InlineItemsBuilder::buildPreviousTextContent): Deleted.

  • layout/formattingContexts/inline/InlineItemsBuilder.h:

(WebCore::Layout::InlineItemsBuilder::hasSeenBidiContent const):

5:05 AM Changeset in webkit [285368] by ntim@apple.com
  • 22 edits
    1 delete in trunk/LayoutTests

Re-import html/semantics/interactive-elements/the-dialog-element WPT
https://bugs.webkit.org/show_bug.cgi?id=232784

Unreviewed, reverting some changes made by r285346, and upstreamed them.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/301143db2eced1c387ca4927c03cf2be41056a83

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/green-dialog-and-backdrop.html: Removed.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-clip-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-clip.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-filter-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-filter.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-mask-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-mask.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-opacity.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-clip-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-clip.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-hidden-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-hidden.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-scroll-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-overflow-scroll.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform-expected.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:

LayoutTests:

Nov 5, 2021:

11:58 PM Changeset in webkit [285367] by Simon Fraser
  • 12 edits
    2 adds in trunk

Simplify code that makes use of WheelEventDeltaFilter
https://bugs.webkit.org/show_bug.cgi?id=232536

Reviewed by Wenson Hsieh.

Source/WebCore:

Push the decision about which kinds of wheel events to apply filtering to down into
WheelEventDeltaFilter, which simplifies call sites. WheelEventDeltaFilterMac::updateFromEvent()
now determines when to call into m_predominantAxisFilter based on the event phase. We
also simplify the timing logic by computing WallTime from when the WheelEventDeltaFilterMac
is constructed.

EventHandler code is cleaned up to simplify the logic a little but the behavior should
be the same.

Test: fast/scrolling/mac/wheel-event-deltas-are-not-filtered.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEventInternal):
(WebCore::EventHandler::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler): Move the filtering code out of the latching
#ifdef.
(WebCore::EventHandler::recordWheelEventForDeltaFilter): Deleted.

  • page/EventHandler.h:
  • page/WheelEventDeltaFilter.cpp:

(WebCore::WheelEventDeltaFilter::shouldApplyFilteringForEvent const):
(WebCore::WheelEventDeltaFilter::eventCopyWithFilteredDeltas const):
(WebCore::BasicWheelEventDeltaFilter::updateFromEvent):
(WebCore::BasicWheelEventDeltaFilter::updateWithDelta):
(WebCore::BasicWheelEventDeltaFilter::reset):
(WebCore::BasicWheelEventDeltaFilter::dominantAxis const):
(WebCore::WheelEventDeltaFilter::isFilteringDeltas const): Deleted.
(WebCore::BasicWheelEventDeltaFilter::updateFromDelta): Deleted.
(WebCore::BasicWheelEventDeltaFilter::beginFilteringDeltas): Deleted.
(WebCore::BasicWheelEventDeltaFilter::endFilteringDeltas): Deleted.
(WebCore::BasicWheelEventDeltaFilter::dominantScrollGestureDirection const): Deleted.

  • page/WheelEventDeltaFilter.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::determineWheelEventTarget):
(WebCore::EventHandler::recordWheelEventForDeltaFilter): Deleted.

  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm:

(WebCore::WheelEventDeltaFilterMac::WheelEventDeltaFilterMac):
(WebCore::WheelEventDeltaFilterMac::updateFromEvent):
(WebCore::WheelEventDeltaFilterMac::reset):
(WebCore::WheelEventDeltaFilterMac::beginFilteringDeltas): Deleted.
(WebCore::WheelEventDeltaFilterMac::updateFromDelta): Deleted.
(WebCore::WheelEventDeltaFilterMac::endFilteringDeltas): Deleted.

  • platform/PlatformWheelEvent.h:

(WebCore::PlatformWheelEvent::copyWithDeltaAndVelocity const): Take a FloatSize for the delta.
(WebCore::PlatformWheelEvent::copyWithDeltasAndVelocity const): Deleted.

Source/WebKit:

Push the decision about which kinds of wheel events to apply filtering to down into
WheelEventDeltaFilter, which simplifies call sites.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

LayoutTests:

Add a test to verify that wheel events sent to JS aren't affected by the wheel event
delta filter.

  • fast/scrolling/mac/wheel-event-deltas-are-not-filtered-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-deltas-are-not-filtered.html: Added.
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:

Adjust the test for the fact that the momentum phase is now axis-locked.

11:53 PM Changeset in webkit [285366] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Make it possible to avoid retargeting a ScrollingMomentumCalculator
https://bugs.webkit.org/show_bug.cgi?id=232778

Reviewed by Wenson Hsieh.

Calling -[_NSScrollingMomentumCalculator setDestinationOrigin:] to the same origin it's
already targeting has side effects related to rubber-banding which a future patch needs to
avoid. However, ScrollingMomentumCalculator is structured to expect that
setRetargetedScrollOffset() is called, otherwise m_retargetedScrollOffset is left unset.

Fix so that if the ScrollingMomentumCalculator's destination is already correct when no
retargeting is necessary. We continue to store the std::optional m_retargetedScrollOffset,
but always initialize m_initialDestinationOffset.

Now ScrollAnimationMomentum::startAnimatedScrollWithInitialVelocity() can avoid
calling setRetargetedScrollOffset() if the modifier function doesn't alter the
target scroll offset.

ScrollingMomentumCalculatorMac had some undesirable behavior in the
!gEnablePlatformMomentumScrollingPrediction code path; we need to ensure that
_NSScrollingMomentumCalculator agrees about the predicted destination.

Tested by existing scroll snap tests.

  • platform/ScrollAnimationMomentum.cpp:

(WebCore::ScrollAnimationMomentum::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationMomentum::updateScrollExtents):

  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::startMomentumScrollWithInitialVelocity):

  • platform/ScrollingMomentumCalculator.cpp:

(WebCore::ScrollingMomentumCalculator::setRetargetedScrollOffset):
(WebCore::BasicScrollingMomentumCalculator::BasicScrollingMomentumCalculator):
(WebCore::BasicScrollingMomentumCalculator::linearlyInterpolatedOffsetAtProgress):
(WebCore::BasicScrollingMomentumCalculator::initializeInterpolationCoefficientsIfNecessary):
(WebCore::BasicScrollingMomentumCalculator::initializeSnapProgressCurve):

  • platform/ScrollingMomentumCalculator.h:

(WebCore::ScrollingMomentumCalculator::destinationScrollOffset const):
(WebCore::ScrollingMomentumCalculator::destinationScrollOffsetDidChange):
(WebCore::ScrollingMomentumCalculator::retargetedScrollOffset const): Deleted.
(WebCore::ScrollingMomentumCalculator::retargetedScrollOffsetDidChange): Deleted.

  • platform/mac/ScrollingMomentumCalculatorMac.h:
  • platform/mac/ScrollingMomentumCalculatorMac.mm:

(WebCore::ScrollingMomentumCalculatorMac::ScrollingMomentumCalculatorMac):
(WebCore::ScrollingMomentumCalculatorMac::scrollOffsetAfterElapsedTime):
(WebCore::ScrollingMomentumCalculatorMac::predictedDestinationOffset):
(WebCore::ScrollingMomentumCalculatorMac::destinationScrollOffsetDidChange):
(WebCore::ScrollingMomentumCalculatorMac::setMomentumCalculatorDestinationOffset):
(WebCore::ScrollingMomentumCalculatorMac::requiresMomentumScrolling):
(WebCore::ScrollingMomentumCalculatorMac::ensurePlatformMomentumCalculator):
(WebCore::ScrollingMomentumCalculatorMac::retargetedScrollOffsetDidChange): Deleted.

9:49 PM Changeset in webkit [285365] by Megan Gardner
  • 3 edits in trunk/Source/WebCore

Lookup for text would not show after clicking the page and using key commands to launch.
https://bugs.webkit.org/show_bug.cgi?id=232766
rdar://74562619

Reviewed by Wenson Hsieh.

When triggering the lookup command with command-control-D or the triple finger tap on mac, if you have previously
clicked the page, the lookup would time out and the popover would never show. This was because after clicking on the page,
an invisible caret selection would exist, which would change the path taken for highlighting and temporarily selecting text to
be sent to data detectors.
The solution was to set ignoreSelectionChanges on the temporary selection, and also to stop propagating temporary selection changes to accessibility, as
that should not be necessary and that is the code that cause a sync message (RootViewToScreen) to be sent to the UI process while it was sync awaiting our
reply to the sync message (DidPerformImmediateActionHitTest) sent earlier for the original request for data detectors.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

9:33 PM Changeset in webkit [285364] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Rebaseline for fast/text/midword-break-after-breakable-char.html
https://bugs.webkit.org/show_bug.cgi?id=232777
<rdar://84995628>

Unreviewed.

  • platform/mac/fast/text/midword-break-after-breakable-char-expected.txt: soft-hyphen font fallback measuring progression.
9:27 PM Changeset in webkit [285363] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Rebaseline for fast/text/basic/014.html
https://bugs.webkit.org/show_bug.cgi?id=232776
<rdar://84995386>

Unreviewed.

  • platform/mac/fast/text/basic/014-expected.txt:
8:52 PM Changeset in webkit [285362] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening some offscreencanvas failures after recent WPT update

Unreviewed test gardening.

  • platform/glib/TestExpectations:
8:02 PM Changeset in webkit [285361] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS] IPC decoder for ResourceRequest loses systemPreviewInfo when there is platform data
https://bugs.webkit.org/show_bug.cgi?id=232769

Reviewed by Wenson Hsieh.

The IPC decoder for ResourceRequest decodes systemPreviewInfo and sets it on the ResourceRequest.
It then uses different code paths to decode the rest of the ResourceRequest based on whether or not
there is underlying platform data. If there is underlying platform data, we call decodePlatformData()
which creates a brand-new ResourceRequest, and thus loses the systemPreviewInfo we've just set.

To address the issue, we now decode extra data members *after* decoding platform data instead of
*before*.

This was causing the ProcessSwap.SameOriginSystemPreview API test to fail on iOS with the patch for
Bug 231727.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceRequest>::decode):

6:42 PM Changeset in webkit [285360] by Russell Epstein
  • 1 copy in tags/Safari-613.1.7

Tag Safari-613.1.7.

5:51 PM Changeset in webkit [285359] by Wenson Hsieh
  • 7 edits
    1 add in trunk

[iOS] Mail compose becomes unresponsive after pasting in text and attempting to type
https://bugs.webkit.org/show_bug.cgi?id=232764
rdar://84669661

Reviewed by Geoff Garen.

Source/WebCore:

After some recent changes in UIKit, keyboard code now calls into -requestDocumentContext:completionHandler:
after inserting text with the software keyboard, and specifically requests sentence-granularity text context
near the selection. This triggered an existing bug in WebKit, where we hang underneath
WebPage::requestDocumentEditingContext when trying to move backwards by sentence granularity, when computing
contextBeforeStart; this hang occurs because it's possible for the logic in nextSentenceBoundaryInDirection
(inside WebCore) to return a visible position that is in the opposite direction, relative to the given starting
position and direction. In turn, this means we end up revisiting visible positions while moving to the next
sentence boundary.

To prevent this, we make two minor adjustments in editing code. First, in nextSentenceBoundaryInDirection(),
we use result instead of the given vp when trying to find the next sentence boundary, in the case where the
given visible position is not already within a sentence. This was presumably the original intent of this code,
which is to "iterate to the start of the next sentence (when moving downstream) or the end of the previous
sentence (when moving upstream)". However, since vp is currently used here instead, we end up moving in the
wrong direction and return the start of the current sentence when moving downstream, or the end of the current
sentence when moving upstream.

Fixing this issue is actually already sufficient in order to address the hangs encountered in the radar;
however, the test case still hits subsequent debug assertions in moveByGranularityRespectingWordBoundary, due
to atBoundaryOfGranularity never returning true, even for visible positions that are at the start or end of
sentences. In lieu of debug assertions, this causes -requestDocumentContext to effectively ignore the given
granularity and traverse too far in either direction, due to atBoundaryOfGranularity always being false (we
avoid infinitely looping and bail because after fixing the first bug above, nextPosition eventually becomes
null).

To address this assertion, we make a second tweak to atBoundaryOfGranularity that allows us to return true
if the given position is already at a sentence boundary (instead of marching to the previous or next sentence
and then moving in the opposite direction). The latter was added in r253561 to fix some corner cases where
startOfSentence() or endOfSentence() would end up moving us past the next (or previous) sentence, but this
seems to break some existing scenarios where the given position is already at the start or end of the sentence.

Test: DocumentEditingContext.RequestSentencesAfterTextInsertion

  • editing/VisibleUnits.cpp:

(WebCore::atBoundaryOfGranularity):
(WebCore::nextSentenceBoundaryInDirection):

See above for more details.

Tools:

Add an API test that exercises the hang (and also verifies that we don't hit any debug assertions in the
process).

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/InsertTextAlternatives.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/simple-editor.html: Added.
  • TestWebKitAPI/ios/UIKitSPI.h:

Drive-by fixes: remove some old staging declarations for UIKit SPI that has long been in the internal iOS 15
SDK. Remove the staging categories and definitions, and move them to the non-internal SDK section instead.

4:55 PM Changeset in webkit [285358] by Patrick Griffis
  • 3 edits in trunk/Source/WebCore

[GLIB] Be more careful about calling LowPowerModeNotifier's callback
https://bugs.webkit.org/show_bug.cgi?id=232767

Reviewed by Michael Catanzaro.

This callback is expected to only be called when the value changes
otherwise it will hit asserts elsewhere such as in NetworkCache.

  • platform/LowPowerModeNotifier.h:
  • platform/glib/LowPowerModeNotifierGLib.cpp:

(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::isLowPowerModeEnabled const):

4:06 PM Changeset in webkit [285357] by Nikos Mouchtaris
  • 26 edits in trunk/Source

Make scroll bar mode an enum class
https://bugs.webkit.org/show_bug.cgi?id=232651

Reviewed by Simon Fraser.

Source/WebCore:

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::scrollingMode const):

  • html/HTMLFrameOwnerElement.h:

(WebCore::HTMLFrameOwnerElement::scrollingMode const):

  • page/Frame.cpp:

(WebCore::Frame::createView):

  • page/Frame.h:
  • page/FrameView.cpp:

(WebCore::FrameView::resetScrollbars):
(WebCore::FrameView::init):
(WebCore::FrameView::updateCanHaveScrollbars):
(WebCore::FrameView::applyOverflowToViewport):
(WebCore::FrameView::calculateScrollbarModesForLayout):
(WebCore::FrameView::adjustScrollbarsForLayout):
(WebCore::FrameView::performFixedWidthAutoSize):
(WebCore::FrameView::performSizeToContentAutoSize):
(WebCore::FrameView::isScrollable):
(WebCore::FrameView::enableAutoSizeMode):

  • page/SpatialNavigation.cpp:

(WebCore::canScrollInDirection):

  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • platform/ScrollTypes.cpp:

(WebCore::operator<<):

  • platform/ScrollTypes.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::setCanHaveScrollbars):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::platformScrollbarModes const):

  • platform/ScrollView.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalScrollbarMode const):
(WebCore::ScrollableArea::verticalScrollbarMode const):
(WebCore::ScrollableArea::canHaveScrollbars const):

  • platform/ios/wak/WAKScrollView.mm:

(-[WAKScrollView horizontalScrollingMode]):
(-[WAKScrollView verticalScrollingMode]):

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::performLayoutWithFlattening):

  • rendering/RenderIFrame.cpp:

(WebCore::RenderIFrame::flattenFrame const):

  • rendering/RenderLayer.cpp:

(WebCore::frameElementAndViewPermitScroll):

  • rendering/RenderLayerBacking.cpp:

(WebCore::computePageTiledBackingCoverage):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setAlwaysShowsHorizontalScroller):
(WebKit::WebPage::setAlwaysShowsVerticalScroller):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebView/WebDynamicScrollBarsView.mm:

(-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]):
(-[WebDynamicScrollBarsView updateScrollers]):
(-[WebDynamicScrollBarsView allowsHorizontalScrolling]):
(-[WebDynamicScrollBarsView allowsVerticalScrolling]):

  • WebView/WebView.mm:

(-[WebView setAlwaysShowVerticalScroller:]):
(-[WebView alwaysShowVerticalScroller]):
(-[WebView setAlwaysShowHorizontalScroller:]):
(-[WebView alwaysShowHorizontalScroller]):

3:42 PM Changeset in webkit [285356] by Ryan Haddad
  • 5 edits in trunk/Tools

[steps.py] Update macOS versions in build_to_name_mapping
https://bugs.webkit.org/show_bug.cgi?id=232732

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(PrintConfiguration.convert_build_to_os_name):

  • CISupport/ews-build/steps_unittest.py:
  • CISupport/build-webkit-org/steps.py:

(PrintConfiguration.convert_build_to_os_name):

  • CISupport/build-webkit-org/steps_unittest.py:
3:20 PM Changeset in webkit [285355] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening more timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
3:00 PM Changeset in webkit [285354] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Print SDK version after update
https://bugs.webkit.org/show_bug.cgi?id=232725

Reviewed by Adrian Perez de Castro.

Print the actual installed version after the update step, even if
nothing was updated. This should help tracking the SDK versions across
builds on the bots.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.main):

1:32 PM Changeset in webkit [285353] by Ryan Haddad
  • 2 edits in trunk/Tools

Bring up queues for Monterey
https://bugs.webkit.org/show_bug.cgi?id=232186

Unreviewed follow-up fix.

  • CISupport/build-webkit-org/config.json: Should have used bot185, not bot186.
12:53 PM Changeset in webkit [285352] by Russell Epstein
  • 2 edits in branches/safari-613.1.7-branch/Source/WebCore

Cherry-pick r285305. rdar://problem/85082384

[ iOS ] TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS is crashing
https://bugs.webkit.org/show_bug.cgi?id=232676

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-04
Reviewed by Eric Carlson.

In WebKitLegacy on iOS, WebCoreAVFPullDelegate.initWithPlayer is being called on the web thread,
but outputMediaDataWillChange is being called on the main run loop then accessing _player in a non-thread-safe manner.
To fix this, I call callOnMainThread to access _player on the web thread. To fix the assertion that happens after this
fix, I made MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange able to be called on the non-main run loop.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange): (-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285305 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:53 PM Changeset in webkit [285351] by Russell Epstein
  • 2 edits in branches/safari-613.1.7-branch/Source/WebCore

Cherry-pick r285231. rdar://problem/85082384

[ iOS ] TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS is crashing
https://bugs.webkit.org/show_bug.cgi?id=232676

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-03
Reviewed by Eric Carlson.

In r284743 we changed types from raw pointers to WeakPtr, but accessing them in layoutSublayers is not thread safe.
Remove some unsafe early returns.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm: (-[WebAVPlayerLayer layoutSublayers]): (-[WebAVPlayerLayer resolveBounds]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285231 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:33 PM Changeset in webkit [285350] by commit-queue@webkit.org
  • 22 edits
    1 copy
    1 add in trunk

Restructure WKContentRuleList Action storage during compilation and interpretation
https://bugs.webkit.org/show_bug.cgi?id=232692

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-05
Reviewed by Brady Eidson.

Source/WebCore:

This uses a std::variant of each type's metadata instead of an enum type and a String.
This is necessary cleanup before implementing actions with more complex metadata.

I also separated out DeserializedAction, which is deserialized from the compiled WKContentRuleList
from Action, which is parsed from the JSON and doesn't have an identifier.

This is covered by numerous tests, which also needed syntax updating for the new structure types.
There is no change in behavior and the serialization and deserialization is all the same.

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::findFirstIgnorePreviousRules const):
(WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet):

  • contentextensions/ContentExtensionActions.h:

(WebCore::ContentExtensions::ActionWithoutMetadata::isolatedCopy):
(WebCore::ContentExtensions::ActionWithoutMetadata::operator== const):
(WebCore::ContentExtensions::ActionWithoutMetadata::serialize const):
(WebCore::ContentExtensions::ActionWithoutMetadata::deserialize):
(WebCore::ContentExtensions::ActionWithoutMetadata::serializedLength):
(WebCore::ContentExtensions::ActionWithStringMetadata::isolatedCopy):
(WebCore::ContentExtensions::ActionWithStringMetadata::operator== const):
(WebCore::ContentExtensions::ActionWithStringMetadata::serialize const):
(WebCore::ContentExtensions::ActionWithStringMetadata::deserialize):
(WebCore::ContentExtensions::ActionWithStringMetadata::serializedLength):
(WebCore::ContentExtensions::hasStringArgument): Deleted.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::resolvePendingDisplayNoneActions):
(WebCore::ContentExtensions::serializeActions):
(WebCore::ContentExtensions::serializeString): Deleted.

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):

  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::deserializeString):
(WebCore::ContentExtensions::serializeString):
(WebCore::ContentExtensions::stringSerializedLength):
(WebCore::ContentExtensions::VariantDeserializerHelper::serializedLength):
(WebCore::ContentExtensions::Action::deserialize):
(WebCore::ContentExtensions::Action::serializedLength):
(WebCore::ContentExtensions::Action::isolatedCopy const):
(WebCore::ContentExtensions::Action::deserializeType): Deleted.

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::Action):
(WebCore::ContentExtensions::Action::operator== const):
(WebCore::ContentExtensions::Action::operator!= const):
(WebCore::ContentExtensions::Action::data const):
(WebCore::ContentExtensions::DeserializedAction::DeserializedAction):
(WebCore::ContentExtensions::DeserializedAction::actionID const):
(WebCore::ContentExtensions::Action::type const): Deleted.
(WebCore::ContentExtensions::Action::actionID const): Deleted.
(WebCore::ContentExtensions::Action::stringArgument const): Deleted.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):

Source/WTF:

  • wtf/CrossThreadCopier.h:
  • wtf/StdLibExtras.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::testRequest):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::actionsEqual):
(WebCore::ContentExtensions::operator<<): Deleted.

12:08 PM Changeset in webkit [285349] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

generate-xcfilelists doesn't work if build path contains a +
https://bugs.webkit.org/show_bug.cgi?id=232493

Reviewed by Simon Fraser.

  • Scripts/webkitpy/generate_xcfilelists_lib/generators.py:

(BaseGenerator._generate_derived):
(BaseGenerator._replaceSinglePrefix):
(BaseGenerator._replacePrefix):
(BaseGenerator._unexpand._try_unexpand):
(BaseGenerator._replace): Deleted.
The xcfilelist generator had a regex injection issue that resulted in
paths with not-very-special characters causing it to infinitely
regenerate the xcfilelists; we can just use simple string prefix
replacement instead.

11:57 AM Changeset in webkit [285348] by Russell Epstein
  • 3 edits in trunk

Cherry-pick r284635. rdar://problem/85039977

[JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
https://bugs.webkit.org/show_bug.cgi?id=232059

Reviewed by Saam Barati.

JSTests:

  • stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added. (foo.bar): (foo):

Source/JavaScriptCore:

When inserting GetTypedArrayLengthAsInt52 after fixup phase, we must set NodeResultInt52.

  • dfg/DFGSSALoweringPhase.cpp: (JSC::DFG::SSALoweringPhase::handleNode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284635 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:46 AM Changeset in webkit [285347] by Nikos Mouchtaris
  • 13 edits in trunk/Source

Make scroll elasticity an enum class
https://bugs.webkit.org/show_bug.cgi?id=232646

Reviewed by Simon Fraser.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:
  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):

  • platform/ScrollTypes.cpp:

(WebCore::operator<<):

  • platform/ScrollTypes.h:
  • platform/ScrollableArea.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::allowsVerticalStretching const):
(WebCore::ScrollAnimatorMac::allowsHorizontalStretching const):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::setHasHorizontalScrollbar):
(WebCore::RenderLayerScrollableArea::setHasVerticalScrollbar):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setEnableVerticalRubberBanding):
(WebKit::WebPage::setEnableHorizontalRubberBanding):

11:14 AM Changeset in webkit [285346] by Chris Dumez
  • 275 edits
    58 copies
    19 moves
    914 adds
    59 deletes in trunk/LayoutTests

Resync web-platform-tests/html from upstream
https://bugs.webkit.org/show_bug.cgi?id=232449

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync web-platform-tests/html from upstream 038de3e0ddeaf9e20b.

  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.

LayoutTests:

10:43 AM Changeset in webkit [285345] by Devin Rousso
  • 17 edits in trunk

[css-values-4] viewport units should be floats
https://bugs.webkit.org/show_bug.cgi?id=231644
<rdar://problem/84172685>

Reviewed by Tim Horton.

Source/WebCore:

Views can be fractional pixels wide. We should not round, especially since viewport units
are used as percentage values (e.g. 50dvh is "50% of the height of the current viewport").

Tests: CSSViewportUnits.EmptyUnobscuredSizeOverrides

CSSViewportUnits.SameUnobscuredSizeOverrides
CSSViewportUnits.DifferentUnobscuredSizeOverrides

  • page/FrameView.h:
  • page/FrameView.cpp:

(WebCore::FrameView::setSizeForCSSSmallViewportUnits):
(WebCore::FrameView::overrideWidthForCSSSmallViewportUnits):
(WebCore::FrameView::sizeForCSSSmallViewportUnits const):
(WebCore::FrameView::setSizeForCSSLargeViewportUnits):
(WebCore::FrameView::overrideWidthForCSSLargeViewportUnits):
(WebCore::FrameView::sizeForCSSLargeViewportUnits const):
(WebCore::FrameView::calculateSizeForCSSViewportUnitsOverride const):
(WebCore::FrameView::sizeForCSSDynamicViewportUnits const):
(WebCore::FrameView::sizeForCSSDefaultViewportUnits const):

  • rendering/RenderView.h:
  • rendering/RenderView.cpp:

(WebCore::RenderView::sizeForCSSSmallViewportUnits const):
(WebCore::RenderView::sizeForCSSLargeViewportUnits const):
(WebCore::RenderView::sizeForCSSDynamicViewportUnits const):
(WebCore::RenderView::sizeForCSSDefaultViewportUnits const):

Source/WebKit:

Views can be fractional pixels wide. We should not round, especially since viewport units
are used as percentage values (e.g. 50dvh is "50% of the height of the current viewport").

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setViewportSizeForCSSViewportUnits:]):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setViewportSizeForCSSViewportUnits):

  • Shared/WebPageCreationParameters.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setViewportSizeForCSSViewportUnits):
(WebKit::WebPage::viewportSizeForCSSViewportUnits const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:

(evaluateForNumber):
(getElementHeight):
(TEST.CSSViewportUnits.AllSame):
(TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SameUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides):

  • TestWebKitAPI/Tests/WebKit/ViewportSizeForViewportUnits.mm:

(TEST.WebKit.ViewportSizeForViewportUnits):

10:34 AM Changeset in webkit [285344] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Media Controls] Volume button orientation is always stuck to right-to-left
https://bugs.webkit.org/show_bug.cgi?id=232761

Reviewed by Dean Jackson.

  • Modules/modern-media-controls/controls/media-controls.js:

(MediaControls.prototype.set usesLTRUserInterfaceLayoutDirection):

10:18 AM Changeset in webkit [285343] by commit-queue@webkit.org
  • 37 edits
    2 adds in trunk

Implement parsing and animation support for offset-path
https://bugs.webkit.org/show_bug.cgi?id=231801

Patch by Kiet Ho <Kiet Ho> on 2021-11-05
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Updated relevant test expectations.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-001-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-002-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-003-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-004-expected.txt:
  • web-platform-tests/css/motion/animation/offset-path-interpolation-005-expected.txt:
  • web-platform-tests/css/motion/inheritance-expected.txt:
  • web-platform-tests/css/motion/offset-path-serialization-expected.txt:
  • web-platform-tests/css/motion/offset-supports-calc-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-computed-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-path-parsing-valid-expected.txt:
  • web-platform-tests/css/motion/parsing/offset-shorthand-expected.txt:

Source/WebCore:

Implements parsing and animation support for offset-path based on clip-path.
offset-path additionally supports ray() shape, which will be implemented in a future patch.

Tests: imported/w3c/web-platform-tests/css/motion/inheritance.html

imported/w3c/web-platform-tests/css/motion/offset-path-serialization.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-001.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-002.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-003.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-004.html
imported/w3c/web-platform-tests/css/motion/animation/offset-path-interpolation-005.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-computed.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-invalid.html
imported/w3c/web-platform-tests/css/motion/parsing/offset-path-parsing-valid.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
Added animation support for offset-path.

  • css/BasicShapeFunctions.cpp:

(WebCore::copySVGPathByteStream):
(WebCore::valueForBasicShape): Added enum to specify conversions done on the
resulting SVG path. So far, the only available conversion is converting relative
draw commands in a path to absolute. This is required when getting the computed value of
offset-path.

  • css/BasicShapeFunctions.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForPathOperation): Moved logic to get value of PathOperation
into a separate method.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Added support for
offset-path.

  • css/CSSProperties.json: Added entry for offset-path.
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumePathOperation): Renamed from consumeClipPath.
(WebCore::CSSPropertyParser::parseSingleValue): Added support for parsing offset-path.

  • rendering/style/RenderStyle.h: Added support for offset-path.

(WebCore::RenderStyle::offsetPath const):
(WebCore::RenderStyle::setOffsetPath):
(WebCore::RenderStyle::initialOffsetPath):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h: Added storage space for offset-path.
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertPathOperation): Renamed from convertClipPath

  • svg/SVGPathAbsoluteConverter.cpp: Added helper class to convert relative draw

commands in an SVG path to absolute.
(WebCore::SVGPathAbsoluteConverter::SVGPathAbsoluteConverter):
(WebCore::SVGPathAbsoluteConverter::incrementPathSegmentCount):
(WebCore::SVGPathAbsoluteConverter::continueConsuming):
(WebCore::SVGPathAbsoluteConverter::moveTo):
(WebCore::SVGPathAbsoluteConverter::lineTo):
(WebCore::SVGPathAbsoluteConverter::curveToCubic):
(WebCore::SVGPathAbsoluteConverter::closePath):
(WebCore::SVGPathAbsoluteConverter::lineToHorizontal):
(WebCore::SVGPathAbsoluteConverter::lineToVertical):
(WebCore::SVGPathAbsoluteConverter::curveToCubicSmooth):
(WebCore::SVGPathAbsoluteConverter::curveToQuadratic):
(WebCore::SVGPathAbsoluteConverter::curveToQuadraticSmooth):
(WebCore::SVGPathAbsoluteConverter::arcTo):

  • svg/SVGPathAbsoluteConverter.h: Added.
  • svg/SVGPathUtilities.cpp:

(WebCore::convertSVGPathByteStreamToAbsoluteCoordinates):

  • svg/SVGPathUtilities.h:

LayoutTests:

Updated relevant test expectations.

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
9:32 AM Changeset in webkit [285342] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Media Controls] range buttons don't prevent scrolling while dragging
https://bugs.webkit.org/show_bug.cgi?id=232757
<rdar://problem/83637971>

Reviewed by Dean Jackson.

Since we are using Pointer Events to implement the dragging interaction for RangeButton,
we need to set touch-action: none to prevent any default user-agent behavior.

  • Modules/modern-media-controls/controls/range-button.css:

(button.range):

9:10 AM Changeset in webkit [285341] by Jonathan Bedard
  • 2 edits in trunk/Tools

[ic-stats.py] Change shebang to Python 3
https://bugs.webkit.org/show_bug.cgi?id=232721
<rdar://problem/85030782>

Reviewed by Alexey Proskuryakov.

  • Scripts/ic-stats.py:
1:23 AM Changeset in webkit [285340] by Carlos Garcia Campos
  • 13 edits in trunk/Source

AX: rename actionVerb() as localizedActionVerb()
https://bugs.webkit.org/show_bug.cgi?id=232711
<rdar://problem/85015496>

Reviewed by Andres Gonzalez.

Source/WebCore:

Since it's returning the localized name. In ATSPI there are two methods in the action interface GetName and
GetLocalizedName, so this patch also adds actionVerb() returning the unlocalized action name.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::localizedActionVerb const):
(WebCore::AccessibilityObject::actionVerb const):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::localizedActionVerb const):

  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::tabChildren):
(WebCore::AccessibilityRenderObject::actionVerb const): Deleted.

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/atk/WebKitAccessibleHyperlink.cpp:

(webkitAccessibleHyperlinkActionGetName):

  • accessibility/atk/WebKitAccessibleInterfaceAction.cpp:

(webkitAccessibleActionGetName):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:

Source/WebKitLegacy/win:

  • AccessibleBase.cpp:

(AccessibleBase::get_accDefaultAction): Use localizedActionVerb().

1:22 AM Changeset in webkit [285339] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK][a11y] Embedded objects are not correctly handled by text interface with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=232622

Reviewed by Andres Gonzalez.

Source/WebCore:

Make sure text iterator is emitting object replacement characters when converting offsets to/from visible positions.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::visiblePositionForIndex const):
(WebCore::AccessibilityRenderObject::indexForVisiblePosition const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::boundsForSelection const):

  • editing/Editing.cpp:

(WebCore::indexForVisiblePosition):
(WebCore::visiblePositionForIndex):

  • editing/Editing.h:

Tools:

Add a test case to check handling of embedded objects by text interface.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTextReplacedObjects):
(beforeAll):

1:21 AM Changeset in webkit [285338] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. [GTK][WPE] Fix compile warning after r284675

  • accessibility/AXObjectCache.cpp:

Nov 4, 2021:

11:23 PM Changeset in webkit [285337] by Russell Epstein
  • 1 edit in branches/safari-612-branch/Source/JavaScriptCore/bytecode/GetterSetterAccessCase.cpp

Unreviewed build fix. rdar://problem/85045208

unused variable 'stubInfo' [-Werror,-Wunused-variable]

10:14 PM Changeset in webkit [285336] by Russell Epstein
  • 7 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r285335. rdar://problem/85045948

Have RemoteMediaResource use SharedMemory
https://bugs.webkit.org/show_bug.cgi?id=232744
rdar://85045948

Reviewed by Alex Christensen.

When playing a non-mse media element, the loading gets initiated in the
GPU Process and proxied to the WebContent process via a RemoteMediaResource.
By using a SharedBuffer in the RemoteMediaResource wrapping a SharedMemory
we can allocate the buffer in the content process and pass it to the GPU
process without copy nor new allocations.
Playing a 694MB mp4, the GPU memory usage goes from 868MB to 14MB on an
iPhone running iOS 15.
This is a follow-up on bug 232422, what landed was missing this part.

  • GPUProcess/media/RemoteMediaResource.cpp: (WebKit::RemoteMediaResource::dataReceived):
  • GPUProcess/media/RemoteMediaResource.h:
  • GPUProcess/media/RemoteMediaResourceManager.cpp: (WebKit::RemoteMediaResourceManager::dataReceived): Wrap SharedMemory into a SharedBuffer.
  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/media/RemoteMediaResourceManager.messages.in: Change data type from an IPCDataReference to a ShareMemory's handle.
  • WebProcess/GPU/media/RemoteMediaResourceProxy.cpp: (WebKit::RemoteMediaResourceProxy::dataReceived): Allocate a SharedMemory and copy the download data into it, before sending it to the GPU process.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285335 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:06 PM Changeset in webkit [285335] by Jean-Yves Avenard
  • 7 edits in trunk/Source/WebKit

Have RemoteMediaResource use SharedMemory
https://bugs.webkit.org/show_bug.cgi?id=232744
rdar://85045948

Reviewed by Alex Christensen.

When playing a non-mse media element, the loading gets initiated in the
GPU Process and proxied to the WebContent process via a RemoteMediaResource.
By using a SharedBuffer in the RemoteMediaResource wrapping a SharedMemory
we can allocate the buffer in the content process and pass it to the GPU
process without copy nor new allocations.
Playing a 694MB mp4, the GPU memory usage goes from 868MB to 14MB on an
iPhone running iOS 15.
This is a follow-up on bug 232422, what landed was missing this part.

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::dataReceived):

  • GPUProcess/media/RemoteMediaResource.h:
  • GPUProcess/media/RemoteMediaResourceManager.cpp:

(WebKit::RemoteMediaResourceManager::dataReceived): Wrap SharedMemory into
a SharedBuffer.

  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/media/RemoteMediaResourceManager.messages.in: Change data type

from an IPCDataReference to a ShareMemory's handle.

  • WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:

(WebKit::RemoteMediaResourceProxy::dataReceived): Allocate a SharedMemory
and copy the download data into it, before sending it to the GPU process.

9:52 PM Changeset in webkit [285334] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Factor out didDraw / didDrawEntireCanvas calls in canvas drawing functions
https://bugs.webkit.org/show_bug.cgi?id=232527
<rdar://problem/84834950>

Reviewed by Antti Koivisto.

No behavior change except for in drawImage, where the
paintCurrentFrameInContext code path now will check whether to call
didDrawEntireCanvas.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::fillInternal):
(WebCore::CanvasRenderingContext2DBase::strokeInternal):
(WebCore::CanvasRenderingContext2DBase::fillRect):
(WebCore::CanvasRenderingContext2DBase::strokeRect):
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::didDraw):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):

  • html/canvas/CanvasRenderingContext2DBase.h:
9:06 PM Changeset in webkit [285333] by Cameron McCormack
  • 2 edits in trunk/Source/WebCore

Avoid sending video data to Web process for canvas.drawImage(video)
https://bugs.webkit.org/show_bug.cgi?id=230766
<rdar://problem/83576009>

Reviewed by Simon Fraser.

Using nativeImageForCurrentTime() to get the image to paint on to the
canvas results in a ShareableBitmap being created to send to the
Web process, the identifier for which we then send back to the GPU
process for the drawImage() call. But if we use
paintCurrentFrameInContext(), this uses the PaintFrameForMedia
message, which just sends the MediaPlayer ID and avoids the bitmap
creation.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::isRemote const):

8:40 PM Changeset in webkit [285332] by Russell Epstein
  • 4 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284036. rdar://problem/85034297

Fix spec-correctness when inlining proto intrinsic using get_by_id_with_this
https://bugs.webkit.org/show_bug.cgi?id=231559

Reviewed by Yusuke Suzuki.

My original fix in r283512 has some theoretical spec correctness issues.
I'm not sure if they can be materialized or not since we only use
get_by_id_with_this in very limited scenarios. However, this patch just
makes it so we call the getter instead of attempting to inline it
when using get_by_id_with_this.

  • jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::emitLoadPrototypeWithoutCheck): Deleted.
  • jit/AssemblyHelpers.h:
  • jit/IntrinsicEmitter.cpp: (JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter): (JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284036 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:40 PM Changeset in webkit [285331] by Russell Epstein
  • 6 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r283954. rdar://problem/85045208

Share more code that uses ScratchRegisterAllocator in the ICs
https://bugs.webkit.org/show_bug.cgi?id=231125
<rdar://problem/84066374>

Reviewed by Sam Weinig.

We had the same code to allocate a scratch register allocator copy pasted
all over the IC code. This patch refactors that to use a shared helper.

Also, Delete was using a ScratchRegisterAllocator for no reason (it never
allocated a scratch register), so I deleted that code.

  • bytecode/AccessCase.cpp: (JSC::AccessCase::generateWithGuard): (JSC::AccessCase::generateImpl):
  • bytecode/GetterSetterAccessCase.cpp: (JSC::GetterSetterAccessCase::emitDOMJITGetter):
  • bytecode/PolymorphicAccess.cpp: (JSC::AccessGenerationState::makeDefaultScratchAllocator): (JSC::PolymorphicAccess::regenerate):
  • bytecode/PolymorphicAccess.h:
  • jit/IntrinsicEmitter.cpp: (JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283954 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:27 PM Changeset in webkit [285330] by Cameron McCormack
  • 3 edits in trunk/Source/WebCore

Nested run loops under MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange can cause hang when timeout fires
https://bugs.webkit.org/show_bug.cgi?id=232695
<rdar://problem/85004449>

Reviewed by Jer Noble.

It's possible for MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
to be called re-entrantly, if the RunLoop::run call ends up processing
an event that also wants to synchronously update the media image. This
can cause a hang:

  1. Enter the outer waitForVideoOutputMediaDataWillChange call.
  2. Set up the outer timeout timer.
  3. Call RunLoop::run.

3.1. Enter the inner waitForVideoOutputMediaDataWillChange call.
3.2. Set up the inner timeout timer.
3.3. Call RunLoop::run.

3.3.1. Wait for new RunLoop events, and none arrive.
3.3.2. The outer timeout timer fires, calling RunLoop::stop.

3.4. Return from waitForVideoOutputMediaDataWillChange, cancelling

the inner timeout timer.

3.5. Wait for more events on the run loop, forever.

To avoid this, we can set up a single timeout timer, and track the
nesting level of our RunLoop::run calls. The innermost RunLoop::run call
will finish either by the timer firing (which calls RunLoop::stop) or by
the video data updating (which also calls RunLoop::stop, under
outputMediaDataWillChange). Either way, once the innermost
RunLoop::run call is finished, we know we can stop processing all of
the ancestor RunLoop:run calls.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):

8:25 PM Changeset in webkit [285329] by Russell Epstein
  • 1 delete in branches/safari-612.3.3.0-branch/Source/WebKit/ChangeLog.orig

Remove bogus file from source.

8:06 PM Changeset in webkit [285328] by Russell Epstein
  • 12 edits
    1 delete in branches/safari-612-branch

Cherry-pick r285239. rdar://problem/80991209

Apply patch. rdar://problem/84982191

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-612.3.3.0-branch@285239 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:45 PM Changeset in webkit [285327] by Russell Epstein
  • 4 edits in branches/safari-612-branch/Source

Revert "Apply patch. rdar://problem/80991209"

This reverts commit r285313.

6:56 PM Changeset in webkit [285326] by Russell Epstein
  • 1 edit in branches/safari-612-branch/Source/WebCore/page/cocoa/CaptionUserPreferencesMediaAFCocoa.mm

Unreviewed build fix. rdar://85042122

fatal error: 'wtf/cocoa/TypeCastsCocoa.h' file not found

6:54 PM Changeset in webkit [285325] by Russell Epstein
  • 9 edits
    1 add in branches/safari-612-branch/Source/WebCore

Cherry-pick r284163. rdar://problem/85042122

WebCore::CaptionUserPreferencesMediaAF should use a weak observer with CFNotificationCenter
<https://webkit.org/b/231550>
<rdar://problem/84129338>

Reviewed by Darin Adler.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Add CaptionUserPreferencesMediaAF.mm.
  • page/CaptionUserPreferences.cpp: (WebCore::CaptionUserPreferences::create): Add.
  • page/CaptionUserPreferences.h: (WebCore::CaptionUserPreferences):
  • Make subclass of RefCounted<> and CanMakeWeakPtr<>. (WebCore::CaptionUserPreferences::create): Add. (WebCore::CaptionUserPreferences::CaptionUserPreferences):
  • Move constructor to protected visiblity with explicit keyword, and add static create() method.
  • page/CaptionUserPreferencesMediaAF.cpp: (WebCore::userCaptionPreferencesChangedNotificationCallback):
  • Update to use extractCaptionUserPreferencesMediaAF() for Cococa platforms. Note that -> is used for two different userPreferences variable types based on the platform. (WebCore::CaptionUserPreferencesMediaAF::create): Add. (WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF):
  • Move initialization of m_listeningForPreferenceChanges to class definition. (WebCore::CaptionUserPreferencesMediaAF::~CaptionUserPreferencesMediaAF):
  • Update to use m_weakObserver as observer for Cocoa platforms. (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
  • Update to use m_weakObserver as observer and _CFNotificationObserverIsObjC in suspension behavior for Cocoa platforms.
  • page/CaptionUserPreferencesMediaAF.h: (WebCore::CaptionUserPreferencesMediaAF::create): Add. (WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF):
  • Move constructor to private visiblity, and add static create() method. (WebCore::CaptionUserPreferencesMediaAF::extractCaptionUserPreferencesMediaAF): Add. (WebCore::CaptionUserPreferencesMediaAF::createWeakObserver): Add. (WebCore::CaptionUserPreferencesMediaAF::m_weakObserver):
  • Add m_weakObserver instance variable for use with CFNotificationCenter. (WebCore::CaptionUserPreferencesMediaAF::m_listeningForPreferenceChanges):
  • Move initialization of m_listeningForPreferenceChanges here from the constructor.
  • page/cocoa/CaptionUserPreferencesMediaAFCocoa.mm: Add. (-[WebCaptionUserPreferencesMediaAFWeakObserver initWithWeakPtr:]): (-[WebCaptionUserPreferencesMediaAFWeakObserver userPreferences]):
  • Declare and implement WebCaptionUserPreferencesMediaAFWeakObserver class for use as a weak CFNotificationCenter observer. (WebCore::CaptionUserPreferencesMediaAF::createWeakObserver): Add.
  • Helper method to call from C++ that creates weak observer object from Objective-C++. (WebCore::CaptionUserPreferencesMediaAF::extractCaptionUserPreferencesMediaAF): Add.
  • Helper method to extract RefPtr<CaptionUserPreferencesMediaAF> from CFNotification observer parameter.
  • page/PageGroup.cpp: (WebCore::PageGroup::ensureCaptionPreferences):
  • Switch to using new create() methods.
  • page/PageGroup.h: (WebCore::PageGroup::m_captionPreferences):
  • Change from std::unique_ptr<> to RefPtr<>.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:35 PM Changeset in webkit [285324] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Use objectReplacementCharacter to mark atomic inline box position.
https://bugs.webkit.org/show_bug.cgi?id=232718

Reviewed by Antti Koivisto.

objectReplacementCharacter is input to the bidi code as atomic inline level box marker.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::InlineItemsBuilder::handleInlineLevelBox):
(WebCore::Layout::InlineItemsBuilder::buildPreviousTextContent): Take the atomic inline level boxes into account when building previous content for bidi processing.

6:01 PM Changeset in webkit [285323] by Russell Epstein
  • 9 edits
    1 delete in branches/safari-612-branch/Source/WebCore

Revert "Cherry-pick r284163. rdar://problem/84129338"

This reverts commit r285281.

5:54 PM Changeset in webkit [285322] by Ryan Haddad
  • 2 edits in trunk/Websites/webkit.org

Add Monterey to WebKit Build Archives page
https://bugs.webkit.org/show_bug.cgi?id=232739

Reviewed by Alexey Proskuryakov.

  • wp-content/themes/webkit/build-archives.php:
4:48 PM Changeset in webkit [285321] by Russell Epstein
  • 9 edits
    1 add in branches/safari-612-branch

Cherry-pick r282379. rdar://problem/85039227

Fix computed style for transform-origin on SVG boxes
https://bugs.webkit.org/show_bug.cgi?id=230172

Reviewed by Alan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/transform-origin-014-expected.txt:

Source/WebCore:

When getting the computed value for transform-origin on SVG boxes, we need to get
the appropriate "reference box" from the renderer. Do minor refactoring to share
code between rendering and computed style for SVG and non-SVG boxes.

Tested by imported/w3c/web-platform-tests/css/css-transforms/transform-origin-014.html

  • css/CSSComputedStyleDeclaration.cpp: (WebCore::transformReferenceBox): (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
  • rendering/RenderLayer.cpp: (WebCore::transformBoxToCSSBoxType): Deleted.
  • rendering/style/RenderStyleConstants.cpp: (WebCore::transformBoxToCSSBoxType):
  • rendering/style/RenderStyleConstants.h:
  • rendering/svg/SVGRenderSupport.cpp: (WebCore::SVGRenderSupport::transformReferenceBox):
  • rendering/svg/SVGRenderSupport.h:
  • svg/SVGGraphicsElement.cpp: (WebCore::SVGGraphicsElement::animatedLocalTransform const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282379 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:46 PM Changeset in webkit [285320] by Kate Cheney
  • 8 edits
    2 adds in trunk

Form action with a redirect should report correct blocked URI
https://bugs.webkit.org/show_bug.cgi?id=232660
<rdar://problem/84969024>

Reviewed by Brent Fulgham.

Source/WebCore:

We currently report the blocked URI as the target of a redirect, per
the spec it should actually be the initiating url.

Test: http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkIfFormActionAllowedByCSP const):

  • loader/FrameLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowResourceFromSource const):
(WebCore::ContentSecurityPolicy::allowFormAction const):

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/form-action-redirect-with-correct-blocked-uri.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked-expected.txt:

Update console logging to report the correct URL.

4:29 PM Changeset in webkit [285319] by dino@apple.com
  • 4 edits in trunk/Source

REGRESSION: AR Quicklook asset is shared instead of page URL
https://bugs.webkit.org/show_bug.cgi?id=232674
rdar://84220997

Reviewed by Antoine Quint.

There was a typo. ENABLE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
should be HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM).

Source/WebCore/PAL:

  • pal/spi/ios/SystemPreviewSPI.h:

Source/WebKit:

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
4:18 PM Changeset in webkit [285318] by mmaxfield@apple.com
  • 11 edits
    1 add in trunk/Source/WebCore

[Cocoa] Migrate from CTFontCopyVariationAxes() to CTFontCopyVariationAxesInternal() if possible
https://bugs.webkit.org/show_bug.cgi?id=232690

Reviewed by Simon Fraser and Cameron McCormack.

Source/WebCore:

CTFontCopyVariationAxesInternal() is faster than CTFontCopyVariationAxes(), but the strings
it provides are not localized. Luckily, we don't actually use the strings in the common case,
so we can migrate to CTFontCopyVariationAxesInternal() safely.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::variationAxes):
(WebCore::defaultVariationValues):
(WebCore::preparePlatformFont):

  • platform/graphics/cocoa/FontCacheCoreText.h:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::variationAxes const):

Source/WebCore/PAL:

  • pal/spi/cf/CoreTextSPI.h:
3:55 PM Changeset in webkit [285317] by commit-queue@webkit.org
  • 7 edits in trunk

We need to PreferNumber when calling toPrimitive for coercion to BigInt
https://bugs.webkit.org/show_bug.cgi?id=232720

Patch by Alexey Shvayka <ashvayka@apple.com> on 2021-11-04
Reviewed by Saam Barati.

JSTests:

  • stress/big-int-constructor.js:
  • stress/bigint-asintn.js:
  • stress/bigint-asuintn.js:

Source/JavaScriptCore:

The difference between "default" and "number" hints is observable only via
Symbol.toPrimitive method.

This patch aligns hints in ToBigInt [1] and BigInt constructor [2] with the
spec, V8, and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-tobigint (step 1)
[2]: https://tc39.es/ecma262/#sec-bigint-constructor-number-value (step 2)

  • runtime/BigIntConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toBigInt const):

2:58 PM Changeset in webkit [285316] by Nikos Mouchtaris
  • 31 edits in trunk/Source

Make scrollbar orientation an enum class
https://bugs.webkit.org/show_bug.cgi?id=232648

Reviewed by Simon Fraser.

Source/WebCore:

  • accessibility/AccessibilityScrollbar.cpp:

(WebCore::AccessibilityScrollbar::orientation const):

  • css/SelectorChecker.h:
  • css/SelectorCheckerTestFunctions.h:

(WebCore::scrollbarMatchesHorizontalPseudoClass):
(WebCore::scrollbarMatchesVerticalPseudoClass):

  • page/FrameView.cpp:

(WebCore::FrameView::horizontalScrollbarHiddenByStyle const):
(WebCore::FrameView::verticalScrollbarHiddenByStyle const):
(WebCore::FrameView::performSizeToContentAutoSize):
(WebCore::FrameView::adjustScrollStepForFixedContent):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):

  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::scroll):
(WebCore::ScrollAnimator::deltaFromStep):
(WebCore::ScrollAnimator::handleWheelEvent):

  • platform/ScrollTypes.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::scroll):
(WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):
(WebCore::ScrollableArea::didAddScrollbar):
(WebCore::ScrollableArea::willRemoveScrollbar):
(WebCore::ScrollableArea::doPostThumbMoveSnapping):

  • platform/ScrollableArea.h:

(WebCore::offsetForOrientation):

  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::pressedPartScrollDirection):
(WebCore::Scrollbar::moveThumb):
(WebCore::Scrollbar::mouseMoved):
(WebCore::Scrollbar::mouseDown):

  • platform/ScrollbarThemeComposite.cpp:

(WebCore::ScrollbarThemeComposite::splitTrack):
(WebCore::ScrollbarThemeComposite::trackPosition):
(WebCore::ScrollbarThemeComposite::trackLength):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::registerScrollbar):
(WebCore::ScrollbarThemeMac::hasButtons):
(WebCore::ScrollbarThemeMac::hasThumb):
(WebCore::buttonRepaintRect):
(WebCore::ScrollbarThemeMac::backButtonRect):
(WebCore::ScrollbarThemeMac::forwardButtonRect):
(WebCore::ScrollbarThemeMac::trackRect):

  • platform/mac/ScrollbarsControllerMac.mm:

(-[WebScrollerImpDelegate layer]):
(-[WebScrollerImpDelegate setUpAlphaAnimation:scrollerPainter:part:animateAlphaTo:duration:]):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasAutoScrollbar const):
(WebCore::RenderBox::hasAlwaysPresentScrollbar const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateOverflowControlsLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::destroyRootLayer):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::clear):
(WebCore::RenderLayerScrollableArea::destroyScrollbar):
(WebCore::RenderLayerScrollableArea::setHasHorizontalScrollbar):
(WebCore::RenderLayerScrollableArea::setHasVerticalScrollbar):
(WebCore::RenderLayerScrollableArea::updateScrollbarPresenceAndState):
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::layout):
(WebCore::RenderListBox::scrollToRevealElementAtListIndex):
(WebCore::RenderListBox::setScrollTop):
(WebCore::RenderListBox::createScrollbar):
(WebCore::RenderListBox::destroyScrollbar):

  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::RenderScrollbar):
(WebCore::RenderScrollbar::updateScrollbarParts):
(WebCore::RenderScrollbar::buttonRect const):
(WebCore::RenderScrollbar::trackRect const):
(WebCore::RenderScrollbar::trackPieceRectWithMargins const):
(WebCore::RenderScrollbar::minimumThumbLength const):

  • rendering/RenderScrollbarPart.cpp:

(WebCore::RenderScrollbarPart::layout):

  • rendering/RenderScrollbarTheme.cpp:

(WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
(WebCore::RenderScrollbarTheme::hasButtons):
(WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):

Source/WebKit:

  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::updateScrollbars):
(WebKit::PDFPlugin::createScrollbar):
(WebKit::PDFPlugin::destroyScrollbar):
(WebKit::PDFPlugin::destroy):

2:43 PM Changeset in webkit [285315] by Russell Epstein
  • 7 edits
    1 add in branches/safari-612-branch

Cherry-pick r283512. rdar://problem/85034084

IntrinsicGetterAccessCase implementation of proto needs to handle get_by_id_with_this
https://bugs.webkit.org/show_bug.cgi?id=229951
<rdar://problem/82787527>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/run-proto-intrinsic-getter-with-this-value-in-get-by-id-with-this.js: Added. (assert): (main.v37): (main):

Source/JavaScriptCore:

The whole point of get_by_id_with_this is to have different
slot base values for |this| vs the slot base when invoking
getters. However, our intrinsic getter inlining wasn't respecting
this. This patch makes the proto intrinsic getter do the right
thing. For typed array intrinsic getters, if they have different
|this| value vs slot base, we chose not to inline them, because
the type checks are not on the |this| value, so they're not guaranteed
to be typed arrays. We can improve upon this in the future.

  • bytecode/IntrinsicGetterAccessCase.h:
  • jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::emitLoadPrototypeWithoutCheck):
  • jit/AssemblyHelpers.h:
  • jit/IntrinsicEmitter.cpp: (JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter): (JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):
  • jit/Repatch.cpp: (JSC::tryCacheGetBy):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283512 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:42 PM Changeset in webkit [285314] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Revert "Cherry-pick r284036. rdar://problem/84167629"

This reverts commit r285280.

2:39 PM Changeset in webkit [285313] by Russell Epstein
  • 4 edits in branches/safari-612-branch/Source

Apply patch. rdar://problem/80991209

2:37 PM Changeset in webkit [285312] by Russell Epstein
  • 6 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r285177. rdar://problem/85033636

Terminate unresponsive network process by crashing it
https://bugs.webkit.org/show_bug.cgi?id=232603

Reviewed by Chris Dumez.

UI process currently kills network process when it does not respond message in some time (network process being
unresponsive). We've found one common case where network process becomes unresponsive is that it is blocked by
some slow operation on the main thread (like file operation in rdar://84511633). To understand what the
operations are and make a fix, we now ask network process to crash itself on IPC thread. In this way, we can get
crash report that includes the call stack of the main thread. To avoid generating too many crash reports, we
only send the crash message to network process when it becomes unresponsive multiple times in a short time
period.

  • Platform/IPC/Connection.cpp: (IPC::terminateDueToIPCTerminateMessage): (IPC::Connection::processIncomingMessage):
  • Scripts/webkit/model.py:
  • Scripts/webkit/tests/MessageNames.cpp: (IPC::description): (IPC::receiverName): (IPC::isValidMessageName):
  • Scripts/webkit/tests/MessageNames.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::shouldTerminateNetworkProcessBySendingMessage): (WebKit::NetworkProcessProxy::didBecomeUnresponsive):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285177 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:37 PM Changeset in webkit [285311] by Russell Epstein
  • 7 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r285115. rdar://problem/85033664

Increase responsiveness timeout for network process
https://bugs.webkit.org/show_bug.cgi?id=232505

Reviewed by Chris Dumez.

  • UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::AuxiliaryProcessProxy):
  • UIProcess/AuxiliaryProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::NetworkProcessProxy): (WebKit::NetworkProcessProxy::getNetworkProcessConnection):
  • UIProcess/ResponsivenessTimer.cpp: (WebKit::ResponsivenessTimer::ResponsivenessTimer): (WebKit::ResponsivenessTimer::timerFired): (WebKit::ResponsivenessTimer::start): (): Deleted.
  • UIProcess/ResponsivenessTimer.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::getNetworkProcessConnection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285115 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:37 PM Changeset in webkit [285310] by Russell Epstein
  • 3 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284651. rdar://problem/85033593

Call to [NSURL URLByAppendingPathComponent:] under NetworkSessionCocoa() may be inefficient
https://bugs.webkit.org/show_bug.cgi?id=232098

Reviewed by Alex Christensen.

Call [NSURL URLByAppendingPathComponent:isDirectory:] whenever possible instead of
[NSURL URLByAppendingPathComponent], as it is more efficient.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
  • UIProcess/Cocoa/WKShareSheet.mm: (+[WKShareSheet createRandomSharingDirectoryForFile:]): (+[WKShareSheet writeFileToShareableURL:data:temporaryDirectory:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284651 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:23 PM Changeset in webkit [285309] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Gardening some timeouts

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
2:19 PM Changeset in webkit [285308] by Russell Epstein
  • 4 edits in branches/safari-612-branch/Source

Cherry-pick r285241. rdar://problem/84990898

[macOS] MediaSession coordinator enabled in UIProcess, disabled in WebContent
https://bugs.webkit.org/show_bug.cgi?id=232687
<rdar://84990898>

Reviewed by Eric Carlson.

Source/WebKit:

The default value of defaultMediaSessionCoordinatorEnabled() will be true if the UIProcess has
the correct entitlement. However, this value is not passed across the XPC boundary unless it has
been overridden, which means defaultMediaSessionCoordinatorEnabled() will control the setting
in the WebContent process, which is not entitled.

Have the WebContent process check its parent process's entitlement rather than its own when
determining the default value for defaultMediaSessionCoordinatorEnabled().

  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultMediaSessionCoordinatorEnabled):

Source/WTF:

Have the MediaSessionPlaylistEnabled preference use the same defaults as MediaSessionCoordinatorEnabled.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285241 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:07 PM Changeset in webkit [285307] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Update global test expectations to skip more rvfc tests (and enable them only on Mac/iOS)
https://bugs.webkit.org/show_bug.cgi?id=232719

Unreviewed test gardening.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-04

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:35 PM Changeset in webkit [285306] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

Crash when opening and closing color picker while resetting form
https://bugs.webkit.org/show_bug.cgi?id=232689
rdar://84979791

Reviewed by Simon Fraser.

Source/WebKit:

Resetting a <form> element containing an <input type=color> resets
the value of the color input. If the WebProcess believes that a
color picker is visible in the UIProcess, an IPC message
(WebPageProxy_SetColorPickerColor) is sent to the UIProcess to update
the selected color.

If the color picker is closed by user action (on macOS, clicking
outside the popover), the UIProcess nulls out m_colorPicker, and
notifies the WebProcess that the color picker is no longer visible
by sending the WebPage_DidEndColorPicker message.

Consequently, it is possible for WebPageProxy_SetColorPickerColor to be
dispatched in the UIProcess after m_colorPicker is nulled out, while
the WebProcess is still waiting to process WebPage_DidEndColorPicker.
This sequence of events results in a MESSAGE_CHECK failure in
WebPageProxy::setColorPickerColor, leading to WebProcess termination.

To fix, remove the MESSAGE_CHECK and replace it with a null check, since
a null m_colorPicker is a valid state.

Test: fast/forms/color/color-input-reset-crash.html

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setColorPickerColor):

LayoutTests:

Added a layout test to exercise the crash.

  • fast/forms/color/color-input-reset-crash-expected.txt: Added.
  • fast/forms/color/color-input-reset-crash.html: Added.
1:31 PM Changeset in webkit [285305] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[ iOS ] TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS is crashing
https://bugs.webkit.org/show_bug.cgi?id=232676

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-04
Reviewed by Eric Carlson.

In WebKitLegacy on iOS, WebCoreAVFPullDelegate.initWithPlayer is being called on the web thread,
but outputMediaDataWillChange is being called on the main run loop then accessing _player in a non-thread-safe manner.
To fix this, I call callOnMainThread to access _player on the web thread. To fix the assertion that happens after this
fix, I made MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange able to be called on the non-main run loop.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):

1:02 PM Changeset in webkit [285304] by Russell Epstein
  • 1 edit in branches/safari-612-branch/Source/WTF/wtf/WeakPtr.h

Unreviewed build fix. rdar://85029973

Support both makeWeakPtr and WeakPtr.

12:56 PM Changeset in webkit [285303] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r282849. rdar://problem/83067708

Follow-up: WebKit::WebProcessPool should use a weak observer with CFNotificationCenter
<https://webkit.org/b/230227>
<rdar://problem/83067708>

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::registerNotificationObservers):
  • Set m_weakObserver for all platforms at the beginning of the method. Previously it was only set for macOS.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282849 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:56 PM Changeset in webkit [285302] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WTF

Cherry-pick r282704. rdar://problem/83067708

Build fix: WebKit::WebProcessPool should use a weak observer with CFNotificationCenter
<https://webkit.org/b/230227>
<rdar://problem/83067708>

  • wtf/spi/cocoa/NSObjCRuntimeSPI.h:
  • Fix internal Catalina builds by including NSObjCRuntime_Private.h, but falling through to define NS_DIRECT and NS_DIRECT_MEMBERS if they weren't defined in the private header.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282704 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [285301] by Russell Epstein
  • 5 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r285165. rdar://problem/84908023

Revert the wheel event coalescing added in r277587
https://bugs.webkit.org/show_bug.cgi?id=232602
<rdar://84908023>

Reviewed by Wenson Hsieh.

This wheel event coalescing was added to allow the tail end of momentum scrolls on
120Hz devices to fall back to 60fps for power reasons. However, the OS does this for
us, so we don't need to do our own coalescing.

  • Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::shouldDispatchEvent): (WebKit::WebWheelEventCoalescer::isMomentumPhaseEvent): Deleted.
  • Shared/WebWheelEventCoalescer.h: (WebKit::WebWheelEventCoalescer::shouldCoalesceEventsDuringDeceleration const): Deleted. (WebKit::WebWheelEventCoalescer::setShouldCoalesceEventsDuringDeceleration): Deleted. (): Deleted.
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::wheelEventCoalescer): (WebKit::WebPageProxy::windowScreenDidChange): (WebKit::WebPageProxy::shouldCoalesceWheelEventsDuringDeceleration const): Deleted.
  • UIProcess/WebPageProxy.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285165 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [285300] by Russell Epstein
  • 7 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r285149. rdar://problem/81217357

[JSC] LLIntCallee should have two replacements
https://bugs.webkit.org/show_bug.cgi?id=228552
rdar://81217357

Reviewed by Saam Barati.

LLIntCallee can be used for signaling memory and bounds-checking memory.
Thus it should have two replacements for each mode.

  • wasm/WasmBBQPlan.cpp: (JSC::Wasm::BBQPlan::work):
  • wasm/WasmCallee.h: (JSC::Wasm::Callee::setOSREntryCallee):
  • wasm/WasmOMGForOSREntryPlan.cpp: (JSC::Wasm::OMGForOSREntryPlan::work):
  • wasm/WasmOMGPlan.cpp: (JSC::Wasm::OMGPlan::work):
  • wasm/WasmPlan.cpp: (JSC::Wasm::Plan::updateCallSitesToCallUs):
  • wasm/WasmSlowPaths.cpp: (JSC::LLInt::jitCompileAndSetHeuristics): (JSC::LLInt::WASM_SLOW_PATH_DECL):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285149 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [285299] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebKitLegacy/mac

Cherry-pick r285148. rdar://problem/81053743

Make WebChromeClient's m_webView pointer weak.
https://bugs.webkit.org/show_bug.cgi?id=232588

Reviewed by David Kilzer.

  • WebCoreSupport/WebChromeClient.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [285298] by Russell Epstein
  • 8 edits
    5 adds in branches/safari-612-branch

Cherry-pick r285117. rdar://problem/84402043

JSGenericTypedArrayView<Adaptor>::set crashes if the length + objectOffset is > UINT32_MAX
https://bugs.webkit.org/show_bug.cgi?id=231975
rdar://84402043

Reviewed by Yusuke Suzuki.

JSTests:

  • regress-84402043 is the testcase that revealed the problem.
  • typed-array-set-large(-offset) test the same function, in the typed-array to typed-array case
  • typed-array-large-slice tests the only caller that passes a non-0 objectOffset, and found other issues with it
  • typed-array-large-oob-eventually-not.js is just another test of the Wasm4GB change that I had forgotten to commit
  • stress/regress-84402043.js: Added.
  • stress/typed-array-large-oob-eventually-not.js: Added. (test):
  • stress/typed-array-large-slice.js: Added. (expect):
  • stress/typed-array-set-large-offset.js: Added.
  • stress/typed-array-set-large.js: Added.

Source/JavaScriptCore:

UINT_MAX (and anything above it) is not a valid array index, so we cannot use JSObject::get(JSGlobalObject*, unsigned) with an index that big.
This was pointed by Yusuke in his review of my recent patch that introduced the problem (https://bugs.webkit.org/show_bug.cgi?id=229353#c21),
but I misunderstood the code and thought we could never get values that big at that point, thus only putting a RELEASE_ASSERT.
In this patch I instead apply his original suggestion to have a first loop using the (fast) JSObject::get(),
and a second loop for any large indices, using a slower but safe code path.

I also fixed an unrelated bug I noticed in Clobberize/AbstractInterpreter while testing the rest of the patch:
they were not aware that NewTypedArray can take a Int52RepUse child.

Finally, while trying to properly test this change, I discovered that genericTypedArrayViewProtoFuncSlice
(which is the only caller of JSGenericTypedArrayView<Adaptor>::set which passes it a non-0 objectOffset)
was still using unsigned everywhere instead of size_t, and that the same was true of all other functions in the same file.
So I fixed it in the same patch.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • runtime/JSArrayBufferConstructor.cpp: (JSC::JSGenericArrayBufferConstructor<sharingMode>::constructImpl):
  • runtime/JSGenericTypedArrayViewConstructorInlines.h: (JSC::constructGenericTypedArrayViewImpl):
  • runtime/JSGenericTypedArrayViewInlines.h: (JSC::JSGenericTypedArrayView<Adaptor>::set):
  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h: (JSC::argumentClampedIndexFromStartOrEnd): (JSC::genericTypedArrayViewProtoFuncSet): (JSC::genericTypedArrayViewProtoFuncCopyWithin): (JSC::genericTypedArrayViewProtoFuncIncludes): (JSC::genericTypedArrayViewProtoFuncIndexOf): (JSC::genericTypedArrayViewProtoFuncJoin): (JSC::genericTypedArrayViewProtoFuncFill): (JSC::genericTypedArrayViewProtoFuncLastIndexOf): (JSC::genericTypedArrayViewProtoFuncSlice): (JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285117 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [285297] by Russell Epstein
  • 13 edits
    2 adds in branches/safari-612-branch

Cherry-pick r285089. rdar://problem/84522357

Layer tree should not be stuck in frozen state after explicitly stopping a page load
https://bugs.webkit.org/show_bug.cgi?id=232532
rdar://84522357

Reviewed by Tim Horton.

Source/WebCore:

Add WEBCORE_EXPORT to a method. See WebKit/ChangeLog for more details.

Test: http/tests/navigation/unfreeze-layer-tree-after-stopping-load.html

  • loader/FrameLoader.h:

Source/WebKit:

From diagnostic logs gathered in rdar://84522357, it's apparently possible for the layer tree to be stuck in a
state where it's indefinitely frozen after the user explicitly stops the page load (e.g. by tapping on the "x"
button in Safari). Specifically, these logs indicate that the PageTransition layer tree freeze reason may
persist even after the user has canceled the load, leading to situations where content may be visible but
unresponsive.

From code inspection, this may happen for multiple reasons, one of which is that a media element has incremented
the load event delay count, which in turn prevents us from transitioning to completed state inside
FrameLoader::checkLoadCompleteForThisFrame(). It's unknown whether this (in particular) is the cause of
unresponsiveness observed by the reporter of rdar://84522357, but we can at least use this in order to come up
with a layout test; to mitigate all instances where the PageTransition reason may persist after the load has
been stopped, we make WebPage::stopLoading() complete the page transition (thereby lifting the freeze reason)
if needed.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::stopLoading):

Tools:

Add support for TestRunner.stopLoading(), which immediately stops the page load, emulating what would normally
happen if the user taps or clicks the "x" button to cancel loading in Safari. See the layout test for more
details.

  • DumpRenderTree/TestRunner.cpp: (stopLoadingCallback): (TestRunner::staticFunctions):
  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm: (TestRunner::stopLoading):
  • DumpRenderTree/win/TestRunnerWin.cpp: (TestRunner::stopLoading):
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::stopLoading):
  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Add a test that verifies that a requestAnimationFrame() callback fires even after stopping page load. This
test fails without the fix in this patch, since the layer tree ends up in a permanently frozen state.

  • http/tests/navigation/unfreeze-layer-tree-after-stopping-load-expected.txt: Added.
  • http/tests/navigation/unfreeze-layer-tree-after-stopping-load.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285089 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [285296] by Russell Epstein
  • 5 edits in branches/safari-612-branch

Cherry-pick r285080. rdar://problem/84811692

[iOS 15] Loads after WKWebView session restore are marked as app-initiated
https://bugs.webkit.org/show_bug.cgi?id=232486
<rdar://problem/84811692>

Reviewed by Brent Fulgham.

Source/WebKit:

Return app initiated value in the page's SessionState so it can be restored
by third party apps using the [WKWebView setInteractionState] API.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::sessionState const):
  • UIProcess/mac/LegacySessionStateCoding.cpp: (WebKit::encodeLegacySessionState): (WebKit::decodeLegacySessionState):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285080 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:40 PM Changeset in webkit [285295] by Russell Epstein
  • 10 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r285069. rdar://problem/84558835

Have PlatformMediaResourceClient use SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=232422
rdar://84558835

Reviewed by Alex Christensen.

When playing a non-mse media element, the download gets controlled by a
MediaResource into a WebCoreNSURLSession to be used by the media framework.
The data got copied at least three times along the way due to the
multi-threaded nature of the framework and the need for thread
safety.
The situation was made worse when the content server didn't support
range-request: as a RangeResponseGenerator is then used by the
WebCoreNSURLSession which downloads the entire media to be played and
keep it in memory.

By modifying the various actors between a MediaResource and WebCoreNSURLSession
to use SharedBuffers ; we can remove most copies and allocation.
This also completely eliminates the need for new memory buffer allocations and
copies by the RangeResponseGenerator object.

With WK2 and the GPU process, it allows for the memory to be allocated once
and only be assigned to the content process by using SharedMemory wrapped
in a SharedBuffer.

In the future, by refactoring CachedRawResourceClient to use SharedBuffers,
we could remove further allocation/copies. We could likely get the data from the
network process all the way to the final client in the GPU process without
a single copy. This is tracked in bug 232424.

No change in observable behaviour. Covered by all the existing media tests.

  • platform/SharedBuffer.cpp: (WebCore::SharedBufferDataView::size const): (WebCore::SharedBufferDataView::trim): Add ability to trim a SharedBufferDataView. This allows to avoid having to copy into a new buffer. (WebCore::SharedBufferDataView::createSharedBuffer const): Cross declarations makes it difficult to add a new SharedBuffer constructor that would take a SharedBufferDataView.
  • platform/SharedBuffer.h: Add new methods.
  • platform/cocoa/SharedBufferCocoa.mm: Update to allow for end trimming information. (-[WebCoreSharedBufferData initWithDataSegment:position:endTrim:]): (-[WebCoreSharedBufferData length]): (WebCore::SharedBuffer::DataSegment::createNSData const): (WebCore::SharedBufferDataView::createNSData const): (-[WebCoreSharedBufferData initWithDataSegment:position:]): Deleted.
  • platform/graphics/PlatformMediaResourceLoader.h: (WebCore::PlatformMediaResourceClient::dataReceived): Add a new API using a SharedBuffer. We keep the old one taking a pointer/size due to a WebKit implementation details which allows us to save an intermediary allocation/copy when used with SharedMemory.
  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: (WebCore::PlatformResourceMediaLoader::dataReceived):
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (CachedResourceStreamingClient::dataReceived): Update to use SharedBuffer.
  • platform/network/cocoa/RangeResponseGenerator.mm: (WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
  • platform/network/cocoa/WebCoreNSURLSession.h: Change prototypes. Fly-by fix, property countOfBytesReceived needed to be atomic.
  • platform/network/cocoa/WebCoreNSURLSession.mm: (WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived): (-[WebCoreNSURLSessionDataTask resource:receivedData:]): (-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:completionHandler:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285069 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285294] by Russell Epstein
  • 5 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r285004. rdar://problem/84778008

Don't call type() on Structure, instead call type() on its typeInfo()
https://bugs.webkit.org/show_bug.cgi?id=232414

Reviewed by Yusuke Suzuki.

  • dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
  • runtime/Structure.h: (JSC::Structure::type):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285004 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285293] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284924. rdar://problem/83455472

REGRESSION (iOS 15): Touch events are not fired during quick successive taps
https://bugs.webkit.org/show_bug.cgi?id=232324
rdar://83455472

Reviewed by Wenson Hsieh.

To support Live Text on iOS 15, two new gesture recognizers were added
to WKContentView. When the gesture recognizers were added,
-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]
was not updated, resulting in a failure dependency between the new gesture
recognizers and the touchstart deferring gesture recognizer for "immediately
resettable" gestures.

The failure dependency causes the entire "immediately resettable" subgraph
(which contains UIWebTouchEventsGestureRecognizer) to have a delayed reset,
as the new gestures recognizers are connected to the "delayed resettable"
subgraph by way of UIKit's exclusion gestures that control context menu
presentation. The delayed reset prevents successive touches from being
recognized, and touch events are only recognized after the delay has
passed. Consequently, quick successive taps result in some touch events
being dropped.

To fix, remove the existing failure dependency and instead add an explicit
failure dependency to the "delayed resettable" subgraph. This ensures the
immediately resettable subgraph can reset as intended.

No new tests, as the issue has been difficult to reproduce in WebKitTestRunner,
even though it reproduces consistently in Safari. Filed webkit.org/b/232326
as a follow-up to investigate a testing strategy.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284924 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285292] by Russell Epstein
  • 3 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284889. rdar://problem/82671325

REGRESSION (r281054): [iOS] Context menu presents from wrong location when long pressing a link in Mail
https://bugs.webkit.org/show_bug.cgi?id=232287
rdar://82671325

Reviewed by Tim Horton.

In the case where the WebKit client isn't overriding the context menu configuration via WebKit context menu UI
delegate methods, _contextMenuElementInfo on WKContentView will end up being nil while presenting the context
menu via long press.

After the changes in r281054, this means that when the last view is removed from our WKTargetedPreviewContainer,
we'll unparent WKTargetedPreviewContainer too early, since _contextMenuElementInfo won't prevent us from
bailing in -_removeContextMenuHintContainerIfPossible. To fix this, we add a boolean flag to track when the
context menu presentation animation is running, and avoid unparenting the preview container if the flag is set.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setUpInteraction]): (-[WKContentView _removeContextMenuHintContainerIfPossible]): (-[WKContentView _contentsOfUserInterfaceItem:]): (-[WKContentView contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):

To test this change, add an assertion that fires if the context menu preview hint container has already been
unparented by the time we've presented the context menu. This assertion already fires during the extant layout
test fast/events/touch/ios/long-press-on-link.html, which technically exhibits the bug (albeit in a more subtle
way).

(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284889 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285291] by Russell Epstein
  • 4 edits in branches/safari-612-branch

Cherry-pick r284875. rdar://problem/84597422

[ App Privacy Report ] Restoring a session after clearing the cache results in app initiated loads in Safari
https://bugs.webkit.org/show_bug.cgi?id=232292
<rdar://problem/84597422>

Reviewed by Brent Fulgham.

Source/WebKit:

Update session restore code to also set the app initiated value on
the current document loader. Previously, this was only set on the new
document loader. This is a problem because the main resource load
uses the old document loader, so if we restore from a previous session
state, the main resource load will have the incorrect attribution
value.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::goToBackForwardItem):

Tools:

Update API test in 2 ways. First, close the original WebView to
destroy the page's document loader as if the application was being
quit. Second, clear history to make sure there are no cached loads.

  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284875 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285290] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284853. rdar://problem/84516016

Fix issue for transform-origin in SVG
https://bugs.webkit.org/show_bug.cgi?id=232189

Patch by Nikolaos Mouchtaris <Nikos Mouchtaris> on 2021-10-25
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/svg/styling/render/transform-origin-not-explicit-style-ref.svg: Added.
  • web-platform-tests/svg/styling/render/transform-origin-not-explicit-style.svg: Added.

Source/WebCore:

Add temp fix to use previously ignored transform-origin in SVGGraphicsElement::animatedLocalTransform
if not explicitly set in style. Proper fix to come: https://bugs.webkit.org/show_bug.cgi?id=232128.

Tests: imported/w3c/web-platform-tests/svg/styling/render/transform-origin-not-explicit-style-ref.svg

imported/w3c/web-platform-tests/svg/styling/render/transform-origin-not-explicit-style.svg

  • svg/SVGGraphicsElement.cpp: (WebCore::SVGGraphicsElement::animatedLocalTransform const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284853 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285289] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284849. rdar://problem/84066469

REGRESSION (iOS 15), safari604.1: Could not link the shader program
https://bugs.webkit.org/show_bug.cgi?id=231475

Renaming regex incorrectly substituted an attribute.
Update to require exact attribute match

Source/ThirdParty/ANGLE:

Reviewed by Dean Jackson

  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm: (rx::mtl::updateShaderAttributes):

LayoutTests:

Add test to expose bug, verify test passes

Reviewed by Dean Jackson.

  • fast/canvas/webgl/attrib-name-aliasing-bug-expected.txt: Added.
  • fast/canvas/webgl/attrib-name-aliasing-bug.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284849 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285288] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612-branch

Cherry-pick r284740. rdar://problem/83628607

[GPU Process] REGRESSION: Drawing a large SVG image on a canvas may take too much memory
https://bugs.webkit.org/show_bug.cgi?id=230886
rdar://83628607

Reviewed by Simon Fraser.

Source/WebCore:

For the GPUProcess rendering on a canvas, we have to draw the SVGImage to
a temporary ImageBuffer, get a NativeImage from this ImageBuffer and send
it to GPUProcess through a DrawNativeImage display list item.

The fix is:

  1. Make sure the size of temporary ImageBuffer is scaled to the Graphics Context CTM.
  2. Clamp the scaled size to the MaxClampedArea. So ImageBuffer::create() returns a valid ImageBuffer.
  3. Scale the destination GraphicsContext to the reciprocal of the scaling factor before drawing the NativeImage.

Test: fast/canvas/canvas-draw-large-svg-image.html

  • svg/graphics/SVGImage.cpp: (WebCore::SVGImage::drawAsNativeImage):

LayoutTests:

  • fast/canvas/canvas-draw-large-svg-image-expected.html: Added.
  • fast/canvas/canvas-draw-large-svg-image.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284740 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285287] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r284716. rdar://problem/84366658

[JSC] GetTypedArrayLengthAsInt52 must be inserted only when we ensure that input is TypedArray via array-mode-based filtering
https://bugs.webkit.org/show_bug.cgi?id=232168
rdar://84366658

Reviewed by Robin Morisset.

JSTests:

  • stress/gettypedarraylengthasint52-must-be-emitted-for-typedarray.js: Added. (foo):

Source/JavaScriptCore:

GetTypedArrayLengthAsInt52 works only when input is TypedArray, which should be validated via array-mode (and already inserted checks in fixup).
Accidentally we were inserting it without checking typed-array condition in SSA lowering phase. This patch adds a condition which ensures it
is TypedArray.

  • dfg/DFGSSALoweringPhase.cpp: (JSC::DFG::SSALoweringPhase::handleNode): (JSC::DFG::SSALoweringPhase::lowerBoundsCheck):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284716 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285286] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r284694. rdar://problem/79244664

Remove release assertion in MediaResourceClient::responseReceived
https://bugs.webkit.org/show_bug.cgi?id=232121

Patch by Alex Christensen <achristensen@webkit.org> on 2021-10-22
Reviewed by David Kilzer.

I tried and was unable to reproduce this, even with multipart responses which can call didReceiveResponse multiple times in the same load.
In any case, it's clear where the crash is and that this assertion can be hit. Not continuing with the response is better than crashing.
Keep the debug assertion because if it is hit, we want to notice.

  • platform/network/cocoa/RangeResponseGenerator.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284694 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285285] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r284689. rdar://problem/83692944

REGRESSION (Safari 15 - iOS15): [WebRTC] Increased audio latency while playing webrtc audio stream over audio element
https://bugs.webkit.org/show_bug.cgi?id=230903
<rdar://problem/83692944>

Reviewed by Eric Carlson.

We used to render audio tracks in process and are now doing rendering in GPU process.
Current implementation requests data with a fixed chunk size, that we were setting as the max of preferred buffer size and web audio chunk size.
If we are reading too close to the end of data in AudioSampleDataSource, we will delay reading the data by this buffer size. This triggers delay but allows getting a consistent rendering.
To reduce delay, we are now using the maximum of web audio chunk size and 10 ms chunk size, as WebRTC tracks are usually manipulating 10 ms chunks.

Manually tested.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284689 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285284] by Russell Epstein
  • 5 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284646. rdar://problem/84523973

[JSC] Make GetTypedArrayLengthAsInt52 and GetTypedArrayByteOffsetAsInt52 NodeResultInt52
https://bugs.webkit.org/show_bug.cgi?id=232100

Reviewed by Robin Morisset.

This patch makes GetTypedArrayLengthAsInt52 and GetTypedArrayByteOffsetAsInt52 have NodeResultInt52 by default.
And DFG validation should skip Int52 validation before fixup phase, as we are doing for double results.

  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
  • dfg/DFGNodeType.h:
  • dfg/DFGSSALoweringPhase.cpp: (JSC::DFG::SSALoweringPhase::handleNode): (JSC::DFG::SSALoweringPhase::lowerBoundsCheck):
  • dfg/DFGValidate.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284646 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285283] by Russell Epstein
  • 3 edits
    1 add in branches/safari-612-branch

Cherry-pick r284635. rdar://problem/84455814

[JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
https://bugs.webkit.org/show_bug.cgi?id=232059

Reviewed by Saam Barati.

JSTests:

  • stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added. (foo.bar): (foo):

Source/JavaScriptCore:

When inserting GetTypedArrayLengthAsInt52 after fixup phase, we must set NodeResultInt52.

  • dfg/DFGSSALoweringPhase.cpp: (JSC::DFG::SSALoweringPhase::handleNode):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284635 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285282] by Russell Epstein
  • 10 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284513. rdar://problem/84441842

Address post-landing feedback to wasm exceptions
https://bugs.webkit.org/show_bug.cgi?id=231973

Reviewed by Saam Barati.

Address comments left by Saam in https://bugs.webkit.org/show_bug.cgi?id=229681
after the patch landed. This includes deleting some unused code, and renaming a
couple variables and methods, but the biggest change is copying the callee saves
to VMEntry in the llint rethrow.

  • interpreter/Interpreter.cpp: (JSC::CatchInfo::CatchInfo): (JSC::UnwindFunctor::operator() const):
  • interpreter/Interpreter.h: (JSC::CatchInfo::CatchInfo): Deleted.
  • jit/JSInterfaceJIT.h: (JSC::JSInterfaceJIT::convertCalleeToVM): Deleted.
  • llint/WebAssembly.asm:
  • wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::ControlData::ControlData): (JSC::Wasm::B3IRGenerator::ControlData::tryDepth const): (JSC::Wasm::B3IRGenerator::connectControlAtEntrypoint): (JSC::Wasm::B3IRGenerator::addLoop): (JSC::Wasm::B3IRGenerator::addTry): (JSC::Wasm::B3IRGenerator::preparePatchpointForExceptions): (JSC::Wasm::B3IRGenerator::emitCatchImpl): (JSC::Wasm::B3IRGenerator::addDelegateToUnreachable): (JSC::Wasm::B3IRGenerator::addThrow): (JSC::Wasm::B3IRGenerator::addRethrow): (JSC::Wasm::B3IRGenerator::addEndToUnreachable): (JSC::Wasm::B3IRGenerator::connectControlEntry): Deleted.
  • wasm/WasmCallee.h: (JSC::Wasm::Callee::llintFunctionCodeBlock const): (JSC::Wasm::Callee::functionCodeBlock const): Deleted.
  • wasm/WasmLLIntGenerator.cpp: (JSC::Wasm::LLIntGenerator::unifyValuesWithBlock): (JSC::Wasm::LLIntGenerator::addTry): (JSC::Wasm::LLIntGenerator::addThrow): (JSC::Wasm::LLIntGenerator::repatch): Deleted.
  • wasm/WasmOperations.cpp: (JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
  • wasm/WasmOperations.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284513 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285281] by Russell Epstein
  • 9 edits
    1 add in branches/safari-612-branch/Source/WebCore

Cherry-pick r284163. rdar://problem/84129338

WebCore::CaptionUserPreferencesMediaAF should use a weak observer with CFNotificationCenter
<https://webkit.org/b/231550>
<rdar://problem/84129338>

Reviewed by Darin Adler.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Add CaptionUserPreferencesMediaAF.mm.
  • page/CaptionUserPreferences.cpp: (WebCore::CaptionUserPreferences::create): Add.
  • page/CaptionUserPreferences.h: (WebCore::CaptionUserPreferences):
  • Make subclass of RefCounted<> and CanMakeWeakPtr<>. (WebCore::CaptionUserPreferences::create): Add. (WebCore::CaptionUserPreferences::CaptionUserPreferences):
  • Move constructor to protected visiblity with explicit keyword, and add static create() method.
  • page/CaptionUserPreferencesMediaAF.cpp: (WebCore::userCaptionPreferencesChangedNotificationCallback):
  • Update to use extractCaptionUserPreferencesMediaAF() for Cococa platforms. Note that -> is used for two different userPreferences variable types based on the platform. (WebCore::CaptionUserPreferencesMediaAF::create): Add. (WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF):
  • Move initialization of m_listeningForPreferenceChanges to class definition. (WebCore::CaptionUserPreferencesMediaAF::~CaptionUserPreferencesMediaAF):
  • Update to use m_weakObserver as observer for Cocoa platforms. (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
  • Update to use m_weakObserver as observer and _CFNotificationObserverIsObjC in suspension behavior for Cocoa platforms.
  • page/CaptionUserPreferencesMediaAF.h: (WebCore::CaptionUserPreferencesMediaAF::create): Add. (WebCore::CaptionUserPreferencesMediaAF::CaptionUserPreferencesMediaAF):
  • Move constructor to private visiblity, and add static create() method. (WebCore::CaptionUserPreferencesMediaAF::extractCaptionUserPreferencesMediaAF): Add. (WebCore::CaptionUserPreferencesMediaAF::createWeakObserver): Add. (WebCore::CaptionUserPreferencesMediaAF::m_weakObserver):
  • Add m_weakObserver instance variable for use with CFNotificationCenter. (WebCore::CaptionUserPreferencesMediaAF::m_listeningForPreferenceChanges):
  • Move initialization of m_listeningForPreferenceChanges here from the constructor.
  • page/cocoa/CaptionUserPreferencesMediaAFCocoa.mm: Add. (-[WebCaptionUserPreferencesMediaAFWeakObserver initWithWeakPtr:]): (-[WebCaptionUserPreferencesMediaAFWeakObserver userPreferences]):
  • Declare and implement WebCaptionUserPreferencesMediaAFWeakObserver class for use as a weak CFNotificationCenter observer. (WebCore::CaptionUserPreferencesMediaAF::createWeakObserver): Add.
  • Helper method to call from C++ that creates weak observer object from Objective-C++. (WebCore::CaptionUserPreferencesMediaAF::extractCaptionUserPreferencesMediaAF): Add.
  • Helper method to extract RefPtr<CaptionUserPreferencesMediaAF> from CFNotification observer parameter.
  • page/PageGroup.cpp: (WebCore::PageGroup::ensureCaptionPreferences):
  • Switch to using new create() methods.
  • page/PageGroup.h: (WebCore::PageGroup::m_captionPreferences):
  • Change from std::unique_ptr<> to RefPtr<>.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285280] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/JavaScriptCore

Cherry-pick r284036. rdar://problem/84167629

Fix spec-correctness when inlining proto intrinsic using get_by_id_with_this
https://bugs.webkit.org/show_bug.cgi?id=231559

Reviewed by Yusuke Suzuki.

My original fix in r283512 has some theoretical spec correctness issues.
I'm not sure if they can be materialized or not since we only use
get_by_id_with_this in very limited scenarios. However, this patch just
makes it so we call the getter instead of attempting to inline it
when using get_by_id_with_this.

  • jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::emitLoadPrototypeWithoutCheck): Deleted.
  • jit/AssemblyHelpers.h:
  • jit/IntrinsicEmitter.cpp: (JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter): (JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284036 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285279] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebKit

Cherry-pick r283886. rdar://problem/83743661

[iOS] Add message filter in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=231046
<rdar://problem/83743661>

Reviewed by Brent Fulgham.

Add IOKit message filter in the WebContent process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283886 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:39 PM Changeset in webkit [285278] by Russell Epstein
  • 7 edits
    5 adds in branches/safari-612-branch

Cherry-pick r283803. rdar://problem/83823282

REGRESSION (r277818): XHR with requestType document broken for larger HTML files
https://bugs.webkit.org/show_bug.cgi?id=231138
<rdar://problem/83823282>

Reviewed by Darin Adler.

Source/WebCore:

The parser may end up yielding during XHR or DOMParser parsing even though those should be
synchronous. This appears to be a long standing bug that was made more visible by r277818
because it makes the parser yield more eagerly. This only affects cases where the document
being parsed contains <script> tags as those are considered potential yield points.

Tests: http/tests/xmlhttprequest/xhr-and-parse-large-document.html

http/tests/xmlhttprequest/xhr-large-document.html

  • dom/Document.cpp: (WebCore::Document::setContent):

Explicitly parse synchronously. The comment was wrong, nothing forces parser flushing on close().

  • dom/DocumentParser.h: (WebCore::DocumentParser::appendSynchronously):
  • html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::append): (WebCore::HTMLDocumentParser::appendSynchronously):
  • html/parser/HTMLDocumentParser.h:
  • html/parser/HTMLParserScheduler.cpp: (WebCore::HTMLParserScheduler::shouldYieldBeforeExecutingScript):

Also avoid script yielding if script execution is not allowed.

LayoutTests:

  • http/tests/xmlhttprequest/resources/large-html-with-script-tags.py: Added.
  • http/tests/xmlhttprequest/xhr-and-parse-large-document-expected.txt: Added.
  • http/tests/xmlhttprequest/xhr-and-parse-large-document.html: Added.
  • http/tests/xmlhttprequest/xhr-large-document-expected.txt: Added.
  • http/tests/xmlhttprequest/xhr-large-document.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:38 PM Changeset in webkit [285277] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore

Cherry-pick r283498. rdar://problem/83732537

Unreviewed maccatalyst build fix.

  • platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSessionIOS::setHostProcessAttribution):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:38 PM Changeset in webkit [285276] by Russell Epstein
  • 2 edits in branches/safari-612-branch/Source/WebCore/PAL

Cherry-pick r283480. rdar://problem/83732537

Build fix: GPU Process microphone attribution SPI adoption
<https://bugs.webkit.org/show_bug.cgi?id=231034>
<rdar://problem/83732537>

  • pal/spi/cocoa/AVFoundationSPI.h: (-[AVAudioSession setHostProcessAttribution:error:]):
  • Add SPI declaration for open source bots.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283480 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:38 PM Changeset in webkit [285275] by Russell Epstein
  • 11 edits in branches/safari-612-branch/Source

Cherry-pick r283394. rdar://problem/83732537

GPU Process microphone attribution SPI adoption
https://bugs.webkit.org/show_bug.cgi?id=231034
<rdar://problem/83732537>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests. Tested manually by inspecting APR JSON files.

  • platform/audio/AudioSession.h:
  • platform/audio/ios/AudioSessionIOS.h:
  • platform/audio/ios/AudioSessionIOS.mm: (WebCore::AudioSessionIOS::setHostProcessAttribution):

Source/WebCore/PAL:

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

Adopt SPI for App Privacy Report that attributes mic capture to the
host app.

  • GPUProcess/GPUConnectionToWebProcess.cpp: (WebKit::GPUConnectionToWebProcess::audioSessionProxy):
  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp: (WebKit::RemoteAudioSessionProxyManager::addProxy):
  • GPUProcess/media/RemoteAudioSessionProxyManager.h:
  • Scripts/process-entitlements.sh:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283394 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:38 PM Changeset in webkit [285274] by Russell Epstein
  • 9 edits
    3 adds in branches/safari-612-branch

Cherry-pick r282632. rdar://problem/83067708

WebKit::WebProcessPool should use a weak observer with CFNotificationCenter
<https://webkit.org/b/230227>
<rdar://problem/83067708>

Reviewed by Darin Adler.

Source/WebKit:

To fix the bug, implement an Objective-C class named
WKProcessPoolWeakObserver which contains an instance variable
holding a WeakPtr<WebProcessPool>, and tell CFNotificationCenter
to hold a weak reference to WKProcessPoolWeakObserver.

Since WKProcessPoolWeakObserver is self-contained within the
source file, it uses the NS_DIRECT_MEMBERS attribute since it
does not require the overhead of dynamic Objective-C method
dispatch.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (-[WKProcessPoolWeakObserver initWithWeakPtr:]): Add. (-[WKProcessPoolWeakObserver pool]): Add.
  • Implement WKProcessPoolWeakObserver class.
  • Note that init methods can never be marked as NS_DIRECT, and @property statements can't use NS_DIRECT in their declaration, so the @property is declared in a category which uses NS_DIRECT_MEMBERS. (WebKit::extractWebProcessPool): Add.
  • Static helper method for extracting RefPtr<WebProcessPool> from type-punned WKProcessPoolWeakObserver. (WebKit::WebProcessPool::backlightLevelDidChangeCallback): (WebKit::WebProcessPool::accessibilityPreferencesChangedCallback): (WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback): (WebKit::WebProcessPool::colorPreferencesDidChangeCallback): (WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):
  • Clean up function parameter list.
  • Use extractWebProcessPool() helper method to get a RefPtr<WebProcessPool> from observer. (WebKit::WebProcessPool::addCFNotificationObserver): Add. (WebKit::WebProcessPool::removeCFNotificationObserver): Add.
  • Private helper methods to reduce duplicate code.
  • Use m_weakObserver for CFNotificationCenter observer and include _CFNotificationObserverIsObjC to fix the bug. (WebKit::WebProcessPool::registerNotificationObservers):
  • Make use of new addCFNotificationObserver() helper method.
  • Fixes use of static_cast<CFStringRef> to make code ready for ARC by using a bridge cast or removing the static_cast when CFSTR() is used. (WebKit::WebProcessPool::unregisterNotificationObservers):
  • Make use of new removeCFNotificationObserver() helper method.
  • UIProcess/WebProcessPool.h:
  • Add m_weakObserver instance variable to hold the WKProcessPoolWeakObserver object. (WebKit::WebProcessPool::addCFNotificationObserver): Add. (WebKit::WebProcessPool::removeCFNotificationObserver): Add.
  • Add declarations for new helper methods. (WebKit::WebProcessPool::backlightLevelDidChangeCallback): (WebKit::WebProcessPool::accessibilityPreferencesChangedCallback): (WebKit::WebProcessPool::mediaAccessibilityPreferencesChangedCallback): (WebKit::WebProcessPool::colorPreferencesDidChangeCallback): (WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):
  • Clean up function parameter list.

Source/WTF:

Tests (API):

TestWTF.TypeCastsNS.checked_ns_cast
TestWTF.TypeCastsNS.dynamic_ns_cast
TestWTF.TypeCastsNS.dynamic_ns_cast_RetainPtr

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • Add new header files to the project.
  • wtf/cocoa/TypeCastsNS.h: Add. (WTF::checked_ns_cast): (WTF::dynamic_ns_cast):
  • Add casts for NS objects similar to TypeCastsCF.h.
  • wtf/PlatformHave.h: (HAVE_NS_DIRECT_SUPPORT): Add.
  • Note that clang for macOS 11 Big Sur claims to know about the attributes, but will fail to compile if they are actually used.
  • wtf/spi/cocoa/NSObjCRuntimeSPI.h: Add. (NS_DIRECT): (NS_DIRECT_MEMBERS):
  • Define compiler attributes for direct dispatch of Objective-C methods.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Add TypeCastsNS.mm to the project.
  • TestWebKitAPI/Tests/WTF/cocoa/TypeCastsNS.mm: Add. (TestWebKitAPI::TEST): Add tests for <wtf/TypeCastsNS.h>.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282632 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:38 PM Changeset in webkit [285273] by Russell Epstein
  • 6 edits
    1 add in branches/safari-612-branch/Source

Cherry-pick r282313. rdar://problem/82987695

CFNotificationCenterAddObserver() should use weak observers
<https://webkit.org/b/230168>
<rdar://problem/82987695>

Reviewed by Darin Adler.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • Add CFNotificationCenterSPI.h to the project.
  • pal/spi/cf/CFNotificationCenterSPI.h: Add.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm: (hardwareKeyboardAvailabilityChangedCallback):
  • Use RetainPtr to store observer for the duration of the function, and add an early return if it is nil. (-[WKWebView _initializeWithConfiguration:]):
  • Use _CFNotificationObserverIsObjC to fix the bug.
  • Extract local variables and change notificationName cast to be ARC-ready. Remove notificationName from autoreleasePool. (-[WKWebView dealloc]):
  • Extract local variable and change notificationName cast to be ARC-ready. Remove notificationName from autoreleasePool.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm: (hardwareKeyboardAvailabilityChangedCallback):
  • Modernize syntax for WeakObjCPtr constructor. (-[WebHTMLView initWithFrame:]):
  • Use _CFNotificationObserverIsObjC to fix the bug.
  • Extract local variables and change notificationName cast to be ARC-ready. Remove notificationName from autoreleasePool. (-[WebHTMLView dealloc]):
  • Extract local variable and change notificationName cast to be ARC-ready. Remove notificationName from autoreleasePool.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282313 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:44 AM Changeset in webkit [285272] by Jonathan Bedard
  • 9 edits
    2 adds in trunk/Tools

[git-webkit] Add land command
https://bugs.webkit.org/show_bug.cgi?id=231821
<rdar://problem/84309339>

Reviewed by Dewei Zhu.

  • Tools/Scripts/git-webkit: WebKit still uses Svn as it's canonical source of truth.
  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git._to_git_ref): Convert identifiers or revisions to git refs.
(Git.checkout): Use shared _to_git_ref function.
(Git.rebase): Support rebasing identifiers.
(Git.pull): Generalize computation of the gmtoffset.
(Git.diff_lines): Output diff between two refs.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git.init): Add branch, push and diff commands.
(Git.filter_branch): Support sed.
(Git.pull): Mock git pull
(Git.move_branch): Mock git rebase.
(Git.push): Mock git push.
(Git.reset): Mock git reset HEAD~#.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add land command.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py: Added.

(Land.parser):
(Land.main): Rebase the current branch against it's root, assign the reviewer, check for 'OOPS' messages,
rebase against target branch, update target branch ref, optionally canonicalize, push (or svn dcommit) and
update and close pull-request with information on the landed commit.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:

(ScmBase.gmtoffset): Add shared computation of GMT offset.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit.test_commits): git log should exclude base ref.
(TestGit.test_commits_branch): Ditto.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py: Added.

(repository):
(TestLand):
(TestLandGitHub):
(TestLandBitBucket):

Canonical link: https://commits.webkit.org/243883@main

11:15 AM Changeset in webkit [285271] by Jonathan Bedard
  • 4 edits in trunk/Tools

[generate-webkit-css-docs] Change shebang to Python 3
https://bugs.webkit.org/show_bug.cgi?id=232714
<rdar://problem/85019719>

Reviewed by Ryan Haddad.

  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/css/generate-webkit-css-docs: Use Python 3 shebang.
  • Tools/Scripts/libraries/resultsdbpy/setup.py: Bump version.

Canonical link: https://commits.webkit.org/243882@main

11:10 AM Changeset in webkit [285270] by Jonathan Bedard
  • 2 edits in trunk/Tools

[run-webkit-websocketserver] Replace /usr/bin/python with /usr/bin/env python
https://bugs.webkit.org/show_bug.cgi?id=232713
<rdar://problem/85019074>

Reviewed by Ryan Haddad.

  • Scripts/run-webkit-websocketserver:

(openWebSocketServer):
(closeWebSocketServer):

Canonical link: https://commits.webkit.org/243881@main

11:06 AM Changeset in webkit [285269] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Remove isMatchingHostPseudoClass state from ElementRuleCollector
https://bugs.webkit.org/show_bug.cgi?id=232715

Reviewed by Simon Fraser.

Style scope ordinal that we already pass to SelectorChecker contains the same information.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match const):

Check the ordinal.

(WebCore::SelectorChecker::matchHostPseudoClass const):

Just check for shadow root as it is hard to reason why the assert is correct.

  • css/SelectorChecker.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::matchHostPseudoClassRules):
(WebCore::Style::ElementRuleCollector::ruleMatches):

  • style/ElementRuleCollector.h:
10:53 AM Changeset in webkit [285268] by rreapor@apple.com
  • 2 edits in trunk

Update rreapor's status in contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=232685

Reviewed by Aakash Jain.

  • metadata/contributors.json:
10:40 AM Changeset in webkit [285267] by commit-queue@webkit.org
  • 8 edits
    8 adds in trunk/Source/WebKit

[WebAuthn] Implement add/remove_virtual_authenticator for transport=internal
https://bugs.webkit.org/show_bug.cgi?id=232635
<rdar://problem/84942173>

Patch by John Pascoe <J Pascoe> on 2021-11-04
Reviewed by Brent Fulgham.

This change implements much of the plumbing needed to call the virtual authenticator
commands from safaridriver. The idea is that virtual authenticators are added via
the add_virtual_authenticator call, which replaces the default AuthenticatorManager
with a VirtualAuthenticatorManager similar to how we do it for mocks. Then the
VirtualService will create the virtual connections for authenticators as nessesary
to make webauthn calls within WebDriver based tests.

Tested manually via safaridriver.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::toAuthenticatorTransport):
(WebKit::WebAutomationSession::removeVirtualAuthenticator):
(WebKit::WebAutomationSession::addVirtualAuthenticatorCredential):
(WebKit::WebAutomationSession::removeVirtualAuthenticatorCredential):
(WebKit::WebAutomationSession::removeAllVirtualAuthenticatorCredentials):
(WebKit::WebAutomationSession::setVirtualAuthenticatorUserVerified):

  • UIProcess/Automation/WebAutomationSession.h:

Plumbing to call from safaridriver

  • UIProcess/WebAuthentication/AuthenticatorManager.h:

(WebKit::AuthenticatorManager::isVirtual const):

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorConfiguration.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp: Added.

(WebKit::VirtualAuthenticatorManager::VirtualAuthenticatorManager):
(WebKit::VirtualAuthenticatorManager::createAuthenticator):
(WebKit::VirtualAuthenticatorManager::removeAuthenticator):
(WebKit::VirtualAuthenticatorManager::createService const):
Manages virtual authenticators, replaces the default manager when used similar to MockAuthenticatorManager.

  • UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.mm: Added.

(WebKit::VirtualLocalConnection::VirtualLocalConnection):
(WebKit::VirtualLocalConnection::verifyUser):
(WebKit::VirtualLocalConnection::getAttestation const):
(WebKit::VirtualLocalConnection::filterResponses const):

  • UIProcess/WebAuthentication/Virtual/VirtualService.h: Added.
  • UIProcess/WebAuthentication/Virtual/VirtualService.mm: Added.

(WebKit::VirtualService::VirtualService):
(WebKit::VirtualService::createVirtual):
(WebKit::VirtualService::startDiscoveryInternal):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::virtualAuthenticatorManager):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
9:46 AM Changeset in webkit [285266] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Update test expectations for http/tests/appcache/fail-on-update-2.html.
https://bugs.webkit.org/show_bug.cgi?id=225665.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:38 AM Changeset in webkit [285265] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

REGRESSION(r285077) [GLIB] 'MemoryPressureMonitor' has not been declared
https://bugs.webkit.org/show_bug.cgi?id=232706

Unreviewed non-linux build fix.

MemoryPressureMonitor is only available on Linux, so its usage should
be guarded, like WebProcessPool.cpp does when starting it.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitialize): Add OS(LINUX) guard.
(WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.

9:28 AM Changeset in webkit [285264] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Update IOKit message filters for later iOS releases
https://bugs.webkit.org/show_bug.cgi?id=232681
<rdar://problem/78779102>

Reviewed by Per Arne Vollan.

Now that method ordinals have stabilized, we can re-enable message filtering
in our trunk builds.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
9:28 AM Changeset in webkit [285263] by commit-queue@webkit.org
  • 5 edits in trunk

Unskip tests disabled because of the recent 32 bits issues
https://bugs.webkit.org/show_bug.cgi?id=230490

Unreviewed gardening.

Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-11-04

JSTests:

  • ChakraCore.yaml:

LayoutTests:

  • js/script-tests/reserved-words.js:
  • platform/glib/TestExpectations:
9:15 AM Changeset in webkit [285262] by Antti Koivisto
  • 5 edits in trunk

:host::part(foo) selector does not select elements inside shadow roots
https://bugs.webkit.org/show_bug.cgi?id=232261
<rdar://problem/84894922>

Reviewed by Simon Fraser.

We need to also look for ::part rules from the element's own scope.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::match const):

Rename mayMatchHostPseudoClass -> mustMatchHostPseudoClass for clarity.

(WebCore::localContextForParent):
(WebCore::SelectorChecker::matchRecursively const):

Split ShadowDescendant and ShadowPartDescendant handling as they are sufficiently different.
Set nextContext.mustMatchHostPseudoClass bit for ::part rules coming from the Element's scope as
it is the only way they can match.

(WebCore::SelectorChecker::checkOne const):

No name mapping for rules from the element's own scope.

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRulesForScope):

Also check ::part rules from the element scope.

  • style/ElementRuleCollector.h:
5:51 AM Changeset in webkit [285261] by Andres Gonzalez
  • 3 edits in trunk/Tools

Fix for crashes in layout tests in AX isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=232680
<rdar://problem/84987971>

Reviewed by Chris Fleizach.

Changed the return value of WTR::AccessibilityUIElement::attributeValue
to be a RetainPtr<id> instead of id. This guaranties that the ObjC
object pointed by it is not freed when the value is computed on the AX
thread and utilized on the main thread.

The following tests were crashing before and now pass:
accessibility/mac/internal-link-when-document-has-fragment.html
accessibility/svg-remote-element.html
accessibility/url-test.html
accessibility/video-element-url-attribute.html

The following tests were failing before and now pass:
accessibility/add-children-pseudo-element.html
accessibility/aria-selected.html
accessibility/aria-table-with-presentational-elements.html
accessibility/mac/aria-columnrowheaders.html
accessibility/mac/aria-details.html
accessibility/mac/children-in-navigation-order-returns-children.html
accessibility/mac/descriptionlist-not-ignored.html
accessibility/mac/id-class-attributes.html
accessibility/mac/landmark-not-ignored.html
accessibility/mac/line-index-for-textmarker.html
accessibility/mac/table-visible-rows.html
accessibility/mac/treeitem-row-delegation.html
accessibility/math-has-non-presentational-children.html
accessibility/math-multiscript-attributes.html
accessibility/radio-button-group-members.html
accessibility/table-column-headers-with-captions.html
accessibility/table-header-calculation-for-header-rows.html
accessibility/table-roles-hierarchy.html
accessibility/treeitem-child-exposed.html

The following tests were timing out and now pass:
accessibility/aria-combobox-control-owns-elements.html
accessibility/loading-iframe-sends-notification.html

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::attributeValue):
(WTR::AccessibilityUIElement::descriptionOfValue const):
(WTR::AccessibilityUIElement::attributeValue const):
(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::getLinkedUIElements):
(WTR::AccessibilityUIElement::getDocumentLinks):
(WTR::AccessibilityUIElement::getUIElementsWithAttribute const):
(WTR::AccessibilityUIElement::children const):
(WTR::AccessibilityUIElement::getChildren):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::elementForAttribute const):
(WTR::AccessibilityUIElement::elementForAttributeAtIndex const):
(WTR::AccessibilityUIElement::detailsElements const):
(WTR::AccessibilityUIElement::errorMessageElements const):
(WTR::AccessibilityUIElement::allAttributes):
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::uiElementAttributeValue const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::subrole):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::stringValue):
(WTR::AccessibilityUIElement::language):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::lineRectsAndText const):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::insertionPointLineNumber):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::sortDirection const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::classList const):
(WTR::AccessibilityUIElement::speakAs):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::attributesOfColumnHeaders):
(WTR::AccessibilityUIElement::attributesOfRowHeaders):
(WTR::AccessibilityUIElement::attributesOfColumns):
(WTR::AccessibilityUIElement::attributesOfRows):
(WTR::AccessibilityUIElement::attributesOfVisibleCells):
(WTR::AccessibilityUIElement::attributesOfHeader):
(WTR::AccessibilityUIElement::indexInTable):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::horizontalScrollbar const):
(WTR::AccessibilityUIElement::verticalScrollbar const):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::url):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isOnScreen const):
(WTR::AccessibilityUIElement::embeddedImageDescription const):
(WTR::AccessibilityUIElement::imageOverlayElements const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::popupValue const):
(WTR::AccessibilityUIElement::selectedTextMarkerRange):
(WTR::AccessibilityUIElement::resetSelectedTextMarkerRange):
(WTR::AccessibilityUIElement::startTextMarker):
(WTR::AccessibilityUIElement::endTextMarker):
(WTR::AccessibilityUIElement::mathPostscriptsDescription const):
(WTR::AccessibilityUIElement::mathPrescriptsDescription const):
(WTR::AccessibilityUIElement::mathRootRadicand const):
(WTR::AccessibilityUIElement::pathDescription const):

5:36 AM Changeset in webkit [285260] by Diego Pino Garcia
  • 5 edits in trunk

.:
Disable MEDIA_SESSION_PLAYLIST in WebKitGTK and WPE
https://bugs.webkit.org/show_bug.cgi?id=232694

Reviewed by Žan Doberšek.

Since the feature depends on MEDIA_SESSION_COORDINATOR, whichs is
disabled, this feature should also be disabled and not experimental.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WTF:
Require MediaSession enabled to enable MediaSession PlayList API
https://bugs.webkit.org/show_bug.cgi?id=232694

Reviewed by Žan Doberšek.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
5:25 AM Changeset in webkit [285259] by graouts@webkit.org
  • 3 edits in trunk/Source/WTF

Make PreferPageRenderingUpdatesNear60FPSEnabled experimental rather than internal
https://bugs.webkit.org/show_bug.cgi?id=232702

Reviewed by Tim Horton.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
5:17 AM Changeset in webkit [285258] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for AXObjectCache::postPlatformNotification in isolated tree mode, debug builds.
https://bugs.webkit.org/show_bug.cgi?id=232682
<rdar://problem/84991736>

Reviewed by Chris Fleizach.

In debug builds AXObjectCache::postPlatformNotification was calling the
object's wrapper accessibilityIsIgnored, which in turn calls
updateBackingStore. Since postPlatformNotification runs on the main
thread, and calls into the platform's wrapper should happen on the
secondary thread, this is hitting the asserts in
AXIsolatedTree::applyPendingChanges to prevent this situation.
Instead of calling through the wrapper, this patch adds a utility
function to exercise the same core methods invoked by
accessibilityIsIgnored on the AX object directly, and hence avoiding the
problem above.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):

2:31 AM Changeset in webkit [285257] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Unreviewed, reverting r285228.
https://bugs.webkit.org/show_bug.cgi?id=232704

Broke iOS builds

Reverted changeset:

"REGRESSION: AR Quicklook asset is shared instead of page URL"
https://bugs.webkit.org/show_bug.cgi?id=232674
https://commits.webkit.org/r285228

1:57 AM Changeset in webkit [285256] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

REGRESSION (r268932): CPU usage higher than expected with sibling elements running WebAnimations
https://bugs.webkit.org/show_bug.cgi?id=228833
<rdar://problem/81573075>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: webanimations/no-style-updates-for-animated-sibling-elements-accelerated.html

Elements that have any type of animations, and not just CSS Transitions and CSS Animations,
should not be eligible for style sharing.

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement const):

LayoutTests:

Add a new test that checks that accelerated animations on sibling elements do not yield style updates.

  • platform/win/TestExpectations:
  • webanimations/no-style-updates-for-animated-sibling-elements-accelerated-expected.txt: Added.
  • webanimations/no-style-updates-for-animated-sibling-elements-accelerated.html: Added.
1:51 AM Changeset in webkit [285255] by Martin Robinson
  • 10 edits in trunk

implement transform: perspective(none)
https://bugs.webkit.org/show_bug.cgi?id=231361
<rdar://problem/84124161>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
  • web-platform-tests/css/css-transforms/parsing/transform-valid-expected.txt:

Source/WebCore:

Add support for perspective(none) and update test results
to show newly passing tests.

No new tests. This is covered by the existing WPT tests:

  • imported/w3c/web-platform-tests/css/css-transforms/parsing/transform-valid.html
  • imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001.html
  • css/TransformFunctions.cpp:

(WebCore::transformsForValue): Accept a "none" keyword as an input and be a bit more stringent
about what kind of numbers are accepted. These should be rejected earlier in consumePerspective.
This can now hold an Undefined length which indicates perspective: none.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumePerspective): Accept "none" and clean up the code a little, using ValueRange
instead of a manual check for numerical values. Also make the code structure a little more
consistent.

  • platform/graphics/transforms/PerspectiveTransformOperation.h: Update assertion, because

Undefined means perpsective: none now.

  • platform/graphics/transforms/PerspectiveTransformOperation.cpp:

(WebCore::PerspectiveTransformOperation::blend): Handle the case of perspective: none for
either values.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:

Nov 3, 2021:

11:28 PM Changeset in webkit [285254] by Megan Gardner
  • 3 edits in trunk/Source/WebCore

TextIndicators are flipped when spanning more than one line.
https://bugs.webkit.org/show_bug.cgi?id=232688

We regressed this in https://bugs.webkit.org/show_bug.cgi?id=225557 when text indicators were factored
out to be used for App Highlights. We need to restore the geomitry flipping behavior to have the text
indicatores show up correctly.

Reviewed by Tim Horton.

  • page/cocoa/WebTextIndicatorLayer.mm:

(-[WebTextIndicatorLayer initWithFrame:textIndicator:margin:offset:]):
(-[WebTextIndicatorLayer isFlipped]): Deleted.

  • page/mac/TextIndicatorWindow.mm:

(-[WebTextIndicatorView isFlipped]):
(WebCore::TextIndicatorWindow::setTextIndicator):

9:49 PM Changeset in webkit [285253] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232683

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-03

  • platform/glib/TestExpectations:
  • platform/glib/http/tests/contentextensions/block-private-click-measurement-expected.txt:
  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt:
6:23 PM Changeset in webkit [285252] by achristensen@apple.com
  • 23 edits
    20 deletes in trunk

Remove QuickTimePluginReplacement and YouTubePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=232400

Reviewed by Chris Dumez.

Source/WebCore:

They were disabled at runtime in https://trac.webkit.org/changeset/275911/webkit

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/plugins/PluginReplacement.h: Removed.
  • Modules/plugins/QuickTimePluginReplacement.css: Removed.
  • Modules/plugins/QuickTimePluginReplacement.h: Removed.
  • Modules/plugins/QuickTimePluginReplacement.idl: Removed.
  • Modules/plugins/QuickTimePluginReplacement.js: Removed.
  • Modules/plugins/QuickTimePluginReplacement.mm: Removed.
  • Modules/plugins/YouTubePluginReplacement.cpp: Removed.
  • Modules/plugins/YouTubePluginReplacement.h: Removed.
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginScriptObject):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::createElementRenderer):
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
(WebCore::HTMLPlugInElement::requestObject):
(): Deleted.
(WebCore::registrar): Deleted.
(WebCore::pluginReplacementForType): Deleted.
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Deleted.

  • html/HTMLPlugInElement.h:

(WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Deleted.

  • html/shadow/ShadowPseudoIds.cpp:

(WebCore::ShadowPseudoIds::webkitPluginReplacement): Deleted.

  • html/shadow/ShadowPseudoIds.h:
  • html/shadow/YouTubeEmbedShadowElement.cpp: Removed.
  • html/shadow/YouTubeEmbedShadowElement.h: Removed.
  • page/Settings.yaml:

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp: Removed.

LayoutTests:

  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt: Removed.
  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Removed.
5:40 PM Changeset in webkit [285251] by Yousuke.Kimoto@sony.com
  • 2 edits in trunk/Tools

Use 0.0.0.0 when "--all-interfaces" is given for websocket_server
https://bugs.webkit.org/show_bug.cgi?id=231798
<rdar://problem/84540538>

Reviewed by Jonathan Bedard.

When run-webkit-tests runs with "--all-interfaces", servers running
on the host PC should use "0.0.0.0". It will help situations where
host and target systems are discrete so that test programs can
connect to test servers on the host PC.

  • Scripts/webkitpy/layout_tests/servers/websocket_server.py:

(PyWebSocket.init): Fixed a style check error.
(PyWebSocket._prepare_config): Added "0.0.0.0" for --all-interfaces.

5:16 PM Changeset in webkit [285250] by Russell Epstein
  • 1 copy in tags/Safari-612.3.3.0.2

Tag Safari-612.3.3.0.2.

5:14 PM Changeset in webkit [285249] by Russell Epstein
  • 1 copy in tags/Safari-612.3.3.1.2

Tag Safari-612.3.3.1.2.

5:13 PM Changeset in webkit [285248] by Russell Epstein
  • 8 edits in branches/safari-612.3.3.1-branch/Source

Versioning.

WebKit-7612.3.3.1.2

5:12 PM Changeset in webkit [285247] by Russell Epstein
  • 4 edits in branches/safari-612.3.3.1-branch/Source

Revert "Cherry-pick r285241. rdar://problem/84990898"

This reverts commit r285243.

5:05 PM Changeset in webkit [285246] by ysuzuki@apple.com
  • 14 edits in trunk

[JSC] Clean up StructureStubInfo initialization
https://bugs.webkit.org/show_bug.cgi?id=232652

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch enhances FixedVector to initialize it from the other containers.
So we can simplify baseline StructureStubInfo initialization.
Now, StructureStubInfo::initializeFromUnlinkedStructureStubInfo becomes
StructureStubInfo constructor taking const UnlinkedStructureStubInfo&.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setupWithUnlinkedBaselineCode):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo): Deleted.

  • bytecode/StructureStubInfo.h:
  • jit/JIT.cpp:

(JSC::JIT::link):

Source/WebCore:

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::fontForLayoutLabel):

Source/WTF:

  • wtf/FixedVector.h:

(WTF::FixedVector::FixedVector):
(WTF::FixedVector::operator=):

  • wtf/RefCountedArray.h:

(WTF::RefCountedArray::RefCountedArray):
(WTF::RefCountedArray::operator=):

  • wtf/SegmentedVector.h:
  • wtf/Vector.h:

(WTF::VectorTypeOperations::uninitializedCopy):

Tools:

  • TestWebKitAPI/Tests/WTF/FixedVector.cpp:

(TestWebKitAPI::TEST):

4:55 PM Changeset in webkit [285245] by Russell Epstein
  • 1 copy in tags/Safari-612.3.3.1.1

Tag Safari-612.3.3.1.1.

4:55 PM Changeset in webkit [285244] by Russell Epstein
  • 1 delete in tags/Safari-612.3.3.1.1

Delete tag.

4:53 PM Changeset in webkit [285243] by Russell Epstein
  • 4 edits in branches/safari-612.3.3.1-branch/Source

Cherry-pick r285241. rdar://problem/84990898

[macOS] MediaSession coordinator enabled in UIProcess, disabled in WebContent
https://bugs.webkit.org/show_bug.cgi?id=232687
<rdar://84990898>

Reviewed by Eric Carlson.

Source/WebKit:

The default value of defaultMediaSessionCoordinatorEnabled() will be true if the UIProcess has
the correct entitlement. However, this value is not passed across the XPC boundary unless it has
been overridden, which means defaultMediaSessionCoordinatorEnabled() will control the setting
in the WebContent process, which is not entitled.

Have the WebContent process check its parent process's entitlement rather than its own when
determining the default value for defaultMediaSessionCoordinatorEnabled().

  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultMediaSessionCoordinatorEnabled):

Source/WTF:

Have the MediaSessionPlaylistEnabled preference use the same defaults as MediaSessionCoordinatorEnabled.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285241 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:50 PM Changeset in webkit [285242] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

Disable WebXR on tvOS and watchOS
<https://webkit.org/b/232672>
<rdar://problem/84982378>

Reviewed by Brent Fulgham.

  • wtf/PlatformEnableCocoa.h:

(ENABLE_WEBXR):
(ENABLE_WEBXR_HANDS):

  • Disable features on tvOS and watchOS.
4:46 PM Changeset in webkit [285241] by jer.noble@apple.com
  • 4 edits in trunk/Source

[macOS] MediaSession coordinator enabled in UIProcess, disabled in WebContent
https://bugs.webkit.org/show_bug.cgi?id=232687
<rdar://84990898>

Reviewed by Eric Carlson.

Source/WebKit:

The default value of defaultMediaSessionCoordinatorEnabled() will be true if the UIProcess has
the correct entitlement. However, this value is not passed across the XPC boundary unless it has
been overridden, which means defaultMediaSessionCoordinatorEnabled() will control the setting
in the WebContent process, which is not entitled.

Have the WebContent process check its parent process's entitlement rather than its own when
determining the default value for defaultMediaSessionCoordinatorEnabled().

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultMediaSessionCoordinatorEnabled):

Source/WTF:

Have the MediaSessionPlaylistEnabled preference use the same defaults as MediaSessionCoordinatorEnabled.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:29 PM Changeset in webkit [285240] by Russell Epstein
  • 5 edits in branches/safari-613.1.7-branch/Source

Cherry-pick r285110. rdar://problem/84994696

Unreviewed, reverting r285055.

Reverting because this commit may have caused
webgl/1.0.x/conformance/textures/misc/texture-corner-case-
videos.html and webgl/2.0.y/conformance/textures/misc/texture-
corner-case-videos.html to time out

Reverted changeset:

"Avoid sending video data to Web process for
canvas.drawImage(video)"
https://bugs.webkit.org/show_bug.cgi?id=230766
https://commits.webkit.org/r285055

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285110 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:52 PM Changeset in webkit [285239] by Russell Epstein
  • 13 edits in branches/safari-612.3.3.0-branch

Apply patch. rdar://problem/84982191

3:41 PM Changeset in webkit [285238] by Nikos Mouchtaris
  • 1 edit
    3 copies
    4 adds
    2 deletes in trunk/LayoutTests

Add platform test expectations for imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-001.html
https://bugs.webkit.org/show_bug.cgi?id=232504

Reviewed by Myles Maxfield.

Fix expectations for Big Sur wk1.

  • platform/glib/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-001-expected.txt: Added.
  • platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-001-expected.txt: Added.
3:40 PM Changeset in webkit [285237] by Russell Epstein
  • 1 edit in branches/safari-612.3.3.1-branch/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp

Unreviewed build fix. rdar://problem/84987165.

error: no viable constructor or deduction guide for deduction of template arguments of 'WeakPtr'

3:36 PM Changeset in webkit [285236] by commit-queue@webkit.org
  • 5 edits in trunk/Source

AX: WKAccessibilityWebPageObjectMac.mm should expose accessibilityChildrenInNavigationOrder and NSAccessibilityChildrenInNavigationOrderAttribute
https://bugs.webkit.org/show_bug.cgi?id=232654

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-03
Reviewed by Chris Fleizach.

Some clients expect accessibilityChildrenInNavigationOrder and
NSAccessibilityChildrenInNavigationOrderAttribute to be available,
and WKAccessibilityWebPageObjectMac didn't expose them.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

Move #define NSAccessibilityChildrenInNavigationOrderAttribute to
header so it can be used in the WebKit layer.

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityChildrenInNavigationOrder]): Added.
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
Handle NSAccessibilityChildrenInNavigationOrderAttribute.
(-[WKAccessibilityWebPageObject accessibilityAttributeNames:]):
Add NSAccessibilityChildrenInNavigationOrderAttribute.

3:18 PM Changeset in webkit [285235] by jh718.park@samsung.com
  • 7 edits in trunk

border-radius inline style should serialize with valid syntax
https://bugs.webkit.org/show_bug.cgi?id=183994

This patch have border-radius property serializes in canonical order
as specified in https://drafts.csswg.org/css-backgrounds/#border-radius.

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/parsing/border-radius-valid-expected.txt: Add more test case results.
  • web-platform-tests/css/css-backgrounds/parsing/border-radius-valid.html: Add more test cases.

Source/WebCore:

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderRadiusValue const):

  • css/StyleProperties.h:
  • css/parser/CSSPropertyParser.cpp:
3:07 PM Changeset in webkit [285234] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebCore

Fix consistency issues with localized strings and regenerate localizable.strings
<https://webkit.org/b/232642>

Reviewed by Megan Gardner.

  • en.lproj/Localizable.strings:
  • Regenerate the file using update-webkit-localizable-strings.
  • List of strings realphabetized, except as noted below.

("%@ (%@ Internet plug-in)"): Delete.

  • Removed in r285047 for Bug 232462.
  • platform/LocalizedStrings.cpp:

(WebCore::addTextTrackKindEasyReaderSuffix):

  • Fix unlocalized string that regressed in r278202 for Bug 226361.

(WebCore::useBlockedPlugInContextMenuTitle):

  • Remove unneeded call to WebCore::formatLocalizedString() since there are no placeholders to replace.
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagShowFonts):

  • Switch from calling WebCore::localizedNSString() directly to using WEB_UI_NSSTRING() so these strings will be found by update-webkit-localizable-strings.
3:03 PM Changeset in webkit [285233] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

[GPU Process] Rendering backend may stop processing IPC stream messages after a sync message timeout
https://bugs.webkit.org/show_bug.cgi?id=232580

Reviewed by Tim Horton.

Currently, it's possible for sync IPC messages that are sent through IPC streams to time out and subsequently
cause the IPC stream server (e.g. RemoteRenderingBackend) to stop processing IPC stream messages altogether. The
following example illustrates how this might happen:

  1. Web process sends the sync message at offset n (relative to the start of the ring buffer).

Web process then begins to wait for the sync stream response under tryAcquireAll().

  1. GPU process receives the sync message, and takes a while (> 1 sec.) attempting to dispatch it.
  1. Meanwhile in the web process, we hit the IPC timeout and bail from tryAcquireAll(). The client offset

is still at n. Shortly afterwards, the web process tries to send a regular stream message, calling
tryAcquire() and waiting for the client semaphore to be signaled.

  1. The GPU process finally finishes dispatching the sync message from (2), sends a sync reply (unaware that

the web process has already given up waiting), and finally calls releaseAll(), signaling the client
semaphore. The server offset is then reset back to 0.

  1. The web process finishes waiting, returns from tryAcquire(), proceeds to write the new stream

message after offset n, and wakes up the GPU process with the intention of handling this message.

  1. The GPU process wakes up and begins reading from offset 0. The first message it encounters is the

SyncMessageReply it just wrote in step (4), and subsequently bails from the processing loop because it
isn't capable of dispatching this message (which was meant to be consumed in the web process in the
first place).

In summary, the sync IPC timeout causes us to enter a state where the web process continues to encode messages
at the buffer offset prior to timeout (i.e. offset n), while the GPU process is reading from the start of the
buffer (offset 0). To avoid this, simply replace the timeouts when synchronously grabbing image data from the
GPU process. This ensures that we're never in a state where we're continuing to send stream messages to a
rendering backend connection stream after timing out when waiting for a previous sync message to that stream to
finish.

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::sharedMemoryForGetPixelBuffer):
(WebKit::RemoteRenderingBackendProxy::waitForGetPixelBufferToComplete):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
3:01 PM Changeset in webkit [285232] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Return nullopt in aspect-ratio+intrinsic width case
https://bugs.webkit.org/show_bug.cgi?id=230769

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-03
Reviewed by Javier Fernandez.

Source/WebCore:

Return nullopt in aspect-ratio+intrinsic width case, while
calculating preferred widths we do not know the container width yet,
so we can't determine the logical height reliably from it.

Test: fast/css-grid-layout/aspect-ratio-auto-repeat-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

LayoutTests:

  • fast/css-grid-layout/aspect-ratio-auto-repeat-crash-expected.txt: Added.
  • fast/css-grid-layout/aspect-ratio-auto-repeat-crash.html: Added.
2:58 PM Changeset in webkit [285231] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[ iOS ] TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS is crashing
https://bugs.webkit.org/show_bug.cgi?id=232676

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-03
Reviewed by Eric Carlson.

In r284743 we changed types from raw pointers to WeakPtr, but accessing them in layoutSublayers is not thread safe.
Remove some unsafe early returns.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):

2:56 PM Changeset in webkit [285230] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[ iOS Debug ] TestWebKitAPI.ResourceLoadStatistics.GrandfatherCallback is failing
https://bugs.webkit.org/show_bug.cgi?id=232675

Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-03
Reviewed by Kate Cheney.

Clearing website data attempts a connection with the daemon.
For now, just tell it not to connect to the daemon.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

2:32 PM Changeset in webkit [285229] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the build.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::modelElementDidCreatePreview):

2:07 PM Changeset in webkit [285228] by dino@apple.com
  • 4 edits in trunk/Source

REGRESSION: AR Quicklook asset is shared instead of page URL
https://bugs.webkit.org/show_bug.cgi?id=232674
rdar://84220997

Reviewed by Antoine Quint.

There was a typo. ENABLE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
should be HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM).

Source/WebCore/PAL:

  • pal/spi/ios/SystemPreviewSPI.h:

Source/WebKit:

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
1:26 PM Changeset in webkit [285227] by Russell Epstein
  • 6 edits in branches/safari-612.3.3.1-branch/Source/WebKit

Cherry-pick r285177. rdar://problem/84987165

Terminate unresponsive network process by crashing it
https://bugs.webkit.org/show_bug.cgi?id=232603

Reviewed by Chris Dumez.

UI process currently kills network process when it does not respond message in some time (network process being
unresponsive). We've found one common case where network process becomes unresponsive is that it is blocked by
some slow operation on the main thread (like file operation in rdar://84511633). To understand what the
operations are and make a fix, we now ask network process to crash itself on IPC thread. In this way, we can get
crash report that includes the call stack of the main thread. To avoid generating too many crash reports, we
only send the crash message to network process when it becomes unresponsive multiple times in a short time
period.

  • Platform/IPC/Connection.cpp: (IPC::terminateDueToIPCTerminateMessage): (IPC::Connection::processIncomingMessage):
  • Scripts/webkit/model.py:
  • Scripts/webkit/tests/MessageNames.cpp: (IPC::description): (IPC::receiverName): (IPC::isValidMessageName):
  • Scripts/webkit/tests/MessageNames.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::shouldTerminateNetworkProcessBySendingMessage): (WebKit::NetworkProcessProxy::didBecomeUnresponsive):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285177 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:26 PM Changeset in webkit [285226] by Russell Epstein
  • 7 edits in branches/safari-612.3.3.1-branch/Source/WebKit

Cherry-pick r285115. rdar://problem/84984094

Increase responsiveness timeout for network process
https://bugs.webkit.org/show_bug.cgi?id=232505

Reviewed by Chris Dumez.

  • UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::AuxiliaryProcessProxy):
  • UIProcess/AuxiliaryProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::NetworkProcessProxy): (WebKit::NetworkProcessProxy::getNetworkProcessConnection):
  • UIProcess/ResponsivenessTimer.cpp: (WebKit::ResponsivenessTimer::ResponsivenessTimer): (WebKit::ResponsivenessTimer::timerFired): (WebKit::ResponsivenessTimer::start): (): Deleted.
  • UIProcess/ResponsivenessTimer.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::getNetworkProcessConnection):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285115 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:25 PM Changeset in webkit [285225] by Russell Epstein
  • 3 edits in branches/safari-612.3.3.1-branch/Source/WebKit

Cherry-pick r284651. rdar://problem/84984058

Call to [NSURL URLByAppendingPathComponent:] under NetworkSessionCocoa() may be inefficient
https://bugs.webkit.org/show_bug.cgi?id=232098

Reviewed by Alex Christensen.

Call [NSURL URLByAppendingPathComponent:isDirectory:] whenever possible instead of
[NSURL URLByAppendingPathComponent], as it is more efficient.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
  • UIProcess/Cocoa/WKShareSheet.mm: (+[WKShareSheet createRandomSharingDirectoryForFile:]): (+[WKShareSheet writeFileToShareableURL:data:temporaryDirectory:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284651 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:24 PM Changeset in webkit [285224] by Chris Dumez
  • 10 edits in trunk/Source

Clicking a link should preconnect to destination as first party
https://bugs.webkit.org/show_bug.cgi?id=232668

Reviewed by Alex Christensen.

Clicking a link should preconnect to destination as first party, not third-party. Otherwise, the
preconnect is wasted when session isolation based on registrable domain is enabled. This is a
follow-up to r284730.

Source/WebCore:

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::preconnectIfNeeded):

  • loader/LoaderStrategy.h:

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::preconnectTo):

  • WebCoreSupport/WebResourceLoadScheduler.h:
1:14 PM Changeset in webkit [285223] by Russell Epstein
  • 8 edits in branches/safari-612.3.3.0-branch/Source

Versioning.

WebKit-7612.3.3.0.2

1:12 PM Changeset in webkit [285222] by Chris Dumez
  • 5 edits in trunk

_pasteboardWithName should be thread-safe
https://bugs.webkit.org/show_bug.cgi?id=232670

Reviewed by Tim Horton.

Source/WTF:

wtf/Atomics.h uses WTF_MAKE_STRUCT_FAST_ALLOCATED which is declared in
wtf/FastMalloc.h but was failing to include it. This was leading to a
build error when I tried including wtf/Lock.h in WKTR.

  • wtf/Atomics.h:

Tools:

_pasteboardWithName should be thread-safe, to match [NSPasteboard _pasteboardWithName].
This was leading to flaky crashes in _pasteboardWithName getting called off the main
thread from ShareKit code.

  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(+[DumpRenderTreePasteboard _pasteboardWithName:]):
(+[DumpRenderTreePasteboard releaseLocalPasteboards]):

  • WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:

(+[WebKitTestRunnerPasteboard _pasteboardWithName:]):
(+[WebKitTestRunnerPasteboard releaseLocalPasteboards]):

1:11 PM Changeset in webkit [285221] by Ryan Haddad
  • 2 edits in trunk/Tools

[EWS] Add more bots to iOS layout and API test queues
https://bugs.webkit.org/show_bug.cgi?id=232678

Reviewed by Aakash Jain.

  • CISupport/ews-build/config.json:
1:10 PM Changeset in webkit [285220] by Kyle Piddington
  • 3 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (iOS 15): Tab crashes when trying to render Projector stories
https://bugs.webkit.org/show_bug.cgi?id=231607

Rework vertex buffer caching to allow us to reuse parts
of converted buffers. This dramatically drops the memory usage
of this tab from 4.5 gb to roughly 1.3gb

Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/BufferMtl.mm:

(rx::BufferMtl::getVertexConversionBuffer):

  • src/libANGLE/renderer/metal/VertexArrayMtl.mm:

(rx::VertexArrayMtl::convertVertexBuffer):
(rx::VertexArrayMtl::convertVertexBufferCPU):
(rx::VertexArrayMtl::convertVertexBufferGPU):

1:09 PM Changeset in webkit [285219] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebKit

[Catalina] HLS streams will not select HDR variants when GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=232671
<rdar://84686676>

Reviewed by Eric Carlson.

Tested manually.

In Catalina, fall back to a MediaToolbox API for setting a global HDR override in the GPU
process which instructs all AVPlayer instances whether HDR playback is supported for the
current set of displays. Pass the required data across from the UIProcess to the GPU process
at process start up and when the displays are reconfigured.

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • GPUProcess/mac/GPUProcessMac.mm:

(WebKit::GPUProcess::setScreenProperties):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::setScreenProperties):
(WebKit::GPUProcessProxy::updatePreferences):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::screenPropertiesStateChanged):
(WebKit::displayReconfigurationCallBack):

11:40 AM Changeset in webkit [285218] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

Rebaseline http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html.
https://bugs.webkit.org/show_bug.cgi?id=231928.

Unreviewed test gardening.

  • platform/ios/http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive-expected.txt:
11:26 AM Changeset in webkit [285217] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Leak of UUID in WebKit::ModelElementController::modelElementDidCreatePreview()
<https://webkit.org/b/232628>
<rdar://problem/84935290>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/ModelElementControllerCocoa.mm:

(WebKit::ModelElementController::modelElementDidCreatePreview):

  • Use adoptNS() to fix the leak.
10:59 AM Changeset in webkit [285216] by Devin Rousso
  • 6 edits
    4 adds in trunk

[Modern Media Controls] should show tracks button/menu for <audio>
https://bugs.webkit.org/show_bug.cgi?id=232597

Reviewed by Eric Carlson.

Source/WebCore:

There's nothing preventing <audio> from having multiple <source>. We should have a
language picker for <audio> just like what we have for <video>.

Tests: media/modern-media-controls/tracks-support/audio-multiple-tracks.html

media/modern-media-controls/tracks-support/audio-single-track.html

  • Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls.prototype._rightContainerButtons):

LayoutTests:

  • media/modern-media-controls/tracks-support/audio-multiple-tracks.html: Added.
  • media/modern-media-controls/tracks-support/audio-multiple-tracks-expected.txt: Added.
  • media/modern-media-controls/tracks-support/audio-single-track.html: Added.
  • media/modern-media-controls/tracks-support/audio-single-track-expected.txt: Added.
  • media/modern-media-controls/audio/audio-controls-buttons.html:
  • media/modern-media-controls/audio/audio-controls-buttons-expected.txt:
  • platform/ios-wk2/TestExpectations:
10:47 AM Changeset in webkit [285215] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Display swatch popovers below the swatch by default, not on the left side
https://bugs.webkit.org/show_bug.cgi?id=232577

Reviewed by Devin Rousso.

The new defaults are: below, above, left.

Displaying the swatch popover on the left side covers the relevant property name.
Displaying it below or above doesn't have this problem; below is preferred because
it doesn't hide the CSS selector of the relevant rule.

  • UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch.prototype._presentPopover):
Introduce a method to remove code duplication.

10:28 AM Changeset in webkit [285214] by Chris Dumez
  • 13 edits
    8 adds in trunk

Javascript URLs do not run in the right context when using frame targeting
https://bugs.webkit.org/show_bug.cgi?id=232382

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/010-expected.txt:

The test is no longer timing out now that we run the javascript URL contained in the <form>'s action in the context
of the "test" iframe instead of the top frame. However, the test is still failing, possibly because the JavaScript
URL is run synchronously.

Source/WebCore:

Javascript URLs did not run in the right context when using frame targeting
(e.g. <a target="foo" src="javascript:...">). We would previously run the
JavaScript URL in the context of the anchor instead of the target frame/window.

Also, we would fail to open a new popup when there is no existing frame with
the given target name.

This patch fixes the issue by doing the executeJavaScriptURL() call later,
inside of FrameLoader::loadWithNavigationAction(), once we've already resolved
the target frame and created a new window if necessary.

This aligns our behavior with both Chrome and Firefox.

Tests: fast/frames/javascript-url-anchor-target-new-window.html

fast/frames/javascript-url-anchor-target.html
fast/frames/javascript-url-form-target-new-window.html
fast/frames/javascript-url-form-target.html

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeJavaScriptURL):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::requestURL const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::shouldReplaceDocumentIfJavaScriptURL const):
(WebCore::NavigationAction::setShouldReplaceDocumentIfJavaScriptURL):

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleFormSubmission):

LayoutTests:

Add layout test coverage. I have verified that these tests are passing in both
Chrome 94 and Firefox 94.

  • fast/frames/javascript-url-anchor-target-expected.txt: Added.
  • fast/frames/javascript-url-anchor-target-new-window-expected.txt: Added.
  • fast/frames/javascript-url-anchor-target-new-window.html: Added.
  • fast/frames/javascript-url-anchor-target.html: Added.
  • fast/frames/javascript-url-form-target-expected.txt: Added.
  • fast/frames/javascript-url-form-target-new-window-expected.txt: Added.
  • fast/frames/javascript-url-form-target-new-window.html: Added.
  • fast/frames/javascript-url-form-target.html: Added.
10:05 AM Changeset in webkit [285213] by Simon Fraser
  • 13 edits in trunk

Expose fuzzy match data in layout test results
https://bugs.webkit.org/show_bug.cgi?id=232523

Reviewed by Jonathan Bedard.

Tools:

For a failing ref (or image) test, include the fuzzy matching data in full_results.json
in the form "image_difference": { "max_difference": 13, "total_pixels": 167 }, and
show that in the image comparison page that's written out for each test result.

Fix some tests that relied on JSON property serialization ordering (we don't serialize
with sort_keys=True).

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._save_json_files):

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.write_image_diff_files):

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(JSONResultsGenerator.generate_times_ms_file):

  • Scripts/webkitpy/layout_tests/models/test_failures.py:

(FailureImageHashMismatch.formatted_diff_percent):
(FailureImageHashMismatch):
(FailureImageHashMismatch.formatted_fuzzy_data):
(FailureImageHashMismatch.write_failure):
(FailureReftestMismatch.message):
(FailureReftestMismatch.formatted_diff_percent):
(FailureReftestMismatch):
(FailureReftestMismatch.formatted_fuzzy_data):
(FailureReftestMismatch.write_failure):

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(_interpret_test_failures):

  • Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:

(InterpretTestFailuresTest.test_interpret_test_failures):

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:

(RunTest.test_retrying_force_pixel_tests):

LayoutTests:

Add some "image_difference" values to the test JSON and update the resulting
files.

  • fast/harness/full_results.json:
  • fast/harness/image-diff-template-expected.txt:
  • fast/harness/image-diff-template.html:
  • fast/harness/results.html:
10:05 AM Changeset in webkit [285212] by Russell Epstein
  • 1 copy in tags/Safari-612.3.3.1.1

Tag Safari-612.3.3.1.1.

9:59 AM Changeset in webkit [285211] by Antti Koivisto
  • 5 edits in trunk

::slotted element style not invalidated correctly in nested case
https://bugs.webkit.org/show_bug.cgi?id=232665

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scoping/slotted-nested-expected.txt:

Source/WebCore:

We fail to invalidate ::slotted style if the assigned node is not from the current host scope.

  • style/StyleInvalidator.cpp:

(WebCore::Style::invalidateAssignedElements):

Invalidate more accurately by following assigned node chain recursively instead of just invalidating all host children.

(WebCore::Style::Invalidator::invalidateIfNeeded):

Remove the unnecessary and incorrect m_didInvalidateHostChildren optimization.

  • style/StyleInvalidator.h:
9:52 AM Changeset in webkit [285210] by jer.noble@apple.com
  • 5 edits
    2 moves
    2 adds in trunk

[iOS] AVAssetResourceLoadingRequest.request does not include a Range: header on iOS 15.
https://bugs.webkit.org/show_bug.cgi?id=232195
<rdar://84574375>

Reviewed by Darin Adler.

Source/WebCore:

Explicitly add a Range: header for Blob requests which do not have one (but otherwise should).

Test: platform/mac/media/video-blob-request-contains-range-header.html

Drive-by fix: to allow this change to be testable, we must revert a change which calls all the
network delegate callbacks with empty data. This was necessary at the time because (at least for
Cocoa ports) media loading happened outside WebCore's loader path. Currently, all http(s), data,
blob, and custom protocol schemes are loaded through WebCore, leaving file:// URLs as the
remaining protocol type that needs custom handling, and only on Cocoa ports.

Further drive-by fix: WebKitLegacy's network delegate client operates synchronously during
requestResource(), so WebCoreNSURLSession must synthesize an error if that method returns a
nil resource.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask _restart]):

LayoutTests:

The existing media-blocked-by-willsendrequest.html test only verified that file:// URLs were blocked,
not http://, so this test is moved to the http/tests/ directory where media will use http:// for loading.

  • http/tests/media/media-blocked-by-willsendrequest-expected.txt: Renamed from LayoutTests/media/media-blocked-by-willsendrequest-expected.txt.
  • http/tests/media/media-blocked-by-willsendrequest.html: Renamed from LayoutTests/media/media-blocked-by-willsendrequest.html.
  • platform/mac/media/video-blob-request-contains-range-header.html:
  • platform/mac/media/video-blob-request-contains-range-header-expected.txt: Added.
  • platform/mac/media/video-blob-request-contains-range-header.html: Added.
9:40 AM Changeset in webkit [285209] by Antti Koivisto
  • 4 edits in trunk

::slotted shouldn't match an active <slot>
https://bugs.webkit.org/show_bug.cgi?id=232664

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-scoping/slotted-slot-expected.txt:

Source/WebCore:

https://drafts.csswg.org/css-scoping/#slotted-pseudo

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

Avoid matching <slot>.

9:17 AM Changeset in webkit [285208] by Kate Cheney
  • 7 edits
    1 add in trunk

[iOS] Need API for marking file requests as non-app-initiated
https://bugs.webkit.org/show_bug.cgi?id=232506
<rdar://problem/84824703>

Reviewed by Brent Fulgham.

Source/WebKit:

Pass app initiated value through to the WebPage so file loads
can be attributed correctly.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadFileRequest:allowingReadAccessToURL:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadFile):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/file-with-iframe.html: Added.
9:14 AM Changeset in webkit [285207] by beidson@apple.com
  • 2 edits in trunk/Tools

Fix iOS API tests after r285199
https://bugs.webkit.org/show_bug.cgi?id=232649

Unreviewed.

  • TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm: Definitely not ready for these tests to start running.
9:05 AM Changeset in webkit [285206] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/mac

Unreviewed iOS build fix.

  • WebCoreSupport/WebNotificationClient.mm:

(-[WebNotificationPolicyListener NO_RETURN_DUE_TO_ASSERT]):
(-[WebNotificationPolicyListener denyOnlyThisRequest]): Deleted.
(-[WebNotificationPolicyListener shouldClearCache]): Deleted.

7:37 AM Changeset in webkit [285205] by Chris Lord
  • 12 edits in trunk/Source/WebCore

[GTK][WPE] Use the display refresh to drive scrolling animations (sync scroll)
https://bugs.webkit.org/show_bug.cgi?id=232077

Reviewed by Simon Fraser.

Service sync scroll animations as part of the scroll phase in
Page::updateRendering, which is driven by the display refresh.

No new tests, covered by existing tests.

  • dom/Document.cpp:

(WebCore::serviceScrollAnimationForScrollableArea):
(WebCore::Document::runScrollSteps):

  • page/FrameView.cpp:

(WebCore::FrameView::didStartScrollAnimation):

  • page/FrameView.h:
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::ScrollAnimator):
(WebCore::ScrollAnimator::startAnimationCallback):
(WebCore::ScrollAnimator::stopAnimationCallback):
(WebCore::ScrollAnimator::serviceScrollAnimation):
(WebCore::ScrollAnimator::scrollControllerAnimationTimerFired): Deleted.

  • platform/ScrollAnimator.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::didStartScrollAnimation):

  • platform/ScrollingEffectsController.cpp:

(WebCore::ScrollingEffectsController::retargetAnimatedScrollBy):

  • rendering/RenderLayerScrollableArea.cpp:

(WebCore::RenderLayerScrollableArea::didStartScrollAnimation):

  • rendering/RenderLayerScrollableArea.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::didStartScrollAnimation):

  • rendering/RenderListBox.h:
6:37 AM Changeset in webkit [285204] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Display box builder should take visual order into account when computing horizontal positions
https://bugs.webkit.org/show_bug.cgi?id=232655

Reviewed by Antti Koivisto.

In this patch we turn logical horizontal positions into "physical" positions based on the visual order of the runs.
With this change, now IFC can render simple RTL content.

  • layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent): Move shared code to displayBoxRect.

5:45 AM Changeset in webkit [285203] by ntim@apple.com
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

Make render-layer-rebuild-z-order-lists.html use an HTML reference
https://bugs.webkit.org/show_bug.cgi?id=232658

Reviewed by Antti Koivisto.

This not only tests the crash, but also tests that the dialog is rendered (which was not
the case at the first iteration of the patch which introduced this test).

Also done some minor cleanups to the test.

  • fast/layers/render-layer-rebuild-z-order-lists-expected.html: Added.
  • fast/layers/render-layer-rebuild-z-order-lists-expected.txt: Removed.
  • fast/layers/render-layer-rebuild-z-order-lists.html:
3:59 AM Changeset in webkit [285202] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

Use Style::ScopeOrdinal for finding the right scope for ::part matching
https://bugs.webkit.org/show_bug.cgi?id=232562

Reviewed by Simon Fraser.

We are already passing the scope ordinal to the selector checker so we can use it consistently to find
the right scope.

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively const):

Find the right scope based on the scope ordinal.
Simplify allowMultiplePseudoElements check, invalid cases are not allowed by the parser.

(WebCore::SelectorChecker::checkOne const):

Find the right scope based on the scope ordinal.

  • css/SelectorChecker.h:
  • dom/ShadowRoot.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRulesForScope):

Compute the scope ordinal for nested scopes.
Make iterative instead of recursive.

(WebCore::Style::ElementRuleCollector::ruleMatches):
(WebCore::Style::ElementRuleCollector::matchAllRules):

Flush all remaining rules.

  • style/ElementRuleCollector.h:
  • style/StyleScope.cpp:

(WebCore::Style::Scope::forOrdinal):
(WebCore::Style::assignedSlotForScopeOrdinal):
(WebCore::Style::hostForScopeOrdinal):

Add helpers.

  • style/StyleScope.h:
  • style/StyleScopeOrdinal.h:

(WebCore::Style::operator--):

We now use values less than ContainingHost to present enclosing scopes, similar to slotted matching.

3:36 AM Changeset in webkit [285201] by Pablo Saavedra
  • 2 edits in trunk

[cmake] Check "cortex" string in the CMAKE_SYSTEM_PROCESSOR for defining WTF_CPU_* vars
https://bugs.webkit.org/show_bug.cgi?id=232623

Reviewed by Carlos Alberto Lopez Perez.

  • Source/cmake/WebKitCommon.cmake:
1:23 AM Changeset in webkit [285200] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION(r284603) [GTK][WPE] test fast/frames/flattening/scrolling-in-object.html fails
https://bugs.webkit.org/show_bug.cgi?id=232627

Use UIHelper.waitForTargetScrollAnimationToSettle rather than a timeout to make the test reliable.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-03
Reviewed by Martin Robinson.

  • fast/frames/flattening/scrolling-in-object.html:
Note: See TracTimeline for information about the timeline view.