Timeline



Aug 11, 2020:

9:08 PM Changeset in webkit [265541] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GTK] Garden accessibility failures after r265514

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
5:32 PM Changeset in webkit [265540] by commit-queue@webkit.org
  • 153 edits in trunk

[WebGL2] Depth formats can have mipmaps in WebGL 2
https://bugs.webkit.org/show_bug.cgi?id=215404

Patch by James Darpinian <James Darpinian> on 2020-08-11
Reviewed by Kenneth Russell.

Source/WebCore:

Fixes 150 WebGL 2 conformance tests.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType):

LayoutTests:

  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/texture-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureproj-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/shadertexturefunction/textureprojoffset-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_array_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/2d_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_linear_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_always-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_greater_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_less_or_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_mipmap_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_never-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/textureshadow/cube_nearest_not_equal-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage2d_format_depth_stencil-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/texturespecification/texstorage3d_format_depth_stencil-expected.txt:
5:10 PM Changeset in webkit [265539] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Enable HTTP/2 ping API tests
https://bugs.webkit.org/show_bug.cgi?id=215402

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-11
Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::TEST):

4:59 PM Changeset in webkit [265538] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address post-landing review comment from Darin for r265536.

  • Modules/webaudio/WaveShaperDSPKernel.cpp:

(WebCore::WaveShaperDSPKernel::processCurve):

4:57 PM Changeset in webkit [265537] by BJ Burg
  • 2 edits in trunk/Tools

REGRESSION(r?): build-webkit --inspector-frontend always builds ImageDiff
https://bugs.webkit.org/show_bug.cgi?id=215393
<rdar://problem/66862975>

Reviewed by Darin Adler.

  • Scripts/build-webkit: exit after building projects if --inspector-frontend is passed.

This flag is for desk builds only and not used by build infrastructure. We don't need to build ImageDiff
when iterating on the Web Inspector frontend.

4:55 PM Changeset in webkit [265536] by Chris Dumez
  • 9 edits in trunk

Fix WaveShapperNode's waveshaping curve implementation
https://bugs.webkit.org/show_bug.cgi?id=215391

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/curve-tests-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits-expected.txt:

Source/WebCore:

Fix WaveShapperNode's waveshaping curve implementation using the algorithm in the specification:

No new tests, rebaselined existing tests.

  • Modules/webaudio/WaveShaperDSPKernel.cpp:

(WebCore::WaveShaperDSPKernel::processCurve):

LayoutTests:

Fix existing tests to reflect behavior change. I have verified that these tests
were failing in Firefox and Chrome before I updated them.

  • webaudio/resources/waveshaper-testing.js:

(runWaveShaperOversamplingTest):

  • webaudio/waveshaper-oversample-2x.html:
  • webaudio/waveshaper-oversample-4x.html:
4:45 PM Changeset in webkit [265535] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/flex-and-intrinsic-sizes-001.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215403

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:13 PM Changeset in webkit [265534] by commit-queue@webkit.org
  • 5083 edits
    3 copies
    2 adds in trunk/LayoutTests

[WebGL2] Conformance tests throttled by iframe leaving viewport
https://bugs.webkit.org/show_bug.cgi?id=215346

Patch by James Darpinian <James Darpinian> on 2020-08-11
Reviewed by Dean Jackson.

The WebGL conformance tests are wrapped in an iframe that was placed below the text output of the test.
When the test outputs a lot of text, this caused the iframe to be pushed below the bottom of the viewport
and then the test was throttled, usually resulting in timeouts. The fix is to move the iframe above the
text. This requires touching every conformance test and expectation file.

  • webgl/resources/webgl-wrapper-template.html: Move test iframe above text output so it doesn't get pushed below the viewport.
  • webgl/2.0.0/*: Every test file and expectations file updated from new template.
  • webgl/TestExpectations: Unskip a bunch of passing tests
4:07 PM Changeset in webkit [265533] by jer.noble@apple.com
  • 11 edits in trunk/Source/WebKit

[Mac] Add Experimental Feature preference for SW VP9
https://bugs.webkit.org/show_bug.cgi?id=215043
<rdar://problem/66400034>

Reviewed by Beth Dakin.

  • FeatureFlags/WebKit.plist:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultVP9SWDecoderEnabledOnBattery):

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

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder):
(WebKit::WebProcess::enableVP9SWDecoder):

  • WebProcess/WebProcess.h:
4:05 PM Changeset in webkit [265532] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.1.2

Tag Safari-610.1.25.1.2.

3:56 PM Changeset in webkit [265531] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Release ] imported/w3c/web-platform-tests/css/css-images/idlharness.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215398

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:39 PM Changeset in webkit [265530] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.0.2

Tag Safari-610.1.25.0.2.

3:38 PM Changeset in webkit [265529] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

WebKit-7610.2.1

3:36 PM Changeset in webkit [265528] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Have render tree dumps show overflow information
https://bugs.webkit.org/show_bug.cgi?id=215385

Reviewed by Zalan Bujtas.

Add code to RenderObject::outputRenderObject() to show layout/visual overflow, as we do
for render tree dumps.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::outputRenderObject const):

3:32 PM Changeset in webkit [265527] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS ] imported/w3c/web-platform-tests/webmessaging/Channel_postMessage_Blob.htm is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208832

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:23 PM Changeset in webkit [265526] by Keith Rollin
  • 2 edits in trunk/Tools

Update filter-build-webkit for unknown/unhandled messages
https://bugs.webkit.org/show_bug.cgi?id=215395
<rdar://problem/63819507>

Reviewed by Alexey Proskuryakov.

Teach filter-build-webkit about XCBuild build output that needs to be
reformatted.

At the same time, address other red messages that have crept in over
time, either reformatting or squelching them.

Some red messages are still emitted under both XCBuild and the Legacy
build system, but those either need to be addressed at the source or
be investigated first in order to determine the correct remediation.

  • Scripts/filter-build-webkit:

(shouldShowSubsequentLine):
(shouldIgnoreLine):

3:20 PM Changeset in webkit [265525] by beidson@apple.com
  • 17 edits in trunk

Add a "use stored credentials" setting to WKWebView.
<rdar://problem/63308019> and https://bugs.webkit.org/show_bug.cgi?id=215388

Reviewed by Geoff Garen.

Source/WebCore:

Covered by Preconnect API tests.

This setting is to allow apps to explicitly deny using the credential storage
for network operations. (e.g. to make sure the Keychain UI doesn't pop up
for an offscreen load)

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::shouldUseCredentialStorage):

  • page/Page.h:

(WebCore::Page::setCanUseCredentialStorage):
(WebCore::Page::canUseCredentialStorage const):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _canUseCredentialStorage]):
(-[WKWebView _setCanUseCredentialStorage:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::preconnectTo):
(WebKit::WebPageProxy::setCanUseCredentialStorage):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::canUseCredentialStorage):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::setCanUseCredentialStorage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(TestWebKitAPI::TEST):

3:08 PM Changeset in webkit [265524] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] media/modern-media-controls/media-controller/media-controller-fullscreen-ltr.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215397

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:01 PM Changeset in webkit [265523] by commit-queue@webkit.org
  • 30 edits in trunk

Unreviewed, reverting r265502.
https://bugs.webkit.org/show_bug.cgi?id=215396

Needs locking to avoid flaky GC-related crashes

Reverted changeset:

"[WebGL2] expando-loss and expando-loss-2 conformance tests
are failing"
https://bugs.webkit.org/show_bug.cgi?id=214765
https://trac.webkit.org/changeset/265502

2:55 PM Changeset in webkit [265522] by Alan Coon
  • 8 edits in branches/safari-610.1-branch/Source

Versioning.

WebKit-610.1.26

2:51 PM Changeset in webkit [265521] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Update contributors.json with reinstated reviewer status
https://bugs.webkit.org/show_bug.cgi?id=215390

Patch by Kenneth Russell <kbr@chromium.org> on 2020-08-11
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/contributors.json:
2:37 PM Changeset in webkit [265520] by pvollan@apple.com
  • 4 edits in trunk/Source/WebKit

[macOS] Deny access to directory for compiled WebKit sandboxes
https://bugs.webkit.org/show_bug.cgi?id=215384

Reviewed by Brent Fulgham.

A WebKit process on macOS should not be allowed access to the directory containing compiled sandboxes
after entering the sandbox itself.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
2:32 PM Changeset in webkit [265519] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-logical/parsing/margin-block-inline-computed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215299

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:18 PM Changeset in webkit [265518] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Add privacy and security keywords to feature status entries
https://bugs.webkit.org/show_bug.cgi?id=215203

Reviewed by Youenn Fablet.

  • features.json:
2:18 PM Changeset in webkit [265517] by Chris Dumez
  • 8 edits
    2 adds in trunk

Fix BiquadFilterNode's lowpass filter
https://bugs.webkit.org/show_bug.cgi?id=215381

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass-expected.txt:

Source/WebCore:

Fix BiquadFilterNode's lowpass filter as it was causing us to fail a WPT test:

No new tests, rebaselined existing test.

  • Modules/webaudio/BiquadProcessor.cpp:

(WebCore::BiquadProcessor::BiquadProcessor):

  • platform/audio/Biquad.cpp:

(WebCore::Biquad::setLowpassParams):

LayoutTests:

  • webaudio/biquad-lowpass.html:

Update test to work in other browsers (which do not support prefixed API).

  • webaudio/resources/biquad-testing.js:

(createLowpassFilter):
Update test to reflect behavior change. Note that this test was failing in both
Chrome and Firefox before I updated the test. Now that I updated the test to
match the new behavior we implemented, it passes in both Chrome and Firefox.

2:11 PM Changeset in webkit [265516] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] webaudio/oscillator-sawtooth.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215392

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:04 PM Changeset in webkit [265515] by timothy_horton@apple.com
  • 14 edits
    4 adds in trunk

iOS: Scrolling and touch events sporadically stop working after navigating
https://bugs.webkit.org/show_bug.cgi?id=215368
<rdar://problem/65801531>

Reviewed by Wenson Hsieh.

Source/WebKit:

Test: fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html

WebPageProxy::handlePreventableTouchEvent keeps a counter of the number
of outstanding "preventable" touch events that it is waiting to hear
from the Web Content process about. This counter is incremented when the
event is dispatched to the Web Content process's EventHandler queue,
and decremented when the reply (whether it was handled or not) comes
back from the Web Content process. While the counter is non-zero, all
deferrable gestures remain deferred (and when it returns to zero, the
WKDeferringGestureRecognizer gate is lifted, and events are allowed to flow).
This means that it is very important that every event eventually reply
about its handling status.

Before this change, when the Web Content process is navigating, and reaches didCommitLoad,
it cleared all queued touch events, without replying to to the UI process.
Thus, there is a small window of time in which an incoming touch event will
end up in the queue, *not* get dispatched/replied, and then get dropped on
the floor in didCommitLoad. Most events do not meet this fate, because they
are handled promptly, and commitLoad/didCommitLoad tend to be very quick.
However, if the Web Content process ends up spending any significant amount
of time under commitLoad (say, in an unload handler, or in media frameworks),
any incoming touch events during that time will get lost, and the UI process'
count of outstanding events will end up getting stuck non-zero.

Fix this by always pretending that the page ate any events that were outstanding
when didCommitLoad occurs, instead of just dropping them on the floor.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::takeQueuedTouchEventsForPage):
(WebKit::EventDispatcher::clearQueuedTouchEventsForPage): Deleted.
(WebKit::EventDispatcher::getQueuedTouchEventsForPage): Deleted.
Also, rename getQueuedTouchEventsForPage to takeQueuedTouchEventsForPage,
since it removes the queue from EventDispatcher's set.

  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::touchEventSync):
(WebKit::WebPage::didCommitLoad):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::cancelAsynchronousTouchEvents):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::runUIScriptImmediately):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::runUISideScriptImmediately):
(WTR::TestInvocation::runUISideScriptAfterUpdateCallback):

  • WebKitTestRunner/TestInvocation.h:

Add a variant of runUISideScript that runs the script without
waiting for a rendering update.

It makes sense for the default runUISideScript to wait for a rendering
update -- nearly every test is either unaffected or improved by this --
but for the test for this bug, since we have hung the Web Content process
main thread intentionally, we will not see a rendering update, and so
the UI-side script will never run.

LayoutTests:

  • fast/events/touch/ios/resources/finish-test-after-scrolling-with-touch-event-handlers.html: Added.
  • fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start-expected.txt: Added.
  • fast/events/touch/ios/touch-event-stall-after-navigating-with-pending-asynchronous-touch-start.html: Added.

Add a test that ensures that a page that dispatches events in beforeunload,
receiving preventable touch events during the next page's commitLoad does not result
in scrolling being stuck.

Before this change, this test would time out.

1:58 PM Changeset in webkit [265514] by Darin Adler
  • 25 edits in trunk

LayoutTest accessibility/mac/select-element-selection-with-optgroups.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=175341

Reviewed by Chris Fleizach.

Source/WebCore:

Failures were due to new AX objects being created for HTMLOptionElement.
Unlike most other AX objects, these were not cached in the AXObjectCache
and multiple objects could be created for the same underlying option. Fixed this
by changing it to track the option element in the cache in the conventional way.

  • WebCore.xcodeproj/project.pbxproj: Remove AccessibilityMediaControls.h/cpp.

The source files were removed back in April.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::getOrCreate): Added code for HTMLOptionElement and
HTMLOptGroupElement so AccessibilityMenuListOption and AccessibilityListBoxOption
can be created in this function.
(WebCore::AXObjectCache::create): Renamed the version of this that takes an
AccessibilityRole to not claim that it ever gets the value from the cache,
because it never does. Also removed the cases for ListBoxOption and MenuListOption.

  • accessibility/AXObjectCache.h: Updated for above.
  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addChildren): Use create.

  • accessibility/AccessibilityListBox.cpp:

(WebCore::AccessibilityListBox::addChildren): Removed super-old comment that mentions
the long-ago-removed WML.
(WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject const): Use the
element to get the list box option rather than creating a new one every time.
No longer any need to special case <hr> elements since the getOrCreate function
will return nil for non-option elements that don't have a renderer.

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption): Take the element
in the constructor instead of using a separate function to associate it.
(WebCore::AccessibilityListBoxOption::create): Ditto.
(WebCore::AccessibilityListBoxOption::isEnabled const): Update for WeakPtr.
(WebCore::AccessibilityListBoxOption::isSelected const): Ditto.
(WebCore::AccessibilityListBoxOption::canSetSelectedAttribute const): Ditto.
(WebCore::AccessibilityListBoxOption::actionElement const): Update for WeakPtr.
(WebCore::AccessibilityListBoxOption::node const): Added. For some reason the
AccessibilityMenuListOption class had this function and this one did not. They
should both have it.

  • accessibility/AccessibilityListBoxOption.h: Updated for above. Made most

functions private and final. Fixed includes and forward declarations.
Removed the setHTMLElement function. Changed m_optionElement from
HTMLElement* to WeakPtr<HTMLElement>.

  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::addChildren): Use create.

  • accessibility/AccessibilityMenuListOption.cpp:

(WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption): Take the
element in the constructor instead of using a separate function to associate it.
(WebCore::AccessibilityMenuListOption::create): Ditto.
(WebCore::AccessibilityMenuListOption::setElement): Deleted.
(WebCore::AccessibilityMenuListOption::node const): Moved here from the header.
(WebCore::AccessibilityMenuListOption::isEnabled const): Removed unneeded cast
now that m_element has a more specific type, and added a null check.
(WebCore::AccessibilityMenuListOption::isVisible const): Removed dependency
on m_parent pointer, which does not exist now that we don't derive from
AccessibilityMockObject.
(WebCore::AccessibilityMenuListOption::isSelected const): Removed unneeded cast
now that m_element has a more specific type, and added a null check.
(WebCore::AccessibilityMenuListOption::setSelected): Ditto, but no null check
needed because canSetSelectedAttribute takes care of that.
(WebCore::AccessibilityMenuListOption::stringValue const): Ditto.

  • accessibility/AccessibilityMenuListOption.h: Updated for above. Marked

functions final instead of override. Changed m_element from RefPtr<HTMLElement>
to WeakPtr<HTMLOptionElement> to avoid reference cycles that could leak to
memory leaks. Derive from AccessibilityObject instead of
AccessibilityMockObject, since the latter class has nothing to offer us.

  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject const):
Use the element to get the menu list option rather than creating a new one
every time. No longer any need to check that the type is HTMLOptionElement
because that's the responsibility of the code in the cache now.
(WebCore::AccessibilityMenuListPopup::addChildren): Removed unneeded call
to setParent since the menu list option objects no longer hold parent pointers.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::accessibleNameForNode): Added a special case for HTMLOptionElement
like the one for HTMLInputElement. The code worked for fairly well for option
elements before, almost by accident, and the way it worked was perturbed by
the change to whether we cache those objects. This newer code path works in a
more straightforward way, keeps our existing tests psasing, and likely gets
some edge cases handled more correctly (should add new tests for those).

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentLinks): Use create.
(WebCore::AccessibilityRenderObject::addImageMapChildren): Ditto.
(WebCore::AccessibilityRenderObject::addTextFieldChildren): Ditto.

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::addChildren): Ditto.

  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::addChildren): Ditto.

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren): Ditto.
(WebCore::AccessibilityTable::headerContainer): Ditto.

  • accessibility/atk/WebKitAccessible.cpp:

(fallbackObject): Deleted.
(webkitAccessibleGetName): Added null check.
(webkitAccessibleGetDescription): Ditto.
(webkitAccessibleGetParent): Ditto.
(webkitAccessibleGetNChildren): Ditto.
(webkitAccessibleRefChild): Ditto.
(webkitAccessibleGetIndexInParent): Ditto.
(webkitAccessibleGetAttributes): Ditto.
(webkitAccessibleGetRole): Ditto.
(webkitAccessibleRefStateSet): Ditto.
(webkitAccessibleRefRelationSet): Ditto.
(webkitAccessibleGetObjectLocale): Ditto.
(webkitAccessibleGetAccessibilityObject): Ditto.
(webkitAccessibleDetach): Use nullptr instead of fallbackObject.
(webkitAccessibleIsDetached): Ditto.

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::selected const): Made this const. An earlier
version of the patch required this; the latest version doesn't, but it's
more logical and better for it to be const.

  • html/HTMLOptionElement.h: Updated for above.

Tools:

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._compare_output_with_reference): Removed unhelpful log message that tells
about ref tests where the hash optimization for comparing images does not work, but the
test passes. We don't want to get this kind of log message for passing tests.

LayoutTests:

  • platform/mac-wk1/TestExpectations: Fixed expectation for another accessibility test,

accessibility/mac/expanded-notification.html to expect flakiness, not failure, because that's
what the bug that went along with this expectation said, and indeed the test often passes.

  • platform/mac-wk2/TestExpectations: Removed flakiness expectation for

accessibility/mac/select-element-selection-with-optgroups.html, since it's now fixed.
Fixed a "webkkit.org" typo, which caused the expectation for
tiled-drawing/scrolling/fast-scroll-mainframe-zoom.html to not work as expected.

1:40 PM Changeset in webkit [265513] by Lauro Moura
  • 3 edits
    1 move
    1 delete in trunk/LayoutTests

[GTK][WPE] Rebaseline outdated baselines

Unreviewed test gardening.

  • platform/glib/webaudio/audiobuffersource-playbackrate-expected.wav:

Renamed from
LayoutTests/platform/gtk/webaudio/audiobuffersource-playbackrate-expected.wav.
After r265440.

  • platform/gtk/fast/table/empty-cells-expected.txt: After r265499.
  • platform/wpe/fast/table/empty-cells-expected.txt: ditto.
  • platform/wpe/webaudio/audiobuffersource-playbackrate-expected.wav: Removed.
1:28 PM Changeset in webkit [265512] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix Apple internal Mojave builds
https://bugs.webkit.org/show_bug.cgi?id=215389

Unreviewed build fix.

  • pal/spi/cocoa/CoreTextSPI.h:
1:27 PM Changeset in webkit [265511] by Russell Epstein
  • 1 move in branches/safari-610.1-branch

Rename branch.

12:52 PM Changeset in webkit [265510] by timothy@apple.com
  • 8 edits in trunk

Deferred WKUserScripts are exponentially injected on preloaded pages with frames.
https://bugs.webkit.org/show_bug.cgi?id=215382
rdar://problem/66837802

Reviewed by Sam Weinig.

Source/WebCore:

When defering a script in a frame it was previously added to a vector per-page.
Later when notified to inject the defered scripts, the page would iterate over all
the frames and evaluate the scripts on each frame. Since this vector had all the
frame's scripts the evaluations would be multiplied by the number of frames.

Now the defered scripts are stored per-frame and the page asks each frame to
inject the defered scripts.

  • page/Frame.cpp:

(WebCore::Frame::injectUserScripts):
(WebCore::Frame::addUserScriptAwaitingNotification):
(WebCore::Frame::injectUserScriptsAwaitingNotification):

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

(WebCore::Page::notifyToInjectUserScripts):
(WebCore::Page::addUserScriptAwaitingNotification): Deleted.

  • page/Page.h:
  • page/Quirks.cpp:

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(TEST):

12:45 PM Changeset in webkit [265509] by Wenson Hsieh
  • 10 edits
    5 adds
    2 deletes in trunk

Text input autocorrect="off" attribute ignored on Mac
https://bugs.webkit.org/show_bug.cgi?id=151019
<rdar://problem/65061700>

Reviewed by Simon Fraser.

Source/WebCore:

Add support for the autocorrect attribute on macOS, by not showing the automatic spell checking popup or
automatically correcting misspelled words if the root editable element has autocorrect="off".

Tests: editing/input/cocoa/autocorrect-off.html

editing/input/cocoa/autocorrect-on.html

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::isAutomaticSpellingCorrectionEnabled):

Source/WTF:

  • wtf/PlatformEnableCocoa.h: Turn the feature on for macOS.

LayoutTests:

Move the existing test fast/events/ios/contenteditable-autocorrect.html into editing/input/cocoa, and
refactor it so that it:

  • Works on both iOS and macOS.
  • Tests both the contenteditable case and the form control case.
  • Is split into two tests: one of which uses autocorrect="off" by typing "Tset" and expecting it to remain

as-is, and a second test that uses autocorrect="on" and verifies that "Tset" is autocorrected to "Test",
firing an input event with inputType "insertReplacementText" in the process.

  • TestExpectations:
  • editing/input/cocoa/autocorrect-off-expected.txt: Added.
  • editing/input/cocoa/autocorrect-off.html: Added.
  • editing/input/cocoa/autocorrect-on-expected.txt: Added.
  • editing/input/cocoa/autocorrect-on.html: Added.
  • fast/events/ios/contenteditable-autocorrect-expected.txt: Removed.
  • fast/events/ios/contenteditable-autocorrect.html: Removed.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Rebaseline a couple of existing layout tests, as well.

  • platform/ios/TestExpectations:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac/TestExpectations:
11:14 AM Changeset in webkit [265508] by sihui_liu@apple.com
  • 4 edits in trunk

Text manipulation crashes when replacing element with img role
https://bugs.webkit.org/show_bug.cgi?id=215344

Reviewed by Wenson Hsieh.

Source/WebCore:

positionInParentAfterNode and positionInParentBeforeNode do not return Position with Nodes that are ignored by
editing. Element with img role is one of such Nodes. However, TextManipulationController can manipulate content
of children of the ignored Nodes (see the newly added test). Therefore, we'd better not use
positionInParentBeforeNode or positionInParentBeforeNode in TextManipulationController::replace, because
insertion position can be inside a ignored Node.

API Test: TextManipulation.CompleteTextManipulationShouldReplaceContentIgnoredByEditing

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

11:12 AM Changeset in webkit [265507] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Clicking on sortable Table headers should expand vertical borders
https://bugs.webkit.org/show_bug.cgi?id=215140

Reviewed by Devin Rousso.

  • UserInterface/Views/Table.css:

(.table > .header .cell:not(:first-child):active::before,):

10:30 AM Changeset in webkit [265506] by Russell Epstein
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebCore

Cherry-pick r265432. rdar://problem/66802579

Return values of FontDatabase::collectionForFamily are not thread safe
https://bugs.webkit.org/show_bug.cgi?id=215320
<rdar://problem/66502539>

Reviewed by Anders Carlsson.

Font prewarming can add new entries to m_familyNameToFontDescriptors while lookups are being made.
Access to it is protected by a lock.

However if the hashmap ends up rehashing, the pointer returned from collectionForFamily may end up becoming invalid.
This can result in a crash later under findClosestFont.

  • platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::FontDatabase::collectionForFamily):

Heap allocate the hashmap values so they stay valid over hashtable mutations.

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

10:30 AM Changeset in webkit [265505] by Russell Epstein
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebCore

Cherry-pick r265357. rdar://problem/66801720

Web process crashes at WebCore::FullscreenManager::didExitFullscreen
https://bugs.webkit.org/show_bug.cgi?id=215243

Reviewed by Eric Carlson.

No new tests, no functional change.

  • dom/FullscreenManager.cpp: (WebCore::FullscreenManager::didExitFullscreen): m_fullscreenElement might be nullptr when fullscreenOrPendingElement() is not nullptr.

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

10:30 AM Changeset in webkit [265504] by Russell Epstein
  • 6 edits
    1 add in branches/safari-610.1.25.10-branch

Cherry-pick r265284. rdar://problem/66801993

[iOS] Keyboard shortcuts and arrow key scrolling stop working after navigating via swipe gesture
https://bugs.webkit.org/show_bug.cgi?id=215137
<rdar://problem/65082979>

Reviewed by Tim Horton.

Source/WebKit:

The process of starting a navigation swipe gesture causes the first responder (in this case, WKContentView) to
resign. Subsequently, nothing makes the content view first responder again once the navigation gesture ends,
even if the gesture is cancelled and we don't end up navigating. This results in several symptoms, two of which
are that keyboard shortcuts stop working, and pressing arrow keys does not scroll the web view after ending the
swipe gesture.

To mitigate this, add a mechanism to have the web view remember that our content view was first responder before
calling -startInteractiveTransition:; after ending the interactive transition (i.e. swipe gesture), we then
restore the web view's content view as first responder if it is not already first responder (and it is also
parented, which is not the case when swiping back to close a newly opened tab in Safari).

Test: NavigationSwipeTests.RestoreFirstResponderAfterNavigationSwipe

NavigationSwipeTests.DoNotBecomeFirstResponderAfterNavigationSwipeIfWebViewIsUnparented

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _navigationGestureDidBegin]): (-[WKWebView _navigationGestureDidEnd]):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/NavigationSwipeTests.mm: Added. (-[TestNavigationInteractiveTransition startInteractiveTransition:]):

Add an API test that exercises the bug by resigning first responder underneath -startInteractiveTransition:,
and checking that we have become first responder once again after completing the transition.

  • TestWebKitAPI/ios/UIKitSPI.h:

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

10:30 AM Changeset in webkit [265503] by Russell Epstein
  • 4 edits in branches/safari-610.1.25.10-branch

Cherry-pick r265209. rdar://problem/66802585

should be able to request an editing context for a given region of a given input
https://bugs.webkit.org/show_bug.cgi?id=215042
<rdar://problem/65561491>

Reviewed by Wenson Hsieh.

Source/WebKit:

Right now, it's only possible to request an editing context for either an entire input
element or a particular rect of the page. It should be possible to request an editing
context for a particular rect within a given input element as well (e.g. get one paragraph
or the currently selected text in a <textarea> instead of the entire thing).

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::requestDocumentEditingContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm: (TEST.DocumentEditingContext.SpatialRequest_RectEncompassingInput): Added. (TEST.DocumentEditingContext.SpatialRequest_RectBeforeInput): Added. (TEST.DocumentEditingContext.SpatialRequest_RectInsideInput): Added. (TEST.DocumentEditingContext.SpatialRequest_RectAfterInput): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectEncompassingInputWithSelection): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectBeforeInputWithSelection): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectBeforeSelectionInInput): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectAfterSelectionInInput): Added. (TEST.DocumentEditingContext.SpatialAndCurrentSelectionRequest_RectAfterInputWithSelection): Added.

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

10:29 AM Changeset in webkit [265502] by commit-queue@webkit.org
  • 30 edits in trunk

[WebGL2] expando-loss and expando-loss-2 conformance tests are failing
https://bugs.webkit.org/show_bug.cgi?id=214765

Patch by Kenneth Russell <kbr@chromium.org> on 2020-08-11
Reviewed by Darin Adler.

Source/WebCore:

Use JSWebGLRenderingContext's and JSWebGL2RenderingContext's
existing visitAdditionalChildren hook (via JSCustomMarkFunction in
their IDL) to add opaque roots for all WebGLObjects latched in to
the context state, and all WebGLObjects they refer to. (Extensions
were already previously handled.)

Add "GenerateIsReachable=Impl" to the IDL files for all such
objects (WebGLBuffer, WebGLTexture, etc.) so that they pay
attention to the opaque root state when determining liveness of
their JavaScript wrappers. Thanks to ysuzuki@ for pointing out the
need for this.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::JSWebGLRenderingContext::visitAdditionalChildren):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::visitReferencedJSWrappers):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLBuffer.idl:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::visitReferencedJSWrappers):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLFramebuffer.idl:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::visitReferencedJSWrappers):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLProgram.idl:
  • html/canvas/WebGLQuery.idl:
  • html/canvas/WebGLRenderbuffer.idl:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::visitReferencedJSWrappers):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLSampler.idl:
  • html/canvas/WebGLShader.idl:
  • html/canvas/WebGLTexture.idl:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::visitReferencedJSWrappers):

  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLTransformFeedback.idl:
  • html/canvas/WebGLVertexArrayObject.idl:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::visitReferencedJSWrappers):

  • html/canvas/WebGLVertexArrayObjectBase.h:
  • html/canvas/WebGLVertexArrayObjectOES.idl:

LayoutTests:

Rebaseline expando-loss.html and expando-loss-2.html, which are
now fully passing.

Add a hook to js-test-pre.js which allows this test to be run
correctly in the MiniBrowser by setting the following environment
variables:

export JSC_useDollarVM=1
export XPC_JSC_useDollarVM=1

  • webgl/2.0.0/conformance/misc/expando-loss-expected.txt:
  • webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt:
  • webgl/2.0.0/resources/webgl_test_files/js/js-test-pre.js:
10:07 AM Changeset in webkit [265501] by youenn@apple.com
  • 4 edits in trunk

Add JS console log message in case of capture failure
https://bugs.webkit.org/show_bug.cgi?id=215370

Reviewed by Eric Carlson.

Source/WebCore:

Covered by rebased test.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::trackEnded):

LayoutTests:

  • fast/mediastream/media-stream-track-source-failure-expected.txt:
10:06 AM Changeset in webkit [265500] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Cherry-pick usrsctp 264ce452885bfed73348ba6b6f63693bc2f52a6e commit
https://bugs.webkit.org/show_bug.cgi?id=215378
<rdar://problem/66788144>

Reviewed by Eric Carlson.

  • Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:

(sctp_handle_asconf):

9:40 AM Changeset in webkit [265499] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[AutoTableLayout] REGRESSION(r263855) Paypal email is rendered right aligned on Safari
https://bugs.webkit.org/show_bug.cgi?id=215340
<rdar://problem/66540254>

Reviewed by Simon Fraser.

Source/WebCore:

Prior to r263855, these zero-length, non-empty columns had the preferred width value of 1px and the available space got distributed based on this made-up 1px value.
In this patch, we distribute the available horizontal space evenly among these zero-length, 'width: auto' columns.

Test: fast/table/zero-length-non-empty-columns-with-auto-width.html

  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::layout):

LayoutTests:

  • fast/table/zero-length-non-empty-columns-with-auto-width-expected.html: Added.
  • fast/table/zero-length-non-empty-columns-with-auto-width.html: Added.
  • platform/mac/fast/table/empty-cells-expected.txt: progression
8:54 AM Changeset in webkit [265498] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: Timelines: wrong background colors of even/odd items
https://bugs.webkit.org/show_bug.cgi?id=214565
<rdar://problem/65841762>

Reviewed by Darin Adler.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview.edit-instruments > .tree-outline.timelines .item:nth-child(even),):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:not(:first-child)):

8:22 AM Changeset in webkit [265497] by svillar@igalia.com
  • 4 edits in trunk

LayoutTests/imported/w3c:
[css-flexbox] Only update the intrinsic height if we don't have override height
https://bugs.webkit.org/show_bug.cgi?id=215369

Reviewed by Javier Fernandez.

  • web-platform-tests/css/css-flexbox/flex-minimum-height-flex-items-010-expected.txt: Replaced failures

by PASS expectations.

Source/WebCore:
[css-flexbox] Only update the intrinsic height if we don't have an override height
https://bugs.webkit.org/show_bug.cgi?id=215369

Reviewed by Javier Fernandez.

If we do have an override height, children will size themselves relative to the override height
(e.g. flexbox flexing/stretching, percentage heights). Because flex intrinsic height is based on
its children, it would then store an incorrect intrinsic height.

This is specially problematic with min-height:auto is nested column flexboxes where flexboxes are
flex items at the same time.

Based on Blink's https://crrev.com/c/1283482 by <cbiesinger@chromium.org>

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem const): Early return if there
is an override height.

6:35 AM WebKitFlatpakSDK/SpeedUpBuild edited by Philippe Normand
(diff)
6:32 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:27 AM Changeset in webkit [265496] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[GTK][WPE] Add MiniBrowser wrapper env vars and white-list MESA env vars in flatpak
https://bugs.webkit.org/show_bug.cgi?id=215361

Patch by Philippe Normand <pnormand@igalia.com> on 2020-08-11
Reviewed by Žan Doberšek.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.run_minibrowser): Add support for the $WEBKIT_MINI_BROWSER_PREFIX env var which can
be useful when debugging MiniBrowser with gdb or rr.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.run_minibrowser): Ditto.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): White-list MESA environment variables in the sandbox.

5:11 AM Changeset in webkit [265495] by Andres Gonzalez
  • 4 edits
    2 adds in trunk

Update the isolated tree on element language changes.
https://bugs.webkit.org/show_bug.cgi?id=215354
<rdar://problem/65583698>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/language-attribute-change.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange): Added handling of
AXLanguageChanged notifications.
(WebCore::AXObjectCache::updateIsolatedTree): Update the isolated tree
for ASLanguage notifications.

  • accessibility/AXObjectCache.h:

LayoutTests:

  • accessibility/language-attribute-change-expected.txt: Added.
  • accessibility/language-attribute-change.html: Added.
4:41 AM Changeset in webkit [265494] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove m_sourceBufferPrivateClient checks in SourceBufferPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=215263

Reviewed by Xabier Rodriguez-Calvar.

m_sourceBufferPrivateClient is only reset to NULL from SourceBuffer's
destructor. At this point SourceBufferPrivateGStreamer is about to
receive its last unref by SourceBuffer and therefore be destroyed.

Similarly, there is no need to check for m_mediaSource being null.
m_mediaSource is only reset when the SourceBuffer is removed, and at
that point SourceBufferPrivate shouldn't receive any calls.

This is a clean-up and doesn't introduce new behavior. Asserts have
been added checking the precondition above.

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):
(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):

1:23 AM Changeset in webkit [265493] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ScriptExecutable::newCodeBlockFor() neglected to set the exception pointer result in one case.
https://bugs.webkit.org/show_bug.cgi?id=215357
<rdar://problem/57675112>

Reviewed by Yusuke Suzuki.

At the bottom of ScriptExecutable::newCodeBlockFor(), it calls:

RELEASE_AND_RETURN(throwScope, FunctionCodeBlock::create(vm, executable, unlinkedCodeBlock, scope));

However, ScriptExecutable::newCodeBlockFor() has 2 return values: a CodeBlock*,
and a passed in Exception*& that needs to be set if there's an exception.
FunctionCodeBlock::create() is capable of returning a null CodeBlock* because
CodeBlock::finishCreation() can throw exceptions. As a result, we have a scenario
here where ScriptExecutable::newCodeBlockFor() can return a null CodeBlock* without
setting the Exception*& result.

Consequently, Interpreter::executeCall() is relying on this and can end up
crashing while dereferencing a null CodeBlock* because the exception result was
not set.

This patch fixes ScriptExecutable::newCodeBlockFor() to set the exception result.

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

1:17 AM Changeset in webkit [265492] by Philippe Normand
  • 21 edits in trunk

[GStreamer] gst-full standalone library support
https://bugs.webkit.org/show_bug.cgi?id=215262

Reviewed by Xabier Rodriguez-Calvar.

.:

  • Source/cmake/FindGStreamer.cmake:
  • Source/cmake/GStreamerChecks.cmake:
  • Source/cmake/GStreamerDefinitions.cmake:

Source/WebCore:

A new CMake option is introduced to enable gst-full support: USE_GSTREAMER_FULL. By default
this option is disabled. WebKit distributors might want to enable this if they distribute
GStreamer through gst-build's gst-full library. In gst-build the following options can be
used to produce a usable libgstreamer-full-1.0.so:

-Dpython=disabled -Dges=disabled -Ddevtools=disabled -Dintrospection=disabled -Ddefault_library=static

Once enabled in our build, the dynamic library libgstreamer-full-1.0.so will be loaded
instead of all the other GStreamer libraries. Plugins are statically registered in this
library as well.

This can be useful when deploying WebKit in controlled embedded platform where disk space is
limited. One of the goals of gst-full is to enable full customization of the plugins to be
included in the library. Static registration can also reduce GStreamer initialization time.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer):
(WebCore::initializeGStreamerAndRegisterWebKitElements):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Disable missing-plugins handling when
gst-full is in use. The plugin installer doesn't make much sense for this scenario.

Source/WebKit:

Disable missing-plugins handling when gst-full is in use. The plugin installer doesn't make
much sense for this scenario.

  • PlatformWPE.cmake:
  • UIProcess/API/glib/WebKitInstallMissingMediaPluginsPermissionRequest.cpp:

(webkitInstallMissingMediaPluginsPermissionRequestAllow):
(webkitInstallMissingMediaPluginsPermissionRequestDeny):
(webkit_install_missing_media_plugins_permission_request_get_description):

  • UIProcess/API/glib/WebKitInstallMissingMediaPluginsPermissionRequestPrivate.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewRequestInstallMissingMediaPlugins):

  • UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.cpp:
  • UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.h:
  • UIProcess/gstreamer/WebPageProxyGStreamer.cpp:

(WebKit::WebPageProxy::requestInstallMissingMediaPlugins):

Tools:

Somehow unrelated with the gst-full support, disable GStreamer options command-line support
in MiniBrowsers. This isn't very useful and pulls GStreamer in the MiniBrowser for no much
gain. Use GST_* env variables instead.

  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/gtk/main.c:

(main):

  • MiniBrowser/wpe/CMakeLists.txt:
  • MiniBrowser/wpe/main.cpp:

(main):

12:02 AM Changeset in webkit [265491] by mmaxfield@apple.com
  • 10 edits
    9 copies
    2 adds in trunk/LayoutTests

[BigSur] 5 fast/text/international/system-language/navigator-language/navigator-language tests are constant failures
https://bugs.webkit.org/show_bug.cgi?id=214629
<rdar://problem/64047392>

Unreviewed test gardening.

Update iOS test results.

  • platform/ios-13/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Copied from LayoutTests/plat

Aug 10, 2020:

11:11 PM Changeset in webkit [265490] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Fix bad merge in r265488
https://bugs.webkit.org/show_bug.cgi?id=214769

Unreviewed. This is something that got dropped in a bad merge from r265488.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::layoutSimpleText const):

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::originAt const):
(WebCore::GlyphBuffer::expandInitialAdvance):

10:40 PM Changeset in webkit [265489] by mmaxfield@apple.com
  • 23 edits
    18 copies
    7 adds in trunk/LayoutTests

[BigSur] 5 fast/text/international/system-language/navigator-language/navigator-language tests are constant failures
https://bugs.webkit.org/show_bug.cgi?id=214629
<rdar://problem/64047392>

Unreviewed test gardening.

The behavior of +[NSLocale minimizedLanguagesFromLanguages:] has changed.

  • fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-en.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es.html:
  • fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-fr.html:
  • fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-hi.html:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-ru.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Copied from LayoutTests/platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Copied from LayoutTests/platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt.
  • platform/ios/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Copied from LayoutTests/platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Copied from LayoutTests/platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Copied from LayoutTests/platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Copied from LayoutTests/fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt.
  • platform/mac-catalina/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Copied from LayoutTests/platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt.
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt:
  • platform/mac-mojave/fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt:
10:17 PM Changeset in webkit [265488] by mmaxfield@apple.com
  • 8 edits
    4 adds in trunk

Spacing of Chinese characters is inconsistent in macOS 11/Safari 14 beta
https://bugs.webkit.org/show_bug.cgi?id=214769

Reviewed by Darin Adler.

Source/WebCore:

This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=206208..

In the general case, text shaping is Turing-complete. In order for it to work properly,
we need to feed the text shaping virtual machine the correct inputs so that it can
produce correct outputs. The input to text shaping is supposed to be the raw glyph
advances straight from CTFontGetAdvancesForGlyphs().

Previously, we were applying letter-spacing, word-spacing, justification, and tab stops
before shaping. Most fonts don't care about this and still produce the correct results.
However, Ping Fang on macOS Big Sur and iOS 14 _does_ care about this, and its shaping
rules operate incorrectly when fed these pre-expanded glyph widths.

The solution is to apply this extra spacing after shaping occurs. However, because
shaping is Turing-complete, it is free to add or remove glyphs willy-nilly. This means
we need some way of tracing back which character in the input string correspond to which
output glyphs, so we know which glyphs to add additional spacing to. This is what
https://bugs.webkit.org/show_bug.cgi?id=215059 does: It switches from using
CTFontTransformGlyphsWithLanguage() to CTFontShapeGlyphs(), which outputs this
glyph-character tracing info. Then, once we have this tracing info, we can apply spacing
properly after shaping has completed. That's what this patch does.

Tests: fast/text/letter-spacing-shaping.html

fast/text/tab-letter-space.html

  • platform/graphics/FontCascade.cpp: Clients of WidthIterator::advance() need to call

WidthIterator::finalize() (see below).
(WebCore::FontCascade::widthOfTextRange const):
(WebCore::FontCascade::layoutSimpleText const):
(WebCore::FontCascade::floatWidthForSimpleText const):
(WebCore::FontCascade::adjustSelectionRectForSimpleText const):
(WebCore::FontCascade::offsetForPositionForSimpleText const):

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::expandInitialAdvance):
(WebCore::GlyphBuffer::expandAdvance):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::hasExtraSpacing const):
(WebCore::WidthIterator::advanceInternal): Delete the code that used to apply spacing
before shaping. Instead, it gets moved to applyExtraSpacingAfterShaping().
(WebCore::WidthIterator::calculateAdditionalWidth const): This is a refactoring of
the additional space calculation code. This is a const function, and has no side-effects.
It outputs 4 floats:

  • How much space needs to be added to the left of the current character
  • How much space needs to be added to the right of the current character
  • How much space needs to be added to the left of the current character due to justification
  • How much space needs to be added to the right of the current character due to justification

We need these last two values because one of the outputs of WidthIterator::advance() is
a bool which represents whether or not we are ending on a justification space, so that the
next WidthIterator that gets created for the next thing on the line can forbid/require a
leading justification appropriately.
(WebCore::WidthIterator::applyAdditionalWidth): Given the 4 values calculated in
calculateAdditionalWidth(), apply them. We're operating in logical order, so this function has
to do some translation from visual order to logical order (hence all the m_run.ltr() calls).
If we're trying to add size to the left of the first character in LTR, we can't directly do
that, because advances can only add space to the right side of a character, and there is no
character to the left of the first character to expand. Therefore, we do this by increasing
the initial advance of the GlyphBuffer, which is a special advance created just to solve this
problem. In RTL, the problem is a bit more complicated - we don't know whether advance() will
be called again, thereby delivering a glyph which we _can_ expand, so we instead store what
would have been expanded inside m_leftoverJustificationWidth, and wait for the next call to
advance(). If none comes, clients have to call finalize() instead, which will apply
m_leftoverJustificationWidth to the GlyphBuffer's initial advance.
(WebCore::WidthIterator::applyExtraSpacingAfterShaping):
(WebCore::WidthIterator::finalize):
(WebCore::WidthIterator::advance):

  • platform/graphics/WidthIterator.h:
  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::measureTextRenderer):

LayoutTests:

  • fast/text/letter-spacing-shaping-expected.html: Added.
  • fast/text/letter-spacing-shaping.html: Added.
  • fast/text/tab-letter-space-expected.html: Added.
  • fast/text/tab-letter-space.html: Added.
9:23 PM Changeset in webkit [265487] by mmaxfield@apple.com
  • 19 edits
    3 copies
    2 moves
    5 adds
    8 deletes in trunk

[Cocoa] Migrate from CTFontTransformGlyphsWithLanguage() to CTFontShapeGlyphs()
https://bugs.webkit.org/show_bug.cgi?id=215059

Reviewed by Darin Adler.

Source/WebCore:

This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=214769
and https://bugs.webkit.org/show_bug.cgi?id=206208.

The solution for https://bugs.webkit.org/show_bug.cgi?id=214769 requires applying
letter-spacing after text shaping. Today, we apply letter-spacing before text shaping
which is wrong. However, if we want to apply letter-spacing after text shaping, we need
to use CTFontShapeGlyphs(), which returns the glyph -> string mapping, which allows us
to determine which glyphs to add letter-spacing to.

Updates existing tests.

Tests: fast/text/international/kana-voiced-sound-marks-1.html

fast/text/international/kana-voiced-sound-marks-2.html

  • platform/graphics/Font.cpp:

(WebCore::Font::applyTransforms const):

  • platform/graphics/Font.h:
  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthForSimpleText const):
(WebCore::FontCascade::characterRangeCodePath):
(WebCore::FontCascade::layoutSimpleText const):

  • platform/graphics/FontCascade.h:
  • platform/graphics/SurrogatePairAwareTextIterator.cpp:

(WebCore::SurrogatePairAwareTextIterator::consumeSlowCase): Now that we're using
CTFontShapeGlyphs(), the shaping routine can and does look at the underlying character
string to perform character composition. This means that the glyph buffer needs to
match exactly what is in the string. We can't do any shenanigans where we pretend the
string has characters that aren't actually there.

  • platform/graphics/SurrogatePairAwareTextIterator.h:

(WebCore::SurrogatePairAwareTextIterator::consume):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::shouldApplyFontTransforms const):
(WebCore::WidthIterator::applyFontTransforms): Reversing the glyph buffer for rtl
content needs to be done inside platform-specific code, because its behavior depends on
which platform shaping routine is being used.
(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/WidthIterator.h:
  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::applyTransforms const):

  • platform/graphics/mac/SimpleFontDataCoreText.cpp:

(WebCore::Font::getCFStringAttributes const):

Source/WebCore/PAL:

  • pal/spi/cocoa/CoreTextSPI.h:

Source/WTF:

  • wtf/PlatformUse.h: Rename CTFONTTRANSFORMGLYPHSWITHLANGUAGE to CTFONTSHAPEGLYPHS,

because that's the new function.

LayoutTests:

  • fast/encoding/denormalised-voiced-japanese-chars-expected.html: Copied from LayoutTests/fast/encoding/denormalised-voiced-japanese-chars.html.
  • fast/encoding/denormalised-voiced-japanese-chars.html: Update to be a reftest.
  • fast/text/international/kana-voiced-sound-marks-1-expected.html: Copied from LayoutTests/imported/blink/fast/text/international/kana-voiced-sound-marks-expected.html.

Make the test more robust.

  • fast/text/international/kana-voiced-sound-marks-1.html: Renamed from LayoutTests/imported/blink/fast/text/international/kana-voiced-sound-marks.html.

Make the test more robust.

  • fast/text/international/kana-voiced-sound-marks-2-expected.html: Copied from LayoutTests/imported/blink/fast/text/international/kana-voiced-sound-marks-expected.html.

Make the test more robust.

  • fast/text/international/kana-voiced-sound-marks-2.html: Renamed from LayoutTests/imported/blink/fast/text/international/kana-voiced-sound-marks-expected.html.

Make the test more robust.

  • fast/text/soft-hyphen-min-preferred-width-expected.html:
  • fast/text/soft-hyphen-min-preferred-width.html: Update to be more robust.
  • platform/gtk/fast/encoding/denormalised-voiced-japanese-chars-expected.png: Removed.
  • platform/gtk/fast/encoding/denormalised-voiced-japanese-chars-expected.txt: Removed.
  • platform/ios/fast/encoding/denormalised-voiced-japanese-chars-expected.txt: Removed.
  • platform/mac-bigsur/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Added Big Sur -expected result.
  • platform/mac-bigsur/svg/text/bidi-tspans-expected.txt: Ditto.
  • platform/mac/fast/encoding/denormalised-voiced-japanese-chars-expected.png: Removed.
  • platform/mac/fast/encoding/denormalised-voiced-japanese-chars-expected.txt: Removed.
  • platform/win/fast/encoding/denormalised-voiced-japanese-chars-expected.txt: Removed.
  • platform/wincairo/fast/encoding/denormalised-voiced-japanese-chars-expected.txt: Removed.
  • platform/wpe/fast/encoding/denormalised-voiced-japanese-chars-expected.txt: Removed.
8:52 PM Changeset in webkit [265486] by Lauro Moura
  • 4 edits
    1 move
    5 adds
    1 delete in trunk/LayoutTests

[GTK][WPE] Gardening failures and rebaseline some tests.

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w-expected.txt: Added.
  • platform/glib/webaudio/audiobuffersource-loop-points-expected.wav: Renamed from LayoutTests/platform/wpe/webaudio/audiobuffersource-loop-points-expected.wav.
  • platform/gtk/TestExpectations:
  • platform/gtk/webaudio/audiobuffersource-loop-points-expected.wav: Removed.
  • platform/wpe/TestExpectations:
6:48 PM Changeset in webkit [265485] by Devin Rousso
  • 5 edits in trunk/Source/WebCore

Add quirk to force touch events on mail.yahoo.com
https://bugs.webkit.org/show_bug.cgi?id=215329
<rdar://problem/59824469>

Reviewed by Darin Adler and Tim Horton.

<https://mail.yahoo.com/> serves a mobile site even in desktop browsing "mode", meaning
that certain actions, such as selecting an aufotill contact, expect mobile behaviors,
such as mouse events being dispatched after touch events rather than instantly (in the
case of a connected trackpad with an iPad). This quirk ensures always mobile behavior for
those actions, matching the expectations of <https://mail.yahoo.com/>.

  • page/Quirks.h:
  • page/Quirks.cpp:

(WebCore::isYahooMail): Added.
(WebCore::Quirks::shouldSynthesizeTouchEvents const): Added.
(WebCore::Quirks::shouldAvoidPastingImagesAsWebContent const):

  • loader/DocumentLoader.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::mouseEventPolicy const):

6:27 PM Changeset in webkit [265484] by Hector Lopez
  • 3 edits in trunk/LayoutTests

[ macOS iOS ] svg/animations/smil-leak-element-instances-noBaseValRef.svg is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215353

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
6:00 PM Changeset in webkit [265483] by Alan Coon
  • 8 edits in branches/safari-610.1.25.1-branch/Source

Versioning.

WebKit-610.1.25.1.2

5:52 PM Changeset in webkit [265482] by Alan Coon
  • 8 edits in branches/safari-610.1.25.0-branch/Source

Versioning.

WebKit-610.1.25.0.2

5:36 PM Changeset in webkit [265481] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/wpt/service-workers/module-meta-url-fragment.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215351

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:26 PM Changeset in webkit [265480] by Chris Dumez
  • 18 edits in trunk

AuxiliaryProcess::didReceiveInvalidMessage() for WebPage::PerformDragControllerAction IPC
https://bugs.webkit.org/show_bug.cgi?id=215341
<rdar://problem/59344091>

Reviewed by Alex Christensen.

Source/WebCore:

Consistently use OptionSet<DragApplicationFlags> instead of DragApplicationFlags.

  • page/gtk/DragControllerGtk.cpp:

(WebCore::DragController::isCopyKeyDown):

  • page/mac/DragControllerMac.mm:

(WebCore::DragController::isCopyKeyDown):
(WebCore::DragController::dragOperation):

  • platform/DragData.cpp:

(WebCore::DragData::DragData):

  • platform/DragData.h:

(WebCore::DragData::flags const):

  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::DragData):

  • platform/win/DragDataWin.cpp:

(WebCore::DragData::DragData):

Source/WebKit:

DragApplicationFlags is an enum containing flags. It was being sent over IPC as a DragApplicationFlags
instead of an OptionSet<DragApplicationFlags>, and thus would fail enum value validation when decoding
when more than one flag is set.

  • Scripts/webkit/messages.py:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DragData>::decode):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::applicationFlagsForDrag):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performDragControllerAction):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:

(overrideCurrentEvent):
(TEST):

5:25 PM Changeset in webkit [265479] by Lauro Moura
  • 2 edits in trunk/Source/JavaScriptCore

[CMake][JSC] Fix testapiScripts copy location
https://bugs.webkit.org/show_bug.cgi?id=215338

file(COPY src/dir DESTINATION target/dir) copies the entire dir
inside target/dir instead of only the contents.

Reviewed by Alex Christensen.

  • shell/CMakeLists.txt:
5:14 PM Changeset in webkit [265478] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215350

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:07 PM Changeset in webkit [265477] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.0.1

Tag Safari-610.1.25.0.1.

4:59 PM Changeset in webkit [265476] by Alan Coon
  • 1 copy in tags/Safari-610.1.25.1.1

Tag Safari-610.1.25.1.1.

4:50 PM Changeset in webkit [265475] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-fonts/font-display/font-display-failure-fallback.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=215345

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:48 PM Changeset in webkit [265474] by Alan Coon
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebKitLegacy/ios

Cherry-pick r265424. rdar://problem/66803405

REGRESSION (r265176): Cannot make or extend selections in iOS WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=215319
<rdar://problem/66688560>

Reviewed by Devin Rousso.

  • WebCoreSupport/WebVisiblePosition.mm: (+[DOMRange rangeForFirstPosition:second:]): We want to ensure that firstPosition is *before* secondPosition, so the change in r265176 got the condition backwards. Swap it.

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

4:48 PM Changeset in webkit [265473] by Alan Coon
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebKit

Cherry-pick r265303. rdar://problem/66644025

[Cocoa] Sandbox extension token not cleared from memory
https://bugs.webkit.org/show_bug.cgi?id=215136

Reviewed by Geoffrey Garen.

As a security mitigation, an invalidated sandbox extension should have its token cleared from memory.

No new tests, covered by existing tests.

  • Shared/Cocoa/SandboxExtensionCocoa.mm: (WebKit::SandboxExtensionImpl::m_length): (WebKit::SandboxExtensionImpl::~SandboxExtensionImpl):

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

4:48 PM Changeset in webkit [265472] by Alan Coon
  • 7 edits in branches/safari-610.1.25.10-branch/Source/WebKit

Cherry-pick r265295. rdar://problem/66643989

[Cocoa] Remove obsolete sandbox extension after r264178
https://bugs.webkit.org/show_bug.cgi?id=215154

Reviewed by Brent Fulgham.

After r264178, the code related to issuing an extension to com.apple.lsd.mapdb is obsolete, and should be removed.

No new tests, covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):
  • WebProcess/com.apple.WebProcess.sb.in:

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

4:48 PM Changeset in webkit [265471] by Alan Coon
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebCore

Cherry-pick r265282. rdar://problem/66643985

SWServerJobQueue::didResolveRegistrationPromise should not assume its registration key relates to an existing worker
https://bugs.webkit.org/show_bug.cgi?id=215123
<rdar://problem/65096786>

Reviewed by Geoffrey Garen.

We know that in some cases, the registration is null in SWServerJobQueue::didResolveRegistrationPromise.
This might happen for instance in case a worker gets terminated, thus removing a job and the next job is clearing the registration.
Also, SWServerJobQueue::didResolveRegistrationPromise is not checking that the job identifier is the same in SWServerJobQueue::install
and SWServerJobQueue::didResolveRegistrationPromise while other code paths do.

A future refactoring might allow to call SWServerJobQueue::didResolveRegistrationPromise code synchronously from SWServerJobQueue::install.
In the meantime, let's add a null check and add release logging for that case.

  • workers/service/server/SWServerJobQueue.cpp: (WebCore::SWServerJobQueue::install): (WebCore::SWServerJobQueue::didResolveRegistrationPromise):

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

4:47 PM Changeset in webkit [265470] by Alan Coon
  • 13 edits
    1 add in branches/safari-610.1.25.10-branch

Cherry-pick r265272. rdar://problem/66604070

CheckpointSideState shoud play nicely with StackOverflowException unwinding.
https://bugs.webkit.org/show_bug.cgi?id=215114

Reviewed by Saam Barati.

JSTests:

  • stress/stack-overflow-into-frame-with-pending-checkpoint.js: Added. (foo.catch.async bar): (foo.catch): (foo):

Source/JavaScriptCore:

This patch fixes an issue where we the StackVisitor would
automatically unwind into the first frame before calling into the
provided functor. As a note, we do this because the first frame is
not fully initialized at the time we check for stack
overflow. When this happened we would fail to clear the side state
causing a memory leak. To fix this the unwind function now clears
every checkpoint up to and including the call frame containing our
handler. Some care needs to be taken that we don't clear
checkpoint side state for other threads, which could happen if
there are no checkpoints on the current thread and an API
miggrated us from another thread below the current thread.

This patch also makes two refacorings. The first is to make the
checkpoint side state into a stack, which is how we used it
anyway. The second is that CallFrame::dump and everything associated
with it is now marked const so we can PointerDump a CallFrame*.

  • dfg/DFGOSRExit.cpp: (JSC::DFG::OSRExit::compileExit):
  • ftl/FTLOSRExitCompiler.cpp: (JSC::FTL::compileStub):
  • interpreter/CallFrame.cpp: (JSC::CallFrame::bytecodeIndex const): (JSC::CallFrame::codeOrigin const): (JSC::CallFrame::dump const): (JSC::CallFrame::bytecodeIndex): Deleted. (JSC::CallFrame::codeOrigin): Deleted. (JSC::CallFrame::dump): Deleted.
  • interpreter/CallFrame.h: (JSC::CallFrame::argument const): (JSC::CallFrame::uncheckedArgument const): (JSC::CallFrame::getArgumentUnsafe const): (JSC::CallFrame::thisValue const): (JSC::CallFrame::newTarget const): (JSC::CallFrame::argument): Deleted. (JSC::CallFrame::uncheckedArgument): Deleted. (JSC::CallFrame::getArgumentUnsafe): Deleted. (JSC::CallFrame::thisValue): Deleted. (JSC::CallFrame::newTarget): Deleted.
  • interpreter/CheckpointOSRExitSideState.h: (JSC::CheckpointOSRExitSideState::CheckpointOSRExitSideState):
  • interpreter/Interpreter.cpp: (JSC::UnwindFunctor::operator() const): (JSC::Interpreter::unwind): (): Deleted.
  • llint/LLIntSlowPaths.cpp: (JSC::LLInt::slow_path_checkpoint_osr_exit_from_inlined_call): (JSC::LLInt::slow_path_checkpoint_osr_exit):
  • runtime/VM.cpp: (JSC::VM::scanSideState const): (JSC::VM::pushCheckpointOSRSideState): (JSC::VM::popCheckpointOSRSideState): (JSC::VM::popAllCheckpointOSRSideStateUntil): (JSC::VM::addCheckpointOSRSideState): Deleted. (JSC::VM::findCheckpointOSRSideState): Deleted.
  • runtime/VM.h:

Source/WTF:

Add a helper so we can have soft stack bounds.

  • wtf/StackBounds.h: (WTF::StackBounds::withSoftOrigin const):

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

4:47 PM Changeset in webkit [265469] by Alan Coon
  • 6 edits in branches/safari-610.1.25.10-branch

Cherry-pick r265264. rdar://problem/66644041

[iOS] Check that Accessibility is enabled when receiving the enable Accessibility notification
https://bugs.webkit.org/show_bug.cgi?id=215112
Source/WebCore/PAL:

Reviewed by Youenn Fablet.

Declare NSApplication methods to enable enhanced accessibility user interface, and check if it is enabled.

  • pal/spi/mac/NSApplicationSPI.h:

Source/WebKit:

<rdar://problem/66498397>

Reviewed by Youenn Fablet.

As a security mitigation, return early when handling this notification if Accessibility is not enabled.

API test: WebKit.AccessibilityHasNoPreferencesServiceAccessWhenPostingNotification

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::registerNotificationObservers):

Tools:

Reviewed by Youenn Fablet.

Added test WebKit.AccessibilityHasNoPreferencesServiceAccessWhenPostingNotification.

  • TestWebKitAPI/Tests/WebKit/EnableAccessibility.mm: (TEST):

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

4:47 PM Changeset in webkit [265468] by Alan Coon
  • 3 edits in branches/safari-610.1.25.10-branch/Source/WebCore

Cherry-pick r265257. rdar://problem/66644029

REGRESSION (r265019): ASSERTION FAILED: !m_impl
m_impl->wasConstructedOnMainThread() == isMainThread() under WebCore::PlaybackSessionInterfaceAVKit::invalidate()

https://bugs.webkit.org/show_bug.cgi?id=215118

Reviewed by Jer Noble.

Revert the change about using a WeakPtr of PlaybackSessionModel in r265019.
On WK1, a VideoFullscreenControllerContext (a subclass of PlaybackSessionModel)
object is created on the main thread, so we cannot use a WeakPtr of it on
the UI thread.

No new tests, fix an API test failure: WebKitLegacy.AudioSessionCategoryIOS.

  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm: (WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit): (WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):

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

4:47 PM Changeset in webkit [265467] by Alan Coon
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebKitLegacy/ios

Cherry-pick r265255. rdar://problem/66644016

Try to fix Catalyst build
https://bugs.webkit.org/show_bug.cgi?id=215133
rdar://66534119

  • WebCoreSupport/WebVisiblePosition.mm: Add include of SimpleRange.h.

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

4:47 PM Changeset in webkit [265466] by Alan Coon
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WTF

Cherry-pick r265252. rdar://problem/66645897

about: scheme URL constants should be backed by StaticStringImpl
https://bugs.webkit.org/show_bug.cgi?id=215113

Reviewed by Darin Adler.

  • wtf/URL.cpp: (WTF::aboutBlankURL): (WTF::aboutSrcDocURL):

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

4:47 PM Changeset in webkit [265465] by Alan Coon
  • 5 edits in branches/safari-610.1.25.10-branch

Cherry-pick r265238. rdar://problem/66645891

Allow -accessoryDone to blur the focused element on iPad when AutoFilling strong passwords
https://bugs.webkit.org/show_bug.cgi?id=215105
<rdar://problem/65143984>

Reviewed by Tim Horton.

Source/WebKit:

-accessoryDone is now used to dismiss the strong password AutoFill keyboard after choosing a password on iOS,
due to how it hides the keyboard without causing the content view to resign first responder; being stuck in a
state where the content view is not first responder causes several issues when choosing strong passwords on iOS,
such as keyboard shortcuts no longer working.

On iPad, to ensure that -accessoryDone actually dismisses the keyboard, we need to additionally teach
-endEditingAndUpdateFocusAppearanceWithReason: (when given EndEditingReasonAccessoryDone) to allow the
focused element to blur when dismissing the strong password input view.

Test: KeyboardInputTests.TestWebViewAccessoryDoneDuringStrongPasswordAssistance

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

Refactor this logic into a local helper lambda with early returns, instead of using a single if statement.

Tools:

Add an API test that exercises the behavior change when run on iPad simulator.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
  • TestWebKitAPI/ios/UIKitSPI.h:

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

4:47 PM Changeset in webkit [265464] by Alan Coon
  • 2 edits in branches/safari-610.1.25.10-branch/Source/WebKit

Cherry-pick r265230. rdar://problem/66643993

Null check parentProcessConnection when creating a NetworkDataTaskCocoa
https://bugs.webkit.org/show_bug.cgi?id=215109
<rdar://problem/64853922>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-03
Reviewed by Chris Dumez.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::sessionWrapperForTask): Null check parentProcessConnection. Otherwise, we can dereference null and crash between disconnecting with the parent process and terminating, which isn't the worst time to crash because we are trying to terminate anyways. But we may as well not crash.

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

4:47 PM Changeset in webkit [265463] by Alan Coon
  • 4 edits in branches/safari-610.1.25.10-branch/Source

Cherry-pick r265215. rdar://problem/66643571

Finalize the list of MobileGestalt queries needed to populate the in-memory cache in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=215095
<rdar://problem/66034080>

Reviewed by Geoffrey Garen.

Source/WebCore/PAL:

Declare constants for MobileGestalt questions.

  • pal/spi/ios/MobileGestaltSPI.h:

Source/WebKit:

When the MobileGestalt cache is invalid, we issue a temporary extension to the MobileGestalt daemon for the WebContent process,
which will populate the in-memory cache by doing a set of MobileGestalt queries before revoking the extension. This patch
finalizes the list of MobileGestalt queries needed to populate the in-memory cache in the WebContent process on iOS before
revoking the temporary extension to com.apple.mobilegestalt.xpc. This list was compiled by querying every possible MobileGestalt
key after the temporary extension was revoked, and make a note of all queries that were contacting the MobileGestalt daemon to
get the answer. The added queries in this patch should make the list complete, and ensures that all cachable values are in the
in-memory cache before revoking the extension, since every possible MobileGestalt query was tested. This again means that users
that have an invalid MobileGestalt cache, will have access to the exact same MobileGestalt values, as those users who have a
valid MobileGestalt cache.

  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

4:47 PM Changeset in webkit [265462] by Alan Coon
  • 5 edits
    2 adds in branches/safari-610.1.25.10-branch

Cherry-pick r265198. rdar://problem/66644002

REGRESSION(r259585) Text decoration color with value currentColor miscomputed in some cases
https://bugs.webkit.org/show_bug.cgi?id=215079

Reviewed by Zalan Bujtas.

Source/WebCore:

r259585 did some refactoring that broke a special case where text decoration color comes from
'-webkit-text-fill-color' property.

Test: fast/text/text-decoration-currentcolor-fill-color.html

  • rendering/TextDecorationPainter.cpp: (WebCore::TextDecorationPainter::decorationColor):

Move resolving currentColor to RenderStyle.

  • rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::colorResolvingCurrentColor const):

Handle CSSPropertyTextDecorationColor as a special case here.

(WebCore::RenderStyle::visitedDependentColor const):

LayoutTests:

  • fast/text/text-decoration-currentcolor-fill-color-expected.html: Added.
  • fast/text/text-decoration-currentcolor-fill-color.html: Added.

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

4:47 PM Changeset in webkit [265461] by Alan Coon
  • 4 edits in branches/safari-610.1.25.10-branch

Cherry-pick r265188. rdar://problem/66643973

Table data is incorrectly translated in some articles on en.wikipedia.org
https://bugs.webkit.org/show_bug.cgi?id=215071
<rdar://problem/66354013>

Reviewed by Darin Adler.

Source/WebCore:

Text in table cells sometimes end up in adjacent cells after translation, since adjacent cells are currently
extracted as different tokens in a single item; mitigate this by splitting text in table cells into different
text manipulation items instead.

Test: TextManipulation.StartTextManipulationExtractsTableCellsAsSeparateItems

  • editing/TextManipulationController.cpp: (WebCore::isEnclosingItemBoundaryElement):

Tools:

Add a new API test to exercise the change.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm: (TestWebKitAPI::TEST):

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

4:16 PM Changeset in webkit [265460] by Alan Coon
  • 8 edits in branches/safari-610.1.25.10-branch/Source

Versioning.

WebKit-610.1.25.10.1

3:53 PM Changeset in webkit [265459] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 Release ] imported/w3c/web-platform-tests/IndexedDB/blob-delete-objectstore-db.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215339

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:42 PM Changeset in webkit [265458] by Alan Coon
  • 1 copy in branches/safari-610.1.25.10-branch

New branch.

3:17 PM Changeset in webkit [265457] by Peng Liu
  • 2 edits in trunk/Source/WebCore

MobileSafari crashes at WebCore: -[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]
https://bugs.webkit.org/show_bug.cgi?id=215332

Reviewed by Eric Carlson.

Add a NULL pointer check to fix a crash.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController seekToTime:toleranceBefore:toleranceAfter:]):

3:01 PM Changeset in webkit [265456] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Use RefPtr for WebKit::WebOpenPanelResultListenerProxy
<https://webkit.org/b/215252>
<rdar://problem/65753821>

Reviewed by Geoffrey Garen.

Unable to create an API test for this.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::runOpenPanel):

  • Use RefPtr<WebOpenPanelResultListenerProxy> when passing listener into the block.
2:51 PM Changeset in webkit [265455] by mmaxfield@apple.com
  • 4 edits
    3 adds in trunk

Shaping can be performed on glyphIDs from the wrong font
https://bugs.webkit.org/show_bug.cgi?id=215333

Reviewed by Darin Adler.

Source/WebCore:

The problem is this line:
if (font != lastFontData && width)

This means we will only trigger shaping code if width is non-zero.
However, even if width is non-zero, we will still happily add glyphs
to the glyph buffer, and when we do eventually get around to shaping,
we shape all yet-unshaped glyphs, regardless of which font they came
from.

Test: fast/text/zero-width-shaping-font-mismatch.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::commitCurrentFontRange):
(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/WidthIterator.h:

LayoutTests:

  • fast/text/resources/Ahem-zero-width-shaping-font-mismatch.ttf: Added. This is a font where

U+2C95 COPTIC SMALL LETTER KAPA (which Times doesn't support) is mapped to glyph 73. Also,
the font has fewer than 192 glyphs.

  • fast/text/zero-width-shaping-font-mismatch-expected-mismatch.html: Added. Times has a

ligature where the glyph sequence 73,76 gets replaced with glyph 192. The test has characters
U+2C95 COPTIC SMALL LETTER KAPA (which Times doesn't support but the webfont does, so we map
this to glyph 73 inside the web font) followed by U+0069 LATIN SMALL LETTER I, (which Times
does support, so we map this to glyph 76 inside Times). Then, because of this bug, we'll try
to shape glyphs 73,76 using Times, which replaces them with glyph 192, but then try to render
glyph 192 with the web font, which doesn't support it, so we get a white screen.

  • fast/text/zero-width-shaping-font-mismatch.html: Added.
2:50 PM Changeset in webkit [265454] by Russell Epstein
  • 2 edits in branches/safari-610.1.25.1-branch/Source/WebKitLegacy/ios

Cherry-pick r265424. rdar://problem/66797266

REGRESSION (r265176): Cannot make or extend selections in iOS WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=215319
<rdar://problem/66688560>

Reviewed by Devin Rousso.

  • WebCoreSupport/WebVisiblePosition.mm: (+[DOMRange rangeForFirstPosition:second:]): We want to ensure that firstPosition is *before* secondPosition, so the change in r265176 got the condition backwards. Swap it.

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

2:13 PM Changeset in webkit [265453] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 Release ] svg/text/hidpi-text-selection-rect-position.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215336

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:54 PM Changeset in webkit [265452] by Simon Fraser
  • 2 edits in trunk/Tools

Add Sam Sneddon to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=215334

Reviewed by Simon Fraser.

  • Scripts/webkitpy/common/config/contributors.json:
1:53 PM Changeset in webkit [265451] by Alan Coon
  • 8 edits in branches/safari-610.1.25.1-branch/Source

Versioning.

WebKit-610.1.25.1.1

1:46 PM Changeset in webkit [265450] by Alan Coon
  • 2 edits in branches/safari-610.1.25.0-branch/Source/WebKitLegacy/ios

Cherry-pick r265424. rdar://problem/66792464

REGRESSION (r265176): Cannot make or extend selections in iOS WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=215319
<rdar://problem/66688560>

Reviewed by Devin Rousso.

  • WebCoreSupport/WebVisiblePosition.mm: (+[DOMRange rangeForFirstPosition:second:]): We want to ensure that firstPosition is *before* secondPosition, so the change in r265176 got the condition backwards. Swap it.

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

1:38 PM Changeset in webkit [265449] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 Release ] webanimations/css-transition-retargeting-during-ready-promise.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215335

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:35 PM Changeset in webkit [265448] by Alan Coon
  • 8 edits in branches/safari-610.1.25.0-branch/Source

Versioning.

WebKit-610.1.25.0.1

1:25 PM Changeset in webkit [265447] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add myself (Patrick Angle) to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=215328

Patch by Patrick Angle <Patrick Angle> on 2020-08-10
Reviewed by Brian Burg.

  • Scripts/webkitpy/common/config/contributors.json: Added myself.
1:16 PM Changeset in webkit [265446] by Alan Coon
  • 1 copy in branches/safari-610.1.25.2-branch

New branch.

1:16 PM Changeset in webkit [265445] by Alan Coon
  • 1 copy in branches/safari-610.1.25.1-branch

New branch.

1:16 PM Changeset in webkit [265444] by Alan Coon
  • 1 copy in branches/safari-610.1.25.0-branch

New branch.

12:39 PM Changeset in webkit [265443] by commit-queue@webkit.org
  • 13 edits
    4 adds in trunk

Add AudioProcessingEvent Constructor
https://bugs.webkit.org/show_bug.cgi?id=215237

Patch by Clark Wang <clark_wang@apple.com> on 2020-08-10
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests that now pass.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt:

Source/WebCore:

Added constructor according to spec: https://bugs.webkit.org/show_bug.cgi?id=215237.
Added in AudioProcessingEventInit files.

Test: webaudio/audioprocessingevent-constructor.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioProcessingEvent.cpp:

(WebCore::AudioProcessingEvent::create):
(WebCore::AudioProcessingEvent::AudioProcessingEvent):

  • Modules/webaudio/AudioProcessingEvent.h:
  • Modules/webaudio/AudioProcessingEvent.idl:
  • Modules/webaudio/AudioProcessingEventInit.h: Added.
  • Modules/webaudio/AudioProcessingEventInit.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Added new file to test AudioProcessingEvent constructor.

  • webaudio/audioprocessingevent-constructor-expected.txt: Added.
  • webaudio/audioprocessingevent-constructor.html: Added.
12:36 PM Changeset in webkit [265442] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Handle logs with unicode characters in ews emails
https://bugs.webkit.org/show_bug.cgi?id=215330

Reviewed by Darin Adler.

  • BuildSlaveSupport/ews-build/send_email.py:

(send_email): Encode email content as utf-8.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.send_email_for_new_build_failure):
(AnalyzeCompileWebKitResults.send_email_for_preexisting_build_failure):

12:29 PM Changeset in webkit [265441] by Wenson Hsieh
  • 9 edits in trunk

Add more logging to diagnose editing/selection/ios/select-all-non-editable-text-using-keyboard.html
https://bugs.webkit.org/show_bug.cgi?id=215089
<rdar://problem/66282806>

Reviewed by Tim Horton.

Source/WebKit:

Remove some unnecessary declarations that were only used for debug logging in WebKitTestRunner, and add some
more logging to check whether the web view is even getting a call to select all from UIKit.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView selectAllForWebView:]):

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::keyDown):

  • WebKitTestRunner/ios/mainIOS.mm:

(-[WebKitTestRunnerApp handleKeyHIDEvent:]): Deleted.

LayoutTests:

  • editing/selection/ios/select-all-non-editable-text-using-keyboard-expected.txt:
  • editing/selection/ios/select-all-non-editable-text-using-keyboard.html:
12:29 PM Changeset in webkit [265440] by Chris Dumez
  • 15 edits in trunk

Align existing AudioParam API with the specification
https://bugs.webkit.org/show_bug.cgi?id=215301

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-exponentialRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-linearRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:

Source/WebCore:

Align existing AudioParam API with the specification:

In particular, the following changes were made:

This allows us to pass some more WPT webaudio tests.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioParam.cpp:
  • Modules/webaudio/AudioParam.h:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::setValueAtTime):
(WebCore::AudioParamTimeline::linearRampToValueAtTime):
(WebCore::AudioParamTimeline::exponentialRampToValueAtTime):
(WebCore::AudioParamTimeline::setTargetAtTime):
(WebCore::AudioParamTimeline::setValueCurveAtTime):
(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelScheduledValues):
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):

  • Modules/webaudio/AudioParamTimeline.h:

(WebCore::AudioParamTimeline::ParamEvent::ParamEvent):
(WebCore::AudioParamTimeline::ParamEvent::time const):
(WebCore::AudioParamTimeline::ParamEvent::duration const):
(WebCore::AudioParamTimeline::ParamEvent::curve):

LayoutTests:

Rebaseline existing test because I have switch the precision of the timeline times from float
to double. This introduced some very subtle differences but before / after audio files sound
the same.

  • platform/mac/webaudio/audiobuffersource-playbackrate-expected.wav:
12:25 PM Changeset in webkit [265439] by BJ Burg
  • 2 edits in trunk/Tools

Unreviewed, fix ordering of contributors.

  • Scripts/webkitpy/common/config/contributors.json:
10:55 AM Changeset in webkit [265438] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215326

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:49 AM Changeset in webkit [265437] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

r262456 broke sites that expect webkitDisplayingFullscreen to be true almost immediately
https://bugs.webkit.org/show_bug.cgi?id=215240
<rdar://problem/66284042>

Reviewed by Darin Adler.

Add a quirk for sites that use the Akamai Media Player, which begins polling
webkitDisplayingFullscreen every 100ms immediately after entering video fullscreen
mode and exits fullscreen as soon as it returns false. r262456 changed the HTMLMediaPlayer
state machine so webkitDisplayingFullscreen doesn't return true until the fullscreen
window has been opened in the UI process. This was done to fix bugs triggered by
rapidly entering and exiting fullscreen and PiP and make our own fullscreen/PiP tests
less flakey, so instead of reverting the change universally do it as a quirk for sites
using the Akamai Media Player.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::webkitDisplayingFullscreen):

  • page/Quirks.cpp:

(WebCore::Quirks::needsAkamaiMediaPlayerQuirk const):

  • page/Quirks.h:
10:25 AM Changeset in webkit [265436] by Chris Lord
  • 5 edits
    65 adds in trunk/LayoutTests/imported/w3c

Update WPT OffscreenCanvas tests to include manually written tests
https://bugs.webkit.org/show_bug.cgi?id=215322

Reviewed by Carlos Alberto Lopez Perez.

  • web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.html: Added.
  • web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.conic.worker.js: Added.

(t_fail.t.step_func):
(t.step):

  • web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/w3c-import.log:
  • 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/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.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.basic-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.basic.html: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.basic.worker-expected.txt: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.basic.worker.html: Added.
  • web-platform-tests/html/canvas/offscreen/path-objects/2d.path.isPointInStroke.basic.worker.js: Added.

(t_fail.t.step_func):
(t.step):

  • web-platform-tests/html/canvas/offscreen/path-objects/w3c-import.log:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.width.space.html:
  • web-platform-tests/html/canvas/offscreen/text/2d.text.measure.width.space.worker.js:

(t.step):

10:05 AM Changeset in webkit [265435] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] compositing/clipping/border-radius-on-webgl.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215324

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:58 AM Changeset in webkit [265434] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, unmark imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam.html as flaky.

  • platform/mac-wk2/TestExpectations:
9:51 AM Changeset in webkit [265433] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

Always suspend IDB work when network process is prepared to suspend
https://bugs.webkit.org/show_bug.cgi?id=215239
<rdar://problem/65690450>

Reviewed by Geoffrey Garen.

We do not suspend IDB work in the network process when there is an ongoing transaction because the network
process is going to ask the UI process to hold a background process assertion for it. However, it is possible
that the request from the network process does not reach the UI process in time: RunningBoard may already decide
to suspend the network process after app is backgrounded and UI process drops the foreground assertion for the
network process.

In this case, IDB in the network process would continue its transaction and the network process will be killed
when it becomes suspened for holding database file locks. A network process crash can lead to a worse result
than suspending IDB work, which aborts ongoing transactions, because it will destroy all database connections
and transaction. Therefore, let's just suspend IDB work when the network process receives prepareToSuspend
message.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::suspend):

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::prepareToSuspend):

9:41 AM Changeset in webkit [265432] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Return values of FontDatabase::collectionForFamily are not thread safe
https://bugs.webkit.org/show_bug.cgi?id=215320
<rdar://problem/66502539>

Reviewed by Anders Carlsson.

Font prewarming can add new entries to m_familyNameToFontDescriptors while lookups are being made.
Access to it is protected by a lock.

However if the hashmap ends up rehashing, the pointer returned from collectionForFamily may end up becoming invalid.
This can result in a crash later under findClosestFont.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::collectionForFamily):

Heap allocate the hashmap values so they stay valid over hashtable mutations.

9:31 AM Changeset in webkit [265431] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r261159) PokerBros only shows black screen
https://bugs.webkit.org/show_bug.cgi?id=215293
<rdar://problem/66073740>

Reviewed by Keith Miller.

The PokerBros app has some logic that was broken by the change in behavior of r261159.
It caused the app do do nothing except show a black screen upon opening.
Revert to the old behavior for this app until they update to iOS14.

  • runtime/JSObject.cpp:

(JSC::needsOldStringName):
(JSC::JSObject::toStringName):

9:29 AM Changeset in webkit [265430] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam.html.

  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt:
8:29 AM Changeset in webkit [265429] by Hector Lopez
  • 2 edits in trunk/LayoutTests

REGRESSION [ macOS ] fullscreen/video-controls-rtl.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=214412

Unreviewed test gardening.

  • platform/mac/TestExpectations:
8:25 AM Changeset in webkit [265428] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Win10 wk1 ews ] imported/blink/fast/css/fixed-overlaps-absolute-in-clip.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=215172

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:23 AM Changeset in webkit [265427] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Add required entitlement for Catalyst
https://bugs.webkit.org/show_bug.cgi?id=215244

Reviewed by Darin Adler.

The entitlement 'com.apple.private.webkit.use-xpc-endpoint' should be added to the WebContent process on Catalyst as well,
since it is needed on all Apple platforms. This entitlement is needed to support direct XPC communication between WebKit
processes, which is used to send the Launch Services database to the WebContent process from the Networking process. Also,
add some more logging related to this, to detect if it takes a long time for the WebContent process to receive the database.

  • Scripts/process-entitlements.sh:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

7:52 AM Changeset in webkit [265426] by Karl Rackler
  • 2 edits in trunk/LayoutTests

[ Win10 wk1 ews ] webanimations/accelerated-animation-with-easing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215170

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:21 AM Changeset in webkit [265425] by Diego Pino Garcia
  • 2 edits
    8 adds in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Emit new baselines after r265403.

Some result values of tests failing are different in the WebKitGTK/WPE
ports, which makes the tests fail. However the total number of tests
passing and failing is the same as in the general baseline.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass-expected.txt: Added.
1:18 AM Changeset in webkit [265424] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/ios

REGRESSION (r265176): Cannot make or extend selections in iOS WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=215319
<rdar://problem/66688560>

Reviewed by Devin Rousso.

  • WebCoreSupport/WebVisiblePosition.mm:

(+[DOMRange rangeForFirstPosition:second:]):
We want to ensure that firstPosition is *before* secondPosition, so
the change in r265176 got the condition backwards. Swap it.

12:38 AM Changeset in webkit [265423] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] JSFinalObject::finishCreation's ASSERT has stale condition
https://bugs.webkit.org/show_bug.cgi?id=215317

Reviewed by Mark Lam.

JSFinalObject::finishCreation assumes that there is no out-of-line property storage (inline storage capacity == total storage capacity).
But this is wrong when passing Butterfly* parameter to JSFinalObject. Previously, this feature is not used and we instead used JSObject::createRawObject,
which bypasses this assertion. But now, we start using this when creating an object for MaterializeNewObject in DFG and FTL, and then we hit the crash
because this assertion does not consider about non-nullptr butterfly.

This patch makes create function explicit by introducing JSFinalObject::createWithButterfly, which is similar to JSArray::createWithButterfly.
And we fix the assertion by checking butterfly existence. By renaming JSFinalObject::create to JSFinalObject::createWithButterfly when getting butterfly,
this patch also clarifies that only MaterializeNewObject related functions, which were using JSObject::createRawObject to bypass this assertion, is passing
butterfly.

  • dfg/DFGOperations.cpp:
  • runtime/JSObject.h:

(JSC::JSFinalObject::createWithButterfly):
(JSC::JSFinalObject::create):

Aug 9, 2020:

10:12 PM Changeset in webkit [265422] by commit-queue@webkit.org
  • 15 edits
    1 copy
    1 move
    4 adds
    1 delete in trunk

[macOS] Drag/drop an image of a unsupported format to an file input element should convert it to a supported format
https://bugs.webkit.org/show_bug.cgi?id=212482
<rdar://problem/63731672>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-08-09
Reviewed by Darin Adler.

Source/WebCore:

Although the list of the dropped files are sent from the UI process to
the Web process through the WebPage channel, the file input settings are
only known by the Web process. So we have to do the image transcoding in
WebCore.

Tests: fast/forms/file/entries-api/image-no-transcode-drag-drop.html

fast/forms/file/entries-api/image-transcode-drag-drop.html

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/FileInputType.cpp:

(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::fileChooserSettings const):
Move filling FileChooserSettings to the function: fileChooserSettings().

(WebCore::FileInputType::applyFileChooserSettings):
Call fileChooserSettings() instead of receiving FileChooserSettings as
an argument.

(WebCore::FileInputType::filesChosen):
Add this function which can be called from receiveDroppedFiles() or
receiveDroppedFilesWithImageTranscoding().

(WebCore::FileInputType::receiveDroppedFilesWithImageTranscoding):
Finds out whether image transcoding is needed for the dropped files. If
it is needed, it will be done in a WorkQueue and call filesChosen() when
it is done. Otherwise it will call filesChosen() immediately.

(WebCore::FileInputType::receiveDroppedFiles):

  • html/FileInputType.h:
  • platform/graphics/ImageUtilities.h: Added.
  • platform/graphics/cg/ImageUtilitiesCG.cpp: Added.

(WebCore::sharedImageTranscodingQueue):
Provide a shared WorkQueue which can be used by WebCore and WebKit.

(WebCore::transcodeImage):
(WebCore::findImagesForTranscoding):
(WebCore::transcodeImages):

Source/WebKit:

Move ImageUtilities.h and ImageUtilitiesCG.cpp from WebKit to WebCore.
Use the image transcoding functions and shared WorkQueue from WebCore.

  • Platform/ImageUtilities.h: Removed.
  • Platform/cg: Removed.
  • SourcesCocoa.txt:
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding):
(WebKit::m_transcodingQueue): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

Enable the new tests on macOS WK1. eventSender.beginDragWithFiles is
supported on WK1 only.

  • fast/forms/file/entries-api/image-no-transcode-drag-drop-expected.txt: Added.
  • fast/forms/file/entries-api/image-no-transcode-drag-drop.html: Added.
  • fast/forms/file/entries-api/image-transcode-drag-drop-expected.txt: Added.
  • fast/forms/file/entries-api/image-transcode-drag-drop.html: Added.
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wk2/TestExpectations:
9:48 PM Changeset in webkit [265421] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r265392.
https://bugs.webkit.org/show_bug.cgi?id=215316

Crash ARM64 / ARM64E JSC tests

Reverted changeset:

"REGRESSION(r261159) PokerBros only shows black screen"
https://bugs.webkit.org/show_bug.cgi?id=215293
https://trac.webkit.org/changeset/265392

7:18 PM Changeset in webkit [265420] by Wenson Hsieh
  • 7 edits in trunk

REGRESSION (r260831): Web process crashes under Editor::setComposition() after navigating with marked text
https://bugs.webkit.org/show_bug.cgi?id=215315
<rdar://problem/64740092>

Reviewed by Darin Adler.

Source/WebCore:

To address a variety of crashes due to frames changing (or otherwise losing) their document while executing
editing commands, r260831 refactored the Editor class such that it extends the functionality of the Document
class, rather than the Frame class. In nearly all scenarios, this either leads to no behavior change or prevents
null pointer crashes, since a document is almost always attached to a frame when applying any editing commands.

However, there is one scenario where a document that has not yet been attached to its frame (and therefore does
not have a browsing context) will cause a null deref when trying to confirm an existing IME composition. The
logic added in <https://trac.webkit.org/r150291> will try and confirm any existing composition range on a
document right before committing provisional navigation. In the case where we are navigating back to a
previously visited page, m_frame's document in FrameLoader::commitProvisionalLoad() will not be attached
until the cached page's mainframe is opened underneath CachedPage::restore(). Since the call to
Editor::confirmComposition() currently happens before this step, we end up crashing while attempting to create
a UserTypingGestureIndicator. Note that even if we avoid this with a null check, we'll still end up crashing
shortly thereafter, underneath Editor::insertTextForConfirmedComposition. And even if this second crash is
avoided with another null check, we'll just end up with some version of webkit.org/b/59121, where the
composition range is present after navigation, but is out of sync with platform UI.

To fix the crash (and also not bring back bug #59121), we refactor this composition confirmation logic so that
it lives in Editor, and is also robust against the case where the document is not attached to a frame; we then
invoke this call after we're done committing the provisional load, so that any frame that is not yet attached
before commiting the load still has a chance to confirm its composition.

Test: WKWebViewMacEditingTests.ProcessSwapAfterSettingMarkedText

  • editing/Editor.cpp:

(WebCore::Editor::confirmCompositionAndNotifyClient):

Move functionality from willTransitionToCommitted to confirmCompositionAndNotifyClient, a helper method that
will bail if the document is not attached, but otherwise confirm the active composition (if it exists).

  • editing/Editor.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

Add a call to confirm the editor's current composition after we're done committing the load. Note that in the
case where we had a composition before committing the load, we'll end up confirming the composition earlier (in
the first call site), rather than confirming after the load has been committed. This means that this second call
will be a no-op, due to the editor not having any composition.

(WebCore::FrameLoader::willTransitionToCommitted): Deleted.

  • loader/FrameLoader.h:

Tools:

Add a new API that exercises the crash by:

  • Enabling PSON.
  • Navigating to page A and inserting some marked text.
  • Navigating to page B with a process swap (without confirming the marked text).
  • Navigating back to page A, and verifying that the previoulsy marked text is now committed.
  • TestWebKitAPI/Tests/mac/WKWebViewMacEditingTests.mm:
1:41 PM Changeset in webkit [265419] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Make CommandLine on Worker agent (JSC shell feature for testing) work on iOS
https://bugs.webkit.org/show_bug.cgi?id=215311
<rdar://problem/66660053>

Reviewed by Mark Lam.

We should not reconfigure Options since this is once initialized. Since Options are frozen,
this results in crash.

  • jsc.cpp:

(CommandLine::CommandLine):
(functionDollarAgentStart):

11:23 AM Changeset in webkit [265418] by Ben Nham
  • 4 edits in trunk/Source

Preload graphics drivers in Mac WebProcess
https://bugs.webkit.org/show_bug.cgi?id=215183

Reviewed by Darin Adler.

Source/WebCore:

In newer versions of Mac OS, graphics drivers are no longer part of the shared cache due to
size restrictions. This can cause first render to be blocked by ~10 ms when we dlopen those
drivers. To work around this, we preload the drivers when prewarming the WebProcess.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

Source/WTF:

Enable GPU driver preheating in versions of the OS that might not have the drivers in the dyld
shared cache due to size restrictions.

  • wtf/PlatformEnableCocoa.h:
8:34 AM Changeset in webkit [265417] by youenn@apple.com
  • 13 edits
    3 adds
    6 deletes in trunk

Always resolve ReadableStream's tee()'s cancel promise after the stream closes or errors
https://bugs.webkit.org/show_bug.cgi?id=215197

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/streams: Resynced to upstream WPT.

Source/WebCore:

Make sure to resolve the cancel promise if the source gets closed or errored.
Test: imported/w3c/web-platform-tests/streams/queuing-strategies-size-function-per-global.window.html

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamTee):
(readableStreamTeePullFunction):

4:49 AM Changeset in webkit [265416] by commit-queue@webkit.org
  • 13 edits in trunk/Source

Unreviewed, reverting r263195, r263252, and r265394.
https://bugs.webkit.org/show_bug.cgi?id=215312

Revert all related GC Bitmap changes because some of perf is
not fully recovered

Reverted changesets:

"Replace JSC::FreeList linked list with a Bitmap."
https://bugs.webkit.org/show_bug.cgi?id=213071
https://trac.webkit.org/changeset/263195

"Unify Bitmap math loops in
MarkedBlock::Handle::specializedSweep()."
https://bugs.webkit.org/show_bug.cgi?id=213345
https://trac.webkit.org/changeset/263252

"[JSC] Disable ENABLE_BITMAP_FREELIST"
https://bugs.webkit.org/show_bug.cgi?id=215285
https://trac.webkit.org/changeset/265394

12:36 AM Changeset in webkit [265415] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Update OriginalAdvancesForCharacterTreatedAsSpace to work correctly in the presence of inserted or removed glyphs
https://bugs.webkit.org/show_bug.cgi?id=215302

Reviewed by Darin Adler.

OriginalAdvancesForCharacterTreatedAsSpace is trying to make sure that shaping doesn't cause
spaces to get wider or thinner. However, the way it was doing that is, for all the space
characters, overwrite that glyph index's advance after shaping to be what it was before shaping.
However, this is wrong, because shaping can insert or delete glyphs. Instead, now that we have
explicit string indices for each glyph, we can use those to determine which glyphs come from
space characters. These glyphs are the ones which should be overwritten.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/WidthIterator.h:

Aug 8, 2020:

11:40 PM Changeset in webkit [265414] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix bad merge in r265241
https://bugs.webkit.org/show_bug.cgi?id=215051

Unreviewed. This is something that got dropped in a bad merge from r265241.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthForSimpleText const):

10:14 PM Changeset in webkit [265413] by mmaxfield@apple.com
  • 7 edits
    1 delete in trunk

Make GlyphBuffers required in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=215052

Reviewed by Darin Adler.

Source/WebCore:

This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=214769
and https://bugs.webkit.org/show_bug.cgi?id=206208.

Performing shaping affects the width of strings; indeed, that is one of
its purposes for existence. Shaping can only happen when we have a GlyphBuffer
to shape. We can't just arbitrarily decide to disable shaping for various
functions just because those functions don't ever inspect the exact glyphs.

No new tests. This is a preparation step toward
https://bugs.webkit.org/show_bug.cgi?id=214769 and
https://bugs.webkit.org/show_bug.cgi?id=206208, and I couldn't come up with a
test case that was broken here.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthOfTextRange const):
(WebCore::FontCascade::widthForSimpleText const):
(WebCore::FontCascade::layoutSimpleText const):
(WebCore::FontCascade::floatWidthForSimpleText const):
(WebCore::FontCascade::adjustSelectionRectForSimpleText const):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::shouldApplyFontTransforms const):
(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::advance):
(WebCore::WidthIterator::advanceOneCharacter):

  • platform/graphics/WidthIterator.h:
  • rendering/svg/SVGTextMetricsBuilder.cpp:

(WebCore::SVGTextMetricsBuilder::advanceSimpleText):

LayoutTests:

  • platform/win/fast/events/selectstart-by-drag-expected.txt: Test progressed on Windows.
9:27 PM Changeset in webkit [265412] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

WidthIterator::m_finalRoundingWidth is always 0
https://bugs.webkit.org/show_bug.cgi?id=215307

Reviewed by Darin Adler.

There's no reason for it to exist.

No new tests because there is no behavior change.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::layoutSimpleText const):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/WidthIterator.h:

(WebCore::WidthIterator::runWidthSoFar const):
(WebCore::WidthIterator::finalRoundingWidth const): Deleted.

8:57 PM Changeset in webkit [265411] by mmaxfield@apple.com
  • 8 edits in trunk/Source/WebCore

Use references instead of pointers for GlyphBuffer::add()'s Font argument
https://bugs.webkit.org/show_bug.cgi?id=215309

Reviewed by Darin Adler.

They're not allowed to be null.

No new tests because there is no behavior change.

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::advance):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthForSimpleText const):
(WebCore::FontCascade::drawGlyphBuffer const):
(WebCore::offsetToMiddleOfGlyph):
(WebCore::FontCascade::drawEmphasisMarks const):
(WebCore::GlyphToPathTranslator::GlyphToPathTranslator):
(WebCore::GlyphToPathTranslator::advance):
(WebCore::FontCascade::dashesForIntersectionsWithRect const):

  • platform/graphics/GlyphBuffer.h:

(WebCore::GlyphBuffer::fontAt const):
(WebCore::GlyphBuffer::add):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::generateGlyphBuffer const):

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::paintGlyph):
(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::paint):

8:23 PM Changeset in webkit [265410] by Wenson Hsieh
  • 8 edits in trunk

[ iOS wk2 ] editing/pasteboard/paste-without-nesting.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215218
<rdar://problem/66628493>

Reviewed by Darin Adler.

Source/WebKit:

This test writes to the system pasteboard using document.execCommand("Copy"), and then immediately reads from
the system pasteboard by triggering document.execCommand("Paste"). On rare occasions, this fails on iOS, where
IPC messages for writing content to the pasteboard (e.g. WebPasteboardProxy::WriteWebContentToPasteboard) are
asynchronous, but the IPC message to get the pasteboard change count before pasting (GetPasteboardChangeCount)
is synchronous. This means that Connection may end up dispatching the sync GetPasteboardChangeCount IPC
message before dispatching WriteWebContentToPasteboard, which causes the pasteboard read to fail, because the
contents on the pasteboard have changed after starting to read from the pasteboard.

Note that this is not a problem on macOS since all pasteboard writing IPC is synchronous. Instead of turning all
of the async iOS pasteboard writing messages synchronous as well, we can fix this by adding a mechanism in
WebProcess to keep track of outgoing async pasteboard write messages; then, before attempting to grab the
change count when we start reading, wait for any of these pending async writes to finish before we continue.

In a future patch, we could actually adopt this same mechanism in SetPasteboardTypes and neighboring IPC
messages to turn these all asynchronous.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):

Call didWriteToPasteboardAsynchronously after we finish writing to the pasteboard asynchronously.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::changeCount):

Before accessing changeCount, wait until any asynchronous calls to write to the system pasteboard have finished.

(WebKit::WebPlatformStrategies::writeToPasteboard):

Right before we send an async message to the UI process to write to the system pasteboard, notify WebProcess
so that it can keep track of pending clipboard writes.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::willWriteToPasteboardAsynchronously):
(WebKit::WebProcess::didWriteToPasteboardAsynchronously):
(WebKit::WebProcess::waitForPendingPasteboardWritesToFinish):

Wait for a maximum of 1 second for any outgoing pasteboard writing messages to return to the web process.

LayoutTests:

Remove the flaky test expectation.

  • platform/ios-simulator-wk2/TestExpectations:
1:31 PM Changeset in webkit [265409] by Fujii Hironori
  • 2 edits in trunk/Tools

[WinCairo] REGRESSION(r265408): Unreviewed layout test script fix
https://bugs.webkit.org/show_bug.cgi?id=215292
<rdar://problem/66698141>

os.getuid() is available only for Unix.

AttributeError: 'module' object has no attribute 'getuid'

  • Scripts/webkitpy/init.py: Don't use os.getuid() unless sys.platform == 'darwin'.
6:43 AM Changeset in webkit [265408] by Jonathan Bedard
  • 2 edits in trunk/Tools

[webkitpy] Pick a reasonable auto-install location on NFS mounts
https://bugs.webkit.org/show_bug.cgi?id=215292
<rdar://problem/66698141>

Reviewed by Dewei Zhu.

  • Scripts/webkitpy/init.py: On MacOS, when the current user does not own the checkout, use ~/Libraries/webkitpy.
3:54 AM Changeset in webkit [265407] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WTF

[WTF] Remove the build warning since r265344.
https://bugs.webkit.org/show_bug.cgi?id=215269

warning: parameter ‘integer’ set but not used [-Wunused-but-set-parameter]

  • wtf/text/IntegerToStringConversion.h:

(WTF::lengthOfIntegerAsString):

3:37 AM Changeset in webkit [265406] by youenn@apple.com
  • 2 edits in trunk/Tools

Add a quota delegate test for miniaturized/deminiaturized pages
https://bugs.webkit.org/show_bug.cgi?id=215166

Reviewed by Alex Christensen.

Add a Mac specific test for testing quota delegate in case page is miniaturized or not.
Update testing code to show more meaningful error reports.

  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:

(-[QuotaMessageHandler userContentController:didReceiveScriptMessage:]):
(-[QuotaMessageHandler receivedMessage]):

12:44 AM Changeset in webkit [265405] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Speculate children first in DFG NewArray
https://bugs.webkit.org/show_bug.cgi?id=215308
<rdar://problem/64749263>

Reviewed by Mark Lam.

SpeculativeJIT::emitAllocateRawObject can create uninitialized butterfly since we later fill them.
However, DFG NewArray node has speculation after that. So if speculation failure happens, we release
half-baked butterfly.

Let's see the example.

8459 emitAllocateRawObject(resultGPR, structure, storageGPR, numElements, vectorLengthHint);
...
8482 case ALL_INT32_INDEXING_TYPES:
8483 case ALL_CONTIGUOUS_INDEXING_TYPES: {
8484 JSValueOperand operand(this, use, ManualOperandSpeculation);
8485 JSValueRegs operandRegs = operand.jsValueRegs();
8486 if (hasInt32(node->indexingType())) {
8487 DFG_TYPE_CHECK(
8488 operandRegs, use, SpecInt32Only,
8489 m_jit.branchIfNotInt32(operandRegs));
8490 }
8491 m_jit.storeValue(operandRegs, MacroAssembler::Address(storageGPR, sizeof(JSValue) * operandIdx));
8492 break;
8493 }

L8487-L8489 is doing speculation check. If it failed, the rest of the butterfly can be filled with garbage. This looks OK since
it is Int32 butterfly so GC never scans it. However, if have-a-bad-time happens and the array is reachable from the conservative root,
this half-baked array is converted from Int32 array to ArrayStorage. At that time, since Int32 butterfly should hold JSInt32,
we store this garbage to ArrayStorage. Later, if conservative root still holds this array, and GC scans this garbage as as JSValue,
this value confuses GC.

In this patch, we first perform speculation before creating uninitialized JSArray so that we can ensure that we never exit after
creating this array until we fill it. This strategy is the same to FTL's NewArray implementation.

And we also found that emitAllocateRawObject is allocating an object from JSFinalObject space while we use it for JSArray too.
We should get per-type allocator to ensure JSArray is allocated in its IsoSubspace.

  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileNewArray):
(JSC::DFG::SpeculativeJIT::compileMaterializeNewObject):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):

  • runtime/JSObject.h:

(JSC::JSObject::createRawObject): Deleted.

Aug 7, 2020:

10:09 PM Changeset in webkit [265404] by Lauro Moura
  • 3 edits
    5 adds in trunk/LayoutTests

[GTK][WPE] Gardening and adding some WPE baselines.

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt: Added.
  • platform/wpe/http/tests/storageAccess/aggregate-sorted-data-with-storage-access-expected.txt: Added.
  • platform/wpe/scrollingcoordinator/scrolling-tree/sibling-node-order-expected.txt: Added.
5:37 PM Changeset in webkit [265403] by Chris Dumez
  • 103 edits in trunk

AudioContext / OfflineAudioContext should support a wider sample rate range
https://bugs.webkit.org/show_bug.cgi?id=215289

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that way for checks are passing and now that most tests are running further.

  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/active-processing.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-null-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-zero-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-play-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/note-grain-on-timing-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/suspend-after-construct-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-channel-rules-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/adding-events-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-exceptional-values-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-method-chaining-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/automation-rate-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audiobuffersource-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-connection-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-biquad-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-constant-source-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-delay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-oscillator-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-connections-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-stereo-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-exponentialRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-linearRampToValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setTargetAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/retrospective-setValueCurveAtTime-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/set-target-conv-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-size.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-disconnected-input.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-allpass-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-automation-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-bandpass-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-getFrequencyResponse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highshelf-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowshelf-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-notch-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-peaking-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-tail-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-cascade-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-1-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-2-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-response-4-chan-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-gainnode-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-iirfilternode-interface/iirfilter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/offlineaudiocontext-detached-execution-context.tentative-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/automation-changes-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/distance-exponential-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/distance-inverse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/distance-linear-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-equalpower-stereo-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-azimuth-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-equalpower-stereo-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-rolloff-clamping-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/no-dezippering-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-stereopanner-interface/stereopannernode-panning-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/silent-inputs-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-copy-curve-expected.txt:

Source/WebCore:

AudioContext / OfflineAudioContext should support a wider sample rate range. We only supported
sample rates in the [44100, 96000] range, which is much smaller than other browsers and would
cause us to fail a LOT of web-platform-tests.

We now support sample rates in the range [3000, 384000], which is the same range as Chromium.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::create):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::isSampleRateRangeGood):

  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::create):

  • platform/audio/FFTFrame.h:
  • platform/audio/HRTFPanner.cpp:

(WebCore::HRTFPanner::fftSizeForSampleRate):
Update fftSizeForSampleRate() to support wider sample rate range. This implementation is based
on Chromium's:
https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/platform/audio/hrtf_panner.cc#L70

  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::minFFTSize):
(WebCore::FFTFrame::maxFFTSize):

  • platform/audio/mac/FFTFrameMac.cpp:

(WebCore::FFTFrame::minFFTSize):
(WebCore::FFTFrame::maxFFTSize):

LayoutTests:

Mark a few tests as flaky because the values they are printing out keep changing.

5:35 PM Changeset in webkit [265402] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] fast/forms/auto-fill-button/caps-lock-indicator-should-be-visible-after-hiding-auto-fill-strong-password-button.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215304

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:31 PM Changeset in webkit [265401] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebGL2] Missing validation for sampler unit index
https://bugs.webkit.org/show_bug.cgi?id=215303

Patch by James Darpinian <James Darpinian> on 2020-08-07
Reviewed by Dean Jackson.

Test: webgl/2.0.0/deqp/functional/gles3/negativeshaderapi.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::bindSampler):

5:25 PM Changeset in webkit [265400] by ysuzuki@apple.com
  • 4 edits in trunk/LayoutTests

Attempt to stabilize out-of-memory error test
https://bugs.webkit.org/show_bug.cgi?id=215291

Reviewed by Mark Lam.

This patch attempts to stabilize out-of-memory error test: making the test reliably throw an out-of-memory error.

  1. Anchor all ArrayBuffer allocation from the strong root (window) to keep them alive even GC happens, which stresses memory usage.
  2. Increase count of VM allocation from 1000 to 5000 to mitigate the worst case scenario where out-of-memory does not happen because worklet is constantly terminated and memory is released. Referencing worklet object in the caller side does not matter since worklet can be terminated regardless of whether the caller references the object of worklet.
  • TestExpectations:
  • fast/css-custom-paint/out-of-memory-while-adding-worklet-module-expected.txt:
  • fast/css-custom-paint/script-tests/out-of-memory-while-adding-worklet-module.js:

(useAllMemory): Deleted.

4:56 PM Changeset in webkit [265399] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Off by one error in transform feedback buffer binding
https://bugs.webkit.org/show_bug.cgi?id=215298

Patch by James Darpinian <James Darpinian> on 2020-08-07
Reviewed by Dean Jackson.

Caught by conformance test deqp/functional/gles3/negativebufferapi.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):

4:28 PM Changeset in webkit [265398] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-logical/parsing/margin-block-inline-computed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215299

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:20 PM Changeset in webkit [265397] by Alexey Shvayka
  • 19 edits in trunk

{Intersection,Resize,Performance}Observer callbacks get incorrect this value
https://bugs.webkit.org/show_bug.cgi?id=215162

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/intersection-observer/observer-callback-arguments-expected.txt:
  • web-platform-tests/performance-timeline/po-observe.any-expected.txt:
  • web-platform-tests/performance-timeline/po-observe.any.worker-expected.txt:
  • web-platform-tests/resize-observer/eventloop-expected.txt:
  • web-platform-tests/resize-observer/observe-expected.txt:

Source/WebCore:

This change utilizes CallbackThisObject] IDL attribute to invoke a callback of
IntersectionObserver [1], ResizeObserver [2], and PerformanceObserver [3] with
correct this value of its observer, aligning WebKit with Blink and Gecko.

Tests: imported/w3c/web-platform-tests/intersection-observer/observer-callback-arguments.html

imported/w3c/web-platform-tests/resize-observer/observe.html
imported/w3c/web-platform-tests/performance-timeline/po-observe.any.js

[1] https://w3c.github.io/IntersectionObserver/#notify-intersection-observers-algo (step 3.4)
[2] https://github.com/w3c/csswg-drafts/pull/5383
[3] https://w3c.github.io/performance-timeline/#queue-the-performanceobserver-task (step 3.3.5)

  • html/LazyLoadImageObserver.cpp:
  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::notify):

  • page/IntersectionObserverCallback.h:
  • page/IntersectionObserverCallback.idl:
  • page/PerformanceObserver.cpp:

(WebCore::PerformanceObserver::deliver):

  • page/PerformanceObserverCallback.h:
  • page/PerformanceObserverCallback.idl:
  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::deliverObservations):

  • page/ResizeObserverCallback.h:
  • page/ResizeObserverCallback.idl:

LayoutTests:

  • performance-api/performance-observer-basic-expected.txt:
4:05 PM Changeset in webkit [265396] by Wenson Hsieh
  • 22 edits in trunk

[macOS] It should be possible to override spellchecking results in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=215290

Reviewed by Devin Rousso.

Tools:

Refactor setSpellCheckerResults so that it is on UIScriptController instead of TestRunner, such that it
can be triggered asynchronously from a layout test. This allows the testing hook to work in WebKit2, where the
swizzled spell checker is in the UI process.

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):
(setSpellCheckerResultsCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/ios/UIScriptControllerIOS.h:

Add a method implementation stub for iOS.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setSpellCheckerResults): Deleted.

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

(WTR::UIScriptControllerMac::setSpellCheckerResults):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::setSpellCheckerLoggingEnabled):
(TestRunner::setSpellCheckerResults): Deleted.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::setSpellCheckerResults):

  • TestRunnerShared/cocoa/LayoutTestSpellChecker.h:
  • TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:

(-[LayoutTestSpellChecker setResultsFromJSValue:inContext:]):
(-[LayoutTestSpellChecker setResultsFromJSObject:inContext:]): Deleted.

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformResetStateToConsistentValues):

Make sure that we uninstall the swizzled LayoutTestSpellChecker between tests.

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

(WTR::UIScriptControllerMac::setSpellCheckerResults):

LayoutTests:

  • editing/spelling/markers-expected.txt:
  • editing/spelling/markers.html:

Rewrite this layout test to use async-await, instead of asynchronously calling the recursive done function.
Additionally, adopt UIHelper.setSpellCheckerResults.

  • editing/spelling/text-replacement-after-typing-to-word.html:

Adopt UIHelper.setSpellCheckerResults. This allows us to enable the test on macOS WebKit2, since the only
thing that prevented it from working before was the ability to setSpellCheckerResults in WebKit2.

  • platform/mac-wk2/TestExpectations:
  • resources/ui-helper.js:

Add a UIHelper method to override the system spell checker with given results.

(window.UIHelper.async setSpellCheckerResults):

4:00 PM Changeset in webkit [265395] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] media/modern-media-controls/placard/placard-ltr.html is a flaky timeout
Nhttps://bugs.webkit.org/show_bug.cgi?id=215296

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:31 PM Changeset in webkit [265394] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Disable ENABLE_BITMAP_FREELIST
https://bugs.webkit.org/show_bug.cgi?id=215285

Reviewed by Mark Lam.

From performance bots, we observed that,

  1. MBP11,4 shows 1% regression in Speedometer2.
  2. The other MBP / iMac / MBA bots show neutral or slight regression in Speedometer2.

Based on the above result, for now, we disable this feature.

  • heap/FreeList.h:
3:14 PM Changeset in webkit [265393] by Chris Dumez
  • 20 edits
    2 adds in trunk

baseLatency attribute is missing on AudioContext interface
https://bugs.webkit.org/show_bug.cgi?id=215277

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:

Source/WebCore:

baseLatency attribute is missing on AudioContext interface:

Test: webaudio/audiocontext-baselatency.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::baseLatency):
(WebCore::AudioContext::destination):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::framesPerBuffer const):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • platform/audio/AudioDestination.h:
  • platform/audio/cocoa/AudioDestinationCocoa.cpp:

(WebCore::AudioDestinationCocoa::framesPerBuffer const):

  • platform/audio/cocoa/AudioDestinationCocoa.h:
  • platform/audio/gstreamer/AudioDestinationGStreamer.cpp:

(WebCore::AudioDestinationGStreamer::framesPerBuffer const):

  • platform/audio/gstreamer/AudioDestinationGStreamer.h:

Source/WebKit:

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::framesPerBuffer const):
(WebKit::RemoteAudioDestinationManager::createAudioDestination):

  • GPUProcess/media/RemoteAudioDestinationManager.h:
  • GPUProcess/media/RemoteAudioDestinationManager.messages.in:
  • WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:

(WebKit::RemoteAudioDestinationProxy::RemoteAudioDestinationProxy):

  • WebProcess/GPU/media/RemoteAudioDestinationProxy.h:

LayoutTests:

Add layout test coverage.

  • webaudio/audiocontext-baselatency-expected.txt: Added.
  • webaudio/audiocontext-baselatency.html: Added.
3:08 PM Changeset in webkit [265392] by achristensen@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r261159) PokerBros only shows black screen
https://bugs.webkit.org/show_bug.cgi?id=215293

Reviewed by Keith Miller.

The PokerBros app has some logic that was broken by the change in behavior of r261159.
It caused the app do do nothing except show a black screen upon opening.
Revert to the old behavior for this app until they update to iOS14.

  • runtime/JSObject.cpp:

(JSC::needsOldStringName):
(JSC::JSObject::toStringName):

2:38 PM Changeset in webkit [265391] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Windows EWS should filter build logs to show errors
https://bugs.webkit.org/show_bug.cgi?id=211344

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(BuildLogLineObserver.init): Added searchString and includeRelatedLines arguments.
(BuildLogLineObserver.outLineReceived): Added support for generic searchString and enabling/disabling inclusion of related lines.
(CompileWebKit.start): Enabled log filtering for windows and wincairo.
(AnalyzeCompileWebKitResults.filter_logs_containing_error): Made it accept any generic searchString.
(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Pass different searchString for windows and wincairo.
(AnalyzeCompileWebKitResults.send_email_for_preexisting_build_failure): Ditto.

2:23 PM Changeset in webkit [265390] by commit-queue@webkit.org
  • 16 edits in trunk

Implement PerfomanceObserverInit.buffered
https://bugs.webkit.org/show_bug.cgi?id=214883

Patch by Rob Buis <rbuis@igalia.com> on 2020-08-07
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test expectations and add subtests for
case sensitivity of type/entryTypes in observe call.

  • web-platform-tests/performance-timeline/case-sensitivity.any-expected.txt:
  • web-platform-tests/performance-timeline/case-sensitivity.any.js:

(async_test):

  • web-platform-tests/performance-timeline/case-sensitivity.any.worker-expected.txt:
  • web-platform-tests/resource-timing/buffered-flag.any-expected.txt:
  • web-platform-tests/resource-timing/buffered-flag.any.worker-expected.txt:
  • web-platform-tests/user-timing/buffered-flag.any-expected.txt:
  • web-platform-tests/user-timing/buffered-flag.any.worker-expected.txt:

Source/WebCore:

Implement PerfomanceObserverInit.buffered IDL and
functionality [1].

Behavior matches Chrome and Firefox.

Tests: imported/w3c/web-platform-tests/resource-timing/buffered-flag.any.html

imported/w3c/web-platform-tests/resource-timing/buffered-flag.any.worker.html
imported/w3c/web-platform-tests/user-timing/buffered-flag.any.html
imported/w3c/web-platform-tests/user-timing/buffered-flag.any.worker.html
imported/w3c/web-platform-tests/performance-timeline/case-sensitivity.any.html
imported/w3c/web-platform-tests/performance-timeline/case-sensitivity.any.worker.html

[1] https://w3c.github.io/performance-timeline/#performanceobserverinit-dictionary

  • page/Performance.cpp:

(WebCore::Performance::appendBufferedEntriesByType const):

  • page/Performance.h:
  • page/PerformanceObserver.cpp:

(WebCore::PerformanceObserver::observe):

  • page/PerformanceObserver.h:
  • page/PerformanceObserver.idl:

LayoutTests:

Unskip some tests for PerfomanceObserverInit.buffered.

1:40 PM Changeset in webkit [265389] by wilander@apple.com
  • 41 edits
    14 adds in trunk

Experimental: Cap the expiry of persistent cookies set in 3rd-party CNAME cloaked HTTP responses
https://bugs.webkit.org/show_bug.cgi?id=215201
<rdar://problem/57454633>

Reviewed by Brent Fulgham. Also reviewed and commented on by Chris Dumez, Jiten Mehta, Sam Weinig, and Alex Christensen.

Source/WebCore:

Tests: http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname.html

http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname.html
http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname.html
http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname.html
http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname.html
http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.html
http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.html

  • page/Settings.yaml:

Added the off-by-default flag isCNAMECloakingMitigationEnabled.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::resourceLoadStatisticsEnabled const):

New getter for the ITP setting.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::capExpiryOfPersistentCookie):

Broke this function out so that it can be reused.

(WebCore::parseDOMCookie):

Here's from where the function above was broken out.
The existing functionality has a test case.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

This change declares two new properties on NSURLSessionTask:

  • _cookieTransformCallback
  • _resolvedCNAMEChain

Source/WebKit:

This experimental feature is off by default.

CNAME cloaking means a host resolves to a a different domain, potentially a
third-party domain, as part of DNS resolution.

This patch makes WebKit::NetworkDataTaskCocoa capture any CNAME cloaking for
the first party host and stores it in a table in the WebKit::NetworkSession.
It then checks first party subresource loads to see if they resolve to a
different domain and if so, compare that domain to both the first party
domain and its CNAME cloaking domain, if there is one. If there's a
mismatch, it's deemed a case of third-party CNAME cloaking and any cookies
set in the response of the cloaked subresource load will have their expiry
capped to 7 days.

The cases for capping expiry look like this (and are backed by test cases):

First-party host | First-party subdomain | Capped expiry


No CNAME cloaking | No CNAME cloaking | No
No CNAME cloaking | First-party CNAME cloaking | No
No CNAME cloaking | Third-party CNAME cloaking | Yes
CNAME cloaking | No CNAME cloaking | No
CNAME cloaking | Matching CNAME cloaking | No
CNAME cloaking | First-party CNAME cloaking | No
CNAME cloaking | Third-party CNAME cloaking | Yes

This patch makes use of two new CFNetwork SPIs on NSURLSessionTask:

  • _cookieTransformCallback
  • _resolvedCNAMEChain
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::resetParametersToDefaultValues):

This reset now covers the new CNAME cloaking member variables.

(WebKit::NetworkProcess::setIsRunningResourceLoadStatisticsTest):

This function now also enables the CNAME cloaking code.

(WebKit::NetworkProcess::setFirstPartyHostCNAMEDomainForTesting):
(WebKit::NetworkProcess::setThirdPartyCNAMEDomainForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:

New IPC to forward test configuration.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

Now picks up the flag for this feature.

(WebKit::NetworkSession::setFirstPartyHostCNAMEDomain):

This is called from NetworkDataTaskCocoa::updateFirstPartyInfoForTaskAndSession()
when there is CNAME cloaking for the first party host. This is done to make it
possible to not cap the expiry of cookies if subsequent subresource loads have
CNAME cloaking that matches the first-party host's CNAME cloaking. This happens
when whole websites are hosted on edge networks.
This function is also used by the test infrastructure to mock the DNS resolution
for a first-party host.

(WebKit::NetworkSession::firstPartyHostCNAMEDomain):

This returns any captured CNAME cloaking for a host, if there is one.

(WebKit::NetworkSession::resetCNAMEDomainData):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::setCNAMECloakingMitigationEnabled):
(WebKit::NetworkSession::cnameCloakingMitigationEnabled const):
(WebKit::NetworkSession::setThirdPartyCNAMEDomainForTesting):

This test functions allows us to mock the DNS resolution for a subresource.

(WebKit::NetworkSession::thirdPartyCNAMEDomainForTesting const):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::hasCNAMEAndCookieTransformSPI):
(WebKit::lastCNAMEDomain):
(WebKit::NetworkDataTaskCocoa::updateFirstPartyInfoForSession):

This is called by NetworkDataTaskCocoa::didReceiveResponse() to capture any
CNAME cloaking for the first-party host.

(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):

This is called in the NetworkDataTaskCocoa constructor and in
NetworkDataTaskCocoa::willPerformHTTPRedirection() and sets the new
_cookieTransformCallback SPI property on the task which will check the
response for any third-party CNAME cloaking and cap the expiry of incoming
cookies accordingly.

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

This now calls
NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking().

(WebKit::NetworkDataTaskCocoa::didReceiveResponse):

This now calls
NetworkDataTaskCocoa::updateFirstPartyInfoForTaskAndSession().

(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

This now calls
NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking().

  • Shared/ResourceLoadStatisticsParameters.h:

Now holds a WebCore::CNAMECloakingMitigationEnabled flag.

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetResourceLoadStatisticsFirstPartyHostCNAMEDomainForTesting):

Used to mock CNAME resolution data.

(WKWebsiteDataStoreSetResourceLoadStatisticsThirdPartyCNAMEDomainForTesting):

Used to mock CNAME resolution data.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setFirstPartyHostCNAMEDomainForTesting):
(WebKit::NetworkProcessProxy::setThirdPartyCNAMEDomainForTesting):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

Now handles the WebCore::CNAMECloakingMitigationEnabled flag.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

Now handles the WebCore::CNAMECloakingMitigationEnabled flag.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyHostCNAMEDomainForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsThirdPartyCNAMEDomainForTesting):
(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Source/WTF:

This change defines HAVE_CFNETWORK_CNAME_AND_COOKIE_TRANSFORM_SPI.

  • wtf/PlatformHave.h:

Tools:

This patch adds two TestRunner functions which allows for testing
with data that would otherwise come from DNS resolution:

  • statisticsSetFirstPartyHostCNAMEDomain()
  • statisticsSetThirdPartyCNAMEDomain()
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::statisticsSetFirstPartyHostCNAMEDomain):
(WTR::TestRunner::statisticsCallDidSetFirstPartyHostCNAMEDomainCallback):
(WTR::TestRunner::statisticsSetThirdPartyCNAMEDomain):
(WTR::TestRunner::statisticsCallDidSetThirdPartyCNAMEDomainCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setStatisticsFirstPartyHostCNAMEDomain):
(WTR::TestController::setStatisticsThirdPartyCNAMEDomain):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didSetFirstPartyHostCNAMEDomain):
(WTR::TestInvocation::didSetThirdPartyCNAMEDomain):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname.html: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname.html: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname.html: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname.html: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname.html: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.html: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.html: Added.
  • platform/ios-13/TestExpectations:

New tests marked as [ Skip ].

  • platform/ios-wk2/TestExpectations:

New tests marked as [ Pass ] in general.

  • platform/mac-wk2/TestExpectations:

New tests marked as [ Pass ] for BigSur+.

  • platform/wk2/TestExpectations:

New tests marked as [ Skip ] in general.

1:02 PM Changeset in webkit [265388] by Chris Dumez
  • 8 edits
    2 adds in trunk

length attribute is missing on OfflineAudioContext
https://bugs.webkit.org/show_bug.cgi?id=215287

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:

Source/WebCore:

length attribute is missing on OfflineAudioContext:

Test: webaudio/offlineaudiocontext-length.html

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::renderTarget const):

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::length const):

  • Modules/webaudio/OfflineAudioContext.h:
  • Modules/webaudio/OfflineAudioContext.idl:

LayoutTests:

Add layout test coverage.

  • webaudio/offlineaudiocontext-length-expected.txt: Added.
  • webaudio/offlineaudiocontext-length.html: Added.
12:27 PM Changeset in webkit [265387] by Alexey Shvayka
  • 22 edits
    2 copies
    1 move
    2 deletes in trunk

Reduce the amount of custom binding code for JSXPathNSResolver
https://bugs.webkit.org/show_bug.cgi?id=161030

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/idlharness.window-expected.txt:
  • web-platform-tests/domxpath/callback-interface-expected.txt:

Source/WebCore:

This patch introduces CustomXPathNSResolver callback interface,
cleaning up CodeGeneratorJS.pm and removing custom binding code.

XPathNSResolver is kept as a wrapper for NativeXPathNSResolver, preserving common
case performance via IDL interface converter, and because a callback interface
can't be returned from a function without substantial code generator change.

Also, improves non-callable method error message and fixes 2 spec incompatibilities:
a) no "lookupNamespaceURI" method lookup on functions [1];
b) resolver's "prefix" parameter is required [2].

Since C++ methods can't be overload based on return type, this patch adds
[ImplementedAs] IDL attribute support for callback interface methods.

Because XPathNSResolver wrappers are always temporary (no reference is kept),
[IsWeakCallback] IDL attribute isn't added, preserving strong reference.

[1]: https://heycam.github.io/webidl/#call-a-user-objects-operation (step 10.1)
[2]: https://dom.spec.whatwg.org/#dom-xpathnsresolver-lookupnamespaceuri

Tests: imported/w3c/web-platform-tests/dom/idlharness.window.js

imported/w3c/web-platform-tests/domxpath/callback-interface.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/IDLTypes.h:
  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomXPathNSResolver.cpp: Removed.
  • bindings/js/JSCustomXPathNSResolver.h: Removed.
  • bindings/js/JSDOMConvertXPathNSResolver.h:

(WebCore::Converter<IDLInterface<XPathNSResolver>>::convert):
(WebCore::Converter<IDLXPathNSResolver<T>>::convert): Deleted.
(WebCore::JSConverter<IDLXPathNSResolver<T>>::convert): Deleted.
(WebCore::JSConverter<IDLXPathNSResolver<T>>::convertNewlyCreated): Deleted.

  • bindings/scripts/CodeGenerator.pm:

(IsBuiltinType):
(IsWrapperType):

  • bindings/scripts/CodeGeneratorJS.pm:

(AddToIncludesForIDLType):
(GenerateHeader):
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
(GetBaseIDLType):
(NativeToJSValueDOMConvertNeedsState):
(NativeToJSValueDOMConvertNeedsGlobalObject):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):

  • xml/CustomXPathNSResolver.cpp: Copied from Source/WebCore/bindings/js/JSXPathNSResolverCustom.cpp.

(WebCore::CustomXPathNSResolver::lookupNamespaceURI):

  • xml/CustomXPathNSResolver.h: Copied from Source/WebCore/bindings/js/JSXPathNSResolverCustom.cpp.
  • xml/CustomXPathNSResolver.idl: Renamed from Source/WebCore/bindings/js/JSXPathNSResolverCustom.cpp.
  • xml/XPathNSResolver.idl:

LayoutTests:

  • fast/dom/TreeWalker/acceptNode-filter-expected.txt:
  • fast/xpath/nsresolver-bad-object-expected.txt:
12:24 PM Changeset in webkit [265386] by Jonathan Bedard
  • 4 edits
    1 copy
    1 add in trunk/Tools

[webkitcorepy] Add mocks.Time
https://bugs.webkit.org/show_bug.cgi?id=214475

Reviewed by Dewei Zhu.

Provide a mock construct which allows basic time utilities to be used without
actually waiting.

  • Scripts/libraries/webkitcorepy/README.md: Add documentation of mocks.Time.
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks: Added.
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/init.py: Added.
  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/time_.py: Added.

(_MetaTime): Meta-class for Time object.
(add_metaclass): Python 2/3 compatible function to add meta-class to class.
(Time): Mock Time decorator.

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/mocks: Added.
  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/mocks/init.py: Added.
  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/mocks/time_unittest.py: Added.

(MockTime): Verify the functionality of mocks.Time.

11:31 AM Changeset in webkit [265385] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Debug ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-success-external-classic.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215283

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:27 AM Changeset in webkit [265384] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitcorepy] Add aliases to Autoinstall packages
https://bugs.webkit.org/show_bug.cgi?id=215276
<rdar://problem/66688543>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.init): Add import aliases.
(AutoInstall.register): When given an alias, a package will be automatically installed when that alias is imported.

11:18 AM Changeset in webkit [265383] by sbarati@apple.com
  • 4 edits in trunk/Source

Use thread_switch instead of switch_pri to drop priority to zero for 1ms instead of 10
https://bugs.webkit.org/show_bug.cgi?id=215248

Reviewed by Yusuke Suzuki.

Source/bmalloc:

  • bmalloc/Mutex.cpp:

(bmalloc::yield):
(bmalloc::Mutex::lockSlowCase):

Source/WTF:

This seems to be a slight JetStream2 and Speedometer2 speedup. In the
range of 0%-0.75%, depending on device.

  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::yield):

11:06 AM Changeset in webkit [265382] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitcorepy] Support wheels in the autoinstaller
https://bugs.webkit.org/show_bug.cgi?id=215230
<rdar://problem/66636527>

Reviewed by Stephanie Lewis.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, include packaging and it's dependencies.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.Archive.unpack): .whl files are zip files.
(Package.init): Allow programs to request packages as wheels.
(Package.archives): Search for compatible .whl files.
(Package.install): Ensure that .egg-info directories are appropriately chowned, unpack wheels, format manifest.json.
(AutoInstall.tags): List the packaging tags associated with this distribution, but with a work-around for Big Sur.

10:52 AM Changeset in webkit [265381] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Debug ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-parse-error-external-module.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215278

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:40 AM Changeset in webkit [265380] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Do not email bot watcher when first run of layout tests exceeds failure limit
https://bugs.webkit.org/show_bug.cgi?id=215274

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ReRunWebKitTests.evaluateCommand): Do not send emails for flaky tests when first_results_did_exceed_test_failure_limit.

9:49 AM Changeset in webkit [265379] by Antti Koivisto
  • 7 edits
    2 adds in trunk

REGRESSION (r260276): instructure.com custom PDF viewer stops scrolling / loading after switching to another tab then switching back
https://bugs.webkit.org/show_bug.cgi?id=215215
<rdar://problem/65743028>

Reviewed by Simon Fraser.

Source/WebCore:

Test: scrollingcoordinator/overflow-proxy-reattach.html

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.cpp:

(WebCore::ScrollingStateOverflowScrollProxyNode::setPropertyChangedBitsAfterReattach):

We need to reset OverflowScrollingNode after reattach.

  • page/scrolling/ScrollingStateOverflowScrollProxyNode.h:
  • testing/Internals.cpp:

(WebCore::Internals::setPageIsInWindow):

  • testing/Internals.h:
  • testing/Internals.idl:

Add direct testing support for background tab state.

LayoutTests:

  • scrollingcoordinator/overflow-proxy-reattach-expected.html: Added.
  • scrollingcoordinator/overflow-proxy-reattach.html: Added.
9:39 AM Changeset in webkit [265378] by rmorisset@apple.com
  • 2 edits in trunk/Source/WTF

Fix inequality in newly added assertion
https://bugs.webkit.org/show_bug.cgi?id=215272

Reviewed by Alexey Proskuryakov.

No new tests, as it was caught by our testing infrastructure (not sure why it only got caught after landing).

  • wtf/IndexSparseSet.h:

(WTF::OverflowHandler>::validate):

9:36 AM Changeset in webkit [265377] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] svg/animations/smil-multiple-animate-list.svg is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=215273

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:14 AM Changeset in webkit [265376] by Wenson Hsieh
  • 10 edits in trunk

Remove UIScriptController.removeAllDynamicDictionaries()
https://bugs.webkit.org/show_bug.cgi?id=215207

Reviewed by Sam Weinig.

Source/WebKit:

See Tools/ChangeLog for more detail.

  • Platform/spi/ios/UIKitSPI.h:

Tools:

Instead of clearing out learned words from the spellchecking dictionary between every test, simply disable
correction learning during each test.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::replaceTextAtRange):
(WTR::UIScriptController::removeAllDynamicDictionaries): Deleted.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::removeAllDynamicDictionaries): Deleted.

LayoutTests:

See Tools/ChangeLog for more detail.

  • fast/events/ios/contenteditable-autocorrect.html:
9:03 AM Changeset in webkit [265375] by Chris Dumez
  • 39 edits in trunk/Source/WebCore

Stop storing the sampleRate on AudioNode and get it from the AudioContext instead
https://bugs.webkit.org/show_bug.cgi?id=215246

Reviewed by Eric Carlson.

Stop storing the sampleRate on AudioNode and get it from the AudioContext instead.
This avoids having to pass the sampleRate everywhere when we construct nodes.

No new tests, no behavior change.

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::AnalyserNode):

  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):

  • Modules/webaudio/AudioBasicInspectorNode.h:
  • Modules/webaudio/AudioBasicProcessorNode.cpp:

(WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):

  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::AudioDestinationNode):

  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::sampleRate const):
(WebCore::AudioNode::processIfNecessary):

  • Modules/webaudio/AudioNode.h:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::createScriptProcessor):

  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::BiquadFilterNode):

  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):
(WebCore::ChannelMergerNode::ChannelMergerNode):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):
(WebCore::ChannelSplitterNode::ChannelSplitterNode):

  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::sampleRate const):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode):

  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::DynamicsCompressorNode):

  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::GainNode):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):

  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):

  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::OscillatorNode):

  • Modules/webaudio/PannerNode.cpp:
  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::create):
(WebCore::ScriptProcessorNode::ScriptProcessorNode):

  • Modules/webaudio/ScriptProcessorNode.h:
  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::WaveShaperNode):

  • Modules/webaudio/WebKitAudioContext.cpp:

(WebCore::WebKitAudioContext::createWebKitPanner):

  • Modules/webaudio/WebKitAudioPannerNode.cpp:

(WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):

  • Modules/webaudio/WebKitAudioPannerNode.h:
8:53 AM Changeset in webkit [265374] by Hector Lopez
  • 3 edits in trunk/LayoutTests

[ macOS iOS wk 2 Debug ] storage/indexeddb/modern/new-database-after-user-delete.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215271

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
8:51 AM Changeset in webkit [265373] by msaboff@apple.com
  • 3 edits
    1 add in trunk

RegExp sticky not matching alternates correctly, ignoring lastIndex requirement
https://bugs.webkit.org/show_bug.cgi?id=214181

Reviewed by Yusuke Suzuki.

JSTests:

New test.

  • stress/regexp-sticky-tests.js: Added.

(assert):

Source/JavaScriptCore:

In the YARR JIT, we need to check for sticky patterns before checking for fixed character
terms when backtracking. The YARR interpreter doesn't have this issue.

  • yarr/YarrJIT.cpp:
7:49 AM Changeset in webkit [265372] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/wpt/resource-timing/rt-revalidate-requests-3.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215268

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
7:13 AM Changeset in webkit [265371] by rmorisset@apple.com
  • 5 edits
    1 add in trunk

IndexSparseSet::sort() should update m_map
https://bugs.webkit.org/show_bug.cgi?id=215100

Reviewed by Yusuke Suzuki and Mark Lam.

Source/WTF:

IndexSparseSet is made of two fields: m_values and m_map, and the two must be kept in sync.
But its sort routine currently only sorts m_values.
This might be related to a random crash that seems to occasionally occur in the vicinity of this code in the wild (rdar://problem/64594569)

I added a validation routine, that I run in the tests that I added to TestWTF.
I verified, and without the fix, the validation routine fails after the sorting.

I also fixed remove() which was wrong on non-trivial types (thanks to Mark for catching this other bug).

  • wtf/IndexSparseSet.h:

(WTF::OverflowHandler>::remove):
(WTF::OverflowHandler>::sort):
(WTF::OverflowHandler>::validate):

Tools:

TestWTF was not testing IndexSparseSet at all. It now does.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/IndexSparseSet.cpp: Added.

(TestWebKitAPI::TEST):

7:05 AM Changeset in webkit [265370] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

EWS emails about build failure should include last few relevant error logs
https://bugs.webkit.org/show_bug.cgi?id=215264

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.filter_logs_containing_error):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeCompileWebKitResults.test_filter_logs_containing_error_with_too_many_errors):

4:32 AM Changeset in webkit [265369] by youenn@apple.com
  • 4 edits in trunk

Introduce a Vector::isolatedCopy() &&
https://bugs.webkit.org/show_bug.cgi?id=215160

Reviewed by Alex Christensen.

Source/WTF:

By introducing an isolatedCopy() &&, we remove the need to allocate a vector buffer.
This can make a Vector<String>::isolatedCopy() allocate no memory at all in cases like RegistrationDatabase::schedulePushChanges.

  • wtf/Vector.h:

(WTF::Malloc>::isolatedCopy const):
(WTF::Malloc>::isolatedCopy):

Tools:

  • TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

4:31 AM Changeset in webkit [265368] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add method to send email notifications to patch author for layout test failures
https://bugs.webkit.org/show_bug.cgi?id=215231

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeLayoutTestsResults.send_email_for_new_test_failures):

2:38 AM Changeset in webkit [265367] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

ANGLE: No need to check for Catalyst in the iOS build
https://bugs.webkit.org/show_bug.cgi?id=215249
<rdar://problem/66655478>

Reviewed by Tim Horton.

The DisplayEAGL class is never used for Catalyst, so doesn't
need to handle it.

  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm:

(rx::DisplayEAGL::generateConfigs):

2:28 AM Changeset in webkit [265366] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Pocket City game play area is blank (WebGL is broken in Catalyst)
https://bugs.webkit.org/show_bug.cgi?id=215251

Reviewed by Tim Horton.

Our configuration for WebGL under Catalyst was incorrect. Since
it uses "desktop" OpenGL, it had to use the normal macOS setup
(enabling texture rectangle extension, and the correct target).

  • platform/graphics/GraphicsContextGL.h: Add PLATFORM(MACCATALYST).
  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: Ditto.

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

1:32 AM Changeset in webkit [265365] by Paulo Matos
  • 2 edits in trunk/JSTests

Skip test on ARM32 - test is flaky in mini-mode

Unreviewed Gardening.

  • stress/put-direct-index-broken-2.js:
12:55 AM Changeset in webkit [265364] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix warnings related to unsigned >=0 ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=215223

Patch by Rob Buis <rbuis@igalia.com> on 2020-08-07
Reviewed by Sergio Villar Senin.

Fix warnings related to unsigned >=0 ASSERTs by removing the expressions. Example warning:
TextCheckingHelper.cpp:425:39: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]

  • editing/Editor.cpp:

(WebCore::Editor::markAndReplaceFor):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspelledWordOrUngrammaticalPhrase const):
(WebCore::TextCheckingHelper::findUngrammaticalPhrases const):
(WebCore::TextCheckingHelper::guessesForMisspelledWordOrUngrammaticalPhrase const):

Note: See TracTimeline for information about the timeline view.