[webkit-changes] [WebKit/WebKit] dd5454: [macOS Downlevels] AVIF and JPEG XL images can get...

2023-10-09 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dd54547c2b7b1ede124b744778c0857e675271aa
  
https://github.com/WebKit/WebKit/commit/dd54547c2b7b1ede124b744778c0857e675271aa
  Author: Myles C. Maxfield 
  Date:   2023-10-09 (Mon, 09 Oct 2023)

  Changed paths:
A LayoutTests/http/tests/images/repaint-garbled-expected.html
A LayoutTests/http/tests/images/repaint-garbled.html
A LayoutTests/http/tests/images/resources/green-313x313.jxl
M Source/WebCore/platform/graphics/cg/ImageBackingStoreCG.cpp

  Log Message:
  ---
  [macOS Downlevels] AVIF and JPEG XL images can get corrupted
https://bugs.webkit.org/show_bug.cgi?id=259698


Reviewed by Said Abou-Hallawa.

When we create a `NativeImage`, we call 
`ImageSource::frameAtIndexCacheIfNeeded()` with
a caching mode of `MetadataAndImage`. This does 2 things:
1. `auto platformImage = m_decoder->createFrameImageAtIndex(index, 
subsamplingLevelValue, decodingOptions);`
2. `cachePlatformImageAtIndex(WTFMove(platformImage), index, 
subsamplingLevelValue, DecodingOptions(DecodingMode::Synchronous));`
ImageSource owns its own cache of `Vector m_frames;` whereas
`ScalableImageDecoder` owns its own
`Vector m_frameBufferCache`. Therefore, the 
output of
`createFrameImageAtIndex()` may be expected to outlive the `ImageDecoder` it 
came from.
However, `createFrameImageAtIndex()` indirectly calls into 
`ImageBackingStore::image()`
which creates the `CGImage` with a `CGDataProvider` that points into the
`ImageBackingStore`, which is owned by the `m_frameBufferCache` which is owned 
by the
`ScalableImageDecoder`. So, when the `ImageSource` destroys its `ImageDecoder`, 
it blows
away the contents of the `CGImage`s being cached, but the images themselves 
live on
inside the `ImageSource` itself. That leads to this kind of corruption.

The solution is to make the `CGImage` retain its backing data.

* LayoutTests/http/tests/images/repaint-garbled-expected.html: Added.
* LayoutTests/http/tests/images/repaint-garbled.html: Added.
* LayoutTests/http/tests/images/resources/green-313x313.jxl: Added.
* Source/WebCore/platform/graphics/cg/ImageBackingStoreCG.cpp:
(WebCore::ImageBackingStore::image const):

Originally-landed-as: 265870.229@safari-7616-branch (e633a9de382d). 
rdar://116422568
Canonical link: https://commits.webkit.org/269091@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 6bef92: Fix build after 268500@main for case-insensitive f...

2023-09-27 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6bef92cf112d35641e59053f35d99a580ec710ed
  
https://github.com/WebKit/WebKit/commit/6bef92cf112d35641e59053f35d99a580ec710ed
  Author: Myles C. Maxfield 
  Date:   2023-09-27 (Wed, 27 Sep 2023)

  Changed paths:
R 
Source/WebCore/rendering/svg/Legacy/LegacyRenderSVGResourceClipperInlines.h

  Log Message:
  ---
  Fix build after 268500@main for case-insensitive file systems
https://bugs.webkit.org/show_bug.cgi?id=262209
rdar://116139041

Reviewed by Tim Horton.

% diff Legacy/LegacyRenderSVGResourceClipperInlines.h 
legacy/LegacyRenderSVGResourceClipperInlines.h
%

This patch just deletes the erroneous Legacy directory.

* Source/WebCore/rendering/svg/Legacy/LegacyRenderSVGResourceClipperInlines.h: 
Removed.

Canonical link: https://commits.webkit.org/268531@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 95990e: [Fast text codepath] Slight cleanups after 267095@...

2023-09-14 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 95990ec923ef7e850b34f8c30fd046dd8c2da54c
  
https://github.com/WebKit/WebKit/commit/95990ec923ef7e850b34f8c30fd046dd8c2da54c
  Author: Myles C. Maxfield 
  Date:   2023-09-14 (Thu, 14 Sep 2023)

  Changed paths:
M Source/WebCore/platform/graphics/Font.h
M Source/WebCore/platform/graphics/WidthIterator.cpp
M Source/WebCore/platform/graphics/coretext/FontCoreText.cpp

  Log Message:
  ---
  [Fast text codepath] Slight cleanups after 267095@main
https://bugs.webkit.org/show_bug.cgi?id=261548
rdar://115471679

Reviewed by Cameron McCormack.

Most of this is stylistic. The only non-stylistic change is to
take the Mac/iOS codepath on all Apple platforms.

* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::resetGlyphBuffer):
(WebCore::SmallCapsState::SmallCapsState):
(WebCore::SmallCapsState::setSmallCapsData):
(WebCore::WidthIterator::startNewFontRangeIfNeeded):
(WebCore::resetFontRangeIfNeeded):
(WebCore::WidthIterator::advanceInternal):
* Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:
(WebCore::Font::variantCapsSupportedForSynthesis const):

Canonical link: https://commits.webkit.org/267982@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 76fdca: resetFontRangeIfNeeded() accidentally copies its i...

2023-09-14 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 76fdcab415eae53442a8c12755ee3fbcbfd75c28
  
https://github.com/WebKit/WebKit/commit/76fdcab415eae53442a8c12755ee3fbcbfd75c28
  Author: Myles C. Maxfield 
  Date:   2023-09-13 (Wed, 13 Sep 2023)

  Changed paths:
M Source/WebCore/platform/graphics/WidthIterator.cpp

  Log Message:
  ---
  resetFontRangeIfNeeded() accidentally copies its inout param, rather than 
taking it by reference
https://bugs.webkit.org/show_bug.cgi?id=260687
rdar://114416548

Reviewed by Cameron McCormack.

resetFontRangeIfNeeded() attempts to reset the TextIterator that's passed into 
it, except it
accidentally copies the TextIterator, thereby having no effect on the caller.

This patch needs a test.

* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::resetFontRangeIfNeeded):

Canonical link: https://commits.webkit.org/267981@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 0c0e78: [Simple text codepath] Shadow TextRun's direction ...

2023-09-02 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0c0e78b43702e1cc5c8d020f90bfcb200182c94b
  
https://github.com/WebKit/WebKit/commit/0c0e78b43702e1cc5c8d020f90bfcb200182c94b
  Author: Myles C. Maxfield 
  Date:   2023-09-02 (Sat, 02 Sep 2023)

  Changed paths:
M Source/WebCore/platform/graphics/WidthIterator.cpp
M Source/WebCore/platform/graphics/WidthIterator.h

  Log Message:
  ---
  [Simple text codepath] Shadow TextRun's direction within WidthIterator so we 
can make local changes to it
https://bugs.webkit.org/show_bug.cgi?id=261058
rdar://114857993

Reviewed by Cameron McCormack.

This patch is in preparation for a future patch, where WidthIterator
is going to need to operate on LTR runs and RTL runs at the same time.
For example, when we do line breaking, we haven't done bidi yet (which
is wrong, but that's a whole nother story), which means there are some
circumstances where we have to measure text of different
directionalities before those directionalities can be passed in to
WidthIterator as arguments.

As a temporary fix, WidthIterator can do its own directionality
discovery, similar to how the complex path does right now. This
wouldn't be a long-term fix (the long term fix is to do shaping before
we measure anything), but allowing WidthIterator to have its own
copy of the direction information makes it easy to iterate on
temporary short-term solutions.

There's no memory use concern, because there's only ever a single
WidthIterator alive at a time.

* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::applyInitialAdvance):
(WebCore::WidthIterator::advanceInternal):
(WebCore::WidthIterator::calculateAdditionalWidth const):
(WebCore::WidthIterator::applyAdditionalWidth):
(WebCore::WidthIterator::applyExtraSpacingAfterShaping):
(WebCore::WidthIterator::finalize):
* Source/WebCore/platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::direction const):
(WebCore::WidthIterator::rtl const):
(WebCore::WidthIterator::ltr const):

Canonical link: https://commits.webkit.org/267582@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 6566fb: [Fast text codepath] CharactersTreatedAsSpace is o...

2023-08-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6566fb8f9216aae136892c5f32e6e50367de2969
  
https://github.com/WebKit/WebKit/commit/6566fb8f9216aae136892c5f32e6e50367de2969
  Author: Myles C. Maxfield 
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
M 
LayoutTests/platform/ios/tables/layering/paint-test-layering-1-expected.txt
M 
LayoutTests/platform/ios/tables/layering/paint-test-layering-2-expected.txt
M LayoutTests/platform/ios/tables/mozilla/bugs/bug4427-expected.txt
M 
LayoutTests/platform/ios/tables/mozilla_expected_failures/other/test4-expected.txt
M Source/WebCore/platform/graphics/WidthIterator.cpp

  Log Message:
  ---
  [Fast text codepath] CharactersTreatedAsSpace is overly prescriptive
https://bugs.webkit.org/show_bug.cgi?id=260843
rdar://114607926

Reviewed by Cameron McCormack.

When we lay out web content, we make multiple passes over the text,
chopping it up multiple different ways. Because of this, we have an
invariant that the width of a space can't change depending on the
bounds of how we're chopping up the text. Kerning can affect the
width of a space, so we enforce the invariant by having a postprocess
that we perform after shaping to retroactively go back and adjust
the width of any glyphs associated with space characters, to reset
their widths. This is called "CharactersTreatedAsSpace."

However, CharactersTreatedAsSpace actually does something else, too:
it also adjusts the width of the character directly before the space
to be whatever it was before shaping. However, this is kind of
bogus - it's totally valid for shaping to adjust the width of
whichever character happens to be before the space.

Now that we're trying to make the fast text codepath handle complex
character clusters, we're hitting the case more often where shaping
is adjusting the non-space glyphs to be correct, but then our
postprocess is coming along and messing them up. This patch removes
that logic, just for the glyphs before the space characters. The
logic about trying to reset the space characters' width is still
there.

* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::OriginalAdvancesForCharacterTreatedAsSpace::OriginalAdvancesForCharacterTreatedAsSpace):
(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):

Canonical link: https://commits.webkit.org/267541@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] c3b8ad: Addressing review feedback from 267490@main

2023-08-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c3b8ad19792f0ebd4418dd1dab3b76ff4b752ea1
  
https://github.com/WebKit/WebKit/commit/c3b8ad19792f0ebd4418dd1dab3b76ff4b752ea1
  Author: Myles C. Maxfield 
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
M Source/WTF/wtf/text/TextStream.cpp
M Source/WTF/wtf/text/TextStream.h
M Tools/TestWebKitAPI/Tests/WTF/cocoa/TextStreamCocoa.cpp

  Log Message:
  ---
  Addressing review feedback from 267490@main
https://bugs.webkit.org/show_bug.cgi?id=260956
rdar://114751994

Reviewed by Simon Fraser.

Addressing review feedback from
https://github.com/WebKit/WebKit/pull/17269#pullrequestreview-1603946683

* Source/WTF/wtf/text/TextStream.cpp:
(WTF::TextStream::operator<<):
* Source/WTF/wtf/text/TextStream.h:
* Tools/TestWebKitAPI/Tests/WTF/cocoa/TextStreamCocoa.cpp:
(TEST):

Canonical link: https://commits.webkit.org/267493@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 3ebb0e: [Cocoa] Slightly improve text shaping logging

2023-08-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3ebb0e8d48f4262ebf64f5f3bcc0a080c2d83c11
  
https://github.com/WebKit/WebKit/commit/3ebb0e8d48f4262ebf64f5f3bcc0a080c2d83c11
  Author: Myles C. Maxfield 
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
M Source/WebCore/platform/graphics/coretext/FontCoreText.cpp

  Log Message:
  ---
  [Cocoa] Slightly improve text shaping logging
https://bugs.webkit.org/show_bug.cgi?id=260942
rdar://114742142

Reviewed by Cameron McCormack.

This additional logging helped me fix a bug I was investigating.

No test because there is no behavior change.

* Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:
(WebCore::Font::applyTransforms const):

Canonical link: https://commits.webkit.org/267492@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a65bf7: Allow hex() to be used with LOG_WITH_STREAM()

2023-08-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a65bf781e6e6cb1dbc09b0686b44c940f276823d
  
https://github.com/WebKit/WebKit/commit/a65bf781e6e6cb1dbc09b0686b44c940f276823d
  Author: Myles C. Maxfield 
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
M Source/WTF/wtf/text/TextStream.cpp
M Source/WTF/wtf/text/TextStream.h
M Tools/TestWebKitAPI/Tests/WTF/cocoa/TextStreamCocoa.cpp

  Log Message:
  ---
  Allow hex() to be used with LOG_WITH_STREAM()
https://bugs.webkit.org/show_bug.cgi?id=260945
rdar://114742843

Reviewed by Simon Fraser.

TextStream just needs to be able to use the return type of hex().

* Source/WTF/wtf/text/TextStream.cpp:
(WTF::TextStream::operator<<):
* Source/WTF/wtf/text/TextStream.h:
* Tools/TestWebKitAPI/Tests/WTF/cocoa/TextStreamCocoa.cpp:
(TEST):

Canonical link: https://commits.webkit.org/267490@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9de3b4: [Cocoa] font-family:system-ui results in totally g...

2023-08-30 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9de3b434f4b0c6b0f0f166df0a180963080ba045
  
https://github.com/WebKit/WebKit/commit/9de3b434f4b0c6b0f0f166df0a180963080ba045
  Author: Myles C. Maxfield 
  Date:   2023-08-30 (Wed, 30 Aug 2023)

  Changed paths:
M Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp

  Log Message:
  ---
  [Cocoa] font-family:system-ui results in totally garbled text when the user 
has a user-installed system font
https://bugs.webkit.org/show_bug.cgi?id=260886
rdar://113706205

Reviewed by Cameron McCormack.

When we serialize fonts across IPC, we aren't precise enough in our description 
of the system font.
This was causing the web process to use the real system font, while the GPU 
process uses the user-
installed system font.

This patch does 2 things to mitigate this:
1. Refuses to use a font if its location on disk ("reference URL") is different 
than the desired
   location on disk
2. If we end up in this situation where we refuse to use a font, fall back to 
trying to create it
   from the file on-disk rather than the higher-level font descriptor

This patch is untestable, as it requires a system-wide installation of a 
user-installed system font
that shadows the real system font.

* Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp:
(WebCore::findFontDescriptor):
(WebCore::createCTFont):

Canonical link: https://commits.webkit.org/267463@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9df8ed: [Fonts] systemFallbackForCharacters() only works o...

2023-08-27 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9df8edf812b7c4330d6f9c1578ef33e57f37457c
  
https://github.com/WebKit/WebKit/commit/9df8edf812b7c4330d6f9c1578ef33e57f37457c
  Author: Myles C. Maxfield 
  Date:   2023-08-27 (Sun, 27 Aug 2023)

  Changed paths:
M Source/WebCore/platform/graphics/Font.cpp
M Source/WebCore/platform/graphics/Font.h
M Source/WebCore/platform/graphics/FontCache.h
M Source/WebCore/platform/graphics/FontCascade.cpp
M Source/WebCore/platform/graphics/FontCascade.h
M Source/WebCore/platform/graphics/FontCascadeFonts.cpp
M Source/WebCore/platform/graphics/SystemFallbackFontCache.cpp
M Source/WebCore/platform/graphics/SystemFallbackFontCache.h
M Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp
M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
M Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp
M Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp
M Source/WebCore/platform/graphics/freetype/FontSetCache.cpp
M Source/WebCore/platform/graphics/freetype/FontSetCache.h
M Source/WebCore/platform/graphics/win/FontCacheWin.cpp

  Log Message:
  ---
  [Fonts] systemFallbackForCharacters() only works on individual characters, 
not clusters
https://bugs.webkit.org/show_bug.cgi?id=260758
rdar://114481597

Reviewed by Cameron McCormack.

When you pick a font, you have to pick a font for a whole cluster; different 
codepoints
in a cluster can't fall back to different fonts. If you've exhausted the whole 
font-family
list and you fall off the end, you need to ask the system for a font that can 
render
the cluster. The Core Text platform facilities have support for this: they 
accept a
character pointer and a length. However, the only problem is that our own 
system fallback
code operated on an individual UChar32, rather than on a whole cluster.

This is a classic case of impedence mismatch: At the beginning of the 
procedure, you have
clusters, and at the end of the procedure (when we hit Core Text), we operate 
on clusters
too. This patch simply hooks up cluster support (via StringViews) throughout 
the interior
of the procedure.

Right now, this patch has no behavior change, because the only codepath that 
uses this
functionality is our fast text codepath, which currently only operates on a 
single
character at a time (another way to think of this: every cluster has exactly 
one code
point inside it). If we want to stop using the complex text codepath, this will 
be relaxed
in the future, to allow the fast text codepath to operate on whole clusters. 
When that day
comes, we'll need to be able to feed the clusters to 
systemFallbackForCharacters(), like
this patch allows for. (So, right now, this patch doesn't add any tests, 
because there is
no behavior change.)

* Source/WebCore/platform/graphics/Font.cpp:
(WebCore::Font::systemFallbackFontForCharacter const):
* Source/WebCore/platform/graphics/Font.h:
* Source/WebCore/platform/graphics/FontCache.h:
* Source/WebCore/platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::glyphDataForSystemFallback):
* Source/WebCore/platform/graphics/SystemFallbackFontCache.cpp:
(WebCore::SystemFallbackFontCache::systemFallbackFontForCharacter):
* Source/WebCore/platform/graphics/SystemFallbackFontCache.h:
(WebCore::add):
(WebCore::SystemFallbackFontCache::CharacterFallbackMapKeyHashTraits::constructDeletedValue):
(WebCore::SystemFallbackFontCache::CharacterFallbackMapKeyHashTraits::isDeletedValue):
* Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::lookupFallbackFont):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::createFontForCharacters): Deleted.
* Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp:

Canonical link: https://commits.webkit.org/267335@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 77879c: [Fonts] initiateFontLoadingByAccessingGlyphDataIfA...

2023-08-26 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 77879c827b3d9e45e866628d12cf2dea1574b84c
  
https://github.com/WebKit/WebKit/commit/77879c827b3d9e45e866628d12cf2dea1574b84c
  Author: Myles C. Maxfield 
  Date:   2023-08-26 (Sat, 26 Aug 2023)

  Changed paths:
M Source/WebCore/rendering/RenderText.cpp

  Log Message:
  ---
  [Fonts] initiateFontLoadingByAccessingGlyphDataIfApplicable() operates on 
code units, not code points
https://bugs.webkit.org/show_bug.cgi?id=260768
rdar://114488476

Reviewed by Cameron McCormack.

It's meaningless to lookup fonts using individual surrogates.

* Source/WebCore/rendering/RenderText.cpp:
(WebCore::initiateFontLoadingByAccessingGlyphDataIfApplicable):

Canonical link: https://commits.webkit.org/267333@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 67c98f: Allow fontForCombiningCharacterSequence() and canR...

2023-08-25 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 67c98f07295d7d27c34f307816941ec726a96c73
  
https://github.com/WebKit/WebKit/commit/67c98f07295d7d27c34f307816941ec726a96c73
  Author: Myles C. Maxfield 
  Date:   2023-08-25 (Fri, 25 Aug 2023)

  Changed paths:
M Source/WebCore/platform/graphics/ComplexTextController.cpp
M Source/WebCore/platform/graphics/Font.cpp
M Source/WebCore/platform/graphics/Font.h
M Source/WebCore/platform/graphics/FontCascade.cpp
M Source/WebCore/platform/graphics/FontCascade.h
M Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp
M Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp

  Log Message:
  ---
  Allow fontForCombiningCharacterSequence() and 
canRenderCombiningCharacterSequence() to be able to accept 8-bit characters
https://bugs.webkit.org/show_bug.cgi?id=260753
rdar://114478724

Reviewed by Cameron McCormack.

If we're going to make the fast text codepath powerful enough to handle complex
text, that means it's going to have to call fontForCombiningCharacterSequence()
and canRenderCombiningCharacterSequence(). The fast text codepath is templated
to accept either 8-bit characters or 16-bit characters, which means anything
it calls must be able to do so as well.

There's no behavior change with just this patch - these functions are still only
being called with 16-bit characters. This patch just changes the type of them
so they could be called with 8-bit characters in the future. (So, there are no
tests in this patch.)

* Source/WebCore/platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::collectComplexTextRuns):
* Source/WebCore/platform/graphics/Font.cpp:
(WebCore::Font::canRenderCombiningCharacterSequence const):
* Source/WebCore/platform/graphics/Font.h:
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const):
* Source/WebCore/platform/graphics/FontCascade.h:
* Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const):

Canonical link: https://commits.webkit.org/267317@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] dc989b: [Cocoa] objectForEqualityCheck() is no longer nece...

2023-08-25 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dc989b3ef737547949c45f39dc996f0850fe862f
  
https://github.com/WebKit/WebKit/commit/dc989b3ef737547949c45f39dc996f0850fe862f
  Author: Myles C. Maxfield 
  Date:   2023-08-25 (Fri, 25 Aug 2023)

  Changed paths:
M Source/WebCore/platform/graphics/FontPlatformData.h
M Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp
M Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm

  Log Message:
  ---
  [Cocoa] objectForEqualityCheck() is no longer necessary
https://bugs.webkit.org/show_bug.cgi?id=260744
rdar://114474905

Reviewed by Cameron McCormack.

We originally used objectForEqualityCheck() because CFEqual() on fonts was a 
shallow
pointer comparison. It is possible to generate 2 different font objects (with 
different
addresses) which represent the same font, so we handled this by generating a 
derived
object (a "reference URL") for each font, and compared that instead. However, 
CFEqual()
now performs a deep comparison on fonts on all Cocoa OSes we ship on.

No test because there is no behavior change.

* Source/WebCore/platform/graphics/FontPlatformData.h:
* Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp:
(WebCore::FontPlatformData::objectForEqualityCheck): Deleted.
(WebCore::FontPlatformData::objectForEqualityCheck const): Deleted.
* Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

Canonical link: https://commits.webkit.org/267312@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e67d58: Various cleanups after 267095@main

2023-08-25 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e67d582edd3d1ca5c75c80220b030e2c34e4cd1c
  
https://github.com/WebKit/WebKit/commit/e67d582edd3d1ca5c75c80220b030e2c34e4cd1c
  Author: Myles C. Maxfield 
  Date:   2023-08-25 (Fri, 25 Aug 2023)

  Changed paths:
M Source/WebCore/platform/graphics/FontCascade.cpp
M Source/WebCore/platform/graphics/WidthIterator.cpp

  Log Message:
  ---
  Various cleanups after 267095@main
https://bugs.webkit.org/show_bug.cgi?id=260670
rdar://114400262

Reviewed by Cameron McCormack.

This is a bunch of style-related cleanups in WidthIterator.

No test because there is no behavior change.

* Source/WebCore/platform/graphics/WidthIterator.cpp:
(WebCore::SmallCapsState::SmallCapsState):
(WebCore::AdvanceInternalState::AdvanceInternalState):
(WebCore::resetFontRangeIfNeeded):

Canonical link: https://commits.webkit.org/267297@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7f5ccd: Add some accessors to WidthIterator's internal ite...

2023-08-24 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f5ccd87b5c428c990a92a81ff3add2a17e7a2c4
  
https://github.com/WebKit/WebKit/commit/7f5ccd87b5c428c990a92a81ff3add2a17e7a2c4
  Author: Myles C. Maxfield 
  Date:   2023-08-24 (Thu, 24 Aug 2023)

  Changed paths:
M Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h
M Source/WebCore/platform/graphics/Latin1TextIterator.h
M Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.h

  Log Message:
  ---
  Add some accessors to WidthIterator's internal iterators
https://bugs.webkit.org/show_bug.cgi?id=260671
rdar://114400737

Reviewed by Cameron McCormack.

This is in preparation for removing the complex text codepath. These accessors 
will be
necessary when we actually make WidthIterator understand character clusters. 
For now,
they are unused.

No tests because there is no behavior change.

* Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h:
(WebCore::ComposedCharacterClusterTextIterator::remainingCharacters const):
(WebCore::ComposedCharacterClusterTextIterator::currentIndex const):
(WebCore::ComposedCharacterClusterTextIterator::characters const):
* Source/WebCore/platform/graphics/Latin1TextIterator.h:
(WebCore::Latin1TextIterator::remainingCharacters const):
* Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.h:
(WebCore::SurrogatePairAwareTextIterator::remainingCharacters const):
(WebCore::SurrogatePairAwareTextIterator::currentIndex const):
(WebCore::SurrogatePairAwareTextIterator::characters const):

Canonical link: https://commits.webkit.org/267254@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 4ef6f5: [macOS] Temporarily disable JPEG XL on older OSes ...

2023-07-28 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4ef6f54430f8a53c3de39ebc57edc245f304e620
  
https://github.com/WebKit/WebKit/commit/4ef6f54430f8a53c3de39ebc57edc245f304e620
  Author: Myles C. Maxfield 
  Date:   2023-07-28 (Fri, 28 Jul 2023)

  Changed paths:
M Source/WebCore/Configurations/WebCore.xcconfig

  Log Message:
  ---
  [macOS] Temporarily disable JPEG XL on older OSes until we can get 
https://bugs.webkit.org/show_bug.cgi?id=259587 ironed out
https://bugs.webkit.org/show_bug.cgi?id=259603
rdar://113041105

Reviewed by Tim Horton.

This path is producing images that are garbled. Temporarily disable the feature 
until we can fix that.

* Source/WebCore/Configurations/WebCore.xcconfig:

Canonical link: https://commits.webkit.org/266408@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 45a531: utext_setup() can fail

2023-07-28 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 45a531fbee9aae168c5795cc191a49b415f10e66
  
https://github.com/WebKit/WebKit/commit/45a531fbee9aae168c5795cc191a49b415f10e66
  Author: Myles C. Maxfield 
  Date:   2023-07-28 (Fri, 28 Jul 2023)

  Changed paths:
M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h

  Log Message:
  ---
  utext_setup() can fail
https://bugs.webkit.org/show_bug.cgi?id=259468
rdar://112426537

Reviewed by Brent Fulgham.

Simply add a null check.

We don't know of any content that can cause this, but
we are getting reports of crashes at this stack trace.
So I don't know how to make a test :(

* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::TextBreakIteratorICU):
(WTF::TextBreakIteratorICU::operator=):
(WTF::TextBreakIteratorICU::setText):

Canonical link: https://commits.webkit.org/266388@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e812d6: [WebGPU] Make wgslc and wgslfuzz distinct from eac...

2023-07-24 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e812d681255b5530d4bdc7272899b17dbf023342
  
https://github.com/WebKit/WebKit/commit/e812d681255b5530d4bdc7272899b17dbf023342
  Author: Myles C. Maxfield 
  Date:   2023-07-24 (Mon, 24 Jul 2023)

  Changed paths:
A Source/WebGPU/Configurations/wgslfuzz.xcconfig
M Source/WebGPU/WGSL/wgslc.cpp
A Source/WebGPU/WGSL/wgslfuzz.cpp
M Source/WebGPU/WebGPU.xcodeproj/project.pbxproj
A Source/WebGPU/WebGPU.xcodeproj/xcshareddata/xcschemes/wgslfuzz.xcscheme

  Log Message:
  ---
  [WebGPU] Make wgslc and wgslfuzz distinct from each other
https://bugs.webkit.org/show_bug.cgi?id=259454
rdar://112798797

Reviewed by Mike Wyrzykowski.

It would be useful to make the compiler and the fuzzer different executables
for local development, so when the fuzzer finds a problem, you can feed that
into the compiler to debug it.

The way this works is:
% set-webkit-configuration --debug --asan --libFuzzer
% cd Source/WebGPU
% make SCHEME=wgslfuzz
% make SCHEME=wgslc
% ASAN_OPTIONS=whatever DYLD_FRAMEWORK_PATH=/path/to/Products/Debug 
DYLD_LIBRARY_PATH=/path/to/Products/Debug /path/to/Products/Debug/wgslfuzz
% ASAN_OPTIONS=whatever DYLD_FRAMEWORK_PATH=/path/to/Products/Debug 
DYLD_LIBRARY_PATH=/path/to/Products/Debug /path/to/Products/Debug/wgslc

* Source/WebGPU/Configurations/wgslfuzz.xcconfig: Added.
* Source/WebGPU/WGSL/wgslc.cpp:
(main):
(LLVMFuzzerTestOneInput): Deleted.
* Source/WebGPU/WGSL/wgslfuzz.cpp: Added.
(LLVMFuzzerTestOneInput):
* Source/WebGPU/WebGPU.xcodeproj/project.pbxproj:
* Source/WebGPU/WebGPU.xcodeproj/xcshareddata/xcschemes/wgslfuzz.xcscheme: 
Added.

Canonical link: https://commits.webkit.org/266269@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 751a8c: [WebGPU] Add the ability to fuzz wgslc

2023-07-21 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 751a8c03a46a2b18f88e4385e7c15a2dd49cbddf
  
https://github.com/WebKit/WebKit/commit/751a8c03a46a2b18f88e4385e7c15a2dd49cbddf
  Author: Myles C. Maxfield 
  Date:   2023-07-21 (Fri, 21 Jul 2023)

  Changed paths:
M Configurations/Sanitizers.xcconfig
M Source/WebGPU/WGSL/wgslc.cpp
M Tools/Scripts/set-webkit-configuration
M Tools/Scripts/webkitdirs.pm

  Log Message:
  ---
  [WebGPU] Add the ability to fuzz wgslc
https://bugs.webkit.org/show_bug.cgi?id=259355
rdar://112576959

Reviewed by David Kilzer.

The way this works is:
% set-webkit-configuration --debug --asan --libFuzzer
% cd Source/WebGPU
% make SCHEME=wgslc
% ASAN_OPTIONS=whatever DYLD_FRAMEWORK_PATH=/path/to/Products/Debug 
DYLD_LIBRARY_PATH=/path/to/Products/Debug /path/to/Products/Debug/wgslc

This patch adds a new configuration option, named "libFuzzer" to WebKit. It sets
the ENABLE_LIBFUZZER Xcode variable, which automatically adds -fsanitize=fuzzer 
to
compilations. It also sets the ENABLE_LIBFUZZER preprocessor macro, which we can
use to conditionally use LLVMFuzzerTestOneInput() instead of main() if fuzzing 
is
enabled. Enabling fuzzing also enables ASAN (because of course it does).

* Configurations/Sanitizers.xcconfig:
* Source/WebGPU/WGSL/wgslc.cpp:
(runWGSL):
(LLVMFuzzerTestOneInput):
* Tools/Scripts/set-webkit-configuration:
(printCurrentSettings):
* Tools/Scripts/webkitdirs.pm:
(determineLibFuzzerIsEnabled):
(libFuzzerIsEnabled):
(XcodeOptions):
(generateBuildSystemFromCMakeProject):

Canonical link: https://commits.webkit.org/266202@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 3dfb58: [Cocoa] Small canvases, which aren't supposed to g...

2023-07-18 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3dfb58beb2151d8039d5e56f6ddccddc9cd9d1ce
  
https://github.com/WebKit/WebKit/commit/3dfb58beb2151d8039d5e56f6ddccddc9cd9d1ce
  Author: Myles C. Maxfield 
  Date:   2023-07-18 (Tue, 18 Jul 2023)

  Changed paths:
A 
LayoutTests/compositing/canvas/accelerated-small-canvas-compositing-expected.txt
A LayoutTests/compositing/canvas/accelerated-small-canvas-compositing.html
A 
LayoutTests/platform/gtk/compositing/canvas/accelerated-small-canvas-compositing-expected.txt
A 
LayoutTests/platform/ios/compositing/canvas/accelerated-small-canvas-compositing-expected.txt
M Source/WebCore/rendering/RenderLayerCompositor.cpp

  Log Message:
  ---
  [Cocoa] Small canvases, which aren't supposed to get compositing layers, get 
compositing layers if they have a 3D-but-could-be-2D transform
https://bugs.webkit.org/show_bug.cgi?id=259297
rdar://112439265

Reviewed by Simon Fraser.

We already have existing code which will avoid compositing small canvases. 
However, if
the small canvas has a 3D-but-could-be-2D transform, we'll composite it 
regardless. This
patch extends the current logic to not composite small canvases in this case.

This patch causes a 41% - 48% progression on the Images subtest in MotionMark. 
Layers
have cost, y'all.

* 
LayoutTests/compositing/canvas/accelerated-small-canvas-compositing-expected.txt
* LayoutTests/compositing/canvas/accelerated-small-canvas-compositing.html
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForTransform const): This 
patch doesn't
modify m_compositingPolicy, because that's global for the whole 
RenderLayerCompositor. We
only want to change the policy in this specific case.

Canonical link: https://commits.webkit.org/266135@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a80e19: [macOS] fast/text/international/system-language/ha...

2023-07-17 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a80e196c2ba8bda219855915f038d824a9dd2770
  
https://github.com/WebKit/WebKit/commit/a80e196c2ba8bda219855915f038d824a9dd2770
  Author: Myles C. Maxfield 
  Date:   2023-07-17 (Mon, 17 Jul 2023)

  Changed paths:
M LayoutTests/platform/mac-gpup/TestExpectations
M LayoutTests/platform/mac-wk2/TestExpectations

  Log Message:
  ---
  [macOS] fast/text/international/system-language/han-text-style.html is no 
longer failing
https://bugs.webkit.org/show_bug.cgi?id=259258
rdar://102588345

Unreviewed test gardening.

The test is consistently passing on macOS.

https://results.webkit.org/?suite=layout-tests=fast%2Ftext%2Finternational%2Fsystem-language%2Fhan-text-style.html

* LayoutTests/platform/mac-gpup/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/266122@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 68a63d: Special-casing the zero glyph page is unnecessary ...

2023-07-16 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 68a63d5baeafd9de8dbd0f8301946a383e2d0e3d
  
https://github.com/WebKit/WebKit/commit/68a63d5baeafd9de8dbd0f8301946a383e2d0e3d
  Author: Myles C. Maxfield 
  Date:   2023-07-16 (Sun, 16 Jul 2023)

  Changed paths:
M Source/WebCore/platform/graphics/Font.cpp
M Source/WebCore/platform/graphics/Font.h

  Log Message:
  ---
  Special-casing the zero glyph page is unnecessary (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=259257
rdar://112344047

Reviewed by Cameron McCormack.

This is a follow-up to 266052@main. Each glyph page only holds 16 characters, 
so the
0th glyph page isn't really special. Almost no text will actually use it. So 
there's
no need to special-case it. (I bet that this special-case wasn't actually 
created
for performance, but just because of how our HashMaps treat 0 as empty...)

* Source/WebCore/platform/graphics/Font.cpp:
(WebCore::Font::glyphPage const):
* Source/WebCore/platform/graphics/Font.h:

Canonical link: https://commits.webkit.org/266091@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 3f69e1: REGRESSION: Emoji characters are sometimes drawn i...

2023-07-16 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3f69e13f0317394affb24ab40d881b92f2f1299d
  
https://github.com/WebKit/WebKit/commit/3f69e13f0317394affb24ab40d881b92f2f1299d
  Author: Myles C. Maxfield 
  Date:   2023-07-16 (Sun, 16 Jul 2023)

  Changed paths:
A LayoutTests/fast/text/emoji-style-expected.html
A LayoutTests/fast/text/emoji-style.html
M Source/WTF/wtf/BitVector.h
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/unicode/CharacterNames.h
M Source/WebCore/PAL/pal/cf/CoreTextSoftLink.cpp
M Source/WebCore/PAL/pal/cf/CoreTextSoftLink.h
M Source/WebCore/platform/graphics/Font.cpp
M Source/WebCore/platform/graphics/Font.h
M Source/WebCore/platform/graphics/FontCascade.cpp
M Source/WebCore/platform/graphics/FontCascade.h
M Source/WebCore/platform/graphics/FontCascadeFonts.cpp
M Source/WebCore/platform/graphics/FontCascadeFonts.h
M Source/WebCore/platform/graphics/GlyphPage.h
M Source/WebCore/platform/graphics/SystemFallbackFontCache.cpp
M Source/WebCore/platform/graphics/SystemFallbackFontCache.h
M Source/WebCore/platform/graphics/cairo/FontCairo.cpp
M Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp
M Source/WebCore/platform/graphics/coretext/FontCoreText.cpp
M Source/WebCore/platform/graphics/coretext/GlyphPageCoreText.cpp
M Source/WebCore/platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp
M Source/WebCore/platform/graphics/opentype/OpenTypeVerticalData.cpp
M Source/WebCore/platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp
M Source/WebCore/platform/text/TextFlags.h

  Log Message:
  ---
  REGRESSION: Emoji characters are sometimes drawn in text style erroneously
https://bugs.webkit.org/show_bug.cgi?id=259139
rdar://111411175

Reviewed by Cameron McCormack.

In WebKit, we weren't treating emoji deliberately at all. We were treating them 
like any other
character - falling back to the first font in the fallback list that supports 
them. This is a
problem because there are some fonts (like STIXTwo) which support emoji code 
points, but
aren't colorful like emoji should be. In particular, on macOS, STIXTwo is 
earlier in the
platform's default font cascade list than Apple Color Emoji, so some emoji 
characters were being
rendered in text style, not emoji style.

The fix for this is to treat emoji deliberately. This patch adds two 
classification functions:
- One that classifies a character as either "RequireText", "RequireEmoji" or 
"NoPreference"
- One that classifies a glyph in a font as either color or not

When we perform font fallback for a particular character, we can make sure that 
if the
character requires emoji style, that it is being rendered with a color glyph 
(and vice-versa
for characters that require text style - of which there are none right now, but 
the yet-to-
be-implemented `font-variant-emoji` property would create this situation). If 
the glyph from
the fallback font isn't compatible with the character, then the solution is to 
just keep
falling back to another font. If we get to the end of the list, we ask the 
platform to produce
a font for us, and we pass it a variation selector which indicates which kind 
of glyph/font
we need.

The first classification works by just asking Unicode (ICU) whether the 
character has the
Emoji_Presentation property. The second classification works by creating a 
bitmap of all the
glyphs at font creation time, which can then be queried at font fallback time.

(On the Linux ports, I couldn't figure out how to implement the second 
classification function.
See https://bugs.webkit.org/show_bug.cgi?id=259205. This means that the first 
classification
needs to report NoPreference for every character on those ports. We don't want 
a situation where
a character reports it requires emoji style, but we don't know how to ask a 
font if it has
colorful glyphs, so we assume no fonts have colorful glyphs, which means no 
fonts can render
the character.)

Because a particular glyph in a font is either text style or emoji style (and 
not both),
all the caches _inside_ Font don't need to be updated. The only caches which 
need to be updated
in this patch is the ones in FontCascadeFonts where different glyphs from 
different fonts are
combined together into a single data structure.

The test for this patch only tests the characters which Unicode says actually 
need emoji style.
All the other characters are up to the OS/UA's discretion about whether they 
should be emoji
or not. For example, iOS renders a bunch of more characters in emoji style than 
just what's
required by Unicode - but macOS doesn't. I also limited the set of characters 
from "all the
characters Unicode says need emoji style" to "all the characters Unicode says 
need emoji style
that macOS renders as text style" so the set isn't super big.

* LayoutTests/fast/text/emoji-style-e

[webkit-changes] [WebKit/WebKit] 2dfe83: Special-casing the zero glyph page is unnecessary

2023-07-13 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2dfe83b6f5fd67ea089c2fe200ddabc72170eb90
  
https://github.com/WebKit/WebKit/commit/2dfe83b6f5fd67ea089c2fe200ddabc72170eb90
  Author: Myles C. Maxfield 
  Date:   2023-07-13 (Thu, 13 Jul 2023)

  Changed paths:
M Source/WebCore/platform/graphics/FontCascadeFonts.cpp
M Source/WebCore/platform/graphics/FontCascadeFonts.h

  Log Message:
  ---
  Special-casing the zero glyph page is unnecessary
https://bugs.webkit.org/show_bug.cgi?id=259180
rdar://112186000

Reviewed by Simon Fraser.

Each glyph page only holds 16 characters, so the 0th glyph page isn't really 
special.
Almost no text will actually use it. So there's no need to special-case it. (I 
bet
that this special-case wasn't actually created for performance, but just 
because of
how our HashMaps treat 0 as empty...)

* Source/WebCore/platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::glyphDataForCharacter):
(WebCore::FontCascadeFonts::pruneSystemFallbacks):
* Source/WebCore/platform/graphics/FontCascadeFonts.h:

Canonical link: https://commits.webkit.org/266052@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 376d44: Allow EnumeratedArray to infer the size of its int...

2023-07-13 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 376d4439778b24d4d73abf7e291f27912aa3017f
  
https://github.com/WebKit/WebKit/commit/376d4439778b24d4d73abf7e291f27912aa3017f
  Author: Myles C. Maxfield 
  Date:   2023-07-13 (Thu, 13 Jul 2023)

  Changed paths:
M Source/WTF/wtf/EnumTraits.h
M Source/WTF/wtf/EnumeratedArray.h
M Source/WebCore/platform/graphics/filters/FEComponentTransfer.h
M Source/WebGPU/WebGPU/BindGroupLayout.h
M Tools/Scripts/webkitpy/style/checkers/cpp.py
M Tools/TestWebKitAPI/Tests/WTF/EnumTraits.cpp
M Tools/TestWebKitAPI/Tests/WTF/EnumeratedArray.cpp

  Log Message:
  ---
  Allow EnumeratedArray to infer the size of its internal array
https://bugs.webkit.org/show_bug.cgi?id=259174
rdar://112177459

Reviewed by Yusuke Suzuki.

We can use our existing pattern of EnumTraits to automatically calculate
what the maximum value of the enum is at compile time.

This patch also adds isZeroBasedContiguousEnum() which indicates whether the
enum is a good candidate for EnumeratedArray, but doesn't require it because
we have a few places in WebKit which use EnumeratedArray but aren't suitable
for using the EnumTraits pattern. Once these places are migrated, we can require
all enums used in EnumeratedArray to be isZeroBasedContiguousEnum().

* Source/WTF/wtf/EnumTraits.h:
(WTF::isZeroBasedContiguousEnum):
* Source/WTF/wtf/EnumeratedArray.h:
* Source/WebCore/platform/graphics/filters/FEComponentTransfer.h:
* Source/WebGPU/WebGPU/BindGroupLayout.h:
* Tools/TestWebKitAPI/Tests/WTF/EnumTraits.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/EnumeratedArray.cpp:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/266026@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] da4d5f: Rename WTF::Bitmap to WTF::BitSet

2023-07-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: da4d5fa288fc590dd6d77d598d66a61de11b6c2c
  
https://github.com/WebKit/WebKit/commit/da4d5fa288fc590dd6d77d598d66a61de11b6c2c
  Author: Myles C. Maxfield 
  Date:   2023-07-12 (Wed, 12 Jul 2023)

  Changed paths:
M Source/JavaScriptCore/assembler/SecureARM64EHashPins.h
M Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.cpp
M Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h
M Source/JavaScriptCore/heap/IsoCellSet.cpp
M Source/JavaScriptCore/heap/IsoCellSet.h
M Source/JavaScriptCore/heap/MarkedBlock.h
M Source/JavaScriptCore/heap/VerifierSlotVisitor.h
M Source/JavaScriptCore/heap/VerifierSlotVisitorInlines.h
M Source/JavaScriptCore/jit/RegisterSet.h
M Source/JavaScriptCore/runtime/IntlObject.cpp
M Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp
M Source/JavaScriptCore/yarr/YarrJIT.h
M Source/JavaScriptCore/yarr/YarrPattern.cpp
M Source/WTF/WTF.xcodeproj/project.pbxproj
A Source/WTF/wtf/BitSet.h
M Source/WTF/wtf/BitVector.h
R Source/WTF/wtf/Bitmap.h
M Source/WTF/wtf/CMakeLists.txt
M Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h
M Source/WebCore/style/StyleBuilderState.h
M Tools/TestWebKitAPI/CMakeLists.txt
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
A Tools/TestWebKitAPI/Tests/WTF/BitSet.cpp
R Tools/TestWebKitAPI/Tests/WTF/Bitmap.cpp

  Log Message:
  ---
  Rename WTF::Bitmap to WTF::BitSet
https://bugs.webkit.org/show_bug.cgi?id=259168
rdar://112167937

Reviewed by Yusuke Suzuki.

Bitmap makes it sound like an image, but it's not.

Also, BitSet provides symmetry with std::bitset, which is a
very similar class.

* Source/JavaScriptCore/assembler/SecureARM64EHashPins.h:
* Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::tmpLivenessForCheckpoint):
* Source/JavaScriptCore/bytecode/BytecodeLivenessAnalysis.h:
* Source/JavaScriptCore/heap/IsoCellSet.cpp:
(JSC::IsoCellSet::addSlow):
* Source/JavaScriptCore/heap/IsoCellSet.h:
* Source/JavaScriptCore/heap/MarkedBlock.h:
(JSC::MarkedBlock::marks const):
(JSC::MarkedBlock::newlyAllocated const):
* Source/JavaScriptCore/heap/VerifierSlotVisitor.h:
(JSC::VerifierSlotVisitor::MarkedBlockData::atoms const):
* Source/JavaScriptCore/heap/VerifierSlotVisitorInlines.h:
(JSC::VerifierSlotVisitor::forEachLiveMarkedBlockCell):
* Source/JavaScriptCore/jit/RegisterSet.h:
* Source/JavaScriptCore/runtime/IntlObject.cpp:
(JSC::LanguageTagParser::parseExtensionsAndPUExtensions):
* Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp:
(JSC::makeCharacterBitmap):
(JSC::encode):
(JSC::decode):
(JSC::JSC_DEFINE_HOST_FUNCTION):
* Source/JavaScriptCore/yarr/YarrJIT.h:
* Source/JavaScriptCore/yarr/YarrPattern.cpp:
(JSC::Yarr::CharacterClassConstructor::asciiOpSorted):
(JSC::Yarr::CharacterClassConstructor::unicodeOpSorted):
* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/BitSet.h: Renamed from Source/WTF/wtf/Bitmap.h.
(WTF::WordType>::get const):
(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::concurrentTestAndSet):
(WTF::WordType>::concurrentTestAndClear):
(WTF::WordType>::clear):
(WTF::WordType>::clearAll):
(WTF::WordType>::cleanseLastWord):
(WTF::WordType>::setAll):
(WTF::WordType>::invert):
(WTF::WordType>::nextPossiblyUnset const):
(WTF::WordType>::findRunOfZeros const):
(WTF::WordType>::count const):
(WTF::WordType>::isEmpty const):
(WTF::WordType>::isFull const):
(WTF::WordType>::merge):
(WTF::WordType>::filter):
(WTF::WordType>::exclude):
(WTF::WordType>::concurrentFilter):
(WTF::WordType>::subsumes const):
(WTF::WordType>::forEachSetBit const):
(WTF::WordType>::findBit const):
(WTF::WordType>::mergeAndClear):
(WTF::WordType>::setAndClear):
(WTF::WordType>::setEachNthBit):
(WTF::= const):
(WTF::=):
(WTF::WordType>::hash const):
(WTF::WordType>::dump const):
* Source/WTF/wtf/BitVector.h:
* Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:
* Source/WebCore/style/StyleBuilderState.h:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WTF/BitSet.cpp: Added.
(TestWebKitAPI::countBits):
(TestWebKitAPI::testBitSetSize):
(TestWebKitAPI::testBitSetConstructedEmpty):
(TestWebKitAPI::testBitSetSetGet):
(TestWebKitAPI::testBitSetTestAndSet):
(TestWebKitAPI::testBitSetTestAndClear):
(TestWebKitAPI::testBitSetConcurrentTestAndSet):
(TestWebKitAPI::testBitSetConcurrentTestAndClear):
(TestWebKitAPI::testBitSetClear):
(TestWebKitAPI::testBitSetClearAll):
(TestWebKitAPI::testBitSetInvert):
(TestWebKitAPI::testBitSetFindRunOfZeros):
(TestWebKitAPI::testBitSetCount):
(TestWebKitAPI::testBitSetCountAfterSetAll):
(TestWebKitAPI::testBitSetIsEmpty):
(TestWebKitAPI::testBitSetIsFull):
(TestWebKitAPI::testBitSetMerge):
(TestWebKitAPI::testBitSetFil

[webkit-changes] [WebKit/WebKit] e9e9b4: [Cocoa] [Downlevels] Out of bounds optical sizing ...

2023-07-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e9e9b4699c26d5e69ffeafd259edcc7e203479fb
  
https://github.com/WebKit/WebKit/commit/e9e9b4699c26d5e69ffeafd259edcc7e203479fb
  Author: Myles C. Maxfield 
  Date:   2023-07-12 (Wed, 12 Jul 2023)

  Changed paths:
A 
LayoutTests/fast/text/variations/optical-sizing-out-of-bounds-expected.html
A LayoutTests/fast/text/variations/optical-sizing-out-of-bounds.html
M Source/WTF/wtf/PlatformUse.h
M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h
M Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.cpp
M Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.h

  Log Message:
  ---
  [Cocoa] [Downlevels] Out of bounds optical sizing is rendered as the default 
value instead of clamping
https://bugs.webkit.org/show_bug.cgi?id=258764
rdar://111535841

Reviewed by Cameron McCormack.

On pre-2023-aligned Apple OSes, Core Text's behavior for optical sizing is that
out of bounds values are ignored, and default optical sizing is used instead of
clamping the specified value. We can work around this by clamping the value
ourself in WebKit, but this is somewhat unfortunate because we only know the
acceptable range after creating a CTFont, but we'd like to specify the values
during CTFont creation time.

This patch solves the problem by doing a 2-phase creation: Create a CTFont,
inspect it, determine if it needs a second phase, and if it does, modify the
CTFont to create a second, derived, CTFont. We already have some support for
this due to the TrueType GX weight/width/slope scales being different than
the CSS scales - but we don't know if a font is a TrueType GX font until we've
created the CTFont object. This patch extends that existing 2-phase creation to
also recreate the font if the optical sizing ended up wrong.

* LayoutTests/fast/text/variations/optical-sizing-out-of-bounds-expected.html: 
Added.
* LayoutTests/fast/text/variations/optical-sizing-out-of-bounds.html: Added.
* Source/WTF/wtf/PlatformUse.h:
* Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.cpp:
(WebCore::OpticalSizeRange::isInRange const):
(WebCore::opticalSizeRange):
(WebCore::UnrealizedCoreTextFont::rebuildReason const):
(WebCore::UnrealizedCoreTextFont::realize const):
* Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.h:
(WebCore::UnrealizedCoreTextFont::RebuildReason::hasEffect const):

Canonical link: https://commits.webkit.org/266000@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] f807b4: REGRESSION(265657@main): imported/w3c/web-platform...

2023-06-30 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f807b4b42e8a1051a2d3032b6a519017be24e63d
  
https://github.com/WebKit/WebKit/commit/f807b4b42e8a1051a2d3032b6a519017be24e63d
  Author: Myles C. Maxfield 
  Date:   2023-06-30 (Fri, 30 Jun 2023)

  Changed paths:
M LayoutTests/platform/mac/TestExpectations
M 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/import/animate-elem-35-t-manual-expected.txt

  Log Message:
  ---
  REGRESSION(265657@main): 
imported/w3c/web-platform-tests/svg/import/animate-elem-35-t-manual.svg is 
failing
https://bugs.webkit.org/show_bug.cgi?id=258756
rdar://111593596

Unreviewed test gardening.

Simply needs a rebaseline.

* LayoutTests/platform/mac/TestExpectations:
* 
LayoutTests/platform/mac/imported/w3c/web-platform-tests/svg/import/animate-elem-35-t-manual-expected.txt:

Canonical link: https://commits.webkit.org/265677@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 2ce829: REGRESSION(265657@main): svg/W3C-I18N/tspan-direct...

2023-06-30 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2ce829b573fa79059fedf82b13be8ea472cb6ab6
  
https://github.com/WebKit/WebKit/commit/2ce829b573fa79059fedf82b13be8ea472cb6ab6
  Author: Myles C. Maxfield 
  Date:   2023-06-30 (Fri, 30 Jun 2023)

  Changed paths:
M LayoutTests/platform/mac/svg/W3C-I18N/tspan-direction-rtl-expected.txt

  Log Message:
  ---
  REGRESSION(265657@main): svg/W3C-I18N/tspan-direction-rtl.svg is failing
https://bugs.webkit.org/show_bug.cgi?id=258751
rdar://111591383

Unreviewed test gardening.

Simply needs a rebaseline.

* LayoutTests/platform/mac/svg/W3C-I18N/tspan-direction-rtl-expected.txt:

Canonical link: https://commits.webkit.org/265676@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 37aaa1: [WebGPU] Abstract interface needs to use WebCore t...

2023-06-30 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 37aaa17f0b0b96081c9135b94ce88c7516027892
  
https://github.com/WebKit/WebKit/commit/37aaa17f0b0b96081c9135b94ce88c7516027892
  Author: Myles C. Maxfield 
  Date:   2023-06-30 (Fri, 30 Jun 2023)

  Changed paths:
M Source/WebCore/CMakeLists.txt
M Source/WebCore/DerivedSources-input.xcfilelist
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/WebGPU/GPU.cpp
M Source/WebCore/Modules/WebGPU/GPU.h
M Source/WebCore/Modules/WebGPU/GPUAdapter.cpp
M Source/WebCore/Modules/WebGPU/GPUAdapter.h
M Source/WebCore/Modules/WebGPU/GPUAddressMode.h
M Source/WebCore/Modules/WebGPU/GPUAutoLayoutMode.h
M Source/WebCore/Modules/WebGPU/GPUBindGroup.cpp
M Source/WebCore/Modules/WebGPU/GPUBindGroup.h
M Source/WebCore/Modules/WebGPU/GPUBindGroupDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUBindGroupEntry.h
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.cpp
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.h
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutEntry.h
M Source/WebCore/Modules/WebGPU/GPUBlendComponent.h
M Source/WebCore/Modules/WebGPU/GPUBlendFactor.h
M Source/WebCore/Modules/WebGPU/GPUBlendOperation.h
M Source/WebCore/Modules/WebGPU/GPUBlendState.h
M Source/WebCore/Modules/WebGPU/GPUBuffer.cpp
M Source/WebCore/Modules/WebGPU/GPUBuffer.h
M Source/WebCore/Modules/WebGPU/GPUBufferBinding.h
M Source/WebCore/Modules/WebGPU/GPUBufferBindingLayout.h
M Source/WebCore/Modules/WebGPU/GPUBufferBindingType.h
M Source/WebCore/Modules/WebGPU/GPUBufferDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUBufferUsage.h
M Source/WebCore/Modules/WebGPU/GPUCanvasCompositingAlphaMode.h
M Source/WebCore/Modules/WebGPU/GPUCanvasConfiguration.h
M Source/WebCore/Modules/WebGPU/GPUColorDict.h
M Source/WebCore/Modules/WebGPU/GPUColorTargetState.h
M Source/WebCore/Modules/WebGPU/GPUColorWrite.h
M Source/WebCore/Modules/WebGPU/GPUCommandBuffer.cpp
M Source/WebCore/Modules/WebGPU/GPUCommandBuffer.h
M Source/WebCore/Modules/WebGPU/GPUCommandBufferDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUCommandEncoder.cpp
M Source/WebCore/Modules/WebGPU/GPUCommandEncoder.h
M Source/WebCore/Modules/WebGPU/GPUCommandEncoderDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUCompareFunction.h
M Source/WebCore/Modules/WebGPU/GPUCompilationInfo.h
M Source/WebCore/Modules/WebGPU/GPUCompilationMessage.cpp
M Source/WebCore/Modules/WebGPU/GPUCompilationMessage.h
M Source/WebCore/Modules/WebGPU/GPUCompilationMessageType.h
M Source/WebCore/Modules/WebGPU/GPUCompositorIntegration.h
M Source/WebCore/Modules/WebGPU/GPUComputePassDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.cpp
M Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.h
M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampLocation.h
M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrite.h
M Source/WebCore/Modules/WebGPU/GPUComputePipeline.h
M Source/WebCore/Modules/WebGPU/GPUComputePipelineDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUCullMode.h
M Source/WebCore/Modules/WebGPU/GPUDepthStencilState.h
M Source/WebCore/Modules/WebGPU/GPUDevice.cpp
M Source/WebCore/Modules/WebGPU/GPUDevice.h
M Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUDeviceError.idl
M Source/WebCore/Modules/WebGPU/GPUDeviceLost.idl
M Source/WebCore/Modules/WebGPU/GPUDeviceLostInfo.cpp
M Source/WebCore/Modules/WebGPU/GPUDeviceLostInfo.h
M Source/WebCore/Modules/WebGPU/GPUDeviceLostReason.h
M Source/WebCore/Modules/WebGPU/GPUDeviceUncapturedError.idl
M Source/WebCore/Modules/WebGPU/GPUError.h
M Source/WebCore/Modules/WebGPU/GPUErrorFilter.h
M Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h
M Source/WebCore/Modules/WebGPU/GPUExternalTexture.cpp
M Source/WebCore/Modules/WebGPU/GPUExternalTexture.h
M Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.h
M Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUFeatureName.h
M Source/WebCore/Modules/WebGPU/GPUFilterMode.h
M Source/WebCore/Modules/WebGPU/GPUFragmentState.h
M Source/WebCore/Modules/WebGPU/GPUFrontFace.h
M Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.h
M Source/WebCore/Modules/WebGPU/GPUImageCopyExternalImage.h
M Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.h
M Source/WebCore/Modules/WebGPU/GPUImageCopyTextureTagged.h
M Source/WebCore/Modules/WebGPU/GPUImageDataLayout.h
M Source/WebCore/Modules/WebGPU/GPUIndexFormat.h
M Source/WebCore/Modules/WebGPU/GPUIntegralTypes.h
M Source/WebCore/Modules/WebGPU/GPUInternalError.h
M Source/WebCore/Modules/WebGPU/GPULoadOp.h
M Source/WebCore

[webkit-changes] [WebKit/WebKit] bd7169: Implement word-break: auto

2023-06-30 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bd716947b5196a89ab2d9621075984389e2d4e50
  
https://github.com/WebKit/WebKit/commit/bd716947b5196a89ab2d9621075984389e2d4e50
  Author: Myles C. Maxfield 
  Date:   2023-06-30 (Fri, 30 Jun 2023)

  Changed paths:
M LayoutTests/TestExpectations
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-break-invalid-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-break-invalid.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-break-valid-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-break-valid.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-000-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-000.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-001-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-001.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-002-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-002.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-003-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-003.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-004-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-004.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-005-expected.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/word-break/auto/word-break-auto-005.html
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/css/CSSPrimitiveValueMappings.h
M Source/WebCore/css/CSSProperties.json
M Source/WebCore/css/parser/CSSParserContext.cpp
M Source/WebCore/css/parser/CSSParserContext.h
M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
M Source/WebCore/rendering/RenderText.cpp
M Source/WebCore/rendering/RenderText.h
M Source/WebCore/rendering/line/BreakingContext.h
M Source/WebCore/rendering/style/RenderStyleConstants.cpp
M Source/WebCore/rendering/style/RenderStyleConstants.h
M Source/WebCore/rendering/style/StyleRareInheritedData.h

  Log Message:
  ---
  Implement word-break: auto
https://bugs.webkit.org/show_bug.cgi?id=258668
rdar://111507205

Reviewed by Tim Nguyen.

https://github.com/w3c/csswg-drafts/issues/7193#issuecomment-1611772475 says:
> RESOLVED: remove auto () from word-boundary-detection, add keyword to 
> word-break
> for this functionality

This patch implements word-break: auto and hooks it up to the CFStringTokenizer
infrastructure already implemented in 265059@main.

* Source/WebCore/css/CSSPrimitiveValueMappings.h:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity):
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::contentAnalysis):
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h:
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::mapWordBreakToContentAnalysis):
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::mapWordBoundaryDetectionToContentAnalysis): Deleted.
* Source/WebCore/rendering/RenderText.h:
* Source/WebCore/rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):
* Source/WebCore/rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* Source/WebCore/rendering/style/RenderStyleConstants.h:

Canonical link: https://commits.webkit.org/265671@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 606e9d: Revert(265057@main): Stop parsing word-boundary-de...

2023-06-30 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 606e9d4b0da442b51d9acb9ef992895e3c7f32f5
  
https://github.com/WebKit/WebKit/commit/606e9d4b0da442b51d9acb9ef992895e3c7f32f5
  Author: Myles C. Maxfield 
  Date:   2023-06-30 (Fri, 30 Jun 2023)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/word-boundary-detection-interpolation-expected.txt
R 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/word-boundary-detection-interpolation.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-computed-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-valid-expected.txt
M 
LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Headers.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/css/CSSProperties.json
M Source/WebCore/css/CSSValue.cpp
M Source/WebCore/css/CSSValue.h
R Source/WebCore/css/CSSWordBoundaryDetectionValue.cpp
R Source/WebCore/css/CSSWordBoundaryDetectionValue.h
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
M Source/WebCore/css/parser/CSSPropertyParserHelpers.h
M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
M Source/WebCore/rendering/RenderText.cpp
M Source/WebCore/rendering/RenderText.h
M Source/WebCore/rendering/line/BreakingContext.h
M Source/WebCore/rendering/style/RenderStyle.cpp
M Source/WebCore/rendering/style/RenderStyle.h
M Source/WebCore/rendering/style/RenderStyleInlines.h
M Source/WebCore/rendering/style/RenderStyleSetters.h
M Source/WebCore/rendering/style/StyleRareInheritedData.cpp
M Source/WebCore/rendering/style/StyleRareInheritedData.h
R Source/WebCore/rendering/style/WordBoundaryDetection.h
M Source/WebCore/style/StyleBuilderConverter.h

  Log Message:
  ---
  Revert(265057@main): Stop parsing word-boundary-detection
https://bugs.webkit.org/show_bug.cgi?id=258667
rdar://111506541

Reviewed by Alan Baradlay.

https://github.com/w3c/csswg-drafts/issues/7193#issuecomment-1611772475 says:
> RESOLVED: remove auto () from word-boundary-detection

The only reason we parsed word-boundary-detection was for the `auto` value, so
we can just revert 265057@main entirely.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/word-boundary-detection-interpolation-expected.txt:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/word-boundary-detection-interpolation.html:
 Removed.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-computed-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-valid-expected.txt:
* 
LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/CSSValue.cpp:
(WebCore::CSSValue::visitDerived):
* Source/WebCore/css/CSSValue.h:
(WebCore::CSSValue::isVariableReferenceValue const):
(WebCore::CSSValue::isWordBoundaryDetectionValue const): Deleted.
* Source/WebCore/css/CSSWordBoundaryDetectionValue.cpp: Removed.
* Source/WebCore/css/CSSWordBoundaryDetectionValue.h: Removed.
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::wordBoundaryDetection): Deleted.
* Source/WebCore/

[webkit-changes] [WebKit/WebKit] c6ae14: Rename StringView::empty() to emptyStringView()

2023-06-26 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c6ae14a037dce326312ed56920059895f06040d1
  
https://github.com/WebKit/WebKit/commit/c6ae14a037dce326312ed56920059895f06040d1
  Author: Myles C. Maxfield 
  Date:   2023-06-26 (Mon, 26 Jun 2023)

  Changed paths:
M Source/WTF/wtf/text/StringView.h
M Tools/TestWebKitAPI/Tests/WTF/StringView.cpp

  Log Message:
  ---
  Rename StringView::empty() to emptyStringView()
https://bugs.webkit.org/show_bug.cgi?id=258383
rdar://35973

Reviewed by Andy Estes.

There are 4 reasons for this:
1. It's too easy to write empty() when you mean isEmpty(). This is particularly
   bad because StringViews have an operator bool, so it's totally legal to
   write if (myStringView.empty()) but it doesn't mean what it looks like it
   means
2. empty() is a verb! But the function doesn't empty out the contents of the
   string.
3. It matches emptyString()
4. No one is using it.

This patch doesn't apply the same treatment to StringImpl::empty(), because 
that's
more complicated and used much more often.

* Source/WTF/wtf/text/StringView.h:
(WTF::nullStringView):
(WTF::emptyStringView):
(WTF::StringView::substring const):
(WTF::StringView::trim const):
(WTF::StringView::empty): Deleted.
* Tools/TestWebKitAPI/Tests/WTF/StringView.cpp:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/265521@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 3f0053: Bogus lang= attributes can cause null pointer dere...

2023-06-23 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3f00535f91586f763507aa8085232b947e1354a8
  
https://github.com/WebKit/WebKit/commit/3f00535f91586f763507aa8085232b947e1354a8
  Author: Myles C. Maxfield 
  Date:   2023-06-23 (Fri, 23 Jun 2023)

  Changed paths:
A LayoutTests/fast/text/bogus-lang-expected.txt
A LayoutTests/fast/text/bogus-lang.html
M Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h
M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h

  Log Message:
  ---
  Bogus lang= attributes can cause null pointer derefs (line breaker object 
fails to be created)
https://bugs.webkit.org/show_bug.cgi?id=258483
rdar://110440971

Reviewed by Cameron McCormack.

A bogus lang attribute can cause our line breaker objects to fail to be 
created, causing
null pointer derefs.

There are 2 possible ways to fix this:
1) If creation fails, try again without a lang
2) If creation fails, mark the text as "there are no line breaking 
opportunities here"

Option 1) is less likely to break content if the author makes a mistake, so 
that's the option
I went with.

* LayoutTests/fast/text/bogus-lang-expected.txt: Added.
* LayoutTests/fast/text/bogus-lang.html: Added.
* Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h:
(WTF::TextBreakIteratorCFStringTokenizer::TextBreakIteratorCFStringTokenizer):
* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::TextBreakIteratorICU):

Canonical link: https://commits.webkit.org/265495@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 6a90e5: [Cocoa] Delete dead code after cleaning up HAVE() ...

2023-06-23 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6a90e53bcf696a35822fec8282cdc6b230732fef
  
https://github.com/WebKit/WebKit/commit/6a90e53bcf696a35822fec8282cdc6b230732fef
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
R Source/JavaScriptCore/runtime/SymbolStubsForSafariCompatibility.mm
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/PlatformUse.h
M Source/WTF/wtf/WTFConfig.cpp
M Source/WTF/wtf/spi/cocoa/SecuritySPI.h
M Source/WTF/wtf/text/WTFString.h
M Source/WTF/wtf/text/cocoa/StringCocoa.mm
M Source/WebCore/PAL/pal/cf/CoreTextSoftLink.cpp
M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h
M Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h
M Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h
M Source/WebCore/PAL/pal/spi/cocoa/NSAttributedStringSPI.h
M Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h
M Source/WebCore/PAL/pal/spi/mac/HIToolboxSPI.h
M Source/WebCore/PAL/pal/spi/mac/NSWindowSPI.h
M Source/WebCore/PAL/pal/spi/mac/QuickLookMacSPI.h
M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
M Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp
M Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp
M Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm
M Source/WebCore/platform/network/cocoa/ResourceResponseCocoa.mm
M Source/WebKit/GPUProcess/mac/GPUProcessMac.mm
M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm
M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm
M Source/WebKit/Platform/spi/Cocoa/AccessibilitySupportSPI.h
M Source/WebKit/Platform/spi/Cocoa/NWSPI.h
M Source/WebKit/Platform/spi/mac/ApplicationServicesSPI.h
M Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm
M Tools/TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h
M Tools/TestWebKitAPI/ios/UIKitSPI.h

  Log Message:
  ---
  [Cocoa] Delete dead code after cleaning up HAVE() and USE() macros
https://bugs.webkit.org/show_bug.cgi?id=258436
rdar://98556

Reviewed by Tim Horton and Alexey Proskuryakov.

Now that we've removed a bunch of configurations, there is a bunch of
leftover dead code we can remove.

* Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
* Source/JavaScriptCore/runtime/SymbolStubsForSafariCompatibility.mm: Removed.
* Source/WTF/wtf/PlatformHave.h:
* Source/WTF/wtf/PlatformUse.h:
* Source/WTF/wtf/text/WTFString.h:
* Source/WTF/wtf/text/cocoa/StringCocoa.mm:
(WTF::String::String): Deleted.
* Source/WebCore/PAL/pal/cf/CoreTextSoftLink.cpp:
* Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h:
* Source/WebCore/PAL/pal/spi/cg/CoreGraphicsSPI.h:
* Source/WebCore/PAL/pal/spi/mac/HIToolboxSPI.h:
* Source/WebCore/PAL/pal/spi/mac/NSWindowSPI.h:
* Source/WebCore/PAL/pal/spi/mac/QuickLookMacSPI.h:
* Source/WebCore/platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):
(WebCore::mapWidth):
* Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::createCFStorageSessionForIdentifier):
* Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::createPrivateStorageSession):
* Source/WebKit/GPUProcess/mac/GPUProcessMac.mm:
(WebKit::GPUProcess::initializeSandbox):
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
* Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm:
(WebKit::setNWParametersApplicationIdentifiers):
(WebKit::setNWParametersTrackerOptions):
(WebKit::isKnownTracker):
* Source/WebKit/Platform/spi/Cocoa/AccessibilitySupportSPI.h:
* Source/WebKit/Platform/spi/Cocoa/NWSPI.h:
* Source/WebKit/Platform/spi/mac/ApplicationServicesSPI.h:
* Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::initializeSandbox):
* Tools/TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:

Canonical link: https://commits.webkit.org/265448@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] f57baa: [Cocoa] Drop configurations for 2020-aligned OSes

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f57baa5fc09ed49ccb1b4bba4f818e9970e460f3
  
https://github.com/WebKit/WebKit/commit/f57baa5fc09ed49ccb1b4bba4f818e9970e460f3
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/PlatformUse.h

  Log Message:
  ---
  [Cocoa] Drop configurations for 2020-aligned OSes
https://bugs.webkit.org/show_bug.cgi?id=258422
rdar://87791

Reviewed by Alexey Proskuryakov.

All supported Cocoa OSes are later than the 2020-aligned ones.

* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WTF/wtf/PlatformHave.h:
* Source/WTF/wtf/PlatformUse.h:

Canonical link: https://commits.webkit.org/265441@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 19b823: [JPEGXL] [Cocoa] Hook up color conversion to downl...

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 19b823079b6db3f9210dcc7e4034e0c2d317b92a
  
https://github.com/WebKit/WebKit/commit/19b823079b6db3f9210dcc7e4034e0c2d317b92a
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/AppleJPEGXLSPI.h
M Source/WebCore/platform/graphics/PixelBufferConversion.cpp
M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp
M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h
M 
WebKitLibraries/DownlevelFrameworkStubs/12/AppleJPEGXL.framework/AppleJPEGXL.tbd
M 
WebKitLibraries/DownlevelFrameworkStubs/13/AppleJPEGXL.framework/AppleJPEGXL.tbd

  Log Message:
  ---
  [JPEGXL] [Cocoa] Hook up color conversion to downlevel JPEG XL infrastructure
https://bugs.webkit.org/show_bug.cgi?id=258267
rdar://111012276

Reviewed by Cameron McCormack and Don Olmstead.

The existing JPEG XL infrastructure on downlevel builds uses the "little cms" 
library
from https://github.com/LuaDist/lcms/tree/master to perform color conversions. 
However,
on Cocoa platforms, we already have color conversion support in the platform. 
This
patch hooks up the existing colorspace conversion functionality in
PixelBufferConversion.cpp instead of the little cms library.

The existing infrastructure only works with RGBA8 sRGB images, so configuring 
all
the converters is actually pretty straightforward.

This patch isn't testable, because AppleJPEGXL will only be present in builds 
produced
by Apple's internal build system, but our testers use local builds to test 
with. I had
to verify manually that this patch is working correctly.

* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
* Source/WebCore/PAL/pal/cocoa/VImageConverterPtr.h: Added.
(VImageConverterRefDerefTraits::refIfNotNull):
(VImageConverterRefDerefTraits::derefIfNotNull):
(adoptVImageConverter):
* Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/AppleJPEGXLSPI.h:
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp:
(WebCore::JPEGXLImageDecoder::clear):
(WebCore::JPEGXLImageDecoder::processInput):
(WebCore::JPEGXLImageDecoder::imageOut):
(WebCore::JPEGXLImageDecoder::maybePerformColorSpaceConversion):
(WebCore::JPEGXLImageDecoder::clearColorTransform):
(WebCore::JPEGXLImageDecoder::prepareColorTransform):
(WebCore::JPEGXLImageDecoder::tryDecodeICCColorProfile):
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h:
* 
WebKitLibraries/DownlevelFrameworkStubs/12/AppleJPEGXL.framework/AppleJPEGXL.tbd:
* 
WebKitLibraries/DownlevelFrameworkStubs/13/AppleJPEGXL.framework/AppleJPEGXL.tbd:

Canonical link: https://commits.webkit.org/265440@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 79a83b: [IOS_FAMILY] Drop configurations for 2022-aligned ...

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 79a83be769e941ed5e9aaa2a670262c5d3b0a588
  
https://github.com/WebKit/WebKit/commit/79a83be769e941ed5e9aaa2a670262c5d3b0a588
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformEnable.h
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/PlatformUse.h

  Log Message:
  ---
  [IOS_FAMILY] Drop configurations for 2022-aligned OSes
https://bugs.webkit.org/show_bug.cgi?id=258425
rdar://90722

Reviewed by Tim Horton.

All supported IOS_FAMILY OSes are later than or equal to the 2022-aligned ones.
So, "< 2022" means "false", and ">= 2022" means "true".

* Source/WTF/wtf/PlatformEnable.h:
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WTF/wtf/PlatformHave.h:
* Source/WTF/wtf/PlatformUse.h:

Canonical link: https://commits.webkit.org/265439@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e49961: [IOS_FAMILY] Drop configurations for 2021-aligned ...

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e499616cb404edad37b4bfab3c61eec2b9886ee6
  
https://github.com/WebKit/WebKit/commit/e499616cb404edad37b4bfab3c61eec2b9886ee6
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WTF/wtf/PlatformHave.h

  Log Message:
  ---
  [IOS_FAMILY] Drop configurations for 2021-aligned OSes
https://bugs.webkit.org/show_bug.cgi?id=258423
rdar://89039

Reviewed by Alexey Proskuryakov.

All supported IOS_FAMILY OSes are later than the 2021-aligned ones.

* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WTF/wtf/PlatformHave.h:

Canonical link: https://commits.webkit.org/265437@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5fa640: [Cocoa] Drop configurations for 2019-aligned OSes

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5fa64072e2f447b7ec80714e07bd5c4380c2714f
  
https://github.com/WebKit/WebKit/commit/5fa64072e2f447b7ec80714e07bd5c4380c2714f
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformHave.h

  Log Message:
  ---
  [Cocoa] Drop configurations for 2019-aligned OSes
https://bugs.webkit.org/show_bug.cgi?id=258421
rdar://86444

Reviewed by Alexey Proskuryakov.

All supported Cocoa OSes are later than the 2019-aligned ones.

* Source/WTF/wtf/PlatformHave.h:

Canonical link: https://commits.webkit.org/265436@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] f0638e: [macOS] Remove Big Sur specific configuration

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f0638ea74cdac6eb4bac3e0f801465c767f74e26
  
https://github.com/WebKit/WebKit/commit/f0638ea74cdac6eb4bac3e0f801465c767f74e26
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/PlatformUse.h

  Log Message:
  ---
  [macOS] Remove Big Sur specific configuration
https://bugs.webkit.org/show_bug.cgi?id=258397
rdar://50554

Reviewed by Alexey Proskuryakov.

All supported macOSes are later than Big Sur.

* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WTF/wtf/PlatformHave.h:
* Source/WTF/wtf/PlatformUse.h:

Canonical link: https://commits.webkit.org/265433@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] bdebf4: [macOS] Remove Pre-Monterey-specific configuration

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bdebf45118173d2bf7784da4ac4708cd29f4bfe3
  
https://github.com/WebKit/WebKit/commit/bdebf45118173d2bf7784da4ac4708cd29f4bfe3
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/PlatformUse.h

  Log Message:
  ---
  [macOS] Remove Pre-Monterey-specific configuration
https://bugs.webkit.org/show_bug.cgi?id=258400
rdar://50889

Reviewed by Alexey Proskuryakov.

All supported macOSes are Monterey or later.

* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WTF/wtf/PlatformHave.h:
* Source/WTF/wtf/PlatformUse.h:

Canonical link: https://commits.webkit.org/265432@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 104267: [macOS] Remove Catalina specific configuration

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 10426777cd74f54c3bb69db4c764ee0643b4fcda
  
https://github.com/WebKit/WebKit/commit/10426777cd74f54c3bb69db4c764ee0643b4fcda
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformHave.h

  Log Message:
  ---
  [macOS] Remove Catalina specific configuration
https://bugs.webkit.org/show_bug.cgi?id=258396
rdar://50331

Reviewed by Alexey Proskuryakov.

All supported macOSes are Catalina or later.

* Source/WTF/wtf/PlatformHave.h:

Canonical link: https://commits.webkit.org/265429@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7f802b: [macOS] Remove High Sierra specific configuration

2023-06-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7f802bb8fb9e0f235846d6544f3acaf5f2073927
  
https://github.com/WebKit/WebKit/commit/7f802bb8fb9e0f235846d6544f3acaf5f2073927
  Author: Myles C. Maxfield 
  Date:   2023-06-22 (Thu, 22 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h

  Log Message:
  ---
  [macOS] Remove High Sierra specific configuration
https://bugs.webkit.org/show_bug.cgi?id=258395
rdar://50217

Reviewed by Alexey Proskuryakov.

We don't support High Sierra any more.

* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h:

Canonical link: https://commits.webkit.org/265428@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] cef67a: REGRESSION(264714@main) 5% regression in Speedomet...

2023-06-21 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cef67a15794121ce2c8b17671619eb5cb2f7e983
  
https://github.com/WebKit/WebKit/commit/cef67a15794121ce2c8b17671619eb5cb2f7e983
  Author: Myles C. Maxfield 
  Date:   2023-06-21 (Wed, 21 Jun 2023)

  Changed paths:
M Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h
M Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h

  Log Message:
  ---
  REGRESSION(264714@main) 5% regression in Speedometer 3's Editor-TipTap suite
https://bugs.webkit.org/show_bug.cgi?id=258259
rdar://110926113

Reviewed by Ryosuke Niwa.

There's no need to use the fancy NSString subclass if there is no prior context.
The whole reason the NSString subclass exists is to deal with the prior context.
If we can use CFString directly, that's faster.

* Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h:
(WTF::TextBreakIteratorCFCharacterCluster::setText):
* Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h:
(WTF::TextBreakIteratorCFStringTokenizer::TextBreakIteratorCFStringTokenizer):
(WTF::TextBreakIteratorCFStringTokenizer::setText):
(WTF::TextBreakIteratorCFStringTokenizer::createString):

Canonical link: https://commits.webkit.org/265389@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 540c18: REGRESSION(259684@main-259698@main?) [[ Ventura wk...

2023-06-21 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 540c18841b4868f0928026ecd56d132ec2e318eb
  
https://github.com/WebKit/WebKit/commit/540c18841b4868f0928026ecd56d132ec2e318eb
  Author: Myles C. Maxfield 
  Date:   2023-06-21 (Wed, 21 Jun 2023)

  Changed paths:
M LayoutTests/platform/mac/TestExpectations
M Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
M Source/WebCore/PAL/pal/cf/VideoToolboxSoftLink.cpp
M Source/WebCore/PAL/pal/cf/VideoToolboxSoftLink.h
A Source/WebCore/PAL/pal/spi/cf/VideoToolboxSPI.h
M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  ---
  REGRESSION(259684@main-259698@main?) [[ Ventura wk2 ] 
fast/images/avif-as-image.html is a constant ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=256119
rdar://108684696

Reviewed by Per Arne Vollan.

We had code of the form:
```
callIntoWebKitAdditionsToMakeImagesWork();
```

There's no reason for the "make images work" code to be in WebKitAdditions, so 
this patch
just moves it to WebKit and deletes the USE(APPLE_INTERNAL_SDK) guard. This 
fixes the images.

* LayoutTests/platform/mac/TestExpectations:
* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
* Source/WebCore/PAL/pal/cf/VideoToolboxSoftLink.cpp:
* Source/WebCore/PAL/pal/cf/VideoToolboxSoftLink.h:
* Source/WebCore/PAL/pal/spi/cf/VideoToolboxSPI.h: Added.
* Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::setVideoDecoderBehaviors):
(WebKit::WebProcess::platformInitializeWebProcess):

Canonical link: https://commits.webkit.org/265359@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 02bc26: [JPEGXL] Migrate JXLDecoderPtr to be a std::unique...

2023-06-19 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 02bc26dd0ddb42f260ce4aec447d4fe8278ebfb3
  
https://github.com/WebKit/WebKit/commit/02bc26dd0ddb42f260ce4aec447d4fe8278ebfb3
  Author: Myles C. Maxfield 
  Date:   2023-06-19 (Mon, 19 Jun 2023)

  Changed paths:
M Source/WebCore/platform/image-decoders/jpegxl/JxlDecoderPtr.h

  Log Message:
  ---
  [JPEGXL] Migrate JXLDecoderPtr to be a std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=258283
rdar://111008382

Reviewed by Cameron McCormack.

There's no need to duplicate the functionality of std::unique_ptr.

* Source/WebCore/platform/image-decoders/jpegxl/JxlDecoderPtr.h:
(JXLDecoderDeleter::operator()):
(JxlDecoderMake):
(JxlDecoderPtr::JxlDecoderPtr): Deleted.
(JxlDecoderPtr::operator=): Deleted.
(JxlDecoderPtr::~JxlDecoderPtr): Deleted.
(JxlDecoderPtr::reset): Deleted.
(JxlDecoderPtr::operator bool const): Deleted.
(JxlDecoderPtr::get const): Deleted.
(): Deleted.

Canonical link: https://commits.webkit.org/265310@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 34f838: REGRESSION(264714@main) 5% regression in Speedomet...

2023-06-17 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 34f838120c4799e51c5dccd4504e6945c5db67e1
  
https://github.com/WebKit/WebKit/commit/34f838120c4799e51c5dccd4504e6945c5db67e1
  Author: Myles C. Maxfield 
  Date:   2023-06-17 (Sat, 17 Jun 2023)

  Changed paths:
M Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h
M Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h

  Log Message:
  ---
  REGRESSION(264714@main) 5% regression in Speedometer 3's Editor-TipTap suite
https://bugs.webkit.org/show_bug.cgi?id=258259
rdar://110926113

Reviewed by Ryosuke Niwa.

There's no need to use the fancy NSString subclass if there is no prior context.
The whole reason the NSString subclass exists is to deal with the prior context.
If we can use CFString directly, that's faster.

* Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h:
(WTF::TextBreakIteratorCFCharacterCluster::setText):
* Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h:
(WTF::TextBreakIteratorCFStringTokenizer::TextBreakIteratorCFStringTokenizer):
(WTF::TextBreakIteratorCFStringTokenizer::setText):
(WTF::TextBreakIteratorCFStringTokenizer::createString):

Canonical link: https://commits.webkit.org/265280@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 1ad9ae: [HEIC] Content-Type: image/heif offers to download...

2023-06-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1ad9aed19a4bdd4dd2f90f1c2ba72cd9d65b2276
  
https://github.com/WebKit/WebKit/commit/1ad9aed19a4bdd4dd2f90f1c2ba72cd9d65b2276
  Author: Myles C. Maxfield 
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
A LayoutTests/http/tests/images/heic-as-heif-expected.html
A LayoutTests/http/tests/images/heic-as-heif.html
A LayoutTests/http/tests/resources/green-400x400.heic
M Source/WebCore/platform/MIMETypeRegistry.cpp
M Source/WebCore/platform/graphics/cg/UTIRegistry.cpp

  Log Message:
  ---
  [HEIC] Content-Type: image/heif offers to download the image, rather than 
showing it as an image document
https://bugs.webkit.org/show_bug.cgi?id=257986
rdar://110667964

Reviewed by Tim Nguyen.

This is simply a data change. HEIC support needs to recognize image/heif too.

* LayoutTests/http/tests/images/heic-as-heif-expected.html: Added.
* LayoutTests/http/tests/images/heic-as-heif.html: Added.
* LayoutTests/http/tests/resources/green-400x400.heic: Added.
* Source/WebCore/platform/MIMETypeRegistry.cpp:
* Source/WebCore/platform/graphics/cg/UTIRegistry.cpp:
(WebCore::defaultSupportedImageTypes):

Canonical link: https://commits.webkit.org/265091@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 4d176c: Remove unnecessary LineBreakIteratorMode type alias

2023-06-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4d176cd7aa8d8788a84761c8d8ca4091d90d9c3f
  
https://github.com/WebKit/WebKit/commit/4d176cd7aa8d8788a84761c8d8ca4091d90d9c3f
  Author: Myles C. Maxfield 
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
M Source/WebCore/rendering/RenderText.cpp
M Source/WebCore/rendering/RenderText.h
M Source/WebCore/rendering/line/BreakingContext.h

  Log Message:
  ---
  Remove unnecessary LineBreakIteratorMode type alias
https://bugs.webkit.org/show_bug.cgi?id=257946
rdar://110622665

Reviewed by Tim Nguyen.

TextBreakIterator::LineMode::Behavior is the type we use throughout the
line breaking code, so it doesn't really make sense for there to be 2
names for the same thing. LineBreakIteratorMode is left over from the
LazyLineBreakIterator refactor.

* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::CachedLineBreakIteratorFactory::CachedLineBreakIteratorFactory):
(WTF::CachedLineBreakIteratorFactory::mode const):
(WTF::CachedLineBreakIteratorFactory::resetStringAndReleaseIterator):
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::findNextBreakablePosition):
(WebCore::Layout::TextUtil::TextBreakIterator::LineMode::Behavior):
(WebCore::Layout::TextUtil::lineBreakIteratorMode): Deleted.
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h:
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::mapLineBreakToIteratorMode):
(WebCore::RenderText::computePreferredLogicalWidths):
* Source/WebCore/rendering/RenderText.h:
* Source/WebCore/rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):

Canonical link: https://commits.webkit.org/265061@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] cdafcb: [Cocoa] Hook up word-boundary-detection to CFStrin...

2023-06-11 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cdafcb3c357a848d22093e4417038ff3073a3825
  
https://github.com/WebKit/WebKit/commit/cdafcb3c357a848d22093e4417038ff3073a3825
  Author: Myles C. Maxfield 
  Date:   2023-06-11 (Sun, 11 Jun 2023)

  Changed paths:
M Source/WTF/wtf/text/TextBreakIterator.cpp
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
M Source/WebCore/rendering/RenderText.cpp
M Source/WebCore/rendering/RenderText.h
M Source/WebCore/rendering/line/BreakingContext.h

  Log Message:
  ---
  [Cocoa] Hook up word-boundary-detection to CFStringTokenizer
https://bugs.webkit.org/show_bug.cgi?id=257933


Reviewed by Tim Nguyen.

We added parsing support so that we can hook it up to CFStringTokenizer, which 
provides
a linguistically-sophisticated line breaking algorithm. This patch simply hooks 
them up
together.

The behavior differences are extremely minor right now, because Core Foundation 
is still
working on rdar://problem/110235041. When they fix that, WebKit will 
automatically
progress.

* Source/WTF/wtf/text/TextBreakIterator.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
(WTF::TextBreakIterator::TextBreakIterator):
* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::TextBreakIterator::contentAnalysis const):
(WTF::TextBreakIteratorCache::take):
(WTF::CachedTextBreakIterator::CachedTextBreakIterator):
(WTF::CachedLineBreakIteratorFactory::CachedLineBreakIteratorFactory):
(WTF::CachedLineBreakIteratorFactory::contentAnalysis const):
(WTF::CachedLineBreakIteratorFactory::get):
(WTF::CachedLineBreakIteratorFactory::resetStringAndReleaseIterator):
* Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
(WTF::TextBreakIterator::TextBreakIterator):
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity):
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::contentAnalysis):
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h:
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::mapWordBoundaryDetectionToContentAnalysis):
(WebCore::RenderText::computePreferredLogicalWidths):
* Source/WebCore/rendering/RenderText.h:
* Source/WebCore/rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleText):

Canonical link: https://commits.webkit.org/265059@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9e639f: Add parsing support for word-boundary-detection

2023-06-10 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9e639f149ac0564fffed945704406006051f8c6e
  
https://github.com/WebKit/WebKit/commit/9e639f149ac0564fffed945704406006051f8c6e
  Author: Myles C. Maxfield 
  Date:   2023-06-10 (Sat, 10 Jun 2023)

  Changed paths:
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/word-boundary-detection-interpolation-expected.txt
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/animations/word-boundary-detection-interpolation.html
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-computed-expected.txt
M 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-valid-expected.txt
M 
LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M 
LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Headers.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/animation/CSSPropertyAnimation.cpp
M Source/WebCore/css/CSSProperties.json
M Source/WebCore/css/CSSValue.cpp
M Source/WebCore/css/CSSValue.h
A Source/WebCore/css/CSSWordBoundaryDetectionValue.cpp
A Source/WebCore/css/CSSWordBoundaryDetectionValue.h
M Source/WebCore/css/ComputedStyleExtractor.cpp
M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
M Source/WebCore/css/parser/CSSPropertyParserHelpers.h
M Source/WebCore/platform/text/TextFlags.cpp
M Source/WebCore/rendering/style/RenderStyle.cpp
M Source/WebCore/rendering/style/RenderStyle.h
M Source/WebCore/rendering/style/RenderStyleInlines.h
M Source/WebCore/rendering/style/RenderStyleSetters.h
M Source/WebCore/rendering/style/StyleRareInheritedData.cpp
M Source/WebCore/rendering/style/StyleRareInheritedData.h
A Source/WebCore/rendering/style/WordBoundaryDetection.h
M Source/WebCore/style/StyleBuilderConverter.h

  Log Message:
  ---
  Add parsing support for word-boundary-detection
https://bugs.webkit.org/show_bug.cgi?id=257931
rdar://110562385

Reviewed by Tim Nguyen.

word-boundary-detection is the mechanism that we can use to expose new 
linguistic-aware
line breakers to web content. This is a new CSS property which can affect how 
deeply
browsers perform word detection, which is used for line breaking in languages 
like
Chinese, Japanese, and Korean. We already have support for these line breakers, 
but
they're not currently exposed to the web; this CSS property is the way we can 
expose
them.

Because we expect to only hook up the `normal` and `auto` values, this patch 
doesn't
parse the `manual` value, so that `@supports` will correctly report that we 
don't
support that one.

This is tested by tests we've already imported from WPT at css/css-text/parsing.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-computed-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/word-boundary-detection-valid-expected.txt:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/CSSValue.cpp:
(WebCore::CSSValue::visitDerived):
* Source/WebCore/css/CSSValue.h:
(WebCore::CSSValue::isWordBoundaryDetectionValue const):
* Source/WebCore/css/CSSWordBoundaryDetectionValue.cpp: Added.
(WebCore::CSSWordBoundaryDetectionValue::CSSWordBoundaryDetectionValue):
(WebCore::CSSWordBoundaryDetectionValue::customCSSText const):
(WebCore::CSSWordBoundaryDetectionValue::equals const):
* Source/WebCore/css/CSSWordBoundaryDetectionValue.h: Added.
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::wordBoundaryDetection):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeLang):
(WebCore::CSSPropertyParserHelpers::consumeWordBoundaryDetection):
* Source/WebCore/css/parser/CSSPropertyParserHelpers.h:
* Source/WebCore/platform/text/TextFlags.cpp:
(WebCore::operator<<):
* Source/WebCore/rendering/style/RenderStyle.cpp:
(WebCore::rareInheritedDataChangeRequiresLayout):
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/style/RenderStyleInlines.h:
(WebCore::RenderStyle::initialWordBoundaryDetection):
(WebCore::RenderStyle::wordBoundaryDetection const):
* Source/WebCore/rendering/style/RenderStyleSetters.h:
(WebCore::RenderStyle::setWordBoundaryDetection):
* Source/WebCore/rendering

[webkit-changes] [WebKit/WebKit] 6c6337: [macOS] Enable JPEG XL on downlevel OSes

2023-06-09 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6c63375bf01a3f1e853a396adcedf5a10ac740d0
  
https://github.com/WebKit/WebKit/commit/6c63375bf01a3f1e853a396adcedf5a10ac740d0
  Author: Myles C. Maxfield 
  Date:   2023-06-09 (Fri, 09 Jun 2023)

  Changed paths:
M Configurations/CommonBase.xcconfig
M Configurations/WebKitProjectPaths.xcconfig
M Makefile
M Source/WebCore/Configurations/WebCore.xcconfig
M Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
A Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/AppleJPEGXLSPI.h
A Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/LICENSE.txt
M Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp
M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp
M Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h
M Source/WebCore/platform/image-decoders/jpegxl/JxlDecoderPtr.h
A 
WebKitLibraries/DownlevelFrameworkStubs/12/AppleJPEGXL.framework/AppleJPEGXL.tbd
A 
WebKitLibraries/DownlevelFrameworkStubs/13/AppleJPEGXL.framework/AppleJPEGXL.tbd

  Log Message:
  ---
  [macOS] Enable JPEG XL on downlevel OSes
https://bugs.webkit.org/show_bug.cgi?id=257768
rdar://110349884

Reviewed by Alexey Proskuryakov.

When Apple's internal build system builds WebKit for downlevel OSes, 
AppleJPEGXL.framework will
be present, and we can use it. Also, when the installer for new Safari on 
downlevel OSes runs,
it will install AppleJPEGXL.framework to a place where WebKit can use it.

However, when people build WebKit themselves on downlevel OSes, 
AppleJPEGXL.framework won't
be present. But, we want locally-built versions of WebKit to be _able_ to use
AppleJPEGXL.framework if it just happens to be present - we want to be able to 
test the feature
*before* Apple's internal build system produces the official build. So we can't 
just turn the
feature off entirely on local builds; instead, we have to do something more 
complicated.

What we want is to create a minimal stub of AppleJPEGXL.framework, check it in 
to the tree, and
link to it at build time on downlevels using `-weak_framework`. This allows 
WebKit to use the
framework if it's present at build time, and not use it if it's not. Inside 
WebKit, we can
detect the framework's presence by declaring one of the external functions with
`__attribute__((weak_import))`, and then just checking to see if the function 
is null.

Doing it like this means that all downlevel builds will all build with 
`USE(JPEGXL)`, and will
check at runtime whether or not it can actually open AppleJPEGXL.framework, and 
gracefully
fall back if it can't. If we want to test the feature, we just build WebKit, 
and manually place
AppleJPEGXL.framework at a place where WebKit can see it, and WebKit will 
automatically
use it. However, if you don't have a copy of AppleJPEGXL.framework on your 
development machine,
that's fine; WebKit will happily run without it.

* Configurations/CommonBase.xcconfig:
* Configurations/WebKitProjectPaths.xcconfig:
* Makefile:
* Source/WebCore/Configurations/WebCore.xcconfig:
* Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj:
* Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/AppleJPEGXLSPI.h: Added.
* Source/WebCore/PAL/pal/spi/cocoa/AppleJPEGXL/LICENSE.h: Added.
* Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp:
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.cpp:
(WebCore::JPEGXLImageDecoder::create):
* Source/WebCore/platform/image-decoders/jpegxl/JPEGXLImageDecoder.h:
* Source/WebCore/platform/image-decoders/jpegxl/JxlDecoderPtr.h:
* 
WebKitLibraries/DownlevelFrameworkStubs/12/AppleJPEGXL.framework/AppleJPEGXL.tbd:
 Added.
* 
WebKitLibraries/DownlevelFrameworkStubs/13/AppleJPEGXL.framework/AppleJPEGXL.tbd:
 Added.

Canonical link: https://commits.webkit.org/265050@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 8d1500: [Cocoa] Enable HEIC

2023-06-07 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8d15007530ba97cafde25c94d23e3ec6bb6dafe4
  
https://github.com/WebKit/WebKit/commit/8d15007530ba97cafde25c94d23e3ec6bb6dafe4
  Author: Myles C. Maxfield 
  Date:   2023-06-07 (Wed, 07 Jun 2023)

  Changed paths:
M LayoutTests/fast/canvas/toDataURL-unsupportedTypes-expected.txt
M LayoutTests/fast/canvas/toDataURL-unsupportedTypes.html
M 
LayoutTests/fast/forms/file/entries-api/image-no-transcode-drag-drop-expected.txt
M 
LayoutTests/fast/forms/file/entries-api/image-no-transcode-open-panel-expected.txt
M LayoutTests/fast/images/animated-heics-draw.html
M LayoutTests/fast/images/animated-heics-verify.html
M LayoutTests/fast/images/heic-as-background-image.html
M LayoutTests/http/tests/misc/heic-accept-header.html
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/loader/cache/CachedResourceRequest.cpp
M Source/WebCore/platform/MIMETypeRegistry.cpp
M Source/WebCore/platform/graphics/cg/UTIRegistry.cpp

  Log Message:
  ---
  [Cocoa] Enable HEIC
https://bugs.webkit.org/show_bug.cgi?id=257763
rdar://110346646

Reviewed by Said Abou-Hallawa.

There are 3 reasons to enable it:
1. HEIC uses the same technology as H.265 videos, which are already enabled by 
default in
   many (most? almost all?) major browsers. So there is no concern about 
increasing
   the surface area of new technology on the web.
2. It's just a true fact that there are just a lot of HEIC images out there in 
the wild.
   Some of them end up on the internet. You can't stop them. It just 
happens.
3. Apple's devices have hardware decoders for HEIC, which make them both more 
performant
   and use less energy than other image formats. Running some tests, using 
hardware
   decoding HEIC images uses 26% less power and 13% less time than using 
software
   decoding of AVIF, for (roughly) equivalent quality images.

* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/loader/cache/CachedResourceRequest.cpp:
(WebCore::acceptHeaderValueForHEICImageResource):
(WebCore::acceptHeaderValueForImageResource):
* Source/WebCore/platform/MIMETypeRegistry.cpp:
* Source/WebCore/platform/graphics/cg/UTIRegistry.cpp:
(WebCore::defaultSupportedImageTypes):

Canonical link: https://commits.webkit.org/264971@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 932073: [Cocoa] Enable JPEG XL on 2023-aligned OSes

2023-06-07 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 932073284e4c73ce9884d0c6e15fe86fe99685c5
  
https://github.com/WebKit/WebKit/commit/932073284e4c73ce9884d0c6e15fe86fe99685c5
  Author: Myles C. Maxfield 
  Date:   2023-06-07 (Wed, 07 Jun 2023)

  Changed paths:
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/loader/cache/CachedResourceRequest.cpp
M Source/WebCore/platform/MIMETypeRegistry.cpp
M Source/WebCore/platform/graphics/cg/UTIRegistry.cpp

  Log Message:
  ---
  [Cocoa] Enable JPEG XL on 2023-aligned OSes
https://bugs.webkit.org/show_bug.cgi?id=257762
rdar://110345663

Reviewed by Said Abou-Hallawa.

Simply upstream the enablement flag.

* Source/WTF/wtf/PlatformHave.h:
* Source/WebCore/loader/cache/CachedResourceRequest.cpp:
(WebCore::acceptHeaderValueForJPEGXLImageResource):
* Source/WebCore/platform/MIMETypeRegistry.cpp:
* Source/WebCore/platform/graphics/cg/UTIRegistry.cpp:
(WebCore::defaultSupportedImageTypes):

Canonical link: https://commits.webkit.org/264959@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5b9c48: [WebGPU] Delete some unnecessary methods from WebG...

2023-06-06 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5b9c48e708e7ffa2da29b615e9e78e92d2fc0370
  
https://github.com/WebKit/WebKit/commit/5b9c48e708e7ffa2da29b615e9e78e92d2fc0370
  Author: Myles C. Maxfield 
  Date:   2023-06-06 (Tue, 06 Jun 2023)

  Changed paths:
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp
M Source/WebGPU/WebGPU.xcodeproj/project.pbxproj
M Source/WebGPU/WebGPU/WebGPUExt.h
A Source/WebGPU/WebGPU/WebGPUInternal.h
M Source/WebGPU/WebGPU/config.h

  Log Message:
  ---
  [WebGPU] Delete some unnecessary methods from WebGPUExt.h
https://bugs.webkit.org/show_bug.cgi?id=257673
rdar://110201177

Reviewed by Mike Wyrzykowski.

The more custom stuff in WebGPUExt.h we have, the more difficult it will be to
swap in and out different WebGPU implementations. We generally want to minimize
the contents of WebGPUExt.h as much as possible.

This patch deletes the fooWithBlock() functions from being exported, in favor of
just using the common function pointer + userdata paradigm instead. This patch
doesn't actually delete the implementation of the fooWithBlock() functions,
because they will probably be useful while implementing
https://github.com/WebKit/WebKit/pull/13849. This patch therefore moves their
declaration to a WebGPUInternal.h file, which is not exported.

* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
(PAL::WebGPU::requestDeviceCallback):
(PAL::WebGPU::AdapterImpl::requestDevice):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:
(PAL::WebGPU::mapAsyncCallback):
(PAL::WebGPU::BufferImpl::mapAsync):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::createComputePipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::createRenderPipelineAsyncCallback):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::popErrorScopeCallback):
(PAL::WebGPU::DeviceImpl::popErrorScope):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
(PAL::WebGPU::requestAdapterCallback):
(PAL::WebGPU::GPUImpl::requestAdapter):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
(PAL::WebGPU::onSubmittedWorkDoneCallback):
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
* Source/WebGPU/WebGPU/Adapter.mm:
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock): Deleted.
* Source/WebGPU/WebGPU/Buffer.mm:
(wgpuBufferMapAsyncWithBlock): Deleted.
* Source/WebGPU/WebGPU/Device.mm:
(wgpuDeviceCreateComputePipelineAsyncWithBlock): Deleted.
(wgpuDeviceCreateRenderPipelineAsyncWithBlock): Deleted.
(wgpuDevicePopErrorScopeWithBlock): Deleted.
(wgpuDeviceSetUncapturedErrorCallbackWithBlock): Deleted.
* Source/WebGPU/WebGPU/Instance.mm:
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock): Deleted.
* Source/WebGPU/WebGPU/Queue.mm:
(wgpuQueueOnSubmittedWorkDoneWithBlock): Deleted.
* Source/WebGPU/WebGPU/ShaderModule.mm:
(wgpuShaderModuleGetCompilationInfoWithBlock): Deleted.
* Source/WebGPU/WebGPU/WebGPUExt.h:

Canonical link: https://commits.webkit.org/264893@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] aba48e: Object replacement character (0xFFFC) generates nu...

2023-06-05 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aba48e65ac8b5a624f37a9be944e686e552d89b7
  
https://github.com/WebKit/WebKit/commit/aba48e65ac8b5a624f37a9be944e686e552d89b7
  Author: Myles C. Maxfield 
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/fast/text/zero-width-characters-complex-script.html
M LayoutTests/fast/text/zero-width-characters.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-combine-emphasis-expected-mismatch.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-combine-emphasis.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-1-expected-mismatch.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-1.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-2-expected-mismatch.html
A 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-2.html
M Source/WebCore/platform/graphics/FontCascade.h

  Log Message:
  ---
  Object replacement character (0xFFFC) generates null (0) glyph
https://bugs.webkit.org/show_bug.cgi?id=255298
rdar://107897203

Reviewed by Cameron McCormack.

The spec doesn't say anything about the object replacement character being 
deleted. Neither
Chrome nor Firefox delete the object replacement character.

Tests are being upstreamed at 
https://github.com/web-platform-tests/wpt/pull/40391.

* LayoutTests/TestExpectations:
* LayoutTests/fast/text/zero-width-characters-complex-script.html:
* LayoutTests/fast/text/zero-width-characters.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-combine-emphasis-expected-mismatch.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-combine-emphasis.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-1-expected-mismatch.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-1.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-2-expected-mismatch.html:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/object-replacement-2.html:
 Added.
* Source/WebCore/platform/graphics/FontCascade.h:
(WebCore::FontCascade::isCharacterWhoseGlyphsShouldBeDeletedForTextRendering):
(WebCore::FontCascade::treatAsZeroWidthSpaceInComplexScript):

Canonical link: https://commits.webkit.org/264886@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 979cf8: [WebGPU] Create and use WebGPUPtr in PAL/WebGPU/Impl

2023-06-05 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 979cf8ac345234798678bcf7233e344cf41bc829
  
https://github.com/WebKit/WebKit/commit/979cf8ac345234798678bcf7233e344cf41bc829
  Author: Myles C. Maxfield 
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
M Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj
M Source/WebCore/PAL/pal/CMakeLists.txt
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h
R Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceWrapper.cpp
R Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceWrapper.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPresentationContextImpl.cpp
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPresentationContextImpl.h
A Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUPtr.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h
R Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUSwapChainWrapper.cpp
R Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUSwapChainWrapper.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h
M Source/WebGPU/WebGPU/ExternalTexture.mm
M Source/WebGPU/WebGPU/PresentationContext.mm
M Source/WebGPU/WebGPU/WebGPUExt.h

  Log Message:
  ---
  [WebGPU] Create and use WebGPUPtr in PAL/WebGPU/Impl
https://bugs.webkit.org/show_bug.cgi?id=257672
rdar://110198845

Reviewed by Mike Wyrzykowski.

Now that WGPU objects are reference counted, we can create WebGPUPtr, which is
a type alias of RefPtr, with custom traits to hook up the appropriate ref and
deref methods. This patch does so, and migrates all our classes in
PAL/WebGPU/Impl to use it. This allows the destructors of all these classes to
be empty, because destroying the WGPU object is handled automatically

[webkit-changes] [WebKit/WebKit] 522c36: Rename LazyLineBreakIterator to CachedTextBreakIte...

2023-06-05 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 522c36c64af3fa1b643f3f5c7458571b96b5af9b
  
https://github.com/WebKit/WebKit/commit/522c36c64af3fa1b643f3f5c7458571b96b5af9b
  Author: Myles C. Maxfield 
  Date:   2023-06-05 (Mon, 05 Jun 2023)

  Changed paths:
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp
M Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h
M Source/WebCore/rendering/BreakLines.h
M Source/WebCore/rendering/LegacyLineLayout.cpp
M Source/WebCore/rendering/RenderBlockFlow.h
M Source/WebCore/rendering/RenderRubyBase.cpp
M Source/WebCore/rendering/RenderRubyBase.h
M Source/WebCore/rendering/RenderRubyRun.cpp
M Source/WebCore/rendering/RenderRubyRun.h
M Source/WebCore/rendering/RenderRubyText.cpp
M Source/WebCore/rendering/RenderRubyText.h
M Source/WebCore/rendering/RenderText.cpp
M Source/WebCore/rendering/line/BreakingContext.h
M Source/WebCore/rendering/line/LineBreaker.h
M Source/WebKitLegacy/ios/Misc/WebUIKitSupport.mm
M Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp

  Log Message:
  ---
  Rename LazyLineBreakIterator to CachedTextBreakIteratorFactory
https://bugs.webkit.org/show_bug.cgi?id=257696
rdar://110237360

Reviewed by Cameron McCormack.

LazyLineBreakIterator isn't actually an iterator. It's really just a class that 
holds all the parameters
necessary to create an iterator. We use it so that we can populate these 
parameters at the top of layout
code, but if it turns out we don't actually need an iterator (e.g. the element 
is empty or something)
we don't actually create the iterator until we need to. Therefore, it really 
should be called a factory,
rather than an iterator itself.

* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::CachedTextBreakIteratorFactory::CachedTextBreakIteratorFactory):
(WTF::LazyLineBreakIterator::PriorContext::PriorContext): Deleted.
(WTF::LazyLineBreakIterator::PriorContext::lastCharacter const): Deleted.
(WTF::LazyLineBreakIterator::PriorContext::secondToLastCharacter const): 
Deleted.
(WTF::LazyLineBreakIterator::PriorContext::set): Deleted.
(WTF::LazyLineBreakIterator::PriorContext::update): Deleted.
(WTF::LazyLineBreakIterator::PriorContext::reset): Deleted.
(WTF::LazyLineBreakIterator::PriorContext::length const): Deleted.
(WTF::LazyLineBreakIterator::PriorContext::characters const): Deleted.
(WTF::LazyLineBreakIterator::LazyLineBreakIterator): Deleted.
(WTF::LazyLineBreakIterator::stringView const): Deleted.
(WTF::LazyLineBreakIterator::mode const): Deleted.
(WTF::LazyLineBreakIterator::get): Deleted.
(WTF::LazyLineBreakIterator::resetStringAndReleaseIterator): Deleted.
(WTF::LazyLineBreakIterator::priorContext const): Deleted.
(WTF::LazyLineBreakIterator::priorContext): Deleted.
* Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::moveToNextBreakablePosition):
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity):
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::findNextBreakablePosition):
* Source/WebCore/layout/formattingContexts/inline/text/TextUtil.h:
* Source/WebCore/rendering/BreakLines.h:
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionKeepingAllWords):
(WebCore::nextBreakablePositionKeepingAllWordsIgnoringNBSP):
(WebCore::nextBreakablePositionIgnoringNBSP):
(WebCore::nextBreakablePositionWithoutShortcut):
(WebCore::nextBreakablePositionIgnoringNBSPWithoutShortcut):
(WebCore::nextBreakablePositionBreakCharacter):
(WebCore::isBreakable):
* Source/WebCore/rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::cachePriorCharactersIfNeeded):
* Source/WebCore/rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::cachePriorCharactersIfNeeded):
* Source/WebCore/rendering/RenderRubyBase.h:
* Source/WebCore/rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::updatePriorContextFromCachedBreakIterator const):
(WebCore::RenderRubyRun::canBreakBefore const):
* Source/WebCore/rendering/RenderRubyRun.h:
* Source/WebCore/rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::canBreakBefore const):
* Source/WebCore/rendering/RenderRubyText.h:
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
* Source/WebCore/rendering/line/LineBreaker.h:
* Source/WebKitLegacy/ios/Misc/WebUIKitSupport.mm:
(WebKitGetLastLineBreakInBuffer):
* Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/264858@main


___
webkit-changes mailing list
webkit

[webkit-changes] [WebKit/WebKit] 219fc0: [WebGPU] Update WebGPU.h to upstream ToT

2023-06-02 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 219fc036fbe9fe884fd02b5e4412517cd59e4c6e
  
https://github.com/WebKit/WebKit/commit/219fc036fbe9fe884fd02b5e4412517cd59e4c6e
  Author: Myles C. Maxfield 
  Date:   2023-06-02 (Fri, 02 Jun 2023)

  Changed paths:
M Source/WebCore/Modules/WebGPU/GPUDevice.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUDevice.h
M Source/WebGPU/WebGPU/Adapter.mm
M Source/WebGPU/WebGPU/BindGroup.mm
M Source/WebGPU/WebGPU/BindGroupLayout.mm
M Source/WebGPU/WebGPU/Buffer.mm
M Source/WebGPU/WebGPU/CommandBuffer.mm
M Source/WebGPU/WebGPU/CommandEncoder.mm
M Source/WebGPU/WebGPU/ComputePassEncoder.mm
M Source/WebGPU/WebGPU/ComputePipeline.mm
M Source/WebGPU/WebGPU/Device.h
M Source/WebGPU/WebGPU/Device.mm
M Source/WebGPU/WebGPU/Instance.mm
M Source/WebGPU/WebGPU/PipelineLayout.mm
M Source/WebGPU/WebGPU/PresentationContext.mm
M Source/WebGPU/WebGPU/QuerySet.mm
M Source/WebGPU/WebGPU/Queue.mm
M Source/WebGPU/WebGPU/RenderBundle.mm
M Source/WebGPU/WebGPU/RenderBundleEncoder.mm
M Source/WebGPU/WebGPU/RenderPassEncoder.mm
M Source/WebGPU/WebGPU/RenderPipeline.mm
M Source/WebGPU/WebGPU/Sampler.mm
M Source/WebGPU/WebGPU/ShaderModule.mm
M Source/WebGPU/WebGPU/Texture.mm
M Source/WebGPU/WebGPU/TextureView.mm
M Source/WebGPU/WebGPU/WebGPU.h
M Source/WebGPU/WebGPU/WebGPUExt.h
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.messages.in
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h

  Log Message:
  ---
  [WebGPU] Update WebGPU.h to upstream ToT
https://bugs.webkit.org/show_bug.cgi?id=257640


Reviewed by Mike Wyrzykowski.

This updates WebGPU.h to the revision 245130311ef771c958ba43c322aa7ef1f9edfb8f 
at
https://github.com/webgpu-native/webgpu-headers.

This does a few things:
- All objects get retain/release calls. This is really exciting because it means
  can delete PAL::WebGPU::DeviceWrapper and PAL::WebGPU::SwapChainWrapper.
  I'll do that in a follow-up patch. Also, we can delete the release calls
  from WebGPUExt.h.
- The header now has places to put NS_REFINED_FOR_SWIFT. I've already started
  creating a Swift facade which can use this at
  https://github.com/WebKit/WebKit/pull/13849
- The header now has places to put nullability macros. I'll do this in a follow-
  up patch.
- The device lost callback has moved from being set in a method to being part of
  the device's creation descriptor. (This means it no longer can change
  during the lifetime of the device, but instead has to be constant for a
  device.) I ended up actually deleting the implementation of this, because
  the model is significantly different now; it's now a "push" operation from
  the GPUP to the WP, rather than a "pull" model. I'll reimplement this in a
  follow-up patch.
- A few enums have been tweaked.

* Source/WebCore/Modules/WebGPU/GPUDevice.cpp:
(WebCore::GPUDevice::lost):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
(PAL::WebGPU::supportedFeatures):
(PAL::WebGPU::AdapterImpl::requestDevice):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::DeviceImpl::resolveDeviceLostPromise): Deleted.
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
* Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUDevice.h:
* Source/WebGPU/WebGPU/Adapter.mm:
(wgpuAdapterReference):
* Source/WebGPU/WebGPU/BindGroup.mm:
(wgpuBindGroupReference):
* Source/WebGPU/WebGPU/BindGroupLayout.mm:
(wgpuBindGroupLayoutReference):
* Source/WebGPU/WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
(wgpuBufferReference):
* Source/WebGPU/WebGPU/CommandBuffer.mm:
(wgpuCommandBufferReference):
* Source/WebGPU/WebGPU/CommandEncoder.mm:
(wgpuCommandEncoderReference):
* Source/WebGPU/WebGPU/ComputePassEncoder.mm:
(wgpuComputePassEncoderReference):
* Source/WebGPU/WebGPU/ComputePipeline.mm:
(wgpuComputePipelineReference):
* Source/WebGPU/WebGPU/Device.h:
* Source/WebGPU/WebGPU/Device.mm:
(wgpuDeviceReference):
(wgpuDevicePopErrorScope):
(wgpuDevicePopErrorScopeWithBlock):
(WebGPU::Device::setDeviceLostCallback): Deleted.
(wgpuDeviceSetDeviceLostCallback): Deleted.
(wgpuDeviceSetDeviceLostCallbackWithBlock): Deleted.
* Source/WebGPU/WebGPU/Instance.mm:
(wgpuInstanceReference):
* Source/WebGPU/WebGPU/PipelineLayout.mm:
(wgpuPipelineLayoutReference):
* Source/WebGPU/WebGPU/PresentationContext.mm:
(wgpuSurfaceReference):
(wg

[webkit-changes] [WebKit/WebKit] 9ad6a1: Migrate from LineBreakIteratorPool to TextBreakIte...

2023-06-02 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9ad6a13de3e52c7b45ff4af2d68819ef64facf1c
  
https://github.com/WebKit/WebKit/commit/9ad6a13de3e52c7b45ff4af2d68819ef64facf1c
  Author: Myles C. Maxfield 
  Date:   2023-06-02 (Fri, 02 Jun 2023)

  Changed paths:
M Source/WTF/WTF.xcodeproj/project.pbxproj
M Source/WTF/wtf/CMakeLists.txt
R Source/WTF/wtf/text/LineBreakIteratorPoolICU.cpp
R Source/WTF/wtf/text/LineBreakIteratorPoolICU.h
M Source/WTF/wtf/text/TextBreakIterator.cpp
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h
M Source/WebCore/rendering/BreakLines.h

  Log Message:
  ---
  Migrate from LineBreakIteratorPool to TextBreakIteratorCache
https://bugs.webkit.org/show_bug.cgi?id=257590
rdar://110097890

Reviewed by Yusuke Suzuki.

We have two different classes which do the same thing. I've been working
on deduplicating them, and this is the last step.

Microbenchmarks say there isn't a performance difference - presumably
because we're still using ICU to do line breaking. We're just using a
different intermediate class to get there. (And if the microbenchmarks
say there isn't a performance difference, then normal benchmarks certainly
won't say that there's a performance difference.)

* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/CMakeLists.txt:
* Source/WTF/wtf/text/LineBreakIteratorPoolICU.cpp: Removed.
* Source/WTF/wtf/text/LineBreakIteratorPoolICU.h: Removed.
* Source/WTF/wtf/text/TextBreakIterator.cpp:
(WTF::acquireLineBreakIterator): Deleted.
(WTF::releaseLineBreakIterator): Deleted.
(WTF::openLineBreakIterator): Deleted.
(WTF::closeLineBreakIterator): Deleted.
* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::CachedTextBreakIterator::~CachedTextBreakIterator):
(WTF::CachedTextBreakIterator::CachedTextBreakIterator):
(WTF::CachedTextBreakIterator::operator=):
(WTF::CachedTextBreakIterator::preceding const):
(WTF::CachedTextBreakIterator::following const):
(WTF::CachedTextBreakIterator::isBoundary const):
(WTF::LazyLineBreakIterator::get):
(WTF::LazyLineBreakIterator::resetStringAndReleaseIterator):
(WTF::LazyLineBreakIterator::~LazyLineBreakIterator): Deleted.
* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
* Source/WebCore/rendering/BreakLines.h:
(WebCore::nextBreakablePosition):

Canonical link: https://commits.webkit.org/264825@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 531ad5: Update TextBreakIterator's API to support prior co...

2023-05-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 531ad5e6cac68fc0d7e9dc9b8bd4205f6f6821df
  
https://github.com/WebKit/WebKit/commit/531ad5e6cac68fc0d7e9dc9b8bd4205f6f6821df
  Author: Myles C. Maxfield 
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
M Source/WTF/wtf/text/TextBreakIterator.cpp
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp
M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h
M Source/WebCore/platform/graphics/ComplexTextController.cpp
M Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h
M Source/WebCore/rendering/RenderText.cpp
M Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp

  Log Message:
  ---
  Update TextBreakIterator's API to support prior context
https://bugs.webkit.org/show_bug.cgi?id=257529


Reviewed by Yusuke Suzuki.

Now that TextBreakIteratorCF and TextBreakIteratorICU both support prior 
context,
we can hook it up to TextBreakIterator's API.

After this patch, all the features supported by LazyLineBreakIterator are 
supported
by TextBreakIterator, so we can switch over from from using 
LazyLineBreakIterator to
TextBreakIterator whenever we want. However, before making the switch, we still 
need
to determine if there is a performance cost to doing so.

* Source/WTF/wtf/text/TextBreakIterator.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
(WTF::TextBreakIterator::TextBreakIterator):
* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::TextBreakIterator::setText):
(WTF::TextBreakIteratorCache::take):
(WTF::CachedTextBreakIterator::CachedTextBreakIterator):
* Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
(WTF::TextBreakIterator::TextBreakIterator):
* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::TextBreakIteratorICU):
* Source/WebCore/platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::offsetForPosition):
(WebCore::ComplexTextController::collectComplexTextRuns):
* Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h:
(WebCore::ComposedCharacterClusterTextIterator::ComposedCharacterClusterTextIterator):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::previousOffset const):
(WebCore::RenderText::previousOffsetForBackwardDeletion const):
(WebCore::RenderText::nextOffset const):
* Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/264772@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 2b7342: [Cocoa] Delete WebKitPrivateFrameworkStubs for ope...

2023-05-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2b73425793c0cefb5049f19cdef7c2d2dac9ab01
  
https://github.com/WebKit/WebKit/commit/2b73425793c0cefb5049f19cdef7c2d2dac9ab01
  Author: Myles C. Maxfield 
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/AuthKit.framework/AuthKit.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/HID.framework/HID.tbd
R WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/libFontParser.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101600/AuthKit.framework/AuthKit.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101600/HID.framework/HID.tbd
R WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101600/libFontParser.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/11/AuthKit.framework/AuthKit.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/11/HID.framework/HID.tbd
R WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/11/libFontParser.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/AppSupport.framework/AppSupport.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/CorePrediction.framework/CorePrediction.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/FileProvider.framework/FileProvider.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/GraphicsServices.framework/GraphicsServices.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/PrototypeTools.framework/PrototypeTools.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/RunningBoardServices.framework/RunningBoardServices.tbd
R WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/libFontParser.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/AppServerSupport.framework/AppServerSupport.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/AppSupport.framework/AppSupport.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/AuthKit.framework/AuthKit.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/BackBoardServices.framework/BackBoardServices.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/CorePrediction.framework/CorePrediction.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/GraphicsServices.framework/GraphicsServices.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/InstallCoordination.framework/InstallCoordination.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/PrototypeTools.framework/PrototypeTools.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/RunningBoardServices.framework/RunningBoardServices.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/URLFormatting.framework/URLFormatting.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/VisionKitCore.framework/VisionKitCore.tbd
R WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/libFontParser.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/AppSupport.framework/AppSupport.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/CorePrediction.framework/CorePrediction.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/FileProvider.framework/FileProvider.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/GraphicsServices.framework/GraphicsServices.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/PepperUICore.framework/PepperUICore.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/PrototypeTools.framework/PrototypeTools.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/RunningBoardServices.framework/RunningBoardServices.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd
R 
WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/URLFormatting.framework/URLFormatting.tbd
R WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/libFontParser.tbd

  Log Message:
  ---
  [Cocoa] Delete WebKitPrivateFrameworkStubs for operating systems we don't 
support any more
https://bugs.webkit.org/show_bug.cgi?id=257555
rdar://110074446

Reviewed by Alexey Proskuryakov.

According to https://build.webkit.org/dashboard/, we no longer support:
- Anything before macOS 12
- Anything before tvOS 16
- Anything before iOS 16
- Anything before watchOS 9

* 
WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/AuthKit.framework/AuthKit.tbd:
 Removed

[webkit-changes] [WebKit/WebKit] 1693e2: [Cocoa] [GPUP] Compressed fonts are decompressed t...

2023-05-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1693e2b8edc6ac2cdc07abcd87d90499250831f9
  
https://github.com/WebKit/WebKit/commit/1693e2b8edc6ac2cdc07abcd87d90499250831f9
  Author: Myles C. Maxfield 
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
M Source/WebCore/Configurations/WebCore.xcconfig
M Source/WebCore/PAL/pal/spi/cf/CoreTextSPI.h
M 
Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101600/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/11/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/12/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/13/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/16/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/16/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/9/libFontParser.tbd

  Log Message:
  ---
  [Cocoa] [GPUP] Compressed fonts are decompressed twice, which is one too many 
times
https://bugs.webkit.org/show_bug.cgi?id=257401
rdar://109910582

Reviewed by David Kilzer.

Previously, the way we were sharing web fonts between the web process and the 
GPU process is
by simply transferring the bytes of the file, and asking Core Text to open the 
data. Both
processes need to use the font, so this means Core Text was being asked to open 
the data twice.
This actually has somewhat significant cost, as many fonts are compressed, and 
simply opening
it has to decompress the file.

This patch uses an SPI function to produce the decompressed bytes, without 
opening the font.
This allows us to retain the decompressed bytes, and send them to the GPU 
process. By
decompressing early, we can decompress once, and then use the decompressed 
bytes everywhere.
This means we only have to decompress fonts once.

* Source/WebCore/Configurations/WebCore.xcconfig:
* Source/WebCore/PAL/pal/spi/cf/CoreTextSPI.h:
* Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp:
(WebCore::createFontCustomPlatformData):
* WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101600/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/11/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/12/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/13/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/16/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/libFontParser.tbd: Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/16/libFontParser.tbd: Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/libFontParser.tbd: 
Added.
* WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/9/libFontParser.tbd: 
Added.

Canonical link: https://commits.webkit.org/264750@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 21ab6b: [Cocoa] [GPUP] Compressed fonts are decompressed t...

2023-05-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 21ab6bc788f21a099b61fa1ead9f7ba048d7c687
  
https://github.com/WebKit/WebKit/commit/21ab6bc788f21a099b61fa1ead9f7ba048d7c687
  Author: Myles C. Maxfield 
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
M Source/WebCore/Configurations/WebCore.xcconfig
M Source/WebCore/PAL/pal/spi/cf/CoreTextSPI.h
M 
Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101500/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/101600/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/11/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/12/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/Mac/13/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/15/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/appletvos/16/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/15/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/16/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/8/libFontParser.tbd
A WebKitLibraries/WebKitPrivateFrameworkStubs/watchos/9/libFontParser.tbd

  Log Message:
  ---
  [Cocoa] [GPUP] Compressed fonts are decompressed twice, which is one too many 
times
https://bugs.webkit.org/show_bug.cgi?id=257401
rdar://109910582

Reviewed by David Kilzer.

Previously, the way we were sharing web fonts between the web process and the 
GPU process is
by simply transferring the bytes of the file, and asking Core Text to open the 
data. Both
processes need to use the font, so this means Core Text was being asked to open 
the data twice.
This actually has somewhat significant cost, as many fonts are compressed, and 
simply opening
it has to decompress the file.

This patch uses an SPI function to produce the decompressed bytes, without 
opening the font.
This allows us to retain the decompressed bytes, and send them to the GPU 
process. By
decompressing early, we can decompress once, and then use the decompressed 
bytes everywhere.
This means we only have to decompress fonts once.

* Source/WebCore/PAL/pal/spi/cf/CoreTextSPI.h:
* Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp:
(WebCore::createFontCustomPlatformData):

Canonical link: https://commits.webkit.org/264724@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] b42c0d: Hook "prior context" infrastructure up to TextBrea...

2023-05-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b42c0d74cd2e6aa99232eeb0f0267c4a3e660d04
  
https://github.com/WebKit/WebKit/commit/b42c0d74cd2e6aa99232eeb0f0267c4a3e660d04
  Author: Myles C. Maxfield 
  Date:   2023-05-31 (Wed, 31 May 2023)

  Changed paths:
M Source/WTF/wtf/text/NullTextBreakIterator.h
M Source/WTF/wtf/text/TextBreakIterator.cpp
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WTF/wtf/text/cf/TextBreakIteratorCF.h
M Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp
M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h
M Source/WTF/wtf/text/icu/UTextProviderLatin1.h
M Source/WTF/wtf/text/icu/UTextProviderUTF16.h
M Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp

  Log Message:
  ---
  Hook "prior context" infrastructure up to TextBreakIteratorICU
https://bugs.webkit.org/show_bug.cgi?id=257469
rdar://109989795

Reviewed by Alan Baradlay.

This patch is the next step toward replacing LazyLineBreakIterator with 
TextBreakIterator.
This "prior context" infrastructure is the last feature that 
LazyLineBreakIterator supports
that TextBreakIterator doesn't. Because LazyLineBreakIterator already uses ICU, 
hooking up
support to TextBreakIteratorICU is quite straightforward.

Once this piece and https://bugs.webkit.org/show_bug.cgi?id=257467 are landed,
TextBreakIterator will support all the features as LazyLineBreakIterator. At 
that point, we
can compare performance to determine if we can make the switch over, and 
determine if we can
do line breaking using platform iterators instead of ICU.

* Source/WTF/wtf/text/NullTextBreakIterator.h:
(WTF::NullTextBreakIterator::setText):
* Source/WTF/wtf/text/TextBreakIterator.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::TextBreakIterator::setText):
* Source/WTF/wtf/text/cf/TextBreakIteratorCF.h:
(WTF::TextBreakIteratorCF::setText):
* Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::TextBreakIteratorICU):
(WTF::TextBreakIteratorICU::~TextBreakIteratorICU):
(WTF::TextBreakIteratorICU::setText):
(WTF::TextBreakIteratorICU::preceding const):
(WTF::TextBreakIteratorICU::following const):
(WTF::TextBreakIteratorICU::isBoundary const):
(WTF::TextBreakIteratorICU::set8BitText): Deleted.
* Source/WTF/wtf/text/icu/UTextProviderLatin1.h:
* Source/WTF/wtf/text/icu/UTextProviderUTF16.h:
* Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/264722@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 7d9c04: [Cocoa] Hook "prior context" infrastructure up to ...

2023-05-31 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7d9c042f3a2b131e83b2fed0647f75c5aff524e5
  
https://github.com/WebKit/WebKit/commit/7d9c042f3a2b131e83b2fed0647f75c5aff524e5
  Author: Myles C. Maxfield 
  Date:   2023-05-30 (Tue, 30 May 2023)

  Changed paths:
M Source/WTF/WTF.xcodeproj/project.pbxproj
M Source/WTF/wtf/text/NullTextBreakIterator.h
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WTF/wtf/text/cf/TextBreakIteratorCF.h
M Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h
M Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h
A Source/WTF/wtf/text/cocoa/ContextualizedCFString.h
A Source/WTF/wtf/text/cocoa/ContextualizedCFString.mm
M Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp
M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h
M Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp
M Tools/TestWebKitAPI/Tests/WTF/cocoa/ContextualizedNSString.mm

  Log Message:
  ---
  [Cocoa] Hook "prior context" infrastructure up to TextBreakIteratorCF
https://bugs.webkit.org/show_bug.cgi?id=257467
rdar://109983296

Reviewed by Alan Baradlay.

This patch is the next step to being able to use platform text iterators to 
break lines.
Previously, I implemented ContextualizedNSString, which is a subclass of 
NSString whose
backing store is 2 StringViews: one for the prior context of the string at 
hand, and one
for the string at hand itself. This patch hooks up ContextualizedNSString to our
TextBreakIteratorCF class, to allow TextBreakIteratorCF to work with prior 
context. This
is necessary because our line breaking code requires this prior context to work 
correctly,
and TextBreakIterator is the object which has a Core Foundation backend. If we 
want to be
able to do line breaking using Core Foundation, this patch is necessary.

The next patch will do something similar for TextBreakIteratorICU (which we 
luckily
already have UText support for). Once that's done, we should be able to migrate 
entirely
from LazyLineBreakIterator to TextBreakIterator.

* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::TextBreakIterator::setText):
* Source/WTF/wtf/text/cf/TextBreakIteratorCF.h:
(WTF::TextBreakIteratorCF::TextBreakIteratorCF):
(WTF::TextBreakIteratorCF::setText):
(WTF::TextBreakIteratorCF::mapModeToBackingIterator):
* Source/WTF/wtf/text/cf/TextBreakIteratorCFCharacterCluster.h:
(WTF::TextBreakIteratorCFCharacterCluster::TextBreakIteratorCFCharacterCluster):
(WTF::TextBreakIteratorCFCharacterCluster::setText):
(WTF::TextBreakIteratorCFCharacterCluster::preceding const):
(WTF::TextBreakIteratorCFCharacterCluster::following const):
(WTF::TextBreakIteratorCFCharacterCluster::isBoundary const):
* Source/WTF/wtf/text/cf/TextBreakIteratorCFStringTokenizer.h:
(WTF::TextBreakIteratorCFStringTokenizer::TextBreakIteratorCFStringTokenizer):
(WTF::TextBreakIteratorCFStringTokenizer::setText):
(WTF::TextBreakIteratorCFStringTokenizer::preceding const):
(WTF::TextBreakIteratorCFStringTokenizer::following const):
(WTF::TextBreakIteratorCFStringTokenizer::isBoundary const):
* Source/WTF/wtf/text/cocoa/ContextualizedCFString.h: Added.
* Source/WTF/wtf/text/cocoa/ContextualizedCFString.mm: Added.
(WTF::createContextualizedCFString):
* Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
(WTF::TextBreakIterator::mapModeToBackingIterator):
* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::setText):
* Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WTF/cocoa/ContextualizedNSString.mm:
(TEST):

Canonical link: https://commits.webkit.org/264714@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] da000f: [Cocoa] Add ContextualizedNSString, to allow line ...

2023-05-23 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: da000fdb0dc70c5758b808a5bbad99178068bb87
  
https://github.com/WebKit/WebKit/commit/da000fdb0dc70c5758b808a5bbad99178068bb87
  Author: Myles C. Maxfield 
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
M Source/WTF/WTF.xcodeproj/project.pbxproj
A Source/WTF/wtf/text/cocoa/ContextualizedNSString.h
A Source/WTF/wtf/text/cocoa/ContextualizedNSString.mm
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
A Tools/TestWebKitAPI/Tests/WTF/cocoa/ContextualizedNSString.mm

  Log Message:
  ---
  [Cocoa] Add ContextualizedNSString, to allow line breaking to use Core 
Foundation but also work with prior context
https://bugs.webkit.org/show_bug.cgi?id=257244
rdar://109747545

Reviewed by Yusuke Suzuki.

In WebKit, we (may) create a new line breaker for each element on the line. 
This means that,
in order to perform line breaking correctly, the line breaker needs to know 
about the last few
characters that came at the end of the previous element - we call this a "prior 
context." The
problem here is that this prior context isn't contiguous in memory with the 
string being
inspected; it's part of a different string altogether.

Core Foundation has facilities to perform line breaking. If we want to perform 
line breaking
using these facilities, it has to be possible to make CFString work with this 
"prior context."
CFString either A) copies and owns its character contents, or B) only accepts a 
single pointer
to string contents, which it doesn't own. That's not quite what we want: we 
want it to take
2 pointers to string contents, and act as if the contents of those 2 strings 
are concatenated.

The standard way of doing this is to subclass NSString. This sounds scary, but 
it's actually a
totally normal thing to do. There's even a whole section in the docs[1] about 
how to do it,
for exactly this use case. Because NSStrings are toll-free bridged with 
CFStrings, the CFString
methods end up calling our overridden Objective C NSString methods. This is how 
we can make
Core Foundation's line breaking work with prior context.

This patch adds a new NSString subclass, called ContextualizedNSString, and 
tests it in TestWTF.
It doesn't actually start using it in WTF yet. I'll do that in another patch.

[1] https://developer.apple.com/documentation/foundation/nsstring?language=objc

* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/text/cocoa/ContextualizedNSString.h: Added.
* Source/WTF/wtf/text/cocoa/ContextualizedNSString.mm: Added.
(-[ContextualizedNSString initWithContext:contents:]):
(-[ContextualizedNSString length]):
(-[ContextualizedNSString characterAtIndex:]):
(-[ContextualizedNSString getCharacters:range:]):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WTF/cocoa/ContextualizedNSString.mm: Added.
(TEST):

Canonical link: https://commits.webkit.org/264454@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] b5583c: Pull out LazyLineBreakIterator's prior context han...

2023-05-23 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b5583c5d124d54f19e8e87f3f9daad7450495656
  
https://github.com/WebKit/WebKit/commit/b5583c5d124d54f19e8e87f3f9daad7450495656
  Author: Myles C. Maxfield 
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp
M Source/WebCore/rendering/BreakLines.h
M Source/WebCore/rendering/LegacyLineLayout.cpp
M Source/WebCore/rendering/RenderRubyBase.cpp
M Source/WebCore/rendering/RenderRubyRun.cpp
M Source/WebCore/rendering/RenderRubyText.cpp
M Source/WebCore/rendering/line/BreakingContext.h
M Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp

  Log Message:
  ---
  Pull out LazyLineBreakIterator's prior context handling into a separate class
https://bugs.webkit.org/show_bug.cgi?id=257115
rdar://109646131

Reviewed by Yusuke Suzuki.

LazyLineBreakIterator is really a factory, which holds the necessary parameters 
to
create line break iterators. But, it also has a bunch of handling for a "prior 
context"
which is conceptually a prefix to the string being broken.

This patch isn't strictly necessary, but I thought it would be a bit more 
elegant to
have a class separation between the two pieces of LazyLineBreakIterator.

* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::LazyLineBreakIterator::PriorContext::PriorContext):
(WTF::LazyLineBreakIterator::PriorContext::lastCharacter const):
(WTF::LazyLineBreakIterator::PriorContext::secondToLastCharacter const):
(WTF::LazyLineBreakIterator::PriorContext::set):
(WTF::LazyLineBreakIterator::PriorContext::update):
(WTF::LazyLineBreakIterator::PriorContext::reset):
(WTF::LazyLineBreakIterator::PriorContext::length const):
(WTF::LazyLineBreakIterator::PriorContext::characters const):
(WTF::LazyLineBreakIterator::LazyLineBreakIterator):
(WTF::LazyLineBreakIterator::get):
(WTF::LazyLineBreakIterator::resetStringAndReleaseIterator):
(WTF::LazyLineBreakIterator::priorContext const):
(WTF::LazyLineBreakIterator::priorContext):
(WTF::TextBreakIteratorCache::TextBreakIteratorCache): Deleted.
(WTF::LazyLineBreakIterator::lastCharacter const): Deleted.
(WTF::LazyLineBreakIterator::secondToLastCharacter const): Deleted.
(WTF::LazyLineBreakIterator::setPriorContext): Deleted.
(WTF::LazyLineBreakIterator::updatePriorContext): Deleted.
(WTF::LazyLineBreakIterator::resetPriorContext): Deleted.
(WTF::LazyLineBreakIterator::priorContextLength const): Deleted.
* Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity):
* Source/WebCore/rendering/BreakLines.h:
(WebCore::nextBreakablePosition):
* Source/WebCore/rendering/LegacyLineLayout.cpp:
(WebCore::LegacyLineLayout::layoutRunsAndFloatsInRange):
* Source/WebCore/rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::cachePriorCharactersIfNeeded):
* Source/WebCore/rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::updatePriorContextFromCachedBreakIterator const):
* Source/WebCore/rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::canBreakBefore const):
* Source/WebCore/rendering/line/BreakingContext.h:
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleFloat):
(WebCore::BreakingContext::handleReplaced):
(WebCore::BreakingContext::handleText):

Canonical link: https://commits.webkit.org/26@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 936c42: [WebGPU] Give BindGroupLayouts a notion of externa...

2023-05-23 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 936c42734f58a0b09f482a6ba86ba339cfa71164
  
https://github.com/WebKit/WebKit/commit/936c42734f58a0b09f482a6ba86ba339cfa71164
  Author: Myles C. Maxfield 
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
M Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.idl
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp
M Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm
M Source/WebGPU/WGSL/WGSL.h
M Source/WebGPU/WebGPU/BindGroup.mm
M Source/WebGPU/WebGPU/BindGroupLayout.h
M Source/WebGPU/WebGPU/BindGroupLayout.mm
M Source/WebGPU/WebGPU/Instance.h
M Source/WebGPU/WebGPU/Pipeline.h
M Source/WebGPU/WebGPU/PresentationContext.h
M Source/WebGPU/WebGPU/RenderPipeline.mm
M Source/WebGPU/WebGPU/ShaderModule.mm
M Source/WebGPU/WebGPU/WebGPUExt.h

  Log Message:
  ---
  [WebGPU] Give BindGroupLayouts a notion of external textures (like BindGroups 
have)
https://bugs.webkit.org/show_bug.cgi?id=257055
rdar://109585492

Reviewed by Mike Wyrzykowski.

Just like we added WGPUBindGroupExternalTextureEntry to let bind groups be able 
to hold
external textures, this patch adds the corresponding 
WGPUExternalTextureBindGroupLayoutEntry
to bind group layouts.

Note that the external texture handling added by this patch doesn't actually 
hook up all
the necessary pieces to the MTLArgumetnDescriptors. This patch instead just 
creates the
concept of a BGL's external texture, and the details can be filled in in a 
subsequent patch.

I've also included a few drive-by style improvements, too.

* Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.idl:
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
* Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm:
(WebCore::GPUCanvasContextCocoa::configure):
* Source/WebGPU/WGSL/WGSL.h:
* Source/WebGPU/WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
* Source/WebGPU/WebGPU/BindGroupLayout.h:
(WebGPU::BindGroupLayout::create):
(WebGPU::BindGroupLayout::entries const):
* Source/WebGPU/WebGPU/BindGroupLayout.mm:
(WebGPU::createArgumentDescriptor):
(WebGPU::BindGroupLayout::isPresent):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):
(WebGPU::BindGroupLayout::entries const): Deleted.
* Source/WebGPU/WebGPU/Instance.h:
* Source/WebGPU/WebGPU/Pipeline.h:
* Source/WebGPU/WebGPU/PresentationContext.h:
* Source/WebGPU/WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipeline):
(WebGPU::RenderPipeline::getBindGroupLayout):
* Source/WebGPU/WebGPU/ShaderModule.mm:
(WebGPU::convertBindingLayout):
(WebGPU::ShaderModule::convertPipelineLayout):
(WebGPU::populateBindingMember): Deleted.
* Source/WebGPU/WebGPU/WebGPUExt.h:

Canonical link: https://commits.webkit.org/264437@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 80194d: [WebGPU] Remove unnecessary deprecation warnings

2023-05-23 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 80194d7df7603cd7502cbc5030a58138b11b31a3
  
https://github.com/WebKit/WebKit/commit/80194d7df7603cd7502cbc5030a58138b11b31a3
  Author: Myles C. Maxfield 
  Date:   2023-05-23 (Tue, 23 May 2023)

  Changed paths:
M Source/WTF/wtf/PlatformUse.h
M Source/WebGPU/WebGPU/BindGroupLayout.mm

  Log Message:
  ---
  [WebGPU] Remove unnecessary deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=257194
rdar://109707026

Reviewed by Mike Wyrzykowski.

They're not necessary any more.

* Source/WTF/wtf/PlatformUse.h:
* Source/WebGPU/WebGPU/BindGroupLayout.mm:
(WebGPU::createArgumentDescriptor):

Canonical link: https://commits.webkit.org/264430@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 99eac4: Teach TextBreakIterator about strict and loose lin...

2023-05-22 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 99eac467073eccfa5ff272ce4c8212273b2c1040
  
https://github.com/WebKit/WebKit/commit/99eac467073eccfa5ff272ce4c8212273b2c1040
  Author: Myles C. Maxfield 
  Date:   2023-05-22 (Mon, 22 May 2023)

  Changed paths:
M Source/WTF/wtf/text/LineBreakIteratorPoolICU.h
M Source/WTF/wtf/text/TextBreakIterator.cpp
M Source/WTF/wtf/text/TextBreakIterator.h
M Source/WTF/wtf/text/WTFString.h
M Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp
M Source/WTF/wtf/text/icu/TextBreakIteratorICU.h
M Source/WebCore/platform/graphics/ComplexTextController.cpp
M Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h
M Source/WebCore/rendering/RenderText.cpp
M Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp

  Log Message:
  ---
  Teach TextBreakIterator about strict and loose line breaking behaviors
https://bugs.webkit.org/show_bug.cgi?id=257108
rdar://109634206

Reviewed by Cameron McCormack.

This is the first part of our line breaker refactoring. We currently have 2 
totally separate classes,
both of which can perform line breaking: TextBreakIterator and 
LazyLineBreakIterator.

TextBreakIterator has multiple backends - it can be backed by either ICU or 
Core Foundation. It also
supports all kinds of text segmentation: caret positions, grapheme cluster 
segmentation, etc.

LazyLineBreakIterator only works with ICU, and can only do line breaking. 
However, it supports loose
and strict line breaking modes, and supports a "prior context."

It's kind of a shame that we have 2 classes which both do similar things, so 
I'm going to try to
unify them into a single class which can do everything. I'd like to improve 
TextBreakIterator to be
able to do everything that LazyLineBreakIterator can do, and then delete 
LazyLineBreakIterator,
because I think that's going to be the most straightforward way of doing it.

This patch teaches TextBreakIterator about the different line breaking 
behaviors, by turning the
"mode" enum into a variant, and giving the Line struct a behavior enum.

* Source/WTF/wtf/text/TextBreakIterator.cpp:
(WTF::mapModeToBackingIterator):
* Source/WTF/wtf/text/TextBreakIterator.h:
(WTF::TextBreakIterator::LineMode::operator== const):
(WTF::TextBreakIterator::CaretMode::operator== const):
(WTF::TextBreakIterator::DeleteMode::operator== const):
(WTF::TextBreakIterator::CharacterMode::operator== const):
(WTF::LazyLineBreakIterator::get):
(WTF::TextBreakIteratorCache::TextBreakIteratorCache): Deleted.
* Source/WTF/wtf/text/WTFString.h:
(WTF::StringLiterals::operator _str):
* Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
(WTF::mapModeToBackingIterator):
* Source/WTF/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::TextBreakIteratorICU):
(WTF::TextBreakIteratorICU::makeLocaleWithBreakKeyword):
* Source/WebCore/platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::offsetForPosition):
(WebCore::ComplexTextController::collectComplexTextRuns):
* Source/WebCore/platform/graphics/ComposedCharacterClusterTextIterator.h:
(WebCore::ComposedCharacterClusterTextIterator::ComposedCharacterClusterTextIterator):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::previousOffset const):
(WebCore::RenderText::previousOffsetForBackwardDeletion const):
(WebCore::RenderText::nextOffset const):
* Tools/TestWebKitAPI/Tests/WTF/TextBreakIterator.cpp:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/264376@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] bb2dde: [WebGPU] [Style] Lambdas in PAL/WebGPU capture mor...

2023-05-21 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: bb2ddeb3d448c9b441e27b7e86dafc0657511bb6
  
https://github.com/WebKit/WebKit/commit/bb2ddeb3d448c9b441e27b7e86dafc0657511bb6
  Author: Myles C. Maxfield 
  Date:   2023-05-21 (Sun, 21 May 2023)

  Changed paths:
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCompositorIntegrationImpl.cpp
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp
M 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp

  Log Message:
  ---
  [WebGPU] [Style] Lambdas in PAL/WebGPU capture more than they should and 
don't have correct whitespacing
https://bugs.webkit.org/show_bug.cgi?id=257064
rdar://109589314

Reviewed by Dan Glastonbury.

This patch doesn't have any behavior change - it's just about style.

I generally try to avoid capturing "this" in a lambda, as:
1. Lambdas don't usually need all the member variables inside "this", and it's 
always good to limit
   the scope of what's available
2. Depending on how the object is owned (RefPtr, unique_ptr, etc.), naively 
capturing "this" might
   lead to a UAF or a retain cycle, if you do it wrong.

This patch removes most of the uses of capturing "this" inside PAL/WebGPU.

* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
(PAL::WebGPU::AdapterImpl::requestDevice):
* 
Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUCompositorIntegrationImpl.cpp:
(PAL::WebGPU::CompositorIntegrationImpl::recreateRenderBuffers):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.cpp:
(PAL::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::DeviceImpl::createTexture):
(PAL::WebGPU::DeviceImpl::createBindGroupLayout):
(PAL::WebGPU::DeviceImpl::createPipelineLayout):
(PAL::WebGPU::DeviceImpl::createBindGroup):
(PAL::WebGPU::DeviceImpl::createShaderModule):
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::DeviceImpl::createComputePipeline):
(PAL::WebGPU::DeviceImpl::createRenderPipeline):
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
(PAL::WebGPU::DeviceImpl::resolveDeviceLostPromise):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
(PAL::WebGPU::QueueImpl::submit):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:
(PAL::WebGPU::RenderPassEncoderImpl::executeBundles):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp:
(PAL::WebGPU::TextureImpl::createView):

Canonical link: https://commits.webkit.org/264308@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 597aa3: [WebGPU] Use UnsignedWithZeroKeyHashTraits in m_ca...

2023-05-21 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 597aa395dcdcdb2c1c48069f450f7419a30df72d
  
https://github.com/WebKit/WebKit/commit/597aa395dcdcdb2c1c48069f450f7419a30df72d
  Author: Myles C. Maxfield 
  Date:   2023-05-21 (Sun, 21 May 2023)

  Changed paths:
M Source/WebGPU/WebGPU/ComputePipeline.h
M Source/WebGPU/WebGPU/ComputePipeline.mm
M Source/WebGPU/WebGPU/RenderPipeline.h
M Source/WebGPU/WebGPU/RenderPipeline.mm

  Log Message:
  ---
  [WebGPU] Use UnsignedWithZeroKeyHashTraits in m_cachedBindGroupLayouts 
instead of adding 1 to the key
https://bugs.webkit.org/show_bug.cgi?id=257068


Reviewed by Dan Glastonbury.

This is exactly what UnsignedWithZeroKeyHashTraits is meant for.

* Source/WebGPU/WebGPU/ComputePipeline.h:
* Source/WebGPU/WebGPU/ComputePipeline.mm:
(WebGPU::ComputePipeline::getBindGroupLayout):
* Source/WebGPU/WebGPU/RenderPipeline.h:
* Source/WebGPU/WebGPU/RenderPipeline.mm:
(WebGPU::RenderPipeline::getBindGroupLayout):

Canonical link: https://commits.webkit.org/264304@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 25578b: [WebGPU] [Style] Make lambdas in Modules/WebGPU ad...

2023-05-21 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 25578b6a979e8c70360904ef5e1e29d0e2ad4cc5
  
https://github.com/WebKit/WebKit/commit/25578b6a979e8c70360904ef5e1e29d0e2ad4cc5
  Author: Myles C. Maxfield 
  Date:   2023-05-21 (Sun, 21 May 2023)

  Changed paths:
M Source/WebCore/Modules/WebGPU/GPU.cpp
M Source/WebCore/Modules/WebGPU/GPUAdapter.cpp
M Source/WebCore/Modules/WebGPU/GPUBindGroupDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUBindGroupEntry.h
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUBuffer.cpp
M Source/WebCore/Modules/WebGPU/GPUCanvasConfiguration.h
M Source/WebCore/Modules/WebGPU/GPUColorDict.h
M Source/WebCore/Modules/WebGPU/GPUCompilationInfo.cpp
M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrite.h
M Source/WebCore/Modules/WebGPU/GPUDevice.cpp
M Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h
M Source/WebCore/Modules/WebGPU/GPUFragmentState.h
M Source/WebCore/Modules/WebGPU/GPUOrigin2DDict.h
M Source/WebCore/Modules/WebGPU/GPUOrigin3DDict.h
M Source/WebCore/Modules/WebGPU/GPUPipelineDescriptorBase.h
M Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUQueue.cpp
M Source/WebCore/Modules/WebGPU/GPUQueue.idl
M Source/WebCore/Modules/WebGPU/GPURenderBundleEncoderDescriptor.h
M Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.h
M Source/WebCore/Modules/WebGPU/GPURenderPassLayout.h
M Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrite.h
M Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp
M Source/WebCore/Modules/WebGPU/GPUShaderModuleDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUTextureDescriptor.h
M Source/WebCore/Modules/WebGPU/GPUUncapturedErrorEvent.cpp
M Source/WebCore/Modules/WebGPU/GPUVertexBufferLayout.h
M Source/WebCore/Modules/WebGPU/GPUVertexState.h

  Log Message:
  ---
  [WebGPU] [Style] Make lambdas in Modules/WebGPU adhere to the style guide
https://bugs.webkit.org/show_bug.cgi?id=257066
rdar://10958

Reviewed by Dan Glastonbury.

https://webkit.org/code-style-guidelines/#spacing-lambda-paren says that there 
shouldn't be a space
between the [] and the () in a lambda.

* Source/WebCore/Modules/WebGPU/GPU.cpp:
(WebCore::GPU::requestAdapter):
* Source/WebCore/Modules/WebGPU/GPUAdapter.cpp:
(WebCore::GPUAdapter::requestDevice):
* Source/WebCore/Modules/WebGPU/GPUBindGroupDescriptor.h:
(WebCore::GPUBindGroupDescriptor::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPUBindGroupEntry.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.h:
(WebCore::GPUBindGroupLayoutDescriptor::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPUBuffer.cpp:
(WebCore::GPUBuffer::mapAsync):
* Source/WebCore/Modules/WebGPU/GPUCanvasConfiguration.h:
(WebCore::GPUCanvasConfiguration::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPUColorDict.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUCompilationInfo.cpp:
(WebCore::GPUCompilationInfo::messages const):
* Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrite.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUDevice.cpp:
(WebCore::GPUDevice::lost):
(WebCore::GPUDevice::createComputePipelineAsync):
(WebCore::GPUDevice::createRenderPipelineAsync):
(WebCore::GPUDevice::popErrorScope):
* Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.h:
(WebCore::GPUDeviceDescriptor::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPUExtent3DDict.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUFragmentState.h:
(WebCore::GPUFragmentState::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPUOrigin2DDict.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUOrigin3DDict.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUPipelineDescriptorBase.h:
(WebCore::convertPipelineLayoutToBacking):
* Source/WebCore/Modules/WebGPU/GPUPipelineLayoutDescriptor.h:
(WebCore::GPUPipelineLayoutDescriptor::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPUQueue.cpp:
(WebCore::GPUQueue::onSubmittedWorkDone):
(WebCore::imageBufferForSource):
* Source/WebCore/Modules/WebGPU/GPUQueue.idl:
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoderDescriptor.h:
(WebCore::GPURenderBundleEncoderDescriptor::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPURenderPassDescriptor.h:
(WebCore::GPURenderPassDescriptor::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPURenderPassLayout.h:
(WebCore::GPURenderPassLayout::convertToBacking const):
* Source/WebCore/Modules/WebGPU/GPURenderPassTimestampWrite.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUShaderModule.cpp:
(WebCore::GPUShaderModule::compilationInfo):
* Source/WebCore/Modules/WebGPU

[webkit-changes] [WebKit/WebKit] 23ceea: [WebGPU] [Style] Pass a WGPUPrimitiveDepthClipCont...

2023-05-21 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 23ceeab826f9cfc357724e3a419ecffce799b60a
  
https://github.com/WebKit/WebKit/commit/23ceeab826f9cfc357724e3a419ecffce799b60a
  Author: Myles C. Maxfield 
  Date:   2023-05-21 (Sun, 21 May 2023)

  Changed paths:
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp

  Log Message:
  ---
  [WebGPU] [Style] Pass a WGPUPrimitiveDepthClipControl to WebGPU.framework 
whenever depth-clip-control is enabled
https://bugs.webkit.org/show_bug.cgi?id=257060
rdar://109588317

Reviewed by Dan Glastonbury.

This patch doesn't actually change behavior; it's just a style change.

The depth-clip-control feature allows the author to specify a boolean that 
determines whether depth is unclipped.
Before this patch, we're only telling WebGPU.framework about the value of the 
boolean if it was set to true.
However, it's a little more faithful to tell WebGPU about the boolean, whatever 
its value, any time the depth-clip-
control feature is enabled.

* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::convertToBacking):
(PAL::WebGPU::DeviceImpl::createRenderPipeline):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):

Canonical link: https://commits.webkit.org/264302@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e83c06: [WebGPU] Wrong defaults are used when processing m...

2023-05-19 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e83c068571149a7e2e13faf2724c5063a210020f
  
https://github.com/WebKit/WebKit/commit/e83c068571149a7e2e13faf2724c5063a210020f
  Author: Myles C. Maxfield 
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp

  Log Message:
  ---
  [WebGPU] Wrong defaults are used when processing multisampling state
https://bugs.webkit.org/show_bug.cgi?id=257047
rdar://109579261

Reviewed by Tadeu Zagallo.

Use the default values from the IDL.

* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::convertToBacking):

Canonical link: https://commits.webkit.org/264276@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] cd1e2e: [WebGPU] Revert 263054@main "Make RemoteGPU owned ...

2023-05-17 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cd1e2eb65f29352d8be1c317db89531be266c973
  
https://github.com/WebKit/WebKit/commit/cd1e2eb65f29352d8be1c317db89531be266c973
  Author: Myles C. Maxfield 
  Date:   2023-05-17 (Wed, 17 May 2023)

  Changed paths:
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in
M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp

  Log Message:
  ---
  [WebGPU] Revert 263054@main "Make RemoteGPU owned by RemoteRenderingBackend 
rather than GPUConnectionToWebProcess"
https://bugs.webkit.org/show_bug.cgi?id=256868
rdar://109432358

Reviewed by Mike Wyrzykowski and Kimmo Kinnunen.

The design of GPUP is that there is a GPUConnectionToWebProcess, and it owns 
all the
MessageQueues. It's not correct to have RemoteRenderingBackend, which runs on 
its own
message queue, own WebGPU, which runs on a different message queue. We were 
getting
a double-thread-hop for message receipt, and ASSERT()s were firing, indicating 
that
things were being run on the wrong thread.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::performWithMediaPlayerOnMainThread):
(WebKit::GPUConnectionToWebProcess::createRemoteGPU):
(WebKit::GPUConnectionToWebProcess::releaseRemoteGPU):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::paintFrameForMedia):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::performWithMediaPlayerOnMainThread): Deleted.
(WebKit::RemoteRenderingBackend::createRemoteGPU): Deleted.
(WebKit::RemoteRenderingBackend::releaseRemoteGPU): Deleted.
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
(WebKit::RemoteRenderingBackend::streamConnection const):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::create):
(WebKit::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::RemoteGPUProxy::~RemoteGPUProxy):
(WebKit::RemoteGPUProxy::initializeIPC):
(WebKit::RemoteGPUProxy::disconnectGpuProcessIfNeeded):
(WebKit::RemoteGPUProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteGPUProxy::abandonGPUProcess):
(WebKit::RemoteGPUProxy::wasCreated):
(WebKit::RemoteGPUProxy::waitUntilInitialized):
(WebKit::RemoteGPUProxy::didClose): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGPUForWebGPU const):

Canonical link: https://commits.webkit.org/264187@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 00512b: [WebGPU] Add WebGPU directories to CODEOWNERS

2023-05-13 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 00512b6348a2daccf509eab74b1bbfc1714f14cc
  
https://github.com/WebKit/WebKit/commit/00512b6348a2daccf509eab74b1bbfc1714f14cc
  Author: Myles C. Maxfield 
  Date:   2023-05-13 (Sat, 13 May 2023)

  Changed paths:
M .github/CODEOWNERS

  Log Message:
  ---
  [WebGPU] Add WebGPU directories to CODEOWNERS
https://bugs.webkit.org/show_bug.cgi?id=256737
rdar://109284751

Reviewed by Mike Wyrzykowski.

A few of us would like to be notified about WebGPU or WGSL PRs.

* .github/CODEOWNERS:

Canonical link: https://commits.webkit.org/264047@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] e5f34c: Update Devin's email address in the watchlist

2023-05-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e5f34c9dfafa1de0b5f124127ebf0f351438c1ec
  
https://github.com/WebKit/WebKit/commit/e5f34c9dfafa1de0b5f124127ebf0f351438c1ec
  Author: Myles C. Maxfield 
  Date:   2023-05-12 (Fri, 12 May 2023)

  Changed paths:
M Tools/Scripts/webkitpy/common/config/watchlist

  Log Message:
  ---
  Update Devin's email address in the watchlist
https://bugs.webkit.org/show_bug.cgi?id=256735
rdar://109284366

Reviewed by Eric Carlson and Devin Rousso.

Devin's email address changed.

* Tools/Scripts/webkitpy/common/config/watchlist:

Canonical link: https://commits.webkit.org/264037@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 90d9f0: [WebGPU] Delete Tools/WebGPUAPIStructure

2023-05-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 90d9f017c6e59bb4b7d177cf36e5045dbfdf75c5
  
https://github.com/WebKit/WebKit/commit/90d9f017c6e59bb4b7d177cf36e5045dbfdf75c5
  Author: Myles C. Maxfield 
  Date:   2023-05-12 (Fri, 12 May 2023)

  Changed paths:
R Tools/WebGPUAPIStructure/Example/Example.cpp
R Tools/WebGPUAPIStructure/Example/Example.h
R Tools/WebGPUAPIStructure/Example/Example.ico
R Tools/WebGPUAPIStructure/Example/Example.rc
R Tools/WebGPUAPIStructure/Example/Example.vcxproj
R Tools/WebGPUAPIStructure/Example/Example.vcxproj.filters
R Tools/WebGPUAPIStructure/Example/Example.vcxproj.user
R Tools/WebGPUAPIStructure/Example/resource.h
R Tools/WebGPUAPIStructure/Example/small.ico
R Tools/WebGPUAPIStructure/Example/stdafx.cpp
R Tools/WebGPUAPIStructure/Example/stdafx.h
R Tools/WebGPUAPIStructure/Example/targetver.h
R Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj
R Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj.filters
R Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU.cpp
R Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/QueueImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/RenderPassImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/RenderStateImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/SamplerImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.cpp
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/TextureImpl.h
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj
R Tools/WebGPUAPIStructure/WebGPU-Vulkan/WebGPU-Vulkan.vcxproj.filters
R Tools/WebGPUAPIStructure/WebGPU.sln

  Log Message:
  ---
  [WebGPU] Delete Tools/WebGPUAPIStructure
https://bugs.webkit.org/show_bug.cgi?id=256732
rdar://109283183

Reviewed by Mike Wyrzykowski.

It was a proof-of-concept of how the WebGPU API could be designed. It is no 
longer necessary.

* Tools/WebGPUAPIStructure/Example/Example.cpp: Removed.
* Tools/WebGPUAPIStructure/Example/Example.h: Removed.
* Tools/WebGPUAPIStructure/Example/Example.ico: Removed.
* Tools/WebGPUAPIStructure/Example/Example.rc: Removed.
* Tools/WebGPUAPIStructure/Example/Example.vcxproj: Removed.
* Tools/WebGPUAPIStructure/Example/Example.vcxproj.filters: Removed.
* Tools/WebGPUAPIStructure/Example/Example.vcxproj.user: Removed.
* Tools/WebGPUAPIStructure/Example/resource.h: Removed.
* Tools/WebGPUAPIStructure/Example/small.ico: Removed.
* Tools/WebGPUAPIStructure/Example/stdafx.cpp: Removed.
* Tools/WebGPUAPIStructure/Example/stdafx.h: Removed.
* Tools/WebGPUAPIStructure/Example/targetver.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU-Common.vcxproj.filters: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Common/WebGPU.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/BlitPassImpl.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/BufferImpl.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputePassImpl.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/ComputeStateImpl.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/DeviceImpl.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/HostAccessPassImpl.h: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan/PassImpl.cpp: Removed.
* Tools/WebGPUAPIStructure/WebGPU-Vulkan

[webkit-changes] [WebKit/WebKit] 8fa7bb: [WebGPU] Update watchlist directories for WebGPU

2023-05-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8fa7bb2e518c16be852521f7537422d1ae4d621d
  
https://github.com/WebKit/WebKit/commit/8fa7bb2e518c16be852521f7537422d1ae4d621d
  Author: Myles C. Maxfield 
  Date:   2023-05-12 (Fri, 12 May 2023)

  Changed paths:
M Tools/Scripts/webkitpy/common/config/watchlist

  Log Message:
  ---
  [WebGPU] Update watchlist directories for WebGPU
https://bugs.webkit.org/show_bug.cgi?id=256731
rdar://109282926

Reviewed by Mike Wyrzykowski.

The paths to implement WebGPU have changed.

* Tools/Scripts/webkitpy/common/config/watchlist:

Canonical link: https://commits.webkit.org/264034@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 529569: [WebGPU] Rename the setting from just "WebGPU" to ...

2023-05-12 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 529569b680163e9d37ed746acdf2f74d5035120f
  
https://github.com/WebKit/WebKit/commit/529569b680163e9d37ed746acdf2f74d5035120f
  Author: Myles C. Maxfield 
  Date:   2023-05-12 (Fri, 12 May 2023)

  Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Modules/WebGPU/GPU.idl
M Source/WebCore/Modules/WebGPU/GPUAdapter.idl
M Source/WebCore/Modules/WebGPU/GPUAdapterInfo.idl
M Source/WebCore/Modules/WebGPU/GPUAddressMode.idl
M Source/WebCore/Modules/WebGPU/GPUAutoLayoutMode.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroup.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroupDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroupEntry.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayoutEntry.idl
M Source/WebCore/Modules/WebGPU/GPUBlendComponent.idl
M Source/WebCore/Modules/WebGPU/GPUBlendFactor.idl
M Source/WebCore/Modules/WebGPU/GPUBlendOperation.idl
M Source/WebCore/Modules/WebGPU/GPUBlendState.idl
M Source/WebCore/Modules/WebGPU/GPUBuffer.idl
M Source/WebCore/Modules/WebGPU/GPUBufferBinding.idl
M Source/WebCore/Modules/WebGPU/GPUBufferBindingLayout.idl
M Source/WebCore/Modules/WebGPU/GPUBufferBindingType.idl
M Source/WebCore/Modules/WebGPU/GPUBufferDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUBufferMapState.idl
M Source/WebCore/Modules/WebGPU/GPUBufferUsage.idl
M Source/WebCore/Modules/WebGPU/GPUCanvasCompositingAlphaMode.idl
M Source/WebCore/Modules/WebGPU/GPUCanvasConfiguration.idl
M Source/WebCore/Modules/WebGPU/GPUColorDict.idl
M Source/WebCore/Modules/WebGPU/GPUColorTargetState.idl
M Source/WebCore/Modules/WebGPU/GPUColorWrite.idl
M Source/WebCore/Modules/WebGPU/GPUCommandBuffer.idl
M Source/WebCore/Modules/WebGPU/GPUCommandBufferDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUCommandEncoder.idl
M Source/WebCore/Modules/WebGPU/GPUCommandEncoderDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUCommandsMixin.idl
M Source/WebCore/Modules/WebGPU/GPUCompareFunction.idl
M Source/WebCore/Modules/WebGPU/GPUCompilationInfo.idl
M Source/WebCore/Modules/WebGPU/GPUCompilationMessage.idl
M Source/WebCore/Modules/WebGPU/GPUCompilationMessageType.idl
M Source/WebCore/Modules/WebGPU/GPUComputePassDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.idl
M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampLocation.idl
M Source/WebCore/Modules/WebGPU/GPUComputePassTimestampWrite.idl
M Source/WebCore/Modules/WebGPU/GPUComputePipeline.idl
M Source/WebCore/Modules/WebGPU/GPUComputePipelineDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUCullMode.idl
M Source/WebCore/Modules/WebGPU/GPUDebugCommandsMixin.idl
M Source/WebCore/Modules/WebGPU/GPUDepthStencilState.idl
M Source/WebCore/Modules/WebGPU/GPUDevice.idl
M Source/WebCore/Modules/WebGPU/GPUDeviceDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUDeviceLostInfo.idl
M Source/WebCore/Modules/WebGPU/GPUDeviceLostReason.idl
M Source/WebCore/Modules/WebGPU/GPUErrorFilter.idl
M Source/WebCore/Modules/WebGPU/GPUExtent3DDict.idl
M Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl
M Source/WebCore/Modules/WebGPU/GPUExternalTextureBindingLayout.idl
M Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.idl
M Source/WebCore/Modules/WebGPU/GPUFeatureName.idl
M Source/WebCore/Modules/WebGPU/GPUFilterMode.idl
M Source/WebCore/Modules/WebGPU/GPUFragmentState.idl
M Source/WebCore/Modules/WebGPU/GPUFrontFace.idl
M Source/WebCore/Modules/WebGPU/GPUImageCopyBuffer.idl
M Source/WebCore/Modules/WebGPU/GPUImageCopyExternalImage.idl
M Source/WebCore/Modules/WebGPU/GPUImageCopyTexture.idl
M Source/WebCore/Modules/WebGPU/GPUImageCopyTextureTagged.idl
M Source/WebCore/Modules/WebGPU/GPUImageDataLayout.idl
M Source/WebCore/Modules/WebGPU/GPUIndexFormat.idl
M Source/WebCore/Modules/WebGPU/GPUInternalError.idl
M Source/WebCore/Modules/WebGPU/GPULoadOp.idl
M Source/WebCore/Modules/WebGPU/GPUMapMode.idl
M Source/WebCore/Modules/WebGPU/GPUMipmapFilterMode.idl
M Source/WebCore/Modules/WebGPU/GPUMultisampleState.idl
M Source/WebCore/Modules/WebGPU/GPUObjectBase.idl
M Source/WebCore/Modules/WebGPU/GPUObjectDescriptorBase.idl
M Source/WebCore/Modules/WebGPU/GPUOrigin2DDict.idl
M Source/WebCore/Modules/WebGPU/GPUOrigin3DDict.idl
M Source/WebCore/Modules/WebGPU/GPUOutOfMemoryError.idl
M Source/WebCore/Modules/WebGPU/GPUPipelineBase.idl
M Source/WebCore/Modules/WebGPU/GPUPipelineDescriptorBase.idl
M Source/WebCore/Modules/WebGPU/GPUPipelineError.idl
M Source/WebCore/Modules/WebGPU/GPUPipelineErrorInit.idl
M Source/WebCore

[webkit-changes] [WebKit/WebKit] 48a537: [WebGPU] Disable getContext("webgpu") when WebGPU ...

2023-05-09 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 48a5372923cb172599e0c6370697929a62a51b05
  
https://github.com/WebKit/WebKit/commit/48a5372923cb172599e0c6370697929a62a51b05
  Author: Myles C. Maxfield 
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
M Source/WebCore/page/Navigator.cpp

  Log Message:
  ---
  [WebGPU] Disable getContext("webgpu") when WebGPU is disabled
https://bugs.webkit.org/show_bug.cgi?id=256533
rdar://109106604

Reviewed by Mike Wyrzykowski, Dan Glastonbury and Tadeu Zagallo.

navigator.gpu is disabled, but getContext("webgpu") isn't.

* Source/WebCore/page/Navigator.cpp:
(WebCore::Navigator::gpu):

Canonical link: https://commits.webkit.org/263877@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 126453: [Cocoa] Delete unused CoreML soft linking facilities

2023-05-06 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 126453ee4bf26e9986e79e72aef69575e63b974c
  
https://github.com/WebKit/WebKit/commit/126453ee4bf26e9986e79e72aef69575e63b974c
  Author: Myles C. Maxfield 
  Date:   2023-05-06 (Sat, 06 May 2023)

  Changed paths:
M Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.h
M Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.mm

  Log Message:
  ---
  [Cocoa] Delete unused CoreML soft linking facilities
https://bugs.webkit.org/show_bug.cgi?id=256350
rdar://108930951

Reviewed by Tim Nguyen.

Just delete the dead code.

* Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.mm:

Canonical link: https://commits.webkit.org/263763@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 9aa6d1: [watchOS] Fix the build

2023-05-05 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9aa6d16cba8a945d0f5156478847684c1e945d87
  
https://github.com/WebKit/WebKit/commit/9aa6d16cba8a945d0f5156478847684c1e945d87
  Author: Myles C. Maxfield 
  Date:   2023-05-05 (Fri, 05 May 2023)

  Changed paths:
M Source/WebKit/UIProcess/ios/forms/WKFocusedFormControlView.mm

  Log Message:
  ---
  [watchOS] Fix the build
https://bugs.webkit.org/show_bug.cgi?id=256344
rdar://108923818

Unreviewed build fix.

Building for watchOS reports "Use bounds.size instead."

* Source/WebKit/UIProcess/ios/forms/WKFocusedFormControlView.mm:
(-[WKFocusedFormControlView layoutSubviews]):

Canonical link: https://commits.webkit.org/263740@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 237442: [Cocoa] Rename FontCustomPlatformDataMac to FontCu...

2023-05-04 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 237442dfbbc2a48cccdcc8b7a27b17ed847a4301
  
https://github.com/WebKit/WebKit/commit/237442dfbbc2a48cccdcc8b7a27b17ed847a4301
  Author: Myles C. Maxfield 
  Date:   2023-05-04 (Thu, 04 May 2023)

  Changed paths:
M Source/WebCore/PlatformMac.cmake
M Source/WebCore/SourcesCocoa.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
A 
Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp
R Source/WebCore/platform/graphics/mac/FontCustomPlatformDataMac.cpp

  Log Message:
  ---
  [Cocoa] Rename FontCustomPlatformDataMac to FontCustomPlatformDataCoreText
https://bugs.webkit.org/show_bug.cgi?id=256345
rdar://108924213

Reviewed by Tim Nguyen.

The code in this file uses Core Text, instead of anything macOS-specific.

* Source/WebCore/PlatformMac.cmake:
* Source/WebCore/SourcesCocoa.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp: 
Renamed from Source/WebCore/platform/graphics/mac/FontCustomPlatformDataMac.cpp.
(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::createFontCustomPlatformData):
(WebCore::FontCustomPlatformData::supportsFormat):

Canonical link: https://commits.webkit.org/263706@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 65b13c: Remove dead code: ModalContainerObserver and Modal...

2023-05-04 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 65b13cfb8a8bcad1b08c89f58d9fe7667232
  
https://github.com/WebKit/WebKit/commit/65b13cfb8a8bcad1b08c89f58d9fe7667232
  Author: Myles C. Maxfield 
  Date:   2023-05-04 (Thu, 04 May 2023)

  Changed paths:
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/loader/EmptyClients.cpp
M Source/WebCore/loader/EmptyClients.h
M Source/WebCore/page/ChromeClient.h
M Source/WebCore/page/LocalFrameView.cpp
R Source/WebCore/page/ModalContainerObserver.cpp
R Source/WebCore/page/ModalContainerObserver.h
M Source/WebCore/style/StyleAdjuster.cpp
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/API/APIUIClient.h
M Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h
R Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.h
R Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.mm
M Source/WebKit/UIProcess/Cocoa/UIDelegate.h
M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.messages.in
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
M Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h
M Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm
M Tools/TestWebKitAPI/SourcesCocoa.txt
M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
R Tools/TestWebKitAPI/Tests/WebKit/modal-container-custom.html
R Tools/TestWebKitAPI/Tests/WebKit/modal-container-with-overlay.html
R Tools/TestWebKitAPI/Tests/WebKit/modal-container.html
R Tools/TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPIPermissions.mm
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm

  Log Message:
  ---
  Remove dead code: ModalContainerObserver and ModalContainerControlClassifier
https://bugs.webkit.org/show_bug.cgi?id=256289
rdar://108871402

Reviewed by Ryosuke Niwa.

Mechanical deletion.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::modalContainerObserver): Deleted.
(WebCore::Document::modalContainerObserverIfExists const): Deleted.
* Source/WebCore/dom/Document.h:
* Source/WebCore/loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::classifyModalContainerControls): Deleted.
* Source/WebCore/loader/EmptyClients.h:
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::searchStringForModalContainerObserver const): Deleted.
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::performPostLayoutTasks):
* Source/WebCore/page/ModalContainerObserver.cpp: Removed.
* Source/WebCore/page/ModalContainerObserver.h: Removed.
* Source/WebCore/style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::overrideModalContainerSearchTermForTesting): Deleted.
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.h: Removed.
* Source/WebKit/UIProcess/Cocoa/ModalContainerControlClassifier.mm: Removed.
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::classifyModalContainerControls): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNetworkExtensionsSandboxExtensions):
(WebKit::WebPageProxy::classifyModalContainerControls): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::classifyModalContainerControls): Deleted.
(WebKit::WebChromeClient::searchStringForModalContainerObserver const): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h:
* Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::classifyModalContainerControls): Deleted.

Canonical link: https://commits.webkit.org/263667@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] fcedcb: [Cocoa] [Shape Detection] WebKit crashes on launch...

2023-05-03 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fcedcb75b10f017f98ec88d832d9fb01dd8921b6
  
https://github.com/WebKit/WebKit/commit/fcedcb75b10f017f98ec88d832d9fb01dd8921b6
  Author: Myles C. Maxfield 
  Date:   2023-05-03 (Wed, 03 May 2023)

  Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.mm
M Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.h
M Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.mm
M Source/WebCore/PAL/pal/cocoa/VisionSoftLink.mm
M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  ---
  [Cocoa] [Shape Detection] WebKit crashes on launch when on the base system
https://bugs.webkit.org/show_bug.cgi?id=256287
rdar://108870362

Reviewed by Aditya Keerthi.

Turns out the base system doesn't have Vision.framework or CoreML.framework. We 
were crashing
because we were statically linking with CoreML.framework. This patch makes us 
use soft linking
instead.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.mm:
(WebCore::ShapeDetection::configureRequestToUseCPUOrGPU):
* Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/CoreMLSoftLink.mm:
* Source/WebCore/PAL/pal/cocoa/VisionSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/VisionSoftLink.mm:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/263661@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] f64678: Add a microbenchmark to measure Japanese text layout

2023-04-27 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f646785f415f91d8d9c21dcb07fb29854710ec25
  
https://github.com/WebKit/WebKit/commit/f646785f415f91d8d9c21dcb07fb29854710ec25
  Author: Myles C. Maxfield 
  Date:   2023-04-27 (Thu, 27 Apr 2023)

  Changed paths:
A PerformanceTests/Layout/JapaneseLineLayout.html

  Log Message:
  ---
  Add a microbenchmark to measure Japanese text layout
https://bugs.webkit.org/show_bug.cgi?id=256066
rdar://108635108

Reviewed by Alan Baradlay.

Let's measure the performance of laying out Japanese text!

* PerformanceTests/Layout/JapaneseLineLayout.html: Added.

Canonical link: https://commits.webkit.org/263484@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 67ce1e: [Shape Detection] Fix internal Apple build

2023-04-26 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 67ce1e3fcec1df093c7f6e1f69f9126ede2bfc43
  
https://github.com/WebKit/WebKit/commit/67ce1e3fcec1df093c7f6e1f69f9126ede2bfc43
  Author: Myles C. Maxfield 
  Date:   2023-04-26 (Wed, 26 Apr 2023)

  Changed paths:
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.mm
M Source/WebCore/PAL/pal/cocoa/VisionSoftLink.h
M Source/WebCore/PAL/pal/cocoa/VisionSoftLink.mm
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebKit/Platform/cocoa/ImageAnalysisUtilities.mm

  Log Message:
  ---
  [Shape Detection] Fix internal Apple build
https://bugs.webkit.org/show_bug.cgi?id=256001
rdar://108561521

Unreviewed build fix.

263397@main broke the internal Apple build because it directly linked with 
Vision. Apparently,
Vision already depends on WebCore, so that patch created a cycle. This patch 
fixes it by using
soft linking instead.

* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm:
(WebCore::ShapeDetection::convertSymbology):
(WebCore::ShapeDetection::convertBarcodeFormat):
(WebCore::ShapeDetection::request):
(WebCore::ShapeDetection::BarcodeDetectorImpl::detect):
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm:
(WebCore::ShapeDetection::FaceDetectorImpl::detect):
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.mm:
(WebCore::ShapeDetection::TextDetectorImpl::detect):
* Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.h:
* Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.mm:
* Source/WebCore/PAL/pal/cocoa/VisionSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/VisionSoftLink.mm:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebKit/Platform/cocoa/ImageAnalysisUtilities.mm:
(WebKit::requestPayloadForQRCode):

Canonical link: https://commits.webkit.org/263429@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] ce99b4: [Shape Detection] [Cocoa] Implement first draft of...

2023-04-25 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ce99b4d5dd33bd28ffb58899e356841cb5ed7285
  
https://github.com/WebKit/WebKit/commit/ce99b4d5dd33bd28ffb58899e356841cb5ed7285
  Author: Myles C. Maxfield 
  Date:   2023-04-25 (Tue, 25 Apr 2023)

  Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WTF/wtf/PlatformHave.h
M Source/WTF/wtf/PlatformUse.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.mm
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.h
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/VisionUtilities.mm
M Source/WebCore/Modules/async-clipboard/ClipboardImageReader.h
M Source/WebCore/PAL/pal/spi/cocoa/SpeechSPI.h
M Source/WebCore/SourcesCocoa.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  ---
  [Shape Detection] [Cocoa] Implement first draft of the shape detection API 
using the Vision framework
https://bugs.webkit.org/show_bug.cgi?id=255803
rdar://108380805

Reviewed by Mike Wyrzykowski.

This is the first draft implementation of the shape detection API. This patch 
makes WebCore.framework link
with Vision.framework. The shape detection API is very very similar to Vision's 
API, so the implementation
is almost trivial: each call to detect() just turns into the creation of a 
VNRequest and a VNRequestHandler,
and calls performRequests() on the request handler.

VNRequest has a callback-based codepath, where you can say -[VNRequest 
initWithCompletionHandler:], but this
isn't really suitable for our purposes, at least right out-of-the-box, for 2 
reasons:
1. Even if you set up the VNRequest this way, the call to 
-[VNImageRequestHandler performRequest:error:] is
   still synchronous. It blocks until all the requests are complete, and 
AFAICT there's no way to make
   it not block. So, using the callback doesn't actually free up the main 
thread to do other work. (The
   purpose of the completion handler is when you pass many requests to a 
single performRequests: call,
   you can be notified as the requests complete, one by one - *not* so that 
the call to performRequests:
   can be asynchronous. If you want the call to performRequests: to be 
asynchronous, you're supposed to
   call it from a background thread yourself.)
2. The callbacks are called on another thread internal to Vision, so if we 
wanted to use them, we'd have to
   immediately bounce back to the RemoteRenderingBackend's worker thread in 
WebKit2, or the main thread
   in WebKitLegacy. This means the Shape Detection objects would have to 
have more plumbing to take a
   generic handler which can schedule work on the right thread.
At some point, it probably would make sense to do this plumbing work + calling 
Vision on a background
thread, but it isn't really necessary for this first-draft implementation. I 
haven't profiled these calls
yet to know if they're even expensive enough to be worth calling on a 
background thread or not.

This patch also sets the usesCPUOnly flag, because otherwise the API wouldn't 
work in WebKit 2, because the
GPU Process's sandbox is blocking the connection to aned on Apple Silicon 
devices (I haven't tried on Intel
devices, maybe it works using the GPU there?). I'm working with Per Arne to see 
what we can do about this.
If you manually disable the sandbox, this flag isn't necessary.

The tests for this patch are at
https://github.com/web-platform-tests/wpt/commit/b5a2b1e1b0bd51817dca49b49eb3e8825833b216.
 I will import
them in a follow-up patch.

This patch marks the shape detection as "testable."

* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm:
(WebCore::ShapeDetection::convertSymbology):
(WebCore::ShapeDetection::convertBarcodeFormat):
(WebCore::ShapeDetection::convertRequestedBarcodeFormatSet):
(WebCore::ShapeDetection::BarcodeDetectorImpl::BarcodeDetectorImpl):
(WebCore::ShapeDetection::request):
(WebCore::ShapeDetection::BarcodeDetectorImpl::getSupportedFormats):
(WebCore::ShapeDetection::BarcodeDetectorImpl::detect):
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm:
(WebCore::Shap

[webkit-changes] [WebKit/WebKit] 7e3bfb: [Shape Detection] Plumb ImageBitmapSource to the G...

2023-04-20 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7e3bfb4cf39ac035dfec7f0d4b12384f22a3d484
  
https://github.com/WebKit/WebKit/commit/7e3bfb4cf39ac035dfec7f0d4b12384f22a3d484
  Author: Myles C. Maxfield 
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.idl
M Source/WebCore/Modules/ShapeDetection/FaceDetector.cpp
M Source/WebCore/Modules/ShapeDetection/FaceDetector.h
M Source/WebCore/Modules/ShapeDetection/FaceDetector.idl
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.mm
M 
Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeDetectorInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/FaceDetectorInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/TextDetectorInterface.h
M Source/WebCore/Modules/ShapeDetection/TextDetector.cpp
M Source/WebCore/Modules/ShapeDetection/TextDetector.h
M Source/WebCore/Modules/ShapeDetection/TextDetector.idl
M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.cpp
M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.h
M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.messages.in
M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.cpp
M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.h
M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.messages.in
M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.cpp
M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.h
M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.messages.in
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.cpp
M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.h
M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.cpp
M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.h
M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.cpp
M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.h

  Log Message:
  ---
  [Shape Detection] Plumb ImageBitmapSource to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=255633
rdar://108232629

Reviewed by Dean Jackson.

This patch plumbs ImageBitmapSource to the GPU process by using the same 
technique as ImageBitmap uses.
When you say createImageBitmap(), what that actually does is it creates a new 
ImageBuffer and draws the
source object into the ImageBuffer's graphics context. The ImageBitmap is 
backed by the ImageBuffer.
The cool part about this is that sending the ImageBuffer to the GPU process is 
actually free, because
the context that draw into it is a remote context that actually performs the 
draw in the GPU process -
so the ImageBitmap is _already_ in the GPU process. If you want to send it to a 
new API call in the GPU
process, all you need to send is its identifier, and have the GPU process look 
it up from the
RemoteRenderingBackend.

No tests because there is no behavior change - I haven't actually hooked up the 
Vision framework to
actually implement any of the calls yet.

* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp:
(WebCore::BarcodeDetector::detect):
* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h:
* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.idl:
* Source/WebCore/Modules/ShapeDetection/FaceDetector.cpp:
(WebCore::FaceDetector::detect):
* Source/WebCore/Modules/ShapeDetection/FaceDetector.h:
* Source/WebCore/Modules/ShapeDetection/FaceDetector.idl:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm:
(WebCore::ShapeDetection::BarcodeDetectorImpl::detect):
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm:
(WebCore::ShapeDetection::FaceDetectorImpl::detect):
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa

[webkit-changes] [WebKit/WebKit] cc8075: Allow ImageBitmap to be created from ImageBitmap::...

2023-04-19 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cc807585594a80b0881be87386e371c7aa88f3da
  
https://github.com/WebKit/WebKit/commit/cc807585594a80b0881be87386e371c7aa88f3da
  Author: Myles C. Maxfield 
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
M Source/WebCore/html/ImageBitmap.cpp
M Source/WebCore/html/ImageBitmap.h

  Log Message:
  ---
  Allow ImageBitmap to be created from ImageBitmap::Source without needing a 
Promise
https://bugs.webkit.org/show_bug.cgi?id=255666
rdar://108270485

Reviewed by Dean Jackson.

The shape detection API takes ImageBitmap::Sources as inputs, and we need to be 
able to convert those to
ImageBuffers in order to detect shapes in them. This is exactly what 
ImageBitmap::createPromise() does,
except that requires using a promise. This patch refactors this to use a 
CompletionHandler instead, so
the shape detection API can perform additional processing on the ImageBuffer 
once it has been created.

I had to name the type ImageBitmapCompletionHandler, instead of 
ImageBitmap::CompletionHandler, because
the GCC ports were giving an error about "declaration of ‘using 
CompletionHandler = ...’ changes meaning
of ‘CompletionHandler’".

No tests because there is no behavior change.

* Source/WebCore/html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createCompletionHandler):
(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createBlankImageBuffer):
(WebCore::ImageBitmap::createFromBuffer):
(WebCore::ImageBitmap::resolveWithBlankImageBuffer): Deleted.
* Source/WebCore/html/ImageBitmap.h:

Canonical link: https://commits.webkit.org/263143@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] 5ecd84: Plumb shape detection API to the GPU Process

2023-04-18 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5ecd8455a80d9c5becbddee087062f82891fccea
  
https://github.com/WebKit/WebKit/commit/5ecd8455a80d9c5becbddee087062f82891fccea
  Author: Myles C. Maxfield 
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.idl
M Source/WebCore/Modules/ShapeDetection/FaceDetector.cpp
M Source/WebCore/Modules/ShapeDetection/FaceDetector.h
M Source/WebCore/Modules/ShapeDetection/FaceDetector.idl
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeDetectorOptionsInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeFormatInterface.h
M 
Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedBarcodeInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedFaceInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedTextInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/LandmarkInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/LandmarkTypeInterface.h
M Source/WebCore/Modules/ShapeDetection/TextDetector.cpp
M Source/WebCore/Modules/ShapeDetection/TextDetector.h
M Source/WebCore/Modules/ShapeDetection/TextDetector.idl
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/page/Chrome.cpp
M Source/WebCore/page/Chrome.h
M Source/WebCore/page/ChromeClient.h
M Source/WebKit/CMakeLists.txt
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources-output.xcfilelist
M Source/WebKit/DerivedSources.make
A Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.cpp
A Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.h
A Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.messages.in
A Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.cpp
A Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.h
A Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.messages.in
A Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.cpp
A Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.h
A Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.messages.in
A Source/WebKit/GPUProcess/ShapeDetection/ShapeDetectionObjectHeap.cpp
A Source/WebKit/GPUProcess/ShapeDetection/ShapeDetectionObjectHeap.h
M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
M 
Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
M Source/WebKit/Scripts/webkit/tests/MessageNames.cpp
M Source/WebKit/Scripts/webkit/tests/MessageNames.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithIfMessageMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessages.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessages.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithStreamBatchedMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithStreamBatchedMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithStreamBufferMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithStreamMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp
M Source/WebKit/Scripts/webkit

[webkit-changes] [WebKit/WebKit] f2195a: Plumb shape detection API to the GPU Process

2023-04-18 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f2195aa52bec637d3a35273da68217f83e845350
  
https://github.com/WebKit/WebKit/commit/f2195aa52bec637d3a35273da68217f83e845350
  Author: Myles C. Maxfield 
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
M Source/WTF/wtf/PlatformHave.h
M Source/WebCore/Headers.cmake
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.idl
M Source/WebCore/Modules/ShapeDetection/FaceDetector.cpp
M Source/WebCore/Modules/ShapeDetection/FaceDetector.h
M Source/WebCore/Modules/ShapeDetection/FaceDetector.idl
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h
M 
Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeDetectorOptionsInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeFormatInterface.h
M 
Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedBarcodeInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedFaceInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedTextInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/LandmarkInterface.h
M Source/WebCore/Modules/ShapeDetection/Interfaces/LandmarkTypeInterface.h
M Source/WebCore/Modules/ShapeDetection/TextDetector.cpp
M Source/WebCore/Modules/ShapeDetection/TextDetector.h
M Source/WebCore/Modules/ShapeDetection/TextDetector.idl
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/page/Chrome.cpp
M Source/WebCore/page/Chrome.h
M Source/WebCore/page/ChromeClient.h
M Source/WebKit/CMakeLists.txt
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources-output.xcfilelist
M Source/WebKit/DerivedSources.make
A Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.cpp
A Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.h
A Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.messages.in
A Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.cpp
A Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.h
A Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.messages.in
A Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.cpp
A Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.h
A Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.messages.in
A Source/WebKit/GPUProcess/ShapeDetection/ShapeDetectionObjectHeap.cpp
A Source/WebKit/GPUProcess/ShapeDetection/ShapeDetectionObjectHeap.h
M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
M 
Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
M Source/WebKit/Scripts/webkit/tests/MessageNames.cpp
M Source/WebKit/Scripts/webkit/tests/MessageNames.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithIfMessageMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessages.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessages.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithStreamBatchedMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithStreamBatchedMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithStreamBufferMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithStreamMessages.h
M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp
M Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h
M 
Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp
M Source/WebKit/Scripts/webkit

[webkit-changes] [WebKit/WebKit] e6f858: [WebGPU] Make RemoteGPU owned by RemoteRenderingBa...

2023-04-17 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e6f858aaaea1422afde832fa05d3c227edf75247
  
https://github.com/WebKit/WebKit/commit/e6f858aaaea1422afde832fa05d3c227edf75247
  Author: Myles C. Maxfield 
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp

  Log Message:
  ---
  [WebGPU] Make RemoteGPU owned by RemoteRenderingBackend rather than 
GPUConnectionToWebProcess
https://bugs.webkit.org/show_bug.cgi?id=255429


Reviewed by Matt Woodrow.

This patch isn't strictly necessary, but I do think this is a better design.

Previously, every GPU object in the web process got its own identifier, and 
that identifier got sent to the GPU process.
The GPU process has a GPUConnectionToWebProcess for each web process, and it 
owned a HashMap<> of the GPU objects for
that web process.

That's okay, but it doesn't fit very well with the design of the GPU process. 
Every Page in the web process has an
associated RemoteRenderingBackend for that page, which is the owner of all the 
resources used by that page (the
RemoteRenderingBackend owns a RemoteResourceCache which contains all the 
resources). It's a generally better design to
match this for WebGPU, and make the GPU object owned by the 
RemoteRenderingBackend rather than the
GPUConnectionToWebProcess.

There are a few benefits to this design:
1. It more closely matches the ownership model for normal page drawing, which 
just makes it less complicated to understand
   and reason about
2. At some point, we're going to have to implement interactions with other 
parts of the web platform (videos, canvas 2d,
   etc.) in WebGPU. All those resources are owned by the 
RemoteRenderingBackend. We could have each individual entry
   point reach into the RemoteRenderingBackend to pull out what it needs, 
but it's a more convenient design if
   everything just already lives in the same place.

No tests because there is no behavior change.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::createRemoteGPU): Deleted.
(WebKit::GPUConnectionToWebProcess::releaseRemoteGPU): Deleted.
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createRemoteGPU):
(WebKit::RemoteRenderingBackend::releaseRemoteGPU):
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::RemoteGPU):
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::create):
(WebKit::RemoteGPUProxy::RemoteGPUProxy):
(WebKit::RemoteGPUProxy::~RemoteGPUProxy):
(WebKit::RemoteGPUProxy::initializeIPC):
(WebKit::RemoteGPUProxy::disconnectGpuProcessIfNeeded): Deleted.
(WebKit::RemoteGPUProxy::gpuProcessConnectionDidClose): Deleted.
(WebKit::RemoteGPUProxy::abandonGPUProcess): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGPUForWebGPU const):

Canonical link: https://commits.webkit.org/263054@main


___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [WebKit/WebKit] a13230: Create scaffolding for Shape Detection API

2023-04-14 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a132303fd6a0c4b8ee96b6cc986723477ffefb98
  
https://github.com/WebKit/WebKit/commit/a132303fd6a0c4b8ee96b6cc986723477ffefb98
  Author: Myles C. Maxfield 
  Date:   2023-04-14 (Fri, 14 Apr 2023)

  Changed paths:
M Source/WebCore/CMakeLists.txt
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp
M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h
M Source/WebCore/Modules/ShapeDetection/BarcodeDetectorOptions.h
M Source/WebCore/Modules/ShapeDetection/BarcodeFormat.h
M Source/WebCore/Modules/ShapeDetection/DetectedBarcode.h
M Source/WebCore/Modules/ShapeDetection/DetectedBarcode.idl
M Source/WebCore/Modules/ShapeDetection/DetectedFace.h
M Source/WebCore/Modules/ShapeDetection/DetectedFace.idl
M Source/WebCore/Modules/ShapeDetection/DetectedText.h
M Source/WebCore/Modules/ShapeDetection/DetectedText.idl
M Source/WebCore/Modules/ShapeDetection/FaceDetector.cpp
M Source/WebCore/Modules/ShapeDetection/FaceDetector.h
M Source/WebCore/Modules/ShapeDetection/FaceDetectorOptions.h
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h
A 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.mm
A 
Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeDetectorInterface.h
A 
Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeDetectorOptionsInterface.h
A Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeFormatInterface.h
A 
Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedBarcodeInterface.h
A Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedFaceInterface.h
A Source/WebCore/Modules/ShapeDetection/Interfaces/DetectedTextInterface.h
A Source/WebCore/Modules/ShapeDetection/Interfaces/FaceDetectorInterface.h
A 
Source/WebCore/Modules/ShapeDetection/Interfaces/FaceDetectorOptionsInterface.h
A Source/WebCore/Modules/ShapeDetection/Interfaces/LandmarkInterface.h
A Source/WebCore/Modules/ShapeDetection/Interfaces/LandmarkTypeInterface.h
A Source/WebCore/Modules/ShapeDetection/Interfaces/TextDetectorInterface.h
M Source/WebCore/Modules/ShapeDetection/Landmark.h
M Source/WebCore/Modules/ShapeDetection/Landmark.idl
M Source/WebCore/Modules/ShapeDetection/LandmarkType.h
M Source/WebCore/Modules/ShapeDetection/Point2D.h
M Source/WebCore/Modules/ShapeDetection/Point2D.idl
M Source/WebCore/Modules/ShapeDetection/TextDetector.cpp
M Source/WebCore/Modules/ShapeDetection/TextDetector.h
M Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.h
M Source/WebCore/Modules/system-preview/ARKitBadgeSystemImage.mm
M Source/WebCore/SourcesCocoa.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  ---
  Create scaffolding for Shape Detection API
https://bugs.webkit.org/show_bug.cgi?id=255215
rdar://107821288

Reviewed by Mike Wyrzykowski.

The implementation of the Shape Detection API needs to run in the GPU process. 
However, in
WebKitLegacy, it can run in-process. Therefore, we're going to have to have 2 
different
implementations: one that implements the functionality directly (that the GPU 
process and
WebKitLegacy will use) and another one that uses IPC to forward the calls 
across processes.

This patch implements this by creating a virtual interface for the API. This 
interface will
have 2 concrete implementations, and this patch stubs out one of them. The IPC 
implementation
will be implemented in another patch. This virtual interface is in
Source/WebCore/Modules/ShapeDetection/Interfaces, and the stubs for the first 
implementation
are in Source/WebCore/Modules/ShapeDetection/Implementation.

The original classes inside Source/WebCore/Modules/ShapeDetection, which are 
what the IDL
files target, delegate to this virtual interface. Each one of these classes has 
a Ref to a
"backing" object which is an implementation of this virtual interface.

No tests because there is no behavior change.

* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp:
(WebCore::BarcodeDetector::create):
(WebCore::BarcodeDetector::BarcodeDetector):
(WebCore::BarcodeDetector::getSupportedFormats):
(WebCore::BarcodeDetector::detect):
* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h:
* Source/WebCore/Modules/ShapeDetection/BarcodeDetectorOptions.h:
(WebCore::BarcodeDetectorOptions::convertToBacking const):
(WebCore::convertFromBacking):
* Source/WebCore/Modules/ShapeDetection/BarcodeFormat.h

[webkit-changes] [WebKit/WebKit] f204f5: Migrate to ALLOW_***_BEGIN/END instead of #pragma ...

2023-04-14 Thread Myles C. Maxfield
  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f204f5437c4e4edbe6551c2ad6dc58be653ba834
  
https://github.com/WebKit/WebKit/commit/f204f5437c4e4edbe6551c2ad6dc58be653ba834
  Author: Myles C. Maxfield 
  Date:   2023-04-14 (Fri, 14 Apr 2023)

  Changed paths:
M Source/JavaScriptCore/assembler/LinkBuffer.h
M Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
M Source/WTF/wtf/Assertions.cpp
M Source/WTF/wtf/FileSystem.cpp
M Source/WTF/wtf/PrintStream.cpp
M Source/WTF/wtf/SHA1.cpp
M Source/WTF/wtf/darwin/OSLogPrintStream.mm
M Source/WebCore/Modules/model-element/scenekit/SceneKitModelPlayer.mm
M Source/WebCore/PAL/pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp
M Source/WebCore/PAL/pal/system/mac/PopupMenu.mm
M Source/WebCore/PAL/pal/system/mac/WebPanel.mm
M Source/WebCore/accessibility/mac/AXObjectCacheMac.mm
M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
M Source/WebCore/crypto/CommonCryptoUtilities.cpp
M Source/WebCore/crypto/mac/CryptoAlgorithmAES_GCMMac.cpp
M Source/WebCore/crypto/mac/CryptoKeyRSAMac.cpp
M Source/WebCore/crypto/mac/SerializedCryptoKeyWrapMac.mm
M Source/WebCore/page/mac/EventHandlerMac.mm
M Source/WebCore/platform/audio/mac/AudioHardwareListenerMac.cpp
M Source/WebCore/platform/audio/mac/AudioSessionMac.mm
M Source/WebCore/platform/cocoa/DragImageCocoa.mm
M 
Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm
M 
Source/WebCore/platform/graphics/avfoundation/objc/AVOutputDeviceMenuControllerTargetPicker.mm
M 
Source/WebCore/platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm
M 
Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h
M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
M 
Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h
M 
Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm
M Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp
M Source/WebCore/platform/graphics/cg/NativeImageCG.cpp
M Source/WebCore/platform/graphics/mac/GraphicsChecksMac.cpp
M Source/WebCore/platform/graphics/mac/IconMac.mm
M Source/WebCore/platform/graphics/mac/PDFDocumentImageMac.mm
M Source/WebCore/platform/graphics/mac/WebKitNSImageExtras.mm
M Source/WebCore/platform/graphics/mac/controls/ControlMac.mm
M Source/WebCore/platform/gtk/RenderThemeGadget.cpp
M Source/WebCore/platform/ios/LegacyTileGrid.mm
M Source/WebCore/platform/ios/PasteboardIOS.mm
M Source/WebCore/platform/ios/ScrollViewIOS.mm
M Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm
M Source/WebCore/platform/mac/DataDetectorHighlight.mm
M Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm
M Source/WebCore/platform/mac/PasteboardMac.mm
M Source/WebCore/platform/mac/PasteboardWriter.mm
M Source/WebCore/platform/mac/PlatformEventFactoryMac.mm
M Source/WebCore/platform/mac/PlatformPasteboardMac.mm
M Source/WebCore/platform/mac/ScrollViewMac.mm
M Source/WebCore/platform/mac/ScrollbarsControllerMac.mm
M Source/WebCore/platform/mac/WidgetMac.mm
M 
Source/WebCore/platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm
M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm
M Source/WebCore/platform/mediastream/mac/CGDisplayStreamCaptureSource.cpp
M 
Source/WebCore/platform/mediastream/mac/CGDisplayStreamScreenCaptureSource.mm
M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDevice.cpp
M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp
M Source/WebCore/platform/mediastream/mac/CoreAudioSharedUnit.cpp
M Source/WebCore/platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm
M Source/WebCore/platform/network/cocoa/CookieCocoa.mm
M Source/WebCore/rendering/RenderThemeIOS.mm
M Source/WebCore/rendering/RenderThemeMac.mm
M Source/WebGPU/WebGPU/BindGroupLayout.mm
M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
M Source/WebKit/Platform/cocoa/XPCUtilities.mm
M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
M Source/WebKit/Shared/Cocoa/APIObject.mm
M Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm
M Source/WebKit/Shared/mac/ObjCObjectGraph.mm
M Source/WebKit/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm
M Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm
M Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextGroupInternal.h
M Source/WebKit/UIProcess/API/Cocoa

  1   2   >