⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



May 16, 2021:

10:22 PM Changeset in webkit [277577] by Cameron McCormack
  • 90 edits
    4 copies
    35 moves
    2 adds
    115 deletes in trunk/LayoutTests

Make MathML WPTs wait for all font loads
https://bugs.webkit.org/show_bug.cgi?id=225728

Reviewed by Darin Adler.

With current interop issues around font loading, there's no guarantee
that waiting on the document.fonts.ready promise in the load event will
catch font loads initiated by content. Since these tests are not
explicitly testing font loading behavior, change to wait explicitly for
all fonts to load.

LayoutTests/imported/w3c:

  • web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-1.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-bar-002.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-001-expected.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-001.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-002-expected.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-002.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-003-expected.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-003.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-004-expected.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-004.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-005-expected.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-005.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-006-expected.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-006.html:
  • web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy-expected.txt:
  • web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html:
  • web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt.
  • web-platform-tests/mathml/presentation-markup/mrow/no-spacing.html:
  • web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt.
  • web-platform-tests/mathml/presentation-markup/mrow/spacing.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-axis-height-1.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005.html:
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt.
  • web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006.html:
  • web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001.html:
  • web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt.
  • web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/cramped-001.html:
  • web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt.
  • web-platform-tests/mathml/presentation-markup/scripts/empty-underover.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt.
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative.html:
  • web-platform-tests/mathml/presentation-markup/tables/table-axis-height.html:
  • web-platform-tests/mathml/relations/css-styling/color-005.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-013.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-014.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-1.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-2.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-3.html:
  • web-platform-tests/mathml/relations/css-styling/lengths-2.html:
  • web-platform-tests/mathml/relations/css-styling/visibility-005.html:
  • web-platform-tests/mathml/support/fonts.js: Added.

(loadAllFonts):

LayoutTests:

Many of these tests were flaky due to this, and so we now no longer
need platform specific expectations.

  • TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-2-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
  • platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Removed.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Removed.
  • platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Removed.
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
  • platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
9:20 PM Changeset in webkit [277576] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Implement baseline op_enter, op_ret, op_check_traps, op_throw using JIT thunks.
https://bugs.webkit.org/show_bug.cgi?id=225846

Reviewed by Filip Pizlo.

op_enter, op_ret, op_check_traps are 3 of the most common opcodes. Throwing in
op_throw because it's easy.

In this patch, the following changes were also made:

  1. Renamed copyCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer() to copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer().

It is only used by the baseline JIT. Changed it to always operate on
RegisterAtOffsetList::llintBaselineCalleeSaveRegisters(). This removes the
dependency on a current codeBlock being compiled, and allows us to use it
for a JIT thunk.

  1. Added JIT::emitNakedNearJump() to make it easy to emit direct jumps to JIT thunks.

Currently, it is only used by op_ret and op_throw.

  1. Changed some thunks to use emitNonPatchableExceptionCheck() instead emitExceptionCheck() to make it explicit that these are not intended to be patchable.

With this patch, --dumpLinkBufferStats shows the following changes in emitted
JIT code size (using a single run of the CLI version of JetStream2 on AS Mac)
comparing to current tip of tree:

Base New Diff

BaselineJIT: 77429400 (73.842430 MB) 72407904 (69.053558 MB) 0.94x (reduction)

DFG: 36160880 (34.485703 MB) 36622176 (34.925629 MB) 1.01x

Thunk: 23159024 (22.086166 MB) 23295448 (22.216270 MB) 1.01x

InlineCache: 22068348 (21.046017 MB) 22157236 (21.130787 MB) 1.00x

FTL: 6004736 (5.726562 MB) 6030536 (5.751167 MB) 1.00x

Wasm: 2429204 (2.316669 MB) 2300872 (2.194283 MB) 0.95x (probably noise)

YarrJIT: 1522488 (1.451958 MB) 1522616 (1.452080 MB) 1.00x

CSSJIT: 0 0

Uncategorized: 0 0

Cumulative diff since the start of this effort to put more code in JIT thunks:

Base New Diff

BaselineJIT: 89089964 (84.962811 MB) 72407904 (69.053558 MB) 0.81x (reduction)

DFG: 39117360 (37.305222 MB) 36622176 (34.925629 MB) 0.94x (reduction)

Thunk: 23230968 (22.154778 MB) 23295448 (22.216270 MB) 1.00x

InlineCache: 22027416 (21.006981 MB) 22157236 (21.130787 MB) 1.01x

FTL: 6575772 (6.271145 MB) 6030536 (5.751167 MB) 0.92x (reduction)

Wasm: 2302724 (2.196049 MB) 2300872 (2.194283 MB) 1.00x

YarrJIT: 1538956 (1.467663 MB) 1522616 (1.452080 MB) 0.99x

CSSJIT: 0 0

Uncategorized: 0 0

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::sub64):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor):
(JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::link):

  • jit/JIT.h:

(JSC::NearJumpRecord::NearJumpRecord):

  • jit/JITInlines.h:

(JSC::JIT::emitNakedNearJump):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_ret):
(JSC::JIT::op_ret_handlerGenerator):
(JSC::JIT::emit_op_throw):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::emit_op_enter):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emitSlow_op_check_traps):
(JSC::JIT::op_check_traps_handlerGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::slow_op_put_to_scopeGenerator):

  • jit/JITThunks.cpp:

(JSC::JITThunks::preinitializeExtraCTIThunks):

  • jit/SlowPathCall.cpp:

(JSC::JITSlowPathCall::generateThunk):

3:42 PM Changeset in webkit [277575] by Russell Epstein
  • 7 edits in branches/safari-612.1.12-branch/Source/WebCore

Apply patch. rdar://problem/78084125

3:00 PM Changeset in webkit [277574] by weinig@apple.com
  • 8 edits
    2 adds in trunk

Support serializing ImageData object colorSpace property in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=225854

Reviewed by Chris Dumez.

Source/WebCore:

Test: storage/indexeddb/structured-clone-image-data-display-p3.html

Update SerializedScriptValue schema to version 8 and add serialization
of the colorSpace property.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::PredefinedColorSpaceTag):
Add copy of the PredefinedColorSpace values that are guaranteed to
stay consistent forever.

(WebCore::CloneSerializer::dumpIfTerminal):
Add encoding of the colorSpace when serializing ImageData.

(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::read):
Add coders for PredefinedColorSpaceTag.

(WebCore::CloneDeserializer::getJSValue):
Replace multiple overloads with one perfect forwarding overload which does
what we want and works with r-values.

(WebCore::CloneDeserializer::readImageBitmap):
Use auto in two places.

(WebCore::CloneDeserializer::readTerminal):
Add decoding of the colorSpace when deserializing ImageData. For prior versions,
the colorSpace defaults to sRGB, which was the only color space supported.

LayoutTests:

Updates existing tests for new serialization version (version 8) and support
for serializing color space in ImageData.

To avoid multiple result files due to lack of support for display-p3, testing
that the display-p3 color space is serialized correctly was put into its own
test that is skipped on non-supporting platforms.

  • platform/glib/TestExpectations:
  • platform/win/TestExpectations:

Skip structured-clone-image-data-display-p3.html on platforms that don't support
display-p3 color spaces.

  • fast/storage/serialized-script-value.html:

Bump version to version 8.

  • storage/indexeddb/resources/structured-clone.js:
  • storage/indexeddb/structured-clone-expected.txt:

Add tests for ImageData colorSpace round tripping.

  • storage/indexeddb/structured-clone-image-data-display-p3-expected.txt: Added.
  • storage/indexeddb/structured-clone-image-data-display-p3.html: Added.

Add test for ImageData display-p3 colorSpace round tripping as its own test
to allow targetted skipping by non-supporting platforms.

1:32 PM Changeset in webkit [277573] by jer.noble@apple.com
  • 29 edits in trunk

MediaSessionCoordinator survives page reload/navigation
https://bugs.webkit.org/show_bug.cgi?id=225822

Reviewed by Eric Carlson.

Source/WebCore:

Because the MediaSessionCoordinator is created and owned by Page, it will survive
a reload (as Page is not re-created), and the same MediaSessionCoordinator object
will be added to MediaSession when the new Navigator is created.

Rather than have Page own the coordinator itself, it can instead own the
MediaSessionCoordinatorPrivate used to create the coordinator. When the MediaSession
is created, it will query the Page to ask for a MediaSessionCoordinatorPrivate to
use to create the coordinator, guaranteeing a new object is created.

The session itself should be left when the document is put into Back/Forward
Cache, or closed when the document is stopped entirely.

A few drive-by fixes:

The direction of coordinatorStateChanged() is now reversed; it flows down from the
UIProcess to update the state of the MediaSessionCoordinator. This allows the coordinator
to react when it's private implementation changes state.

Add a new upward notification when the trackIdentifier in MediaMetadata changes.

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::suspend):
(WebCore::MediaSession::stop):
(WebCore::MediaSession::createCoordinator):
(WebCore::MediaSession::setCoordinator): Deleted.

  • Modules/mediasession/MediaSession.h:
  • Modules/mediasession/MediaSessionCoordinator.cpp:

(WebCore::MediaSessionCoordinator::join):
(WebCore::MediaSessionCoordinator::leave):
(WebCore::MediaSessionCoordinator::close):
(WebCore::MediaSessionCoordinator::metadataChanged):
(WebCore::MediaSessionCoordinator::positionStateChanged):
(WebCore::MediaSessionCoordinator::playbackStateChanged):
(WebCore::MediaSessionCoordinator::readyStateChanged):
(WebCore::MediaSessionCoordinator::seekSessionToTime):
(WebCore::MediaSessionCoordinator::pauseSession):
(WebCore::MediaSessionCoordinator::coordinatorStateChanged):

  • Modules/mediasession/MediaSessionCoordinator.h:
  • Modules/mediasession/MediaSessionCoordinatorPrivate.h:

(WebCore::MediaSessionCoordinatorClient::coordinatorStateChanged):

  • page/Page.cpp:

(WebCore::Page::setMediaSessionCoordinator):
(WebCore::Page::invalidateMediaSessionCoordinator):

  • page/Page.h:

(WebCore::Page::mediaSessionCoordinator):

  • testing/Internals.cpp:

(WebCore::Internals::registerMockMediaSessionCoordinator):

  • testing/Internals.h:
  • testing/MockMediaSessionCoordinator.cpp:

(WebCore::MockMediaSessionCoordinator::trackIdentifierChanged):
(WebCore::MockMediaSessionCoordinator::coordinatorStateChanged): Deleted.

  • testing/MockMediaSessionCoordinator.h:

Source/WebKit:

Update the classes affected by virtual function changes in MediaSessionCoordinator. Update
the creation mechanism inside WebPage/Proxy.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]):

  • UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h:
  • UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:

(WebKit::RemoteMediaSessionCoordinatorProxy::trackIdentifierChanged):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatorStateChanged):

  • UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
  • UIProcess/Media/RemoteMediaSessionCoordinatorProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::createMediaSessionCoordinator):

  • WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:

(WebKit::RemoteMediaSessionCoordinator::trackIdentifierChanged):
(WebKit::RemoteMediaSessionCoordinator::coordinatorStateChanged):

  • WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
  • WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createMediaSessionCoordinator):
(WebKit::WebPage::invalidateMediaSessionCoordinator):

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

Tools:

  • TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm:

(-[_WKMockMediaSessionCoordinator trackIdentifierChanged:]):

10:46 AM Changeset in webkit [277572] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

IsoAlignedMemoryAllocator should use BitVector
https://bugs.webkit.org/show_bug.cgi?id=225852

Reviewed by Mark Lam.

Right now IsoAlignedMemoryAllocator uses FastBitVector, which does
not have inline storage for small sizes. However, it's not
uncommon for IsoAlignedMemoryAllocator to be holding onto only a
few blocks. Those blocks may exist for a long time, which some
data indicates causes IsoAlignedMemoryAllocator's FastBitVector to
pin a full physical page for one 8 byte allocation. Since
accessing the commited blocks list is not a particularly hot
operation, we should just use a BitVector instead.

This seems to be perf neutral on benchmarks.

  • heap/IsoAlignedMemoryAllocator.cpp:

(JSC::IsoAlignedMemoryAllocator::~IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::tryAllocateAlignedMemory):
(JSC::IsoAlignedMemoryAllocator::freeAlignedMemory):

  • heap/IsoAlignedMemoryAllocator.h:
10:18 AM Changeset in webkit [277571] by Chris Dumez
  • 29 edits in trunk

Modernize / Optimize SQLiteStatement creation and preparation
https://bugs.webkit.org/show_bug.cgi?id=225791

Reviewed by Sam Weinig.

Source/WebCore:

Modernize / Optimize SQLiteStatement creation and preparation:

  • The SQLiteStatement constructor is now private so that we never have a SQLiteStatement that has not been "prepared". Only the SQLiteDatabase can now construct SQLiteStatement objects. We already needed to pass a SQLiteDatabase reference when constructing the SQLiteStatement anyway.
  • The construct AND prepare a SQLiteStatement, we now call SQLiteDatabase::prepareStatement() to get a stack object or SQLiteDatabase::prepareHeapStatement() to get a heap one. These functions return an Expected<> type so they will either return a "prepared" SQLiteStatement or an unexpected SQLite error code.
  • The prepare*Statement() functions now avoid String allocations in most cases thanks to overloads taking in the query as an ASCIILiteral.
  • Drop finalize() function on SQLiteStatement so SQLiteStatement objects are always valid. It simplifies the implementation of SQLiteStatement member functions. The SQLiteStatement destructor "finalizes" the statement so users can simply destroy the SQLiteStatement if they need the object to be finalize at a certain point (e.g. before closing a database).
  • Drop the prepare() & prepareAndStep() SQLiteStatement member functions now that SQLiteStatement are always prepared.
  • Stop storing the SQL query as a String data member in SQLiteStatement class. This is no longer needed now that they is no separe prepare step after the construction. This makes the SQLiteStatement a bit smaller.
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidBlobTables):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsRecordIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatement):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::createSQLiteStatement):
(WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindPreIndexStatementIfNecessary):
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):

  • Modules/webdatabase/Database.cpp:

(WebCore::setTextValueInDatabase):
(WebCore::retrieveTextResultFromDatabase):
(WebCore::Database::performGetTableNames):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::hasEntryForOriginNoLock):
(WebCore::DatabaseTracker::hasEntryForDatabase):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesNoLock):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::quotaNoLock):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):

  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::execute):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::loadManifestHostHashes):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
(WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
(WebCore::ApplicationCacheStorage::executeStatement):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::storeUpdatedType):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):
(WebCore::ApplicationCacheStorage::storeNewestCache):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::remove):
(WebCore::ApplicationCacheStorage::manifestURLs):
(WebCore::ApplicationCacheStorage::deleteCacheGroupRecord):
(WebCore::ApplicationCacheStorage::checkForDeletedResources):
(WebCore::ApplicationCacheStorage::flatFileAreaSize):

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::verifySchemaVersion):
(WebCore::CookieJarDB::checkDatabaseValidity):
(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::getAllCookies):
(WebCore::CookieJarDB::allDomains):
(WebCore::CookieJarDB::createPrepareStatement):
(WebCore::CookieJarDB::executeSql):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::useWALJournalMode):
(WebCore::SQLiteDatabase::maximumSize):
(WebCore::SQLiteDatabase::setMaximumSize):
(WebCore::SQLiteDatabase::pageSize):
(WebCore::SQLiteDatabase::freeSpaceSize):
(WebCore::SQLiteDatabase::totalSize):
(WebCore::SQLiteDatabase::executeCommand):
(WebCore::SQLiteDatabase::returnsAtLeastOneResult):
(WebCore::SQLiteDatabase::tableExists):
(WebCore::SQLiteDatabase::clearAllTables):
(WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
(WebCore::constructAndPrepareStatement):
(WebCore::SQLiteDatabase::prepareStatement):
(WebCore::SQLiteDatabase::prepareHeapStatement):

  • platform/sql/SQLiteDatabase.h:
  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::SQLiteStatement):
(WebCore::SQLiteStatement::~SQLiteStatement):
(WebCore::SQLiteStatement::step):
(WebCore::SQLiteStatement::reset):
(WebCore::SQLiteStatement::executeCommand):
(WebCore::SQLiteStatement::returnsAtLeastOneResult):
(WebCore::SQLiteStatement::bindBlob):
(WebCore::SQLiteStatement::bindText):
(WebCore::SQLiteStatement::bindInt):
(WebCore::SQLiteStatement::bindInt64):
(WebCore::SQLiteStatement::bindDouble):
(WebCore::SQLiteStatement::bindNull):
(WebCore::SQLiteStatement::bindParameterCount const):
(WebCore::SQLiteStatement::columnCount):
(WebCore::SQLiteStatement::isColumnNull):
(WebCore::SQLiteStatement::isColumnDeclaredAsBlob):
(WebCore::SQLiteStatement::getColumnName):
(WebCore::SQLiteStatement::getColumnValue):
(WebCore::SQLiteStatement::getColumnText):
(WebCore::SQLiteStatement::getColumnDouble):
(WebCore::SQLiteStatement::getColumnInt):
(WebCore::SQLiteStatement::getColumnInt64):
(WebCore::SQLiteStatement::getColumnBlobAsString):
(WebCore::SQLiteStatement::getColumnBlobAsVector):
(WebCore::SQLiteStatement::returnTextResults):
(WebCore::SQLiteStatement::returnIntResults):
(WebCore::SQLiteStatement::returnInt64Results):
(WebCore::SQLiteStatement::returnDoubleResults):

  • platform/sql/SQLiteStatement.h:
  • platform/win/SearchPopupMenuDB.cpp:

(WebCore::SearchPopupMenuDB::checkDatabaseValidity):
(WebCore::SearchPopupMenuDB::verifySchemaVersion):
(WebCore::SearchPopupMenuDB::executeSimpleSql):
(WebCore::SearchPopupMenuDB::createPreparedStatement):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::ensureValidRecordsTable):
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):

Source/WebKit:

Update code base now that the SQLiteDatabase & SQLiteStatement API has changed.
Also use more ASCIILiterals.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::checkForMissingTablesInSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::enableForeignKeys):
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::missingUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::scopedStatement const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
(WebKit::ResourceLoadStatisticsDatabaseStore::aggregatedThirdPartyData const):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearTopFrameUniqueRedirectsToSinceSameSiteStrictEnforcement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockAndDeleteCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockButKeepCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsWithUserInteractionAsFirstParty const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsWithStorageAccess const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectSubStatisticsCount):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
(WebKit::ResourceLoadStatisticsDatabaseStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):

  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::migrateItemTableIfNeeded):
(WebKit::LocalStorageDatabase::databaseIsEmpty const):
(WebKit::LocalStorageDatabase::scopedStatement const):

  • NetworkProcess/WebStorage/LocalStorageDatabase.h:
  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::IconDatabase):
(WebKit::IconDatabase::populatePageURLToIconURLMap):
(WebKit::IconDatabase::pruneTimerFired):
(WebKit::IconDatabase::iconIDForIconURL):
(WebKit::IconDatabase::setIconIDForPageURL):
(WebKit::IconDatabase::iconData):
(WebKit::IconDatabase::addIcon):
(WebKit::IconDatabase::updateIconTimestamp):
(WebKit::IconDatabase::deleteIcon):

Source/WebKitLegacy:

Update code base now that the SQLiteDatabase & SQLiteStatement API has changed.
Also use more ASCIILiterals.

  • Storage/StorageAreaSync.cpp:

(WebKit::StorageAreaSync::migrateItemTableIfNeeded):
(WebKit::StorageAreaSync::performImport):
(WebKit::StorageAreaSync::sync):
(WebKit::StorageAreaSync::deleteEmptyDatabase):

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::syncImportOriginIdentifiers):
(WebKit::StorageTracker::syncSetOriginDetails):
(WebKit::StorageTracker::syncDeleteAllOrigins):
(WebKit::StorageTracker::syncDeleteOrigin):
(WebKit::StorageTracker::databasePathForOrigin):

Source/WTF:

Allow constructing a UniqueRef<> from a C++ reference. std::unique_ptr<>() can be constructed
using a raw pointer and we can construct a UniqueRef<> from a std::unique_ptr<>() so I see
no reason not to allow that.

The reason I needed this is that I want to prevent call sites from allocating SQLiteStatement
without going through the SQLiteDatabase. As a result, I made the SQLiteStatement constructor
private and marked SQLiteDatabase as a friend class. SQLiteDatabase has to heap-allocate
a SQLiteStatement via new and then construct a UniqueRef<> for it. SQLiteDatabase cannot use
makeUniqueRef() because the SQLiteStatement constructor is private. I also cannot mark
makeUniqueRef() as a friend function of SQLiteStatement or anybody could heap allocate a
SQLiteStatement via makeUniqueRef (not just the SQLiteDatabase).

  • wtf/UniqueRef.h:

(WTF::UniqueRef::UniqueRef):

Tools:

Update code base now that the SQLiteDatabase & SQLiteStatement API has changed.
Also use more ASCIILiterals.

  • TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:

(TestWebKitAPI::addToDatabasesTable):

8:57 AM Changeset in webkit [277570] by Alan Bujtas
  • 18 edits in trunk/Source/WebCore

[LFC] Cleanup FormattingContext class
https://bugs.webkit.org/show_bug.cgi?id=225744

Reviewed by Antti Koivisto.

This final patch makes the FormattingContext interface uncluttered.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/FormattingState.h:

(WebCore::Layout::FormattingState::setIntrinsicWidthConstraints):
(WebCore::Layout::FormattingState::intrinsicWidthConstraints const):
(WebCore::Layout::FormattingState::setIntrinsicWidthConstraintsForBox):
(WebCore::Layout::FormattingState::intrinsicWidthConstraintsForBox const):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/LayoutUnits.h:

(WebCore::Layout::IntrinsicWidthConstraints::expand):
(WebCore::Layout::IntrinsicWidthConstraints::operator+=):
(WebCore::Layout::IntrinsicWidthConstraints::operator-=):

  • layout/formattingContexts/FormattingContext.cpp:
  • layout/formattingContexts/FormattingContext.h:

(WebCore::Layout::FormattingContext::root const):
(WebCore::Layout::FormattingContext::formattingState const):
(WebCore::Layout::FormattingContext::isBlockFormattingContext const):
(WebCore::Layout::FormattingContext::isInlineFormattingContext const):
(WebCore::Layout::FormattingContext::isTableFormattingContext const):
(WebCore::Layout::FormattingContext::isTableWrapperBlockFormattingContext const):
(WebCore::Layout::FormattingContext::isFlexFormattingContext const):
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::expand): Deleted.
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator+=): Deleted.
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator-=): Deleted.

  • layout/formattingContexts/FormattingGeometry.cpp:

(WebCore::Layout::FormattingGeometry::computedWidthValue):
(WebCore::Layout::FormattingGeometry::shrinkToFitWidth):
(WebCore::Layout::FormattingGeometry::constrainByMinMaxWidth const):
(WebCore::Layout::FormattingGeometry::constraintsForOutOfFlowContent):
(WebCore::Layout::FormattingGeometry::constraintsForInFlowContent const):

  • layout/formattingContexts/FormattingGeometry.h:
  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):

  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::intrinsicWidthConstraints):

  • layout/formattingContexts/block/BlockFormattingGeometry.h:
  • layout/formattingContexts/block/BlockMarginCollapse.cpp:
  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computedIntrinsicWidthConstraints):

  • layout/formattingContexts/flex/FlexFormattingGeometry.cpp:

(WebCore::Layout::FlexFormattingGeometry::intrinsicWidthConstraints):

  • layout/formattingContexts/flex/FlexFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):

  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell):

  • layout/formattingContexts/table/TableFormattingGeometry.h:
  • layout/formattingContexts/table/TableGrid.h:

(WebCore::Layout::TableGrid::setWidthConstraints):
(WebCore::Layout::TableGrid::widthConstraints const):
(WebCore::Layout::TableGrid::Slot::widthConstraints const):
(WebCore::Layout::TableGrid::Slot::setWidthConstraints):

8:21 AM Changeset in webkit [277569] by weinig@apple.com
  • 37 edits
    2 copies
    2 adds in trunk

Add support for creating/accessing/setting non-sRGB ImageData via canvas
https://bugs.webkit.org/show_bug.cgi?id=225841

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.p3-expected.txt:

Update result to passing.

Source/WebCore:

Test: fast/canvas/canvas-color-space-display-p3-ImageData.html

Add support for accessing non-sRGB (only DisplayP3 for now due
to the specification, but the support is general) pixel data in
HTML canvas.

Updates ImageData constructors and CanvasImageData operations to
take optional ImageDataSettings dictionaries, which contain an
optional color space (otherwise defaulting back to sRGB).

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/ImageDataSettings.h: Added.
  • html/ImageDataSettings.idl: Added.

Add new ImageDataSettings.idl and related files.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readImageBitmap):
Fixes FIXME and uses PixelBuffer directly rather than allocating
an unnecessary ImageData. This was done now since the relevent
ImageData constructor has gone away.

  • html/ImageData.cpp:

(WebCore::computeDataSize):
(WebCore::ImageData::computeColorSpace):
(WebCore::ImageData::create):
(WebCore::ImageData::createUninitialized):
(WebCore::ImageData::ImageData):
(WebCore::ImageData::pixelBuffer const):
(WebCore::ImageData::dataSize): Deleted.
(WebCore::ImageData::deepClone const): Deleted.

  • html/ImageData.h:

(WebCore::ImageData::size const):
(WebCore::ImageData::width const):
(WebCore::ImageData::height const):
(WebCore::ImageData::data const):
(WebCore::ImageData::colorSpace const):
(WebCore::ImageData::pixelBuffer const): Deleted.

  • Reworked ImageData to no longer store a PixelBuffer, which has extraneous information in it, but rather to store just what it needs IntSize, Ref<JSC::Uint8ClampedArray>, and now PredefinedColorSpace.
  • Updates create functions for new optional ImageDataSettings.
  • Adds createUninitialized which follows spec language for ImageData creation and is used by CanvasRenderingContext2D to create ImageData objects of with the right color spaces, allowing for fallback to the canvas' own color space when no ImageDataSettings color space is provided. It is uninitialized and therefore requires the client to initialize the data to allow for support for no alpha support in the future, which requires a non-zero initialization pattern.
  • html/ImageData.idl:

Add optional ImageDataSettings parameters and the new colorSpace attribute.

  • html/canvas/CanvasImageData.idl:

Add optional ImageDataSettings parameters.

  • html/canvas/CanvasRenderingContext2DBase.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::initializeEmptyImageData):
Add helper to initialize the ImageData buffer. Right now it always calls
zeroFill(), but in the future it will need to do more.

(WebCore::CanvasRenderingContext2DBase::createImageData const):
Update to account for this function being able to throw an exception (when
out of memory) and use the new createUninitialized/initializeEmptyImageData
to create a correctly color spaced ImageData.

(WebCore::CanvasRenderingContext2DBase::createImageData const):
Update for new optional ImageDataSettings and use the new createUninitialized
initializeEmptyImageData to create a correctly color spaced ImageData.

(WebCore::CanvasRenderingContext2DBase::getImageData const):
Moves parameter checks to the begining to match the spec, and uses new
createUninitialized/initializeEmptyImageData to create a correctly color
spaced ImageData. Also, use the ImageData's color space when getting
the pixel buffer to actually return the right data!

  • html/canvas/PredefinedColorSpace.cpp:

(WebCore::toPredefinedColorSpace):

  • html/canvas/PredefinedColorSpace.h:

Add conversion function from DestinationColorSpace to PredefinedColorSpace.
Since DestinationColorSpace is a superset of PredefinedColorSpace, this can
fail, so this conversion returns an Optional.

  • inspector/InspectorCanvas.cpp:
  • inspector/InspectorCanvasCallTracer.cpp:
  • inspector/InspectorCanvasCallTracer.h:

Stub out inspector support for ImageDataSettings.

  • platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::getPixelBuffer const):
Use the ImageBuffer's actual color space as the source color space
rather than hard coding sRGB. This allows the color space conversion
to take place. Also remove some unnecessary temporary variables.

(WebCore::ImageBufferBackend::putPixelBuffer):
Use the ImageBuffer's actual color space as the destination color space
rather than hard coding sRGB. This allows the color space conversion
to take place. Also remove some unnecessary temporary variables.

  • platform/graphics/PixelBuffer.cpp:

(WebCore::PixelBuffer::tryCreate):
(WebCore::PixelBuffer::PixelBuffer):

  • platform/graphics/PixelBuffer.h:

(WebCore::PixelBuffer::takeData):
Add a few helpers to allow creationg to/from PixelBuffer
a bit easier.

  • platform/graphics/PixelBufferConversion.cpp:

(WebCore::convertImagePixelsAccelerated):
Fix incorrect assertion. We want to assert that there is no error, not that
there is one.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):
Stop hard coding SRGB for PixelBuffer color spaces and use the appropriate
color space for the task. We still do color space conversion through ImageBuffer
so we should come back and simplify code here to not always require that.

  • testing/Internals.cpp:

(WebCore::Internals::videoSampleAvailable):
(WebCore::Internals::loadArtworkImage):
Update to specify a color space to maintain existing behavior.

Source/WebKitLegacy/win:

Add support for tests enabling the CanvasColorSpaceEnabled preference.

  • WebPreferences.cpp:

(WebPreferences::canvasColorSpaceEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

LayoutTests:

Remove wide-gamut-canvas now that they should pass.

  • fast/canvas/canvas-color-space-display-p3-ImageData-expected.txt: Added.
  • fast/canvas/canvas-color-space-display-p3-ImageData.html: Added.

Add new test exercising getImageData and putImageData with non-sRGB canvases
and non-sRGB ImageData.

  • fast/canvas/canvas-imageData-expected.txt:

Update results for updated error messages, which are a bit worse due additional
ambiguity in signatures.

  • platform/glib/TestExpectations:

Mark new test as failing on glib due to lack of display-p3 support.

  • platform/win/TestExpectations:

Mark new test as failing on Windows due to lack of display-p3 support.
Unskip CanvasRenderingContext2DSettings-colorSpace-enabled.html which
should now pass due to adding manual preferences support in WebKitLegacy/win.

  • storage/indexeddb/modern/objectstore-autoincrement-types-expected.txt:

Update results due to new attribute in ImageData that is auto printed.

8:00 AM Changeset in webkit [277568] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] Cleanup margin collapsing class
https://bugs.webkit.org/show_bug.cgi?id=225745

Reviewed by Antti Koivisto.

BlockMarginCollapse needs LayoutState and BlockFormattingState only.

  • layout/MarginTypes.h:
  • layout/formattingContexts/FormattingGeometry.cpp:

(WebCore::Layout::FormattingGeometry::constraintsForInFlowContent const):
(WebCore::Layout::FormattingGeometry::constraintsForInFlowContent): Deleted.

  • layout/formattingContexts/FormattingGeometry.h:
  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::geometry const):
(WebCore::Layout::BlockFormattingContext::marginCollapse const):

  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin):

  • layout/formattingContexts/block/BlockFormattingQuirks.cpp:

(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeightIfApplicable const):

  • layout/formattingContexts/block/BlockFormattingQuirks.h:
  • layout/formattingContexts/block/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::BlockMarginCollapse):
(WebCore::Layout::BlockMarginCollapse::hasClearance const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):

  • layout/formattingContexts/block/BlockMarginCollapse.h:

(WebCore::Layout::BlockMarginCollapse::inQuirksMode const):
(WebCore::Layout::BlockMarginCollapse::layoutState const):
(WebCore::Layout::BlockMarginCollapse::formattingState const):
(WebCore::Layout::BlockMarginCollapse::layoutState): Deleted.
(WebCore::Layout::BlockMarginCollapse::formattingContext const): Deleted.

  • layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::precomputedMarginBefore):

6:50 AM Changeset in webkit [277567] by Alan Bujtas
  • 27 edits in trunk/Source/WebCore

[LFC] Cleanup FormattingQuirk classes
https://bugs.webkit.org/show_bug.cgi?id=225746

Reviewed by Antti Koivisto.

Quirk functions should only be called when not in standards mode.

  • layout/formattingContexts/FormattingQuirks.cpp:

(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):
(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight): Deleted.

  • layout/formattingContexts/FormattingQuirks.h:

(WebCore::Layout::FormattingQuirks::layoutState const):
(WebCore::Layout::FormattingQuirks::layoutState): Deleted.

  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::quirks const): Deleted.

  • layout/formattingContexts/block/BlockFormattingContext.h:
  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::inFlowContentHeightAndMargin):

  • layout/formattingContexts/block/BlockFormattingQuirks.cpp:

(WebCore::Layout::BlockFormattingQuirks::BlockFormattingQuirks):
(WebCore::Layout::needsStretching):
(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeightIfApplicable const):
(WebCore::Layout::BlockFormattingQuirks::shouldIgnoreCollapsedQuirkMargin):
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginBeforeWithParentMarginBefore):
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginAfterWithParentMarginAfter):
(WebCore::Layout::BlockFormattingQuirks::needsStretching const): Deleted.
(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeight): Deleted.
(WebCore::Layout::BlockFormattingQuirks::shouldIgnoreCollapsedQuirkMargin const): Deleted.
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginBeforeWithParentMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginAfterWithParentMarginAfter const): Deleted.

  • layout/formattingContexts/block/BlockFormattingQuirks.h:

(WebCore::Layout::BlockFormattingQuirks::formattingContext const): Deleted.

  • layout/formattingContexts/block/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::quirks const): Deleted.

  • layout/formattingContexts/block/BlockMarginCollapse.h:
  • layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::quirks const): Deleted.

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:

(WebCore::Layout::TableWrapperQuirks::TableWrapperQuirks):
(WebCore::Layout::TableWrapperQuirks::overriddenTableHeight const):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::quirks const): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::InlineFormattingGeometry::inlineLevelBoxAffectsLineBox const):

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp:

(WebCore::Layout::InlineFormattingQuirks::initialLineHeight const):
(WebCore::Layout::InlineFormattingQuirks::inlineLevelBoxAffectsLineBox const):

  • layout/formattingContexts/inline/InlineFormattingQuirks.h:

(WebCore::Layout::InlineFormattingQuirks::formattingContext const): Deleted.

  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::quirks const): Deleted.

  • layout/formattingContexts/table/TableFormattingContext.h:
  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::cellHeigh const):

  • layout/formattingContexts/table/TableFormattingQuirks.cpp:

(WebCore::Layout::TableFormattingQuirks::TableFormattingQuirks):
(WebCore::Layout::TableFormattingQuirks::shouldIgnoreChildContentVerticalMargin):
(WebCore::Layout::TableFormattingQuirks::shouldIgnoreChildContentVerticalMargin const): Deleted.

  • layout/formattingContexts/table/TableFormattingQuirks.h:

(WebCore::Layout::TableFormattingQuirks::formattingContext const): Deleted.

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

1:30 AM Changeset in webkit [277566] by ntim@apple.com
  • 4 edits in trunk

Make will-change: transform-style create a containing block
https://bugs.webkit.org/show_bug.cgi?id=225441

Reviewed by Simon Fraser.

Marked relevant WPT as pass.

Source/WebCore:

  • rendering/style/WillChangeData.cpp:

(WebCore::WillChangeData::createsContainingBlockForOutOfFlowPositioned const):

LayoutTests:

12:30 AM Changeset in webkit [277565] by sbarati@apple.com
  • 3 edits
    1 add in trunk

DFGVarargsForwardingPhase shouldn't consult Flush
https://bugs.webkit.org/show_bug.cgi?id=225824

Reviewed by Filip Pizlo and Yusuke Suzuki.

JSTests:

  • microbenchmarks/tail-call-forward-arguments-arguments-elimination.js: Added.

Source/JavaScriptCore:

In the Varargs Forwarding Phase, we were treating Flush as if it
were any other form of node that interferes with an argument
via clobbering a stack location.

This isn't how Flush works though. It doesn't have execution
semantics at the node's graph location. Instead, Flush means that
any variable it's linked to in CPS should be flushed to the stack
between it and the Flush.

The semantics of arguments is that they're already flushed to the
stack, and they've always been. Seeing a Flush node doesn't prevent
arguments elimination, we already know the arguments are on the stack,
and all we're searching for is if there is an interference operation
that says it'll clobber that stack slot. Flush isn't an interference operation.

This is a 0.5% Speedometer progression.

  • dfg/DFGVarargsForwardingPhase.cpp:

May 15, 2021:

11:36 PM Changeset in webkit [277564] by rniwa@webkit.org
  • 22 edits in trunk

Delete WebSQL code from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=225739

Reviewed by Sihui Liu.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setWebSQLEnabled): Replaced setWebSQLDisabled.

Source/WebKit:

Deleted WebSQL code. We keep some code for website data store since it's possible
for user's device to still have WebSQL data, and we should be able to delete them.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes):

  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetWebSQLDisabled):
(WKPreferencesGetWebSQLDisabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

Deleted the experimental feature to disable WebSQL since we've been shipping this,
and made the flag to selectively enable WebSQL in WebKit1 an internal debug setting
since nobody should be enabling this now.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • MiniBrowser/playstation/WebContext.cpp:

(WebContext::WebContext):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(runWebsiteDataStoreCustomPaths):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):

9:07 PM Changeset in webkit [277563] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Make redundant public helpers private in FormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225747

Reviewed by Antti Koivisto.

  • layout/formattingContexts/FormattingContext.h:
  • layout/formattingContexts/FormattingGeometry.cpp:

(WebCore::Layout::FormattingGeometry::computedHeightValue const):

  • layout/formattingContexts/FormattingQuirks.cpp:

(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight):

9:06 PM Changeset in webkit [277562] by Said Abou-Hallawa
  • 5 edits in trunk/Source/WebKit

[GPU Process] Ensure RemoteRenderingBackendProxy is restored to its original state when GPUP connection is closed
https://bugs.webkit.org/show_bug.cgi?id=225781
<rdar://76678163>

Reviewed by Darin Adler.

GPUProcess may exit in different scenarios: a crash, under memory pressure
or when it is not being used; see r276148. In all cases, the state of
RemoteRenderingBackendProxy has to be restored to its original state when
it was created. gpuProcessConnectionDidClose() is supposed to do that.
But some members are not cleared in this function.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::gpuProcessConnectionDidClose):
Make sure the resource cache and the getImageData memory and semaphore
are cleared.

(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
Add this helper method to be called when a RemoteImageBufferProxy is first
created or when its backend is cleared.

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
Add this new function to restore RemoteResourceCacheProxy to its original
state.

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

(WebKit::RemoteResourceCacheProxy::imageBuffers const): Deleted.

8:32 PM Changeset in webkit [277561] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Make redundant public helpers private in TableFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225748

Reviewed by Antti Koivisto.

  • layout/formattingContexts/table/TableFormattingContext.h:
  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::cellHeigh const):

  • layout/formattingContexts/table/TableFormattingQuirks.h:

(WebCore::Layout::TableFormattingQuirks::formattingContext const):
(WebCore::Layout::TableFormattingQuirks::geometry const): Deleted.

8:14 PM Changeset in webkit [277560] by weinig@apple.com
  • 27 edits in trunk

Allow conditionally enabling OffscreenCanvas only for non-worker contexts
https://bugs.webkit.org/show_bug.cgi?id=225845

Reviewed by Darin Adler.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Match current behavior of ENABLE_OFFSCREEN_CANVAS for ENABLE_OFFSCREEN_CANVAS_IN_WORKERS.

Source/WebCore:

Enable both compile time and runtime conditional enablement of just the
non-worker OffscreenCanvas code path.

To make this work a new IDL extended attribute was needed, ConditionalForWorker=FOO,
which allows specifying an additional macro to check for whether the constructor
should be exposed on workers. Ideally this would be generic for any context type,
but at the moment, the limited syntax of extended attributes makes that hard. If
generalization is needed (or a similar syntax is needed for something else) this can
be revisited.

To support runtime conditional exposure, the existing EnabledForContext, which calls
a static function on the implementation class passing the ScriptExecutationContext
is used. If conditional per context type ever becomes a common thing, we should add
another extended attribute (and add syntax to support like above) that allows specifying
both the context type and the setting name.

Other than that, uses of ENABLE_OFFSCREEN_CANVAS that guarded worker specific functionality
were replaced by ENABLE_OFFSCREEN_CANVAS_IN_WORKERS.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::SerializedScriptValue):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

  • html/HTMLCanvasElement.idl:
  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::enabledForContext):

  • html/OffscreenCanvas.h:
  • html/OffscreenCanvas.idl:
  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::enabledForContext):

  • html/canvas/OffscreenCanvasRenderingContext2D.h:
  • html/canvas/OffscreenCanvasRenderingContext2D.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setOffscreenCanvasInWorkersEnabled):
(WebCore::RuntimeEnabledFeatures::offscreenCanvasInWorkersEnabled const):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/WorkerAnimationController.cpp:
  • workers/WorkerAnimationController.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Add new OffscreenCanvasInWorkersEnabled preference.

  • wtf/PlatformEnable.h:

Add new ENABLE_OFFSCREEN_CANVAS_IN_WORKERS macro.

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
Match current behavior of ENABLE_OFFSCREEN_CANVAS and OffscreenCanvasEnabled
for ENABLE_OFFSCREEN_CANVAS_IN_WORKERS and OffscreenCanvasInWorkersEnabled.

8:04 PM Changeset in webkit [277559] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Make redundant public helpers private in InlineFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225749

Reviewed by Antti Koivisto.

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):

  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

7:35 PM Changeset in webkit [277558] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC] Make redundant public helpers private in BlockFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225750

Reviewed by Antti Koivisto.

  • layout/formattingContexts/block/BlockFormattingContext.h:
  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin):
(WebCore::Layout::BlockFormattingGeometry::inFlowContentHeightAndMargin):

  • layout/formattingContexts/block/BlockFormattingQuirks.cpp:

(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeight):

  • layout/formattingContexts/block/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::quirks const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):

  • layout/formattingContexts/block/BlockMarginCollapse.h:
  • layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:

(WebCore::Layout::TableWrapperQuirks::overriddenTableHeight const):

7:18 PM Changeset in webkit [277557] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Make FormattingGeometry c'tors public
https://bugs.webkit.org/show_bug.cgi?id=225751

Reviewed by Antti Koivisto.

Remove unnecessary class friending.

  • layout/formattingContexts/FormattingGeometry.h:
  • layout/formattingContexts/block/BlockFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingGeometry.h:
  • layout/formattingContexts/inline/InlineFormattingQuirks.h:
  • layout/formattingContexts/table/TableFormattingGeometry.h:
6:56 PM Changeset in webkit [277556] by Alan Bujtas
  • 14 edits
    1 move
    1 add in trunk/Source/WebCore

[LFC] Move base formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225752

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometry const):

  • layout/formattingContexts/FormattingContext.h:

(WebCore::Layout::FormattingContext::Geometry::layoutState const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::layoutState): Deleted.
(WebCore::Layout::FormattingContext::Geometry::formattingContext const): Deleted.
(WebCore::Layout::FormattingContext::geometry const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::Geometry): Deleted.

  • layout/formattingContexts/FormattingContextGeometry.cpp: Removed.
  • layout/formattingContexts/block/BlockFormattingGeometry.cpp:

(WebCore::Layout::BlockFormattingGeometry::BlockFormattingGeometry):
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin):
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentWidthAndMargin):

  • layout/formattingContexts/block/BlockFormattingGeometry.h:

(WebCore::Layout::BlockFormattingGeometry::formattingContext const):

  • layout/formattingContexts/flex/FlexFormattingGeometry.cpp:

(WebCore::Layout::FlexFormattingGeometry::FlexFormattingGeometry):

  • layout/formattingContexts/flex/FlexFormattingGeometry.h:

(WebCore::Layout::FlexFormattingGeometry::formattingContext const):

  • layout/formattingContexts/inline/InlineFormattingGeometry.cpp:

(WebCore::Layout::InlineFormattingGeometry::InlineFormattingGeometry):
(WebCore::Layout::InlineFormattingGeometry::inlineBlockContentWidthAndMargin):

  • layout/formattingContexts/inline/InlineFormattingGeometry.h:

(WebCore::Layout::InlineFormattingGeometry::formattingContext const):

  • layout/formattingContexts/table/TableFormattingGeometry.cpp:

(WebCore::Layout::TableFormattingGeometry::TableFormattingGeometry):

  • layout/formattingContexts/table/TableFormattingGeometry.h:

(WebCore::Layout::TableFormattingGeometry::formattingContext const):

  • layout/formattingContexts/table/TableFormattingQuirks.h:

(WebCore::Layout::TableFormattingQuirks::geometry const):

6:50 PM Changeset in webkit [277555] by commit-queue@webkit.org
  • 13 edits
    3 deletes in trunk

Remove _WKWebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=224293

Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-15
Reviewed by Darin Adler.

Source/WebKit:

Its last use was removed in rdar://problem/58064847 and we've released a Safari version since then.
It was replaced by WKWebpagePreferences

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateWebsitePolicies:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:
  • UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm: Removed.
  • UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h: Removed.
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::sendAudioComponentRegistrations):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::draggingExited):
(WebKit::WebViewImpl::performDragOperation):
(WebKit::WebViewImpl::setPromisedDataForImage):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[CustomUserAgentDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]):
(-[CustomJavaScriptUserAgentDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[CustomNavigatorPlatformDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[PopUpPoliciesDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[PopUpPoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[CustomUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]): Deleted.
(-[CustomJavaScriptUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]): Deleted.
(-[CustomNavigatorPlatformDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]): Deleted.
(-[PopUpPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.

6:21 PM Changeset in webkit [277554] by Alan Bujtas
  • 5 edits
    1 move
    1 add in trunk/Source/WebCore

[LFC] Move table formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225753

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::geometry const):

  • layout/formattingContexts/table/TableFormattingContext.h:

(WebCore::Layout::TableFormattingContext::Geometry::Geometry): Deleted.

  • layout/formattingContexts/table/TableFormattingContextGeometry.cpp: Removed.
6:05 PM Changeset in webkit [277553] by Chris Dumez
  • 23 edits in trunk/Source/WebCore

Clean up BaseAudioContext now that legacy/prefixed WebAudio is gone
https://bugs.webkit.org/show_bug.cgi?id=225843

Reviewed by Darin Adler.

The BaseAudioContext class hierarchy used to be a bit complicated when
we supposed legacy WebAudio because OfflineAudioContext would subclass
BaseAudioContext directly, while WebKitOfflineAudioContext would
subclass BaseAudioContext via AudioContext. The class hierarchy is now
a lot simpler, BaseAudioContext is the base class and it has exactly
2 subclasses: OfflineAudioContext and AudioContext (for real-time
rendering). Now that the legacy WebAudio code is gone, this patch
cleans up BaseAudioContext and moves as much code as possible to its
subclasses (OfflineAudioContext & AudioContext).

  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::create):

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::create):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::uninitialize):
(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::activeDOMObjectName const):

  • Modules/webaudio/AudioContext.h:

(isType):

  • Modules/webaudio/AudioContextState.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::setChannelCount):

  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::AudioNodeOutput):
(WebCore::AudioNodeOutput::setNumberOfChannels):

  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::create):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::generateContextID):
(WebCore::BaseAudioContext::BaseAudioContext):
(WebCore::BaseAudioContext::lazyInitialize):
(WebCore::BaseAudioContext::uninitialize):
(WebCore::BaseAudioContext::stop):
(WebCore::BaseAudioContext::createScriptProcessor):
(WebCore::BaseAudioContext::derefFinishedSourceNodes):
(WebCore::BaseAudioContext::lockInternal):
(WebCore::BaseAudioContext::tryLock):
(WebCore::BaseAudioContext::unlock):
(WebCore::BaseAudioContext::handlePostRenderTasks):
(WebCore::BaseAudioContext::deleteMarkedNodes):
(WebCore::BaseAudioContext::updateAutomaticPullNodes):
(WebCore::BaseAudioContext::postTask):
(WebCore::BaseAudioContext::workletIsReady):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::isInitialized const):
(WebCore::BaseAudioContext::currentSampleFrame const):
(WebCore::BaseAudioContext::currentTime const):
(WebCore::BaseAudioContext::sampleRate const):
(WebCore::BaseAudioContext::listener):
(WebCore::BaseAudioContext::incrementConnectionCount):
(WebCore::BaseAudioContext::isAudioThread const):
(WebCore::BaseAudioContext::isAudioThreadFinished const):
(WebCore::BaseAudioContext::isGraphOwner const):

  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):

  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::context):
(WebCore::DefaultAudioDestinationNode::context const):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::setFormat):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::setFormat):

  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::create):
(WebCore::OfflineAudioContext::uninitialize):
(WebCore::OfflineAudioContext::activeDOMObjectName const):
(WebCore::OfflineAudioContext::startRendering):
(WebCore::OfflineAudioContext::suspendRendering):
(WebCore::OfflineAudioContext::resumeRendering):
(WebCore::OfflineAudioContext::didSuspendRendering):
(WebCore::OfflineAudioContext::finishedRendering):
(WebCore::OfflineAudioContext::settleRenderingPromise):
(WebCore::OfflineAudioContext::dispatchEvent):

  • Modules/webaudio/OfflineAudioContext.h:

(isType):

  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::context):
(WebCore::OfflineAudioDestinationNode::context const):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::ScriptProcessorNode):

4:55 PM Changeset in webkit [277552] by Alan Bujtas
  • 5 edits
    1 move
    1 add in trunk/Source/WebCore

[LFC] Move inline formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225754

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::geometry const):

  • layout/formattingContexts/inline/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::Geometry::Geometry): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContextGeometry.cpp: Removed.
4:54 PM Changeset in webkit [277551] by berto@igalia.com
  • 2 edits in trunk/Source/WTF

CeilingOnPageSize too low for Loongson CPUs
https://bugs.webkit.org/show_bug.cgi?id=221198
<rdar://problem/74089683>

Reviewed by Michael Catanzaro.

Increase the page size to 16KB in MIPS64.

  • wtf/PageBlock.h:
4:03 PM Changeset in webkit [277550] by Alan Bujtas
  • 5 edits
    1 move
    1 add in trunk/Source/WebCore

[LFC] Move flex formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225755

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::geometry const):

  • layout/formattingContexts/flex/FlexFormattingContext.h:

(WebCore::Layout::FlexFormattingContext::Geometry::Geometry): Deleted.

  • layout/formattingContexts/flex/FlexFormattingContextGeometry.cpp: Removed.
3:47 PM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
3:30 PM Changeset in webkit [277549] by Alan Bujtas
  • 10 edits
    1 move
    1 add in trunk/Source/WebCore

[LFC] Move block formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225756

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::geometry const):

  • layout/formattingContexts/block/BlockFormattingContext.h:

(WebCore::Layout::BlockFormattingContext::Geometry::formattingContext const): Deleted.
(WebCore::Layout::BlockFormattingContext::geometry const): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::Geometry): Deleted.

  • layout/formattingContexts/block/BlockFormattingContextGeometry.cpp: Removed.
  • layout/formattingContexts/block/BlockFormattingQuirks.cpp:

(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeight):

  • layout/formattingContexts/block/BlockFormattingQuirks.h:

(WebCore::Layout::BlockFormattingQuirks::formattingContext const):
(WebCore::Layout::BlockFormattingQuirks::geometry const): Deleted.

  • layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:

(WebCore::Layout::TableWrapperQuirks::overriddenTableHeight const):

2:11 PM Changeset in webkit [277548] by Alan Bujtas
  • 11 edits
    1 copy
    1 move in trunk/Source/WebCore

[LFC] Move base formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225757

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::quirks const):

  • layout/formattingContexts/FormattingContext.h:

(WebCore::Layout::FormattingContext::formattingState):
(WebCore::Layout::FormattingContext::Quirks::layoutState const): Deleted.
(WebCore::Layout::FormattingContext::Quirks::layoutState): Deleted.
(WebCore::Layout::FormattingContext::Quirks::formattingContext const): Deleted.
(WebCore::Layout::FormattingContext::quirks const): Deleted.
(WebCore::Layout::FormattingContext::Quirks::Quirks): Deleted.

  • layout/formattingContexts/FormattingContextQuirks.cpp: Removed.
  • layout/formattingContexts/block/BlockFormattingQuirks.cpp:

(WebCore::Layout::BlockFormattingQuirks::BlockFormattingQuirks):

  • layout/formattingContexts/block/BlockFormattingQuirks.h:

(WebCore::Layout::BlockFormattingQuirks::formattingContext const):

  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp:

(WebCore::Layout::InlineFormattingQuirks::InlineFormattingQuirks):

  • layout/formattingContexts/inline/InlineFormattingQuirks.h:

(WebCore::Layout::InlineFormattingQuirks::formattingContext const):

  • layout/formattingContexts/table/TableFormattingQuirks.cpp:

(WebCore::Layout::TableFormattingQuirks::TableFormattingQuirks):

  • layout/formattingContexts/table/TableFormattingQuirks.h:

(WebCore::Layout::TableFormattingQuirks::formattingContext const):

1:46 PM Changeset in webkit [277547] by Said Abou-Hallawa
  • 16 edits
    6 adds in trunk

Implement CanvasRenderingContext2D.createConicGradient
https://bugs.webkit.org/show_bug.cgi?id=225539

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

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

Source/WebCore:

Proposal document:

https://github.com/fserb/canvas2D/blob/master/spec/conic-gradient.md

MDN documentation:

https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createConicGradient

Tests: fast/canvas/canvas-conic-gradient-angle.html

fast/canvas/canvas-conic-gradient-center.html
fast/canvas/conicGradient-infinite-values.html

  • html/canvas/CanvasFillStrokeStyles.idl:
  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::CanvasGradient):
(WebCore::m_canvas):
(WebCore::CanvasGradient::create):

  • html/canvas/CanvasGradient.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createConicGradient):

  • html/canvas/CanvasRenderingContext2DBase.h:

Source/WebInspectorUI:

  • UserInterface/Models/NativeFunctionParameters.js:
  • UserInterface/Models/Recording.js:

(WI.Recording.prototype.async swizzle):

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._classNameForAction):

LayoutTests:

  • fast/canvas/canvas-conic-gradient-angle-expected.html: Added.
  • fast/canvas/canvas-conic-gradient-angle.html: Added.
  • fast/canvas/canvas-conic-gradient-center-expected.html: Added.
  • fast/canvas/canvas-conic-gradient-center.html: Added.
  • fast/canvas/conicGradient-infinite-values-expected.txt: Added.
  • fast/canvas/conicGradient-infinite-values.html: Added.
  • inspector/canvas/recording-html-2d-expected.txt:
  • inspector/canvas/recording-html-2d.html:
  • platform/win/TestExpectations:
1:22 PM Changeset in webkit [277546] by Alan Bujtas
  • 5 edits
    1 copy
    1 move in trunk/Source/WebCore

[LFC] Move table formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225758

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/table/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::quirks const):

  • layout/formattingContexts/table/TableFormattingContext.h:

(WebCore::Layout::TableFormattingContext::Quirks::Quirks): Deleted.

  • layout/formattingContexts/table/TableFormattingContextQuirks.cpp: Removed.
12:50 PM Changeset in webkit [277545] by Alan Bujtas
  • 6 edits
    1 move
    1 add in trunk/Source/WebCore

[LFC] Move inline formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225759

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::quirks const):

  • layout/formattingContexts/inline/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::Quirks::Quirks): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContextQuirks.cpp: Removed.
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
11:27 AM Changeset in webkit [277544] by Alan Bujtas
  • 5 edits
    1 copy
    1 move in trunk/Source/WebCore

[LFC] Move table wrapper quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225760

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::quirks const):

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:

(WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::Quirks): Deleted.

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContextQuirks.cpp: Removed.
10:51 AM Changeset in webkit [277543] by weinig@apple.com
  • 9 edits in trunk/Source/WebCore

Move CanvasRenderingContext2DSettings down to CanvasRenderingContext2DBase so it can be used there (and to support OffscreenCanvas)
https://bugs.webkit.org/show_bug.cgi?id=225836

Reviewed by Simon Fraser.

In subsequent changes, it will be useful to have CanvasRenderingContext2DSettings accessible
in CanvasRenderingContext2DBase for implementing color space support in ImageData.

While doing this, I noticed it was trivial to add support for passing the settings
to OffscreenCanvasRenderingContext2D, so I add that as well.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::getContext):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
(WebCore::CanvasRenderingContext2D::pixelFormat const): Deleted.
(WebCore::CanvasRenderingContext2D::colorSpace const): Deleted.

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::CanvasRenderingContext2DBase):
(WebCore::CanvasRenderingContext2DBase::pixelFormat const):
(WebCore::CanvasRenderingContext2DBase::colorSpace const):

  • html/canvas/CanvasRenderingContext2DBase.h:

(WebCore::CanvasRenderingContext2DBase::getContextAttributes const):

  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::OffscreenCanvasRenderingContext2D):

  • html/canvas/OffscreenCanvasRenderingContext2D.h:
  • html/canvas/PaintRenderingContext2D.cpp:

(WebCore::PaintRenderingContext2D::PaintRenderingContext2D):

10:50 AM Changeset in webkit [277542] by Alan Bujtas
  • 8 edits
    1 move
    1 add in trunk/Source/WebCore

[LFC] Move block formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225761

Reviewed by Antti Koivisto.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/FormattingContext.h:

(WebCore::Layout::FormattingContext::Quirks::layoutState const):
(WebCore::Layout::FormattingContext::Quirks::layoutState):
(WebCore::Layout::FormattingContext::Quirks::formattingContext const):
(WebCore::Layout::FormattingContext::quirks const):

  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::quirks const):

  • layout/formattingContexts/block/BlockFormattingContext.h:

(WebCore::Layout::BlockFormattingContext::Quirks::formattingContext const): Deleted.
(WebCore::Layout::BlockFormattingContext::Quirks::geometry const): Deleted.
(WebCore::Layout::BlockFormattingContext::quirks const): Deleted.
(WebCore::Layout::BlockFormattingContext::Quirks::Quirks): Deleted.

  • layout/formattingContexts/block/BlockFormattingContextQuirks.cpp: Removed.
  • layout/formattingContexts/block/BlockMarginCollapse.cpp:
  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:

(WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::Quirks):

9:59 AM Changeset in webkit [277541] by Alexey Shvayka
  • 12 edits
    1 add in trunk

Turn callGetter() / callSetter() into instance methods
https://bugs.webkit.org/show_bug.cgi?id=225831

Reviewed by Ross Kirsling.

JSTests:

  • microbenchmarks/put-slow-no-cache-setter.js: Added.

Source/JavaScriptCore:

  1. Turn callGetter() / callSetter() into instance methods to simplify their signatures.
  2. Rename base parameter to thisValue, avoiding similarity with slotBase().
  3. Accept bool shouldThrow in callSetter() since ECMAMode is cumbersome to construct.
  4. Replace isSetterNull(), which does LIKELY(inherits), with direct JSType check.
  5. Introduce getCallData(VM&, JSCell*) overload to avoid extra checks / casts.
  6. Move isValidCallee() to JSCell and handle primitives gracefully.

No behavior change. Advances provided callSetter() microbenchmark by 2%.

  • runtime/GetterSetter.cpp:

(JSC::GetterSetter::callGetter):
(JSC::GetterSetter::callSetter):
(JSC::callGetter): Deleted.
(JSC::callSetter): Deleted.

  • runtime/GetterSetter.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::isValidCallee): Deleted.

  • runtime/JSCJSValue.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::isValidCallee const):

  • runtime/JSCell.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

  • runtime/JSObjectInlines.h:

(JSC::getCallData):
(JSC::getConstructData):

  • runtime/PropertySlot.cpp:

(JSC::PropertySlot::functionGetter const):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayEntry::put):

9:21 AM Changeset in webkit [277540] by Alan Bujtas
  • 8 edits
    1 add in trunk/Source/WebCore

[LFC] Move BlockMarginCollapse to its own class
https://bugs.webkit.org/show_bug.cgi?id=225762

Reviewed by Antti Koivisto.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/formattingContexts/FormattingContext.h:

(WebCore::Layout::FormattingContext::formattingState const):

  • layout/formattingContexts/block/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::updateMarginAfterForPreviousSibling):
(WebCore::Layout::BlockFormattingContext::marginCollapse const):

  • layout/formattingContexts/block/BlockFormattingContext.h:

(WebCore::Layout::BlockFormattingContext::formattingState const):
(WebCore::Layout::BlockFormattingContext::Quirks::formattingContext const):
(WebCore::Layout::BlockFormattingContext::Quirks::geometry const):
(WebCore::Layout::BlockFormattingContext::quirks const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::formattingContext const): Deleted.
(WebCore::Layout::BlockFormattingContext::marginCollapse const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::MarginCollapse): Deleted.

  • layout/formattingContexts/block/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::BlockMarginCollapse):
(WebCore::Layout::BlockMarginCollapse::hasClearance const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithNextSiblingMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginsCollapseThrough const):
(WebCore::Layout::BlockMarginCollapse::computedPositiveAndNegativeMargin const):
(WebCore::Layout::BlockMarginCollapse::marginValue const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeIgnoringCollapsingThrough):
(WebCore::Layout::BlockMarginCollapse::collapsedVerticalValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::hasClearance const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithNextSiblingMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::computedPositiveAndNegativeMargin const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginValue const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeIgnoringCollapsingThrough): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues): Deleted.

  • layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::precomputedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedMarginBefore): Deleted.

  • layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

7:26 AM Changeset in webkit [277539] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] REGRESSION: Kinetic scrolling on touchpad doesn't work with async scrolling off
https://bugs.webkit.org/show_bug.cgi?id=224182

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-05-15
Reviewed by Michael Catanzaro.

Don't clear the scroll history every time we scroll, that defeats the whole point of having
the scroll history.

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::scrollToPositionWithoutAnimation):

5:47 AM Changeset in webkit [277538] by Antti Koivisto
  • 7 edits
    2 adds in trunk

Don't allow :visited link style in subtrees that use mix-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=225446
rdar://65686091

Reviewed by Darin Adler.
Source/WebCore:

Test: fast/css/visited-link-mix-blend-mode.html

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::visitedDependentColor const):

Return unvisited style in substrees that use mix-blend-mode.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setBlendMode):
(WebCore::RenderStyle::isInSubtreeWithBlendMode const):

Add an inherited fake property for tracking this.

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:

LayoutTests:

  • fast/css/visited-link-mix-blend-mode-expected.html: Added.
  • fast/css/visited-link-mix-blend-mode.html: Added.
4:00 AM Changeset in webkit [277537] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

report-non-inclusive-language should skip node_modules directory
https://bugs.webkit.org/show_bug.cgi?id=225827

Reviewed by Darin Adler.

  • Scripts/report-non-inclusive-language: Skip node_modules directory as it contains external code.
12:40 AM Changeset in webkit [277536] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Replace PlatformCAAnimationRemote::KeyframeValue with Variant
https://bugs.webkit.org/show_bug.cgi?id=225474

Patch by Ian Gilbert <iang@apple.com> on 2021-05-15
Reviewed by Ryosuke Niwa.

KeyframeValue was effectively a Variant. Replaced the existing class with a WTF::Variant.

No test as this does not change code behavior.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<RefPtr<WebCore::FilterOperation>>::encode):
(IPC::ArgumentCoder<RefPtr<WebCore::FilterOperation>>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::animationValueFromKeyframeValue):
(WebKit::operator<<):
(WebKit::PlatformCAAnimationRemote::KeyframeValue::encode const): Deleted.
(WebKit::PlatformCAAnimationRemote::KeyframeValue::decode): Deleted.

Note: See TracTimeline for information about the timeline view.