Timeline



Aug 2, 2021:

11:54 PM Changeset in webkit [280585] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Align implementation of PositionIterator::isCandidate() on Position::isCandidate()
https://bugs.webkit.org/show_bug.cgi?id=228635

Patch by Frédéric Wang <fwang@igalia.com> on 2021-08-02
Reviewed by Darin Adler.

The bug fixed in r280381 was due to the fact that PositionIterator::isCandidate() and
Position::isCandidate() had gone out of sync. To prevent future bugs of this kind, this patch
modifies PositionIterator::isCandidate() so that it is aligned with
PositionIterator::isCandidate() (except when an m_anchorType check is needed) and add code
comments in both functions to ensure the same changes are always applied to them.

  • dom/Position.cpp:

(WebCore::Position::isCandidate const): Add a comment to make sure we update PositionIterator
when changing that function. Also use auto for a local variable like in PositionIterator.

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::isCandidate const): Add a comment to make sure we update Position
when changing that function. Rearrange the code to use positionBeforeOrAfterNodeIsCandidate
and early return when the node is a <html> element (these are not behavior changes). For
block flow / grid / flexbox renderers, add a special handling when the anchor node is a root
editable element ; also change the fallback value returned at the end of the function (these
are two behavior changes).

9:21 PM Changeset in webkit [280584] by Jean-Yves Avenard
  • 10 edits in trunk

Source/WebCore:
[WebAudio] webm; properly trim frames according to the codec delay information
https://bugs.webkit.org/show_bug.cgi?id=228140
rdar://problem/80883882

Reviewed by Eric Carlson.

Add frame-perfect decoding for Opus and Vorbis in WebM container.
Unfortunately, due to a vorbis decoder bug, it is not possible to test that
vorbis decoding returns the right number of frames.
Amend Opus test to ensure the right amount of frames are returned.

  • platform/audio/cocoa/AudioFileReaderCocoa.cpp:

(WebCore::AudioFileReader::demuxWebMData const):
(WebCore::passthroughInputDataCallback): AudioToolbox internal logging could overflow
if we used packet descriptions with offsets, so we take the most commonly used scenario
where we have a single packet to decode at a time.
(WebCore::AudioFileReader::decodeWebMData const):

  • platform/graphics/cocoa/AudioTrackPrivateWebM.cpp:

(WebCore::AudioTrackPrivateWebM::codecDelay const):
(WebCore::AudioTrackPrivateWebM::setDiscardPadding):
(WebCore::AudioTrackPrivateWebM::discardPadding const):

  • platform/graphics/cocoa/AudioTrackPrivateWebM.h:
  • platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::SourceBufferParserWebM::OnElementEnd): Fly-by, ensure m_didParseInitializationDataCallback
only ever accessed on client thread.
(WebCore::SourceBufferParserWebM::OnBlockGroupEnd):

  • platform/graphics/cocoa/SourceBufferParserWebM.h: Add trimming data callback.

Only mark WEBCORE_EXPORT the methods that need it.
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::setDidParseTrimmingDataCallback):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayType const): Make canPlayType(webm/audio; codecs=vorbis)
returns maybe if feature flag set.

LayoutTests:
https://bugs.webkit.org/show_bug.cgi?id=228140
rdar://problem/80883882

Reviewed by Eric Carlson.

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

  • webaudio/decode-audio-data-webm-opus-expected.txt:
  • webaudio/decode-audio-data-webm-opus.html:
9:18 PM Changeset in webkit [280583] by Yijia Huang
  • 8 edits in trunk/Source/JavaScriptCore

Add a new pattern to instruction selector to utilize UMULL supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=228721

Reviewed by Saam Barati.

Unsigned Multiply Long (UMULL) multiplies two 32-bit register values, and writes the
result to the destination register. This instruction is an alias of the UMADDL instruction.

umull xd wn wm

The equivalent pattern is: d = ZExt32(n) * ZExt32(m)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = Trunc(@0)
Int @2 = ArgumentReg(%x1)
Int @3 = Trunc(@2)
Int @4 = ZExt32(@1)
Int @5 = ZExt32(@3)
Int @6 = Mul(@4, @5)
Void@7 = Return(@6, Terminal)

Old optimized AIR
Move %x0, %x0, @4
Move %x1, %x1, @5
Mul %x0, %x1, %x0, @6
Ret %x0, @7

New optimized AIR
MultiplyZeroExtend %x0, %x1, %x0, @6
Ret %x0, @7

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::multiplyZeroExtend32):

  • assembler/testmasm.cpp:

(JSC::testMultiplyZeroExtend32):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testMulArgs32SignExtend):
(testMulArgs32ZeroExtend):

  • b3/testb3_3.cpp:

(addArgTests):

8:53 PM Changeset in webkit [280582] by Chris Dumez
  • 5 edits
    3 adds in trunk

[COOP] Cross-Origin-Opener-Policy header parsing fails when report-to parameter is present
https://bugs.webkit.org/show_bug.cgi?id=228719

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now failing a bit later.

  • web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https-expected.txt:

Source/WebCore:

Cross-Origin-Opener-Policy header parsing fails when report-to parameter is present, because
parseStructuredFieldValue() doesn't handle parameters whose value is double-quoted:

Test: http/wpt/cross-origin-opener-policy/header-parsing-with-report-to.https.html

  • platform/network/HTTPParsers.cpp:

(WebCore::parseStructuredFieldValue):

LayoutTests:

Add layout test coverage.

  • http/wpt/cross-origin-opener-policy/header-parsing-with-report-to.https-expected.txt: Added.
  • http/wpt/cross-origin-opener-policy/header-parsing-with-report-to.https.html: Added.
8:39 PM WebKitGTK/2.32.x edited by clopez@igalia.com
(diff)
8:36 PM Changeset in webkit [280581] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[css-cleanup] Replace webkit- prefix properties with Standard CSS Properties in Source/
https://bugs.webkit.org/show_bug.cgi?id=228697

Patch by Sonia Singla <soniasingla.1812@gmail.com> on 2021-08-02
Reviewed by Frédéric Wang.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-closed-captions-container h3,):

  • Modules/mediacontrols/mediaControlsBase.css:

(video::-webkit-media-controls-closed-captions-container h3,):
(video::-webkit-media-controls-closed-captions-container li.selected::before,):

  • css/html.css:

(p):
(blockquote):
(figure):
(hr):
(h1):
(:is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(h2):
(h3):
(h4):
(h5):
(h6):
(ul, menu, dir):
(ol):
(dd):
(dl):
(ol ul, ul ol, ul ul, ol ol):
(legend):
(fieldset):

  • css/mathml.css:

(mi):
(msub > mi:first-child, msubsup > mi:first-child):
(msubsup > mi:first-child + * + *):

8:30 PM Changeset in webkit [280580] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GLIB] Garden some passing tests

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
8:11 PM Changeset in webkit [280579] by Yijia Huang
  • 7 edits in trunk/Source/JavaScriptCore

Add new patterns to instruction selector to utilize AND/EOR/ORR-with-shift supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=228675

Reviewed by Saam Barati.

Bitwise AND (shifted register) performs a bitwise AND of a register value and an optionally-shifted
register value, and writes the result to the destination register.

and wd wn wm ShiftType #amount

The equivalent pattern is: n & (m ShiftType amount)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = Const32(63)
Int @3 = Shl(@1, $63(@2))
Int @4 = BitAnd(@0, @3)
Void@5 = Return(@4, Terminal)

Old optimized AIR
Lshift %x1, $63, %x1, @3
And %x0, %x1, %x0, @4
Ret %x0, @5

New optimized AIR
AndLeftShift %x0, %x1, $63, %x0, @4
Ret %x0, @5

Bitwise Exclusive OR (shifted register) performs a bitwise Exclusive OR of a register value and an
optionally-shifted register value, and writes the result to the destination register.

eor wd wn wm ShiftType #amount

The equivalent pattern is: n (m ShiftType amount)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = Const32(63)
Int @3 = Shl(@1, $63(@2))
Int @4 = BitXor(@0, @3)
Void@5 = Return(@4, Terminal)

Old optimized AIR
Lshift %x1, $63, %x1, @3
Xor %x0, %x1, %x0, @4
Ret %x0, @5

New optimized AIR
XorLeftShift %x0, %x1, $63, %x0, @4
Ret %x0, @5

Bitwise OR (shifted register) performs a bitwise (inclusive) OR of a register value and an
optionally-shifted register value, and writes the result to the destination register.

orr wd wn wm ShiftType #amount

The equivalent pattern is: n | (m ShiftType amount)

Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = Const32(63)
Int @3 = Shl(@1, $63(@2))
Int @4 = BitOr(@0, @3)
Void@5 = Return(@4, Terminal)

Old optimized AIR
Lshift %x1, $63, %x1, @3
Or %x0, %x1, %x0, @4
Ret %x0, @5

New optimized AIR
OrLeftShift %x0, %x1, $63, %x0, @4
Ret %x0, @5

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::andLeftShift32):
(JSC::MacroAssemblerARM64::andRightShift32):
(JSC::MacroAssemblerARM64::andUnsignedRightShift32):
(JSC::MacroAssemblerARM64::andLeftShift64):
(JSC::MacroAssemblerARM64::andRightShift64):
(JSC::MacroAssemblerARM64::andUnsignedRightShift64):
(JSC::MacroAssemblerARM64::xorLeftShift32):
(JSC::MacroAssemblerARM64::xorRightShift32):
(JSC::MacroAssemblerARM64::xorUnsignedRightShift32):
(JSC::MacroAssemblerARM64::xorLeftShift64):
(JSC::MacroAssemblerARM64::xorRightShift64):
(JSC::MacroAssemblerARM64::xorUnsignedRightShift64):
(JSC::MacroAssemblerARM64::orLeftShift32):
(JSC::MacroAssemblerARM64::orRightShift32):
(JSC::MacroAssemblerARM64::orUnsignedRightShift32):
(JSC::MacroAssemblerARM64::orLeftShift64):
(JSC::MacroAssemblerARM64::orRightShift64):
(JSC::MacroAssemblerARM64::orUnsignedRightShift64):

  • assembler/testmasm.cpp:

(JSC::testAndLeftShift32):
(JSC::testAndRightShift32):
(JSC::testAndUnsignedRightShift32):
(JSC::testAndLeftShift64):
(JSC::testAndRightShift64):
(JSC::testAndUnsignedRightShift64):
(JSC::testXorLeftShift32):
(JSC::testXorRightShift32):
(JSC::testXorUnsignedRightShift32):
(JSC::testXorLeftShift64):
(JSC::testXorRightShift64):
(JSC::testXorUnsignedRightShift64):
(JSC::testOrLeftShift32):
(JSC::testOrRightShift32):
(JSC::testOrUnsignedRightShift32):
(JSC::testOrLeftShift64):
(JSC::testOrRightShift64):
(JSC::testOrUnsignedRightShift64):

  • b3/B3LowerToAir.cpp:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testAndLeftShift32):
(testAndRightShift32):
(testAndUnsignedRightShift32):
(testAndLeftShift64):
(testAndRightShift64):
(testAndUnsignedRightShift64):
(testXorLeftShift32):
(testXorRightShift32):
(testXorUnsignedRightShift32):
(testXorLeftShift64):
(testXorRightShift64):
(testXorUnsignedRightShift64):
(testOrLeftShift32):
(testOrRightShift32):
(testOrUnsignedRightShift32):
(testOrLeftShift64):
(testOrRightShift64):
(testOrUnsignedRightShift64):
(addBitTests):

6:45 PM Changeset in webkit [280578] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Use loadPair / storePair in YarrJIT
https://bugs.webkit.org/show_bug.cgi?id=228687

Reviewed by Mark Lam.

Use loadPair / storePair if possible in YarrJIT. Currently, we are not
deploying Spooler in YarrJIT, but we should do that in the future too.

In this patch, we also add appropriate fallback code in loadPair / storePair:
the offset of these functions are small enough so that we should consider
overflowing case. If it overflows, we use two loads or stores.

This patch also adds loadPair32 and storePair32 to all macro assembler so that
we can call it without CPU(ARM64). Internally, two loads or stores are combined.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::loadPair32):
(JSC::MacroAssemblerARM64::loadPair64):
(JSC::MacroAssemblerARM64::loadPair64WithNonTemporalAccess):
(JSC::MacroAssemblerARM64::storePair32):
(JSC::MacroAssemblerARM64::storePair64):
(JSC::MacroAssemblerARM64::storePair64WithNonTemporalAccess):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::storePair32):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::loadPair32):
(JSC::MacroAssemblerMIPS::storePair32):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::loadPair32):
(JSC::MacroAssemblerX86Common::storePair32):

  • assembler/testmasm.cpp:

(JSC::testLoadStorePair32):
(JSC::testLoadStorePair64Int64):

  • yarr/YarrJIT.cpp:
6:11 PM Changeset in webkit [280577] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix accidental narrowing
https://bugs.webkit.org/show_bug.cgi?id=228613

Note that this narrowing does not matter semantically since we mask this value with 0x7f.

  • yarr/YarrJIT.h:

(JSC::Yarr::BoyerMooreBitmap::addCharacters):

6:05 PM Changeset in webkit [280576] by Peng Liu
  • 4 edits in trunk

[GPUP] RemoteAudioSession::setPreferredBufferSize() does not change its preferredBufferSize
https://bugs.webkit.org/show_bug.cgi?id=228720

Reviewed by Jer Noble.

Source/WebKit:

RemoteAudioSession should update its preferredBufferSize in
setPreferredBufferSize(). Otherwise, the preferredBufferSize
will become inconsistent with the value in the GPU process.

No new tests. Fix API test failures.

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::setPreferredBufferSize):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:

(TEST_F):

5:55 PM Changeset in webkit [280575] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

[App Privacy Report] Domains are deleted for ephemeral website data stores
https://bugs.webkit.org/show_bug.cgi?id=228708
<rdar://problem/81282432>

Reviewed by Alex Christensen.

No new tests. Since this data is not stored in WebKit, we have no
way to test when it gets deleted or not. I tested manually and requested
an automated test at the correct networking layer.

Only clear Privacy Report data if the website data store is
persistent. Safari calls the SPI to remove website data for ephemeral
data stores in some cases that are unrelated to a user clearing
website data or history and thus should not clear App Privacy Report
data. Additionally, it is unexpected that clearing an ephemeral data
store would clear disk data, as website data is only stored in memory
in this case.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):

5:55 PM Changeset in webkit [280574] by Patrick Angle
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: [AppleWin] Speculative internal build fix for copying InspectorBackendCommands.js
https://bugs.webkit.org/show_bug.cgi?id=228716

Reviewed by Maciej Stachowiak.

Speculative fix for AppleWin port internal build by using the correct directory for JSC headers. Also update the
logging message to reflect that the file will by copied later in the build.

  • WebInspectorUI.vcxproj/WebInspectorUI.make:
  • WebInspectorUI.vcxproj/build-webinspectorui.pl:
5:49 PM Changeset in webkit [280573] by Jean-Yves Avenard
  • 4 edits
    2 adds in trunk

[WebAudio] Add webm/vorbis container support
https://bugs.webkit.org/show_bug.cgi?id=228139
rdar://80883073

Reviewed by Jer Noble.

Source/WebKit:

Access to the com.apple.audio.AudioComponentRegistrar is denied by the sandbox which
prevents registering the Vorbis Audio Component. So we instantiate the decoder right before
setting up the sandbox.
This is a workaround for rdar://81137953.
Test: webaudio/decode-audio-data-webm-vorbis.html

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeSandbox):

LayoutTests:

  • platform/mac/TestExpectations:
  • webaudio/decode-audio-data-webm-vorbis-expected.txt: Added.
  • webaudio/decode-audio-data-webm-vorbis.html: Added.
5:24 PM Changeset in webkit [280572] by Russell Epstein
  • 1 copy in tags/Safari-612.1.26.0.1

Tag Safari-612.1.26.0.1.

5:19 PM Changeset in webkit [280571] by Russell Epstein
  • 1 copy in tags/Safari-612.1.26.1.1

Tag Safari-612.1.26.1.1.

4:43 PM Changeset in webkit [280570] by ysuzuki@apple.com
  • 4 edits
    3 adds in trunk

[JSC] Yarr BoyerMoore search should support character-class
https://bugs.webkit.org/show_bug.cgi?id=228613

Reviewed by Saam Barati.

JSTests:

  • stress/regexp-bm-search-character-non-fixed-size.js: Added.

(shouldBe):

  • stress/regexp-bm-search-many-candidate-zero-length.js: Added.

(shouldBe):
(regexp.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.0.1.2.3.4.5.6.7.8.9.t.v.n.r):

  • stress/regexp-bm-search-non-fixed-size.js: Added.

(shouldBe):

Source/JavaScriptCore:

This patch adds character-class support for BoyerMoore lookahead search in Yarr.
Currently, we only support fixed-sized character-class. We can extend it for repeat cases in the future.

To apply this character-class thing to jQuery's RegExp, we also allow non-fixed-sized disjunction.
For example, /aaaa.*|bbbb/'s disjunction is not fixed-sized. But still we can use (aaaa|bbbb) prefix since
this part is fixed-sized and we know minimum-size of this disjunction is 4.

Plus, instead of giving up BoyerMoore search when we found non-supported terms, we shorten BoyerMoore search
length not to include this term so that we can still have a chance to leverage BoyerMoore search. In the case
of /aaaa|bbbb|ccc(d|e|f)/, we previously gave up since it finds (d|e|f). But now, instead we shorten the length
from 4 to 3, and construct search pattern with aaa|bbb|ccc.

This patch improves jquery-todomvc-regexp by 20%.

ToT Patched

jquery-todomvc-regexp 545.3561+-0.6968 451.6117+-0.4613 definitely 1.2076x faster

This improves Speedometer2/jQuery-TodoMVC by 2%.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |123.470833 |123.550000 |1.000641 | 0.841600 |
| VueJS-TodoMVC |26.883333 |26.950000 |1.002480 | 0.846732 |
| EmberJS-TodoMVC |127.708333 |127.754167 |1.000359 | 0.934206 |
| BackboneJS-TodoMVC |50.545833 |50.445833 |0.998022 | 0.679610 |
| Preact-TodoMVC |20.879167 |20.791667 |0.995809 | 0.796541 |
| AngularJS-TodoMVC |137.479167 |137.275000 |0.998515 | 0.729817 |
| Vanilla-ES2015-TodoMVC |69.079167 |68.912500 |0.997587 | 0.524325 |
| Inferno-TodoMVC |65.604167 |66.120833 |1.007876 | 0.145549 |
| Flight-TodoMVC |77.029167 |76.708333 |0.995835 | 0.518562 |
| Angular2-TypeScript-TodoMVC |40.516667 |40.812500 |1.007302 | 0.513386 |
| VanillaJS-TodoMVC |54.762500 |54.895833 |1.002435 | 0.647381 |
| jQuery-TodoMVC |255.950000 |250.425000 |0.978414 | 0.000000 (significant) |
| EmberJS-Debug-TodoMVC |341.745833 |342.804167 |1.003097 | 0.219937 |
| React-TodoMVC |88.854167 |88.700000 |0.998265 | 0.568405 |
| React-Redux-TodoMVC |151.266667 |150.804167 |0.996942 | 0.256403 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |65.783333 |65.645833 |0.997910 | 0.437464 |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 246.52898
b mean = 246.85128
pValue = 0.3927330278
(Bigger means are better.)
1.001 times better
Results ARE NOT significant

  • yarr/YarrJIT.cpp:

(JSC::Yarr::BoyerMooreInfo::shortenLength):
(JSC::Yarr::BoyerMooreInfo::setAll):
(JSC::Yarr::BoyerMooreInfo::addCharacters):
(JSC::Yarr::BoyerMooreInfo::addRanges):

  • yarr/YarrJIT.h:

(JSC::Yarr::BoyerMooreBitmap::add):
(JSC::Yarr::BoyerMooreBitmap::addCharacters):
(JSC::Yarr::BoyerMooreBitmap::addRanges):
(JSC::Yarr::BoyerMooreBitmap::setAll):
(JSC::Yarr::BoyerMooreBitmap::isAllSet const):

4:39 PM Changeset in webkit [280569] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/JavaScriptCore

[PlayStation] Make C files in testapi compile with a C standard rather than C++ one
https://bugs.webkit.org/show_bug.cgi?id=228701

Reviewed by Ross Kirsling.

  • shell/PlatformPlayStation.cmake: Set standard for C files in testapi
4:19 PM Changeset in webkit [280568] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit

Crash in -[WKFullScreenWindowController windowDidExitFullScreen:]
https://bugs.webkit.org/show_bug.cgi?id=228694
rdar://79569881

Reviewed by Jer Noble.

It appears that [WKFullScreenWindowController finishedEnterFullScreenAnimation] can
cause the retain count to be decreased (this is the only explanation that makes any
sense considering the crash and when the regression started following bug 227243).
No test, can't reproduce.

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController setVideoFullscreenManagerClient:]): Add utility method
to remove duplicated code.
(-[WKFullScreenWindowController didExitPictureInPicture]):
(-[WKFullScreenWindowController windowDidEnterFullScreen:]):
(-[WKFullScreenWindowController windowDidFailToExitFullScreen:]):
(-[WKFullScreenWindowController windowDidExitFullScreen:]):
(-[WKFullScreenWindowController _manager]): fly-by make style consistent with other
similar methods.

4:01 PM Changeset in webkit [280567] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Add log when experimental network loader is used
https://bugs.webkit.org/show_bug.cgi?id=227932

Reviewed by Chris Dumez.

We are seeing some reports of serious loading issues in bugs related to rdar://80330028
and we think they are because of problems related to the experimental network loader, which can be
enabled in experimental features but is not ready for use on the internet yet.
Add a log so we can determine for sure that is what is going on in those cases.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

3:54 PM Changeset in webkit [280566] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: sorting of transfer size for failed requests is causing the ordering to change every layout
https://bugs.webkit.org/show_bug.cgi?id=228712

Reviewed by Devin Rousso.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._generateSortComparator):
Don't change the item order when both values are NaN.

3:37 PM Changeset in webkit [280565] by Fujii Hironori
  • 4 edits in trunk/Source
[Win] ASSERTION FAILED: evt->type() == eventNames().keydownEvent
evt->type() == eventNames().keypressEvent in WebView::interpretKeyEvent since r280492

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

Reviewed by Brent Fulgham.

Source/WebKit:

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::handleEditingKeyboardEvent): Return early unless the event is keydown or keypress.

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::handleEditingKeyboardEvent): Return early unless the event is keydown or keypress.

3:23 PM Changeset in webkit [280564] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Assertion is not acquired in network process when opening a SQLite database
https://bugs.webkit.org/show_bug.cgi?id=228705

Reviewed by Chris Dumez.

Opening database may require database file lock.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

3:21 PM Changeset in webkit [280563] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ iOS iPad ] editing/inserting/insert-paragraph-separator-with-html-elements-crash.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228718.

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
3:04 PM Changeset in webkit [280562] by achristensen@apple.com
  • 4 edits in trunk

Don't change invalid baseURLs from loadData or loadHTMLString to about:blank
https://bugs.webkit.org/show_bug.cgi?id=228717
<rdar://79909343>

Reviewed by Chris Dumez.

Source/WebKit:

r278737 fixed a compatibility bug from r272469 but introduced a crash when the base URL does not successfully parse.
r279450 fixed that crash but introduced a new behavior change that changes the URL to about:blank. This didn't seem
to change anything because window.location is about:blank with and without the change, but WKWebView.URL did change,
which broke at least one app. This undoes the functionality change from r279450 and keeps the crash fix, which are
both covered by API tests. I also manually verified this fixes the app in the radar.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:

(TEST):

2:55 PM Changeset in webkit [280561] by Lauro Moura
  • 5 edits
    1 delete in trunk/LayoutTests

[GLIB] Gardening some failures and removing deprecated baseline.

Unreviewed test gardening.

Also unified skips for tests loading pdf as img.src.

  • platform/glib/TestExpectations:
  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/dom/events/Event-timestamp-high-resolution-expected.txt: Removed.
2:53 PM Changeset in webkit [280560] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[results.webkit.org] Fix incorrect conditional check
https://bugs.webkit.org/show_bug.cgi?id=228666

Patch by Kevin Neal <kevin_neal@apple.com> on 2021-08-02
Reviewed by Jonathan Bedard.

  • Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
2:46 PM Changeset in webkit [280559] by rniwa@webkit.org
  • 8 edits
    2 adds in trunk

Add CheckedRef
https://bugs.webkit.org/show_bug.cgi?id=227164

Reviewed by Geoffrey Garen.

Source/WTF:

Like r278344, this patch introduces a new type of smart pointer, CheckedRef,
which lets each object keep track of pointers pointing to the object.

As with CheckedPtr, the purpose of the internal counter for CheckedRef is
to release assert that there is no outstanding pointer at the time of destruction
instead of keeping the object alive when there is one.

This patch also removes makeCheckedPtr in favor of using CheckedPtr with
template argument deduction in C++17.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/CheckedPtr.h:

(WTF::CheckedPtr::CheckedPtr): Added variants which take CheckedRef as arguments.
(WTF::makeCheckedPtr): Deleted.
(WTF::CanMakeCheckedPtr): Moved to CheckedRef.h

  • wtf/CheckedRef.h: Added.

(WTF::CheckedRef::~CheckedRef): Added.
(WTF::CheckedRef::CheckedRef): Added.
(WTF::CheckedRef::isHashTableDeletedValue const): Added.
(WTF::CheckedRef::isHashTableEmptyValue const): Added.
(WTF::CheckedRef::hashTableEmptyValue): Added.
(WTF::CheckedRef::ptrAllowingHashTableEmptyValue const): Added.
(WTF::CheckedRef::ptrAllowingHashTableEmptyValue): Added.
(WTF::CheckedRef::ptr const): Added.
(WTF::CheckedRef::ptr): Added.
(WTF::CheckedRef::get const): Added.
(WTF::CheckedRef::get): Added.
(WTF::CheckedRef::operator-> const): Added.
(WTF::CheckedRef::operator->): Added.
(WTF::CheckedRef::operator const T& const): Added.
(WTF::CheckedRef::operator T&): Added.
(WTF::CheckedRef::operator! const): Added.
(WTF::CheckedRef::operator=): Added.
(WTF::CheckedRef::releasePtr): Added. Returns m_ptr without calling decrementPtrCount.
This is equivalent of leakPtr in Ref but we don't call this that since CheckedRef or
CheckedPtr is generally not used to manage the object lifetime.
(WTF::CheckedRef::poison): Added.
(WTF::CheckedRef::unpoison): Added.
(WTF::is): Added.
(WTF::CheckedRefHashTraits): Added.
(WTF::CheckedRefHashTraits::emptyValue): Added.
(WTF::CheckedRefHashTraits::constructEmptyValue): Added.
(WTF::CheckedRefHashTraits::isEmptyValue): Added.
(WTF::CheckedRefHashTraits::peek): Added.
(WTF::CheckedRefHashTraits::take): Added.
(WTF::CanMakeCheckedPtr): Moved from CheckedPtr.h

  • wtf/Forward.h:

Tools:

Added some unit tests for CheckedRef and updated the unit tests
for CheckedPtr per the removal of makeCheckedPtr.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/CheckedPtr.cpp:

(WTF_CheckedPtr.CheckedRef): Added

  • TestWebKitAPI/Tests/WTF/CheckedRef.cpp: Added.

(TestWebKitAPI..CheckedObject): Added.
(TestWebKitAPI..DerivedCheckedObject): Added.
(WTF_CheckedRef.Basic): Added.
(WTF_CheckedRef.DerivedClass): Added.
(WTF_CheckedRef.HashSet): Added.

2:39 PM Changeset in webkit [280558] by Devin Rousso
  • 8 edits in trunk/Source

[Live Text] SPI for machine readable codes is only available on iOS
https://bugs.webkit.org/show_bug.cgi?id=228711

Reviewed by Tim Horton.

Source/WebCore/PAL:

  • pal/spi/cocoa/VisionKitCoreSPI.h:

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _setUpImageAnalysis]):
(-[WKContentView _tearDownImageAnalysis]):
(-[WKContentView imageAnalysisGestureDidBegin:]):
(-[WKContentView imageAnalysisGestureDidTimeOut:]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:
2:20 PM Changeset in webkit [280557] by ap@apple.com
  • 1 delete in trunk/JSTests/test262/test/built-ins/Temporal/now

Remove stale 'now' subdirectory in JSTests/test262/test/built-ins/Temporal, as we ended up with both 'now' and 'Now', breaking checkout on case insensitive file systems

2:09 PM Changeset in webkit [280556] by youenn@apple.com
  • 15 edits in trunk/Source/WebKit

Attribute nw connections to the page bundle identifier
https://bugs.webkit.org/show_bug.cgi?id=228649

Reviewed by Eric Carlson.

Send page identifier from WebProcess to NetworkProcess when creating a WebRTC socket.
Use page identifier to get the attributed bundle identifier.
For that purpose, we need to hop to main thread to get it, then go back to rtc thread to create it.
We do so by using callOnMainRunLoopAndWait when NetworkRTCProvider does not have the information for the provided page identifier.
We then make use of nw_parameters_set_source_application_by_bundle_id to set the bundle identifier on TCP and UDP connections.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::attributedBundleIdentifierFromPageIdentifier const):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::addWebPageNetworkParameters):
(WebKit::NetworkSessionCocoa::removeWebPageNetworkParameters):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::attributedBundleIdentifierFromPageIdentifier):
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:

(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h:
  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

(WebKit::NetworkRTCUDPSocketCocoaConnections::create):
(WebKit::NetworkRTCUDPSocketCocoa::createUDPSocket):
(WebKit::NetworkRTCUDPSocketCocoa::NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):

  • Platform/spi/Cocoa/NWParametersSPI.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::RTCSocketFactory::RTCSocketFactory):
(WebKit::RTCSocketFactory::CreateUdpSocket):
(WebKit::RTCSocketFactory::CreateClientTcpSocket):
(WebKit::LibWebRTCProvider::createSocketFactory):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
2:07 PM Changeset in webkit [280555] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ MacOS wk2 ] compositing/video/video-object-fit.html is a flaky timeout on EWS.
https://bugs.webkit.org/show_bug.cgi?id=228713

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:45 PM Changeset in webkit [280554] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612.1.26.1-branch

Cherry-pick r280551. rdar://problem/81427001

Calling unobserve on ResizeObserver should not clear existing observations in active targets
https://bugs.webkit.org/show_bug.cgi?id=228693

Reviewed by Chris Dumez.

Source/WebCore:

The bug was caused by ResizeObserver::removeObservation removing it from the active targets.

Note that there is nothing in the specification which alludes to this behavior,
and the new behavior is consistent with Firefox and the way IntersectionObserver works:
https://drafts.csswg.org/resize-observer/#dom-resizeobserver-unobserve

To keep elements alive while they're in the active targets but not in the observation targets,
this patch also makes each element of the active observation as opaque roots of ResizeObserver
in ResizeObserver::isReachableFromOpaqueRoots.

Test: resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html

  • page/ResizeObserver.cpp: (WebCore::ResizeObserver::deliverObservations): (WebCore::ResizeObserver::isReachableFromOpaqueRoots const): (WebCore::ResizeObserver::removeObservation):

LayoutTests:

Added a regression test.

  • resize-observer/resize-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
  • resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html: Added.

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

1:45 PM Changeset in webkit [280553] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-612.1.26.1-branch

Cherry-pick r280549. rdar://problem/81427001

Source/WebCore:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element
has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679

Reviewed by Chris Dumez.

The bug was caused by the elements of the pending entries not being considered as opaque roots
of the intersection observer. If the intersection observer is no longer observing those elements,
the JS wrapper of the intersection observer may be collected erroneously.

This patch addresses this issue by explicitly treating the elements of pending entries as
opaque roots of the intersection observer in IntersectionObserver::isReachableFromOpaqueRoots.

Test: intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html

  • page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):

LayoutTests:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679

Reviewed by Chris Dumez.

Added a regression test.

  • intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
  • intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html: Added.

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

1:40 PM Changeset in webkit [280552] by Russell Epstein
  • 8 edits in branches/safari-612.1.26.1-branch/Source

Versioning.

WebKit-7612.1.26.1.1

1:03 PM Changeset in webkit [280551] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Calling unobserve on ResizeObserver should not clear existing observations in active targets
https://bugs.webkit.org/show_bug.cgi?id=228693

Reviewed by Chris Dumez.

Source/WebCore:

The bug was caused by ResizeObserver::removeObservation removing it from the active targets.

Note that there is nothing in the specification which alludes to this behavior,
and the new behavior is consistent with Firefox and the way IntersectionObserver works:
https://drafts.csswg.org/resize-observer/#dom-resizeobserver-unobserve

To keep elements alive while they're in the active targets but not in the observation targets,
this patch also makes each element of the active observation as opaque roots of ResizeObserver
in ResizeObserver::isReachableFromOpaqueRoots.

Test: resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html

  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::deliverObservations):
(WebCore::ResizeObserver::isReachableFromOpaqueRoots const):
(WebCore::ResizeObserver::removeObservation):

LayoutTests:

Added a regression test.

  • resize-observer/resize-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
  • resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html: Added.
12:54 PM Changeset in webkit [280550] by Russell Epstein
  • 4 edits in trunk/Tools

Add basestring compatibility for Python3 in webkitcorepy.
https://bugs.webkit.org/show_bug.cgi?id=228707

Reviewed by Jonathan Bedard.

  • Scripts/libraries/webkitcorepy/setup.py: Bumped version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/string_utils.py: Added

basestring compatibility for Python3.

12:14 PM Changeset in webkit [280549] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Source/WebCore:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element
has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679

Reviewed by Chris Dumez.

The bug was caused by the elements of the pending entries not being considered as opaque roots
of the intersection observer. If the intersection observer is no longer observing those elements,
the JS wrapper of the intersection observer may be collected erroneously.

This patch addresses this issue by explicitly treating the elements of pending entries as
opaque roots of the intersection observer in IntersectionObserver::isReachableFromOpaqueRoots.

Test: intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):

LayoutTests:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679

Reviewed by Chris Dumez.

Added a regression test.

  • intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
  • intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html: Added.
11:56 AM Changeset in webkit [280548] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[Live Text] Use iBeam cursor when hovering over selectable text inside image links
https://bugs.webkit.org/show_bug.cgi?id=228700
rdar://81210248

Reviewed by Tim Horton.

Source/WebCore:

Make a couple of small adjustments to allow the cursor to change to an I-beam when hovering over selectable Live
Text inside images in links, but only in the case where the computed cursor type is Auto. Currently, this always
results in a Hand cursor type because of the link ancestor, despite the injected Live Text being selectable.

Test: fast/images/text-recognition/mac/cursor-types-for-recognized-text.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithTextRecognitionResult):

Drive-by fix an adjacent bug, wherein we try to check whether the image element has user-select: none; before
the style has been resolved, which results in injecting selectable Live Text even when the page has explicitly
disabled text selection on the image element. Instead, move this code to right after we update layout after
ensuring the UA shadow DOM structure for Live Text, so that the bool flag is meaningful.

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectCursor):

LayoutTests:

Add a layout test that hovers over Live Text in several different image elements, and checks their respective
cursor types.

  • fast/images/text-recognition/mac/cursor-types-for-recognized-text-expected.txt: Added.
  • fast/images/text-recognition/mac/cursor-types-for-recognized-text.html: Added.
11:46 AM Changeset in webkit [280547] by Chris Dumez
  • 24 edits in trunk

imported/w3c/web-platform-tests/webmessaging/broadcastchannel/blobs.html is a flaky failure since implementing BlobChannel
https://bugs.webkit.org/show_bug.cgi?id=228168
<rdar://problem/80922502>

Reviewed by Alex Christensen.

Source/WebCore:

The test was flaky because it is trying to send a Blob via BroadcastChannel.postMessage()
without keeping the blob alive. When GC triggers, the Blob would go away and trying to
decode the Blob upon receiving would fail.

To address the issue, I introduced a Blob::Handle class that wraps the Blob's internal URL
and keeps the Blob data alive as long as as someone is holding such handle. Previously,
the Blob destructor would unregister the internal URL and the Blob data would go away.

I then updated SerializedScriptValue to hold on to Blob::Handle objects instead of Blob
URLs. This guarantees that when using postMessage() to send a message to a worker, the
Blob data will stay alive until we dispatch the message event on the worker side and try
and deserialized the SerializedScriptValue.

For BroadcastChannel.postMessage() though, we end up going via the network process and
the SerializedScriptValue ends up getting serialized/deserialized over IPC. I added a
CompletionHandler to BroadcastChannelRegistry::postMessage() which only gets called
once the message event has successfully been dispatched. I use this completion handler
to make sure the SerializedScriptValue's Blob URLs stay valid until the the message has
been dispatched by holding on to the Blob::Handles.

No new tests, unskipped existing test.

  • Modules/indexeddb/IDBValue.cpp:

(WebCore::IDBValue::IDBValue):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::write):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::blobURLs const):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::hasBlobURLs const):
(WebCore::SerializedScriptValue::blobHandles const):
(WebCore::SerializedScriptValue::SerializedScriptValue):

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::postMessage):
(WebCore::BroadcastChannel::dispatchMessageTo):

  • dom/BroadcastChannel.h:
  • dom/BroadcastChannelRegistry.h:
  • fileapi/Blob.cpp:

(WebCore::BlobInternalURL::create):
(WebCore::BlobInternalURL::~BlobInternalURL):
(WebCore::BlobInternalURL::url const):
(WebCore::BlobInternalURL::BlobInternalURL):
(WebCore::Blob::Blob):
(WebCore::Blob::~Blob):
(WebCore::Blob::url const):
(WebCore::Blob::slice const):
(WebCore::Blob::size const):
(WebCore::Blob::handle const):
(WebCore::Blob::Handle::Handle):
(WebCore::Blob::Handle::url const):

  • fileapi/Blob.h:
  • loader/EmptyClients.cpp:

Source/WebKit:

  • NetworkProcess/NetworkBroadcastChannelRegistry.cpp:

(WebKit::NetworkBroadcastChannelRegistry::postMessage):

  • NetworkProcess/NetworkBroadcastChannelRegistry.h:
  • NetworkProcess/NetworkBroadcastChannelRegistry.messages.in:
  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageAsyncWantsConnection):
handleMessageAsyncWantsConnection() had gotten out of sync with handleMessageAsync(). This was causing IPC decoding
failures when using both "Async" and "WantsConnection" for the IPC message.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebKit::WebBroadcastChannelRegistry::postMessage):
(WebKit::WebBroadcastChannelRegistry::postMessageToRemote):

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.messages.in:

Source/WebKitLegacy:

  • WebCoreSupport/WebBroadcastChannelRegistry.cpp:

(WebBroadcastChannelRegistry::postMessage):

  • WebCoreSupport/WebBroadcastChannelRegistry.h:

LayoutTests:

Unskip test that is no longer flaky.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
11:41 AM Changeset in webkit [280546] by ysuzuki@apple.com
  • 5 edits
    10 deletes in trunk/JSTests

[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=228709

Reviewed by Mark Lam.

  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/Error/prototype/constructor/S15.11.4.1_A1_T1.js: Removed.
  • test262/test/built-ins/Error/prototype/message/15.11.4.3-1.js: Removed.
  • test262/test/built-ins/Error/prototype/message/S15.11.4.3_A1.js: Removed.
  • test262/test/built-ins/Error/prototype/message/S15.11.4.3_A2.js: Removed.
  • test262/test/built-ins/Error/prototype/name/15.11.4.2-1.js: Removed.
  • test262/test/built-ins/Error/prototype/name/S15.11.4.2_A1.js: Removed.
  • test262/test/built-ins/Error/prototype/name/S15.11.4.2_A2.js: Removed.
  • test262/test/built-ins/Error/prototype/toString/S15.11.4.4_A1.js: Removed.
  • test262/test/built-ins/TypedArray/prototype/findLast/return-abrupt-from-this-out-of-bounds.js:
  • test262/test/built-ins/TypedArray/prototype/findLastIndex/return-abrupt-from-this-out-of-bounds.js:
  • test262/test/harness/sta-error.js: Removed.
  • test262/test/harness/sta-override-error.js: Removed.
  • test262/test262-Revision.txt:
11:39 AM Changeset in webkit [280545] by youenn@apple.com
  • 2 edits in trunk/Source/WTF

Enable WebRTCPlatformUDPSocketsEnabled experimental feature by default
https://bugs.webkit.org/show_bug.cgi?id=228689
<rdar://problem/81383711>

Reviewed by Eric Carlson.

Enable WebRTCPlatformUDPSocketsEnabled experimental feature by default, WebRTC proxying being off by default for now.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
10:46 AM Changeset in webkit [280544] by ysuzuki@apple.com
  • 5 edits in trunk/Source

[JSC] Yarr should use Bitmap instead of ByteVector for BoyerMoore search
https://bugs.webkit.org/show_bug.cgi?id=228676

Reviewed by Saam Barati.

Source/JavaScriptCore:

We observed that using Bitmap instead of ByteVector does not pose performance
issue. It was neutral in jquery-todomvc-regexp.js. In that case, we should use
Bitmap since it is 8x smaller.

We also search reusable Bitmap from Vector since comparing 128bit Bitmap is
super fast so we do not need to bother about linear search here (# of Bitmap
is currently up to 4).

To make code simplified, we add regT2 to ARMv7 and MIPS backend of YarrJIT.

ToT Patched

jquery-todomvc-regexp 555.9566+-0.8856 555.0737+-0.9717

  • yarr/YarrJIT.cpp:

(JSC::Yarr::BoyerMooreInfo::index const): Deleted.
(JSC::Yarr::BoyerMooreInfo::setIndex): Deleted.

  • yarr/YarrJIT.h:

(JSC::Yarr::YarrCodeBlock::set8BitCode):
(JSC::Yarr::YarrCodeBlock::set16BitCode):
(JSC::Yarr::YarrCodeBlock::set8BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::set16BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::tryReuseBoyerMooreBitmap const):
(JSC::Yarr::BoyerMooreByteVector::BoyerMooreByteVector): Deleted.
(JSC::Yarr::YarrCodeBlock::tryReuseBoyerMooreByteVector const): Deleted.

Source/WTF:

  • wtf/Bitmap.h:
10:44 AM Changeset in webkit [280543] by Wenson Hsieh
  • 8 edits
    2 adds in trunk

REGRESSION (Safari 15): Unable to repaint canvases with software filters when GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=228682
rdar://79699997

Reviewed by Simon Fraser.

Source/WebCore:

In the case where GPU process is enabled for canvas rendering but is not enabled for DOM rendering, canvas
elements with software CSS filters fail to repaint as the canvas' backing image buffer changes. In this
particular scenario, we first paint the canvas' remotely-backed image buffer into the filter's input buffer,
which is backed by an unaccelerated graphics context. The filter is then applied, producing an output image
buffer which we then paint into the page. The bug occurs during the initial step of painting the contents of the
canvas' remote image buffer into the filter's input context, which involves creating a CGImageRef from the
ImageBufferCGBackend::draw.

When asking for a CGImageRef from the canvas' image buffer (which is backed by an IOSurface that's drawn into in
the GPU process), QuartzCore caches the resulting CGImageRef corresponding to the IOSurface handle in the web
process. Subsequently, when we try to repaint the canvas, we'll end up using this same initial cached CGImageRef
because the graphics context of the IOSurface handle in the web process hasn't been drawn into (because all the
actual draw calls are made in the GPU process). As such, regardless of the current state of the canvas' image
buffer, the input to the filter will always be the initial native image created from the canvas' image buffer.

We avoid this problem when GPU process is disabled because the calls to update the canvas' 2D context in the
web process will clear out the cached CGImageRef in QuartzCore. Additionally, we avoid this problem when drawing
into accelerated contexts because QuartzCore will draw the cached CGImageRef using a codepath that reads back
the up-to-date contents from the IOSurface. However, in the QuartzCore's unaccelerated (ripc) image drawing
codepath, we copy the contents of the cached image right away, causing us to end up with stale image data that
does not reflect the current state of the IOSurface.

To work around this in Safari 15 (in both Monterey as well as downlevel versions of macOS), we deploy a similar
technique as we'd previously used in r201334 to invalidate QuartzCore's cached image, but only:

  1. If the seed value of the backing IOSurface has changed since the last time we've drawn the image buffer, and
  2. The destination context we're painting the image buffer into is unaccelerated.

Test: css3/filters/canvas-with-filter-after-repaint.html

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::draw):
(WebCore::ImageBufferCGBackend::drawPattern):

Call into prepareToDrawIntoContext (see below).

  • platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::prepareToDrawIntoContext):

  • platform/graphics/cg/ImageBufferCGBackend.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::prepareToDrawIntoContext):

Add a new subclassable method on ImageBufferCGBackend that's invoked before drawing the contents of the image
buffer into a given destination GraphicsContext. We use this opportunity in ImageBufferIOSurfaceBackend to
notice if the IOSurface seed count has updated since we've last drawn the image buffer, and intentionally emit a
no-op drawing command (i.e. filling an empty rect) in the graphics context to invalidate QuartzCore's cached
CGImageRef. Note that we only deploy this workaround when drawing into unaccelerated contexts (see above for
more details).

(WebCore::ImageBufferIOSurfaceBackend::invalidateCachedNativeImage const):

Pull the no-op drawing command out into a separate helper method, with a comment describing why this exists.

(WebCore::ImageBufferIOSurfaceBackend::drawConsuming):
(WebCore::ImageBufferIOSurfaceBackend::copyCGImageForEncoding const):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::seed const):

Add a helper method to grab the seed value of an IOSurface.

LayoutTests:

  • css3/filters/canvas-with-filter-after-repaint-expected.html: Added.
  • css3/filters/canvas-with-filter-after-repaint.html: Added.
10:29 AM Changeset in webkit [280542] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Remove unneeded sandbox extension member
https://bugs.webkit.org/show_bug.cgi?id=228584

Reviewed by Darin Adler.

Remove unneeded sandbox extension handle member, since this extension is never revoked.

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

(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):

10:28 AM Changeset in webkit [280541] by Chris Dumez
  • 7 edits in trunk

HTMLElement.innerText setter should convert new lines to <br>
https://bugs.webkit.org/show_bug.cgi?id=228605
<rdar://problem/81333038>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing. Those tests were already passing in Chrome and Firefox.

  • web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/innertext-setter-expected.txt:
  • web-platform-tests/html/dom/elements/the-innertext-idl-attribute/setter-expected.txt:
  • web-platform-tests/innerText/setter-expected.txt:

Source/WebCore:

HTMLElement.innerText setter should convert new lines to <br>:

Our innerText setter had some logic that was specific to render styles that isn't part of
the specification. It was causing us to not replace the new lines with <br> in some
web-observable cases. I dropped this logic to align with Blink and Gecko.

No new tests, rebaselined existing tests.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setInnerText):

10:09 AM Changeset in webkit [280540] by Russell Epstein
  • 8 edits in branches/safari-612.1.26.0-branch/Source

Versioning.

WebKit-7612.1.26.0.1

10:05 AM Changeset in webkit [280539] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-002.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228704.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:52 AM Changeset in webkit [280538] by Russell Epstein
  • 1 copy in branches/safari-612.1.26.11-branch

New branch.

9:52 AM Changeset in webkit [280537] by Russell Epstein
  • 1 copy in branches/safari-612.1.26.2-branch

New branch.

9:52 AM Changeset in webkit [280536] by Russell Epstein
  • 1 copy in branches/safari-612.1.26.1-branch

New branch.

9:51 AM Changeset in webkit [280535] by Russell Epstein
  • 1 copy in branches/safari-612.1.26.0-branch

New branch.

9:38 AM Changeset in webkit [280534] by weinig@apple.com
  • 6 edits in trunk/Source/WebCore

[Modern Media Controls] Address additional feedback on LayoutTraits refactor
https://bugs.webkit.org/show_bug.cgi?id=227489
<rdar://problem/80215569>

Reviewed by Devin Rousso.

Splitting up larger change to land pieces incrementally.

Part 1:

  • Replaces eval() based lexical lookup with an explicit window.layoutTraitsClasses registry map.
  • Modules/modern-media-controls/controls/ios-layout-traits.js:
  • Modules/modern-media-controls/controls/layout-traits.js:
  • Modules/modern-media-controls/controls/macos-layout-traits.js:
  • Modules/modern-media-controls/controls/watchos-layout-traits.js:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype.get layoutTraits):

9:08 AM Changeset in webkit [280533] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iPad ] fast/canvas/canvas-color-space-display-p3.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=228663

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
8:58 AM Changeset in webkit [280532] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228672

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:39 AM Changeset in webkit [280531] by jer.noble@apple.com
  • 12 edits
    1 add in trunk

[Cocoa] Remove support for AVAssetImageGenerator
https://bugs.webkit.org/show_bug.cgi?id=228560
LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

The 2x2-green.mp4 file fails to decode as its natural size is too small for the system decoder to handle. Replace with
a media file of more reasonable size.

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base.html:
  • web-platform-tests/media/16x16-green.mp4: Added.

Source/WebCore:

Reviewed by Eric Carlson.

AVAssetImageGenerator is used when there is not yet an available image from
AVPlayerItemVideoOutput. However, AVAssetImageGenerator is a synchronous API call; if data
for the current time is not available, the generator will cause a request for that data to
be issued, and if the main thread is blocked in a synchronous call to the generator, that
request can never be completed, causing a deadlock.

Instead, always block moving to a readyState >= HAVE_CURRENT_DATA until either the
AVPlayerLayer or the AVPlayerItemVideoOutput report having an available frame. This
prevents clients from attempting to paint until a frame is available, and ensures that we
will always have an available frame for painting, removing the need for the synchronous
generator call.

To ensure the readyState is updated when AVPlayerItemVideoOutput has an available image,
register with the output at creation time for a notification as soon as an image is
available. And in the existing delegate object, send a message back to the
MediaPlayerPrivateAVFoundationObjC when that occurs.

No tests needed; this should reduce flakiness of existing tests and cause no regression in
behavior.

Note, changes from last attempt:

AVPlayerLayer will fail to move to the -readyForDisplay state if it's not attached to a
layer tree, so when we remove the HTMLMediaElement from the DOM, we must send MediaPlayer a
acceleratedRenderingStateChanged() notification. This will cause the
MediaPlayerPrivateAVFoundationObjC to throw away its AVPlayerLayer, and will not block
moving to HAVE_CURRENT_DATA waiting for the layer to become readyForDisplay.

When we throw away (or create) the AVPlayerLayer, we must conditionally call updateStates
() to recalculate the readyState; but because updateStates() may try to create or destroy
an AVPlayerLayer, we must do this on a task to avoid re-entrancy. Adopt these changes
inside MediaPlayerPrivateAVFoundationCF as well.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pauseAfterDetachedTask):
(WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering):
(WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering):
(WebCore::MediaPlayerPrivateAVFoundation::renderingModeChanged):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleUpdateStates):
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(-[WebCoreAVFPullDelegate setParent:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Deleted.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationCF::destroyVideoLayer):

Source/WebKit:

<rdar://problem/81336280>

Reviewed by Eric Carlson.

Drive-by fix: Passing the wrong value down to the GPU process when the acceleratedRenderingStateChanged().
We should be passing the results of MediaPlayer::renderingCanBeAccelerated() which comes down from HTMLMediaElement,
not MediaPlayer::supportsAcceleratedRendering(), which comes up from the GPU process.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):

8:38 AM Changeset in webkit [280530] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (r273072): Images do not layout correctly on walmart.com/grocery
https://bugs.webkit.org/show_bug.cgi?id=228656
<rdar://80418083>

Reviewed by Sergio Villar Senin.

Source/WebCore:

Take the min/max values into account when computing the definite size (https://drafts.csswg.org/css-sizing-3/#definite)
for the flex child.

Test: fast/flexbox/flex-with-min-max-height.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeCrossSizeForChildUsingContainerCrossSize const):

LayoutTests:

  • fast/flexbox/flex-with-min-max-height-expected.html: Added.
  • fast/flexbox/flex-with-min-max-height.html: Added.
7:43 AM Changeset in webkit [280529] by Andres Gonzalez
  • 7 edits in trunk

Fix for [WebAccessibilityObjectWrapper lineRectsAndText] to properly handle replacement nodes and SVG text.
https://bugs.webkit.org/show_bug.cgi?id=228336
<rdar://problem/81172124>

Reviewed by Chris Fleizach and Darin Adler.

Source/WebCore:

Test: LayoutTests/accessibility/ios-simulator/element-line-rects-and-text.html

  • Renamed stringsForSimpleRange to better reflect the fact that this

method can return strings and AXObjects.

  • Handles the case where contentForSimpleRange returns AXObjects

corresponding to replacement objects. This fixes the cases of images and
SVG text.

  • Fixed the problem with soft linebreaks where the start of the next

line was skipping the first character in the line.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper contentForSimpleRange:attributed:]):
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
(-[WebAccessibilityObjectWrapper lineRectsAndText]):
(-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]):
Renamed to contentForSimpleRange since it is returns an array of strings
and AXObjects.

LayoutTests:

  • Expanded this test to cover the case of an image element and SVG text.
  • Added the test case of a paragraph with soft linebreaks.
  • accessibility/ios-simulator/element-line-rects-and-text-expected.txt:
  • accessibility/ios-simulator/element-line-rects-and-text.html:
7:30 AM Changeset in webkit [280528] by Lauro Moura
  • 2 edits in trunk/Tools

[GLIB] Make CORS allowlist test wait for promise resolution
https://bugs.webkit.org/show_bug.cgi?id=228695

Reviewed by Michael Catanzaro.

r278456 introduced a CORS allow list test that tries to fetch a
resource using the fetch() function, which returns a promise. This is
working on GTK but in WPE the test fails as the promise is not yet
resolved by the time the test variable is checked.

This commit changes the test to actually report the promise failure
through catch() and wait for its resolution before checking the values.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewCORSAllowlist):

1:54 AM Changeset in webkit [280527] by Martin Robinson
  • 8 edits in trunk

[css-scroll-snap] Consider all snap areas at a given snap offset when snapping
https://bugs.webkit.org/show_bug.cgi?id=228141

LayoutTests/imported/w3c:

Reviewed by Frédéric Wang.

  • web-platform-tests/css/css-scroll-snap/overflowing-snap-areas-expected.txt:
  • web-platform-tests/css/css-scroll-snap/overflowing-snap-areas.html:

Source/WebCore:

Reviewed by Frédéric Wang.

When deciding whether to snap to snap areas that overflow the snap port, don't
just consider the first snap area at a given snap offset. Instead, keep information
about all snap areas in the ScrolSnapOffsetInfo. In order to avoid iterating over
arrays of hundreds of rectangles, also record whether any of them are larger than
the viewport. This will avoid extra work on the most common usecase of large sets
of snap areas (gridded table layouts).

This change is tested by extending an existing WPT test.

  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::rangeForAxis): Added this helper.
(WebCore::searchForPotentialSnapPoints): When deciding if a particular snap area
overflows the snap port, look at all available snap areas instead of just the
first one.
(WebCore::updateSnapOffsetsForScrollableArea): Instead of only recording the first
snap area, record all of them in the list of snap area rectangles.
(WebCore::convertOffsetInfo): Convert the list of snap ares.

  • page/scrolling/ScrollSnapOffsetsInfo.h:

(WebCore::operator==): Added this operator which is necessary now that snapAreaIndices
is a vector.

Source/WebKit:

Reviewed by Frédéric Wang.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<SnapOffset<float>>::encode): Serialize new members.
(ArgumentCoder<SnapOffset<float>>::decode): Deserialize new members.

Aug 1, 2021:

11:59 PM Changeset in webkit [280526] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
9:56 PM Changeset in webkit [280525] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Migrate GlyphOverflow to LayoutUnits instead of ints
https://bugs.webkit.org/show_bug.cgi?id=133040

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

Migrate GlyphOverflow to LayoutUnits instead of ints. This
is another step in the direction of subpixel layout/rendering.

  • platform/graphics/FontCascade.h:
  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addTextBoxVisualOverflow):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

  • style/InlineTextBoxStyle.cpp:

(WebCore::extendIntToFloat):

7:46 PM Changeset in webkit [280524] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win][DumpRenderTree] Clean up IndexedDB files between tests
https://bugs.webkit.org/show_bug.cgi?id=228692

Reviewed by Ryosuke Niwa.

storage/indexeddb/getdatabases.html was failing because it counted
up the remaining databases of previous tests.

Mac DRT removes IndexedDB after the testing (Bug 192796, r240358).
Win DRT also should do it.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest): Call TestRunner::clearAllDatabases after the testing.

9:02 AM Changeset in webkit [280523] by youenn@apple.com
  • 12 edits in trunk/Source

Introduce an experimental feature to toggle WebRTC socket proxying
https://bugs.webkit.org/show_bug.cgi?id=228681

Reviewed by Eric Carlson.

Source/WebKit:

Decide whether to disable proxying based on experimental feature in WebProcess.
Send the disable relay value from WebProcess to NetworkProcess for TCP sockets.
Manually tested.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createClientTCPSocket):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h:
  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:

(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::RTCSocketFactory::CreateClientTcpSocket):
(WebKit::LibWebRTCProvider::createSocketFactory):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:

(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):

  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
7:10 AM Changeset in webkit [280522] by Alexander Mikhaylenko
  • 2 edits in trunk/Tools

Add myself (Alexander Mikhaylenko) to contributors.json as a committer

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:

Jul 31, 2021:

3:48 PM Changeset in webkit [280521] by mjs@apple.com
  • 2 edits in trunk/Source/WebCore

ListAttributeTargetObserver is needlessly created even when there is no list attribute
https://bugs.webkit.org/show_bug.cgi?id=228541

Reviewed by Yusuke Suzuki.

No new tests because no behavior change.

This is possibly a small improvement (~0.5%) on Speedometer subtests that do innerHTML, but not statistically significant.

Ported from a Chromium change by Adithya Srinivasan

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::resetListAttributeTargetObserver): check if there's a list attribute before making an observer.

1:47 PM Changeset in webkit [280520] by ysuzuki@apple.com
  • 4 edits in trunk/Source

[JSC] Move JIT_UNICODE_EXPRESSIONS to ENABLE(YARR_JIT_UNICODE_EXPRESSIONS) in PlatformEnable.h
https://bugs.webkit.org/show_bug.cgi?id=228669

Reviewed by Alexey Shvayka.

Source/JavaScriptCore:

Move JIT_UNICODE_EXPRESSIONS to PlatformEnable.h to align to the other YarrJIT flags.
This makes it easy to read that this is enabled on ARM64 and X86_64.

  • yarr/YarrJIT.cpp:

Source/WTF:

  • wtf/PlatformEnable.h:
1:43 PM Changeset in webkit [280519] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Clean up Yarr by using static constexpr
https://bugs.webkit.org/show_bug.cgi?id=228678

Reviewed by Alexey Shvayka.

Modernize Yarr code by using static constexpr.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):

  • yarr/YarrCanonicalizeUCS2.cpp:
  • yarr/YarrCanonicalizeUCS2.js:

(set characters.hex.set string_appeared_here):

  • yarr/YarrErrorCode.cpp:

(JSC::Yarr::errorMessage):

  • yarr/YarrJIT.cpp:
10:37 AM Changeset in webkit [280518] by youenn@apple.com
  • 11 edits in trunk/Source

Improve LocalSampleBufferDisplayLayer logging
https://bugs.webkit.org/show_bug.cgi?id=228582

Reviewed by Eric Carlson.

Source/WebCore:

Add logging to correlate a LocalSampleBufferDisplayLayer to its HTMLMediaElement and its MediaStreamTrack.
Introduce setLogIdentifer for that purpose.
No observable change of behavior.

  • platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::onIrregularFrameRateNotification):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):

Source/WebKit:

Send through IPC the log identifier to the GPU display layer.

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::setLogIdentifier):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:

(WebKit::SampleBufferDisplayLayer::setLogIdentifier):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
9:53 AM Changeset in webkit [280517] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

AVVideoCaptureSource should not start/stop the camera if trying to apply the same size/frame rate configuration
https://bugs.webkit.org/show_bug.cgi?id=228634
<rdar://81174160>

Reviewed by Eric Carlson.

In some configurations, pages want to set a frame rate of 30, but the actual frame rate set will be 29.9999.
In that case, our heuristic to not recalibrate the camera fails.
To prevent this, we add checks in AVVideoCaptureSource to validate whether the new presets are the same as the already applied ones.

Manually tested.

  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):

9:52 AM Changeset in webkit [280516] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

RemoteAudioMediaStreamTrackRendererInternalUnit should handle changes of requested sampleCount
https://bugs.webkit.org/show_bug.cgi?id=228631
<rdar://80690191>

Reviewed by Eric Carlson.

The requested number of samples might change in case the output device changes.
When changing device, we might have a generated buffer of 4096 while 1024 samples are requested.
For each 1024 sample chunk, we will request a buffer of 4096, which cannot be provided by WebProcess.
To prevent this case, we keep track of a requested sample count overshoot so that next time the render callback is called,
we might not request to generate another chunk.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:

(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render):

8:43 AM Changeset in webkit [280515] by Martin Robinson
  • 4 edits
    2 adds in trunk

REGRESSION(r279564): [GTK] Mouse wheel scrolling scrolls too little (take two)
https://bugs.webkit.org/show_bug.cgi?id=228572

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Test: platform/gtk/fast/scrolling/scroll-wheel-repeated-events.html

When scrolling by a delta with ScrollAnimationSmooth, base the target point
on the current scroll target instead of on the current position. We also
pass the point to updatePerAxisData instead of the delta in order to make
it more explicit what the desired behavior is for this method.

  • platform/ScrollAnimationSmooth.h: Update argument name.
  • platform/ScrollAnimationSmooth.cpp:

(WebCore::ScrollAnimationSmooth::scroll): Base the delta on the target position and
pass that as the argument to updatePerAxisData. When scrolling to a point, simply
pass that to updatePerAxisData.
(WebCore::ScrollAnimationSmooth::updatePerAxisData): Accept a point instead of a
delta, which makes it more obvious how to use this function and allows it to
be used the same way by both version of ScrollAnimationSmooth::scroll.

LayoutTests:

  • platform/gtk/fast/scrolling/scroll-wheel-repeated-events-expected.txt: Added.
  • platform/gtk/fast/scrolling/scroll-wheel-repeated-events.html: Added.
2:43 AM Changeset in webkit [280514] by ysuzuki@apple.com
  • 4773 edits
    322 adds in trunk/JSTests

[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=228627

Reviewed by Ross Kirsling.

  • test262/config.yaml:
  • test262/expectations.yaml:
1:29 AM Changeset in webkit [280513] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Remove the build warning below since r280493.
warning: variable ‘block’ set but not used [-Wunused-but-set-variable]

  • b3/B3CanonicalizePrePostIncrements.cpp:

(JSC::B3::canonicalizePrePostIncrements):

1:06 AM Changeset in webkit [280512] by ysuzuki@apple.com
  • 1 edit
    9 moves in trunk/LayoutTests

Move DOM-unrelated tests out of fast/regex/dom
https://bugs.webkit.org/show_bug.cgi?id=228661

Reviewed by Saam Barati.

By moving to fast/regex/, we can run them from JSC tests too.

  • fast/regex/lastIndex-expected.txt: Renamed from LayoutTests/fast/regex/dom/lastIndex-expected.txt.
  • fast/regex/lastIndex.html: Renamed from LayoutTests/fast/regex/dom/lastIndex.html.
  • fast/regex/non-pattern-characters-expected.txt: Renamed from LayoutTests/fast/regex/dom/non-pattern-characters-expected.txt.
  • fast/regex/non-pattern-characters.html: Renamed from LayoutTests/fast/regex/dom/non-pattern-characters.html.
  • fast/regex/script-tests/lastIndex.js: Renamed from LayoutTests/fast/regex/dom/script-tests/lastIndex.js.
  • fast/regex/script-tests/non-pattern-characters.js: Renamed from LayoutTests/fast/regex/dom/script-tests/non-pattern-characters.js.
  • fast/regex/script-tests/unicodeCaseInsensitive.js: Renamed from LayoutTests/fast/regex/dom/script-tests/unicodeCaseInsensitive.js.
  • fast/regex/unicodeCaseInsensitive-expected.txt: Renamed from LayoutTests/fast/regex/dom/unicodeCaseInsensitive-expected.txt.
  • fast/regex/unicodeCaseInsensitive.html: Renamed from LayoutTests/fast/regex/dom/unicodeCaseInsensitive.html.
12:52 AM Changeset in webkit [280511] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk

Unreviewed, reverting r280488.
https://bugs.webkit.org/show_bug.cgi?id=228677

media/modern-media-controls/ tests are failing or timed-out

Reverted changeset:

"[Cocoa] Remove support for AVAssetImageGenerator"
https://bugs.webkit.org/show_bug.cgi?id=228560
https://commits.webkit.org/r280488

Jul 30, 2021:

11:41 PM Changeset in webkit [280510] by sihui_liu@apple.com
  • 4 edits
    3 adds
    2 deletes in trunk/LayoutTests

[ macOS wk2 ARM 64 ] storage/indexeddb/IDBObject-leak.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223453
<rdar://problem/75580609>

Reviewed by Youenn Fablet.

As JavaScriptCore uses conservative GC, transaction may be still be alive after one gc call, so we should invoke
gc multiple times.

Also, this patch renames IDBObject-leak.html to database-transaction-cycle.html to better indicate what it is
testing.

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
  • storage/indexeddb/IDBObject-leak-expected.txt: Removed.
  • storage/indexeddb/IDBObject-leak.html: Removed.
  • storage/indexeddb/database-transaction-cycle-expected.txt: Added.
  • storage/indexeddb/database-transaction-cycle.html: Added.
  • storage/indexeddb/resources/database-transaction-cycle-iframe.html: Added.
11:07 PM Changeset in webkit [280509] by commit-queue@webkit.org
  • 20 edits
    2 adds in trunk

[css-overflow] Implement clip value for overflow
https://bugs.webkit.org/show_bug.cgi?id=198230

Patch by Rob Buis <rbuis@igalia.com> on 2021-07-30
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-overflow/overflow-clip-hit-testing-expected.txt: Added.
  • web-platform-tests/css/css-overflow/overflow-clip-scroll-size-expected.txt: Added.
  • web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
  • web-platform-tests/css/css-overflow/parsing/overflow-valid-expected.txt:

Source/WebCore:

Implement overflow: clip. Parsing is like the other
overflow values but special logic is added to handle
the case where only one of overflow-x/overflow-y uses
'clip' [1]. Also adjusts code that computes layout and
visual overflow to take overflow: clip into account.

This matches Chrome and Firefox.

[1] https://drafts.csswg.org/css-overflow/#propdef-overflow-x

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Overflow const):

  • css/CSSProperties.json:
  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):
(WebCore::add):

  • css/parser/CSSParserContext.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • page/FrameView.cpp: handle scrollbars

on viewport element same as overflow: hidden.
(WebCore::FrameView::applyOverflowToViewport):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateFromStyle):
(WebCore::RenderBox::scrollWidth const): overflow clip
forbids all scrolling.
(WebCore::RenderBox::scrollHeight const): Ditto.
(WebCore::RenderBox::setScrollLeft): Ditto.
(WebCore::RenderBox::setScrollTop): Ditto.
(WebCore::RenderBox::setScrollPosition): Ditto.
(WebCore::RenderBox::requiresLayerWithScrollableArea const): do
not create layer with scrollable area for overflow: clip.
(WebCore::RenderBox::canBeProgramaticallyScrolled const): overflow clip
forbids all scrolling.
(WebCore::RenderBox::scrollPosition const): overflow clip
forbids all scrolling.
(WebCore::RenderBox::overflowClipRect const): only clip the rect horizontally
for overflow-x: clip and only vertically for overflow-y: clip.
(WebCore::RenderBox::createsNewFormattingContext const): do
not create formatting context for overflow: clip.
(WebCore::RenderBox::addOverflowFromChild):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::layoutOverflowRectForPropagation const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingScrollableContainerForSnapping const):

  • rendering/RenderObject.h: Add helper method that excludes overflow-x/y: clip.

(WebCore::RenderObject::hasPotentiallyScrollableOverflow const):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • style/StyleAdjuster.cpp: Add special logic is to handle the case where only

one of overflow-x/overflow-y uses 'clip'.
(WebCore::Style::Adjuster::adjust const):

Source/WTF:

Add preference for overflow: clip support.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

9:46 PM Changeset in webkit [280508] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] branchTest8 should not emit tst for Zero/NonZero cases
https://bugs.webkit.org/show_bug.cgi?id=228674

Reviewed by Mark Lam.

Previously, branchTest8(NonZero, BaseIndex) emits tst instruction
unnecessarily. This is because the mask is truncated into 8bit, which
makes branchTest32 (which is internally used in branchTest8) emits tst.
We observed many unnecessary tst in YarrJIT.

This patch removes this unnecessary truncation since Zero/NonZero does
not care high bits of mask in branchTest8. This is ok because the
ResultCondition version of mask8OnCondition() is always used to generate
a mask that is only used against a value that is loaded with
MacroAssemblerHelpers::load8OnCondition(). For Zero/NonZero conditions,
load8OnCondition() will always zero fill the upper bytes. The 0 filled
upper bytes will not affect the result of a branch on zero or branch on
not zero.

Before:

0x10a8068b0: ldrb w16, [x7, x6]
0x10a8068b4: tst w16, #0xff
0x10a8068b8: b.ne 0x10a8068cc

After:

0x1070068b0: ldrb w16, [x7, x6]
0x1070068b4: cbnz w16, 0x1070068c8

  • assembler/MacroAssemblerHelpers.h:

(JSC::MacroAssemblerHelpers::mask8OnCondition):

6:40 PM Changeset in webkit [280507] by rmorisset@apple.com
  • 6 edits
    1 add in trunk

Improve OSR entry into Wasm loops with arguments
https://bugs.webkit.org/show_bug.cgi?id=228595

Reviewed by Yusuke Suzuki.

JSTests:

Just a straightforward test that counts to 1M in a loop, to exercise both OSR entry and a loop with an argument at the same time.
100k iterations was not enough to reliably complete an OSR entry.

  • wasm/stress/osr-entry-with-loop-arguments.js: Added.

(async test):

Source/JavaScriptCore:

This patch has two parts:

  • improve the Wasm OSR code to fully support loop arguments (just some plumbing to make sure that the right values are propagated)
  • improve the B3 validator to fix a hole I noticed while writing the first part: we were not detecting code that introduce Upsilons in the wrong blocks. Naturally, this caused hard to debug issues, as B3 has no well-defined semantics for a Phi that is reached before the corresponding Upsilon(s).
  • b3/B3Validate.cpp:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addLoop):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addLoop):

6:36 PM Changeset in webkit [280506] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Rename Temporal.now to Temporal.Now
https://bugs.webkit.org/show_bug.cgi?id=228658

Patch by Philip Chimento <pchimento@igalia.com> on 2021-07-30
Reviewed by Yusuke Suzuki.

See https://github.com/tc39/proposal-temporal/pull/1645. In the July
2021 meeting TC39 achieved consensus to rename Temporal.now to
Temporal.Now since it is a namespace.

  • runtime/TemporalNow.cpp: Change Now[@@toStringTag] accordingly.
  • runtime/TemporalObject.cpp: Rename now property to Now.
6:33 PM Changeset in webkit [280505] by Tadeu Zagallo
  • 5 edits in trunk

putInlineFastReplacingStaticPropertyIfNeeded should handle custom values
https://bugs.webkit.org/show_bug.cgi?id=227963

Reviewed by Alexey Shvayka.

JSTests:

  • stress/reflect-set-custom-value.js:

Source/JavaScriptCore:

Follow up after r280463: as it turns out, putInlineFastReplacingStaticPropertyIfNeeded also needs to handle
custom values, similar to how definePropertyOnReceiverSlow was updated. This function will be called when the
target property of the receiver is a custom value and isn't reified. The previous test case was expanded to
test both the reified and non-reified cases.

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):

  • tools/JSDollarVM.cpp:
5:07 PM Changeset in webkit [280504] by Chris Dumez
  • 96 edits
    3 copies
    1 add in trunk

Add initial support for 'Cross-Origin-Opener-Policy' HTTP header
https://bugs.webkit.org/show_bug.cgi?id=192193
<rdar://problem/42013525>

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that most tests are passing.

  • web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/blob-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-coep-sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/header-parsing.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/javascript-url.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/navigate-to-aboutblank.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/no-https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw-from-coop.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/popup-with-structured-header.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/resource-popup.https-expected.txt:
  • web-platform-tests/html/cross-origin-opener-policy/resources/resource-popup.html:
  • web-platform-tests/html/dom/idlharness.worker-expected.txt:

Source/WebCore:

Add initial support for 'Cross-Origin-Opener-Policy' HTTP header:

Support is complete enough to pass most WPT tests with the exception of:

  • The ones involving blob. Support for Blob does not seem trivial so I will address separately (https://github.com/whatwg/html/issues/5198).
  • The ones that requires reporting COOP enforcement as this is not supported yet. This is a fairly large task so I'll handle separately.
  • The ones that involve Cross-Origin-Embedder-Policy (COEP) and this is not yet supported.

I tried to stay as close as possible to the HTML specification as possible in terms
of structuring and naming. I also have code comments to link to the relevant HTML
spec sections.

Note that as it stands, we do not currently swap process based on COOP header. We
merely do isolation of the new browsing context at JS level for now. At some point,
we'll want to actually process-swap, once we support COEP and we want to re-enable
some Web APIs such as SharedArrayBuffer.

No new tests, covered by web-plaform-tests/html/cross-origin-opener-policy.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::initSecurityContext):
(WebCore::Document::shouldForceNoOpenerBasedOnCOOP const):
(WebCore::Document::crossOriginOpenerPolicy const):
(WebCore::Document::setCrossOriginOpenerPolicy):

  • dom/Document.h:

(WebCore::Document::isSameOriginAsTopDocument const):

  • dom/SecurityContext.cpp:

(WebCore::SecurityContext::enforceSandboxFlags):

  • dom/SecurityContext.h:

(WebCore::SecurityContext::creationSandboxFlags const):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openURLExternally):

  • loader/CrossOriginEmbedderPolicy.cpp: Copied from Source/WebCore/page/AbstractFrame.cpp.

(WebCore::obtainCrossOriginEmbedderPolicy):

  • loader/CrossOriginEmbedderPolicy.h: Copied from Source/WebCore/page/AbstractFrame.cpp.
  • loader/CrossOriginOpenerPolicy.cpp: Added.

(WebCore::obtainCrossOriginOpenerPolicy):

  • loader/CrossOriginOpenerPolicy.h: Copied from Source/WebCore/page/AbstractFrame.h.
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):
(WebCore::checkIfCOOPValuesRequireBrowsingContextGroupSwitch):
(WebCore::computeResponseOriginAndCOOP):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::enforceResponseCrossOriginOpenerPolicy):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::crossOriginOpenerPolicy const):

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):
(WebCore::FrameLoader::setOpener):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::createWindow):
(WebCore::FrameLoader::switchBrowsingContextsGroup):

  • loader/FrameLoader.h:
  • loader/NavigationAction.cpp:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::Requester::securityOrigin const):
(WebCore::NavigationAction::Requester::topOrigin const):
(WebCore::NavigationAction::Requester::crossOriginOpenerPolicy const):

  • page/AbstractFrame.cpp:

(WebCore::AbstractFrame::resetWindowProxy):

  • page/AbstractFrame.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::crossOriginIsolated const):
(WebCore::DOMWindow::createWindow):

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

(WebCore::Frame::resetScript):

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

(WebCore::Page::setOpenedByDOMWithOpener):

  • page/WindowOrWorkerGlobalScope.idl:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext):

  • platform/network/HTTPHeaderNames.in:
  • platform/network/HTTPParsers.cpp:

(WebCore::parseStructuredFieldValue):

  • platform/network/HTTPParsers.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::isSafeRedirectionResponseHeader):

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::crossOriginIsolated const):

  • workers/WorkerGlobalScope.h:

Source/WTF:

Add experimental feature flag for 'Cross-Origin-Opener-Policy' HTTP header
support.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

LayoutTests:

Update test expectations.

  • TestExpectations:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac/TestExpectations:
4:57 PM Changeset in webkit [280503] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/navigation-redirect-main-frame.https.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228670

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:08 PM Changeset in webkit [280502] by Chris Dumez
  • 28 edits in trunk

Unreviewed, reverting r280482.

Will take a more conservative approach

Reverted changeset:

"HTMLElement.innerText setter should convert new lines to
<br>"
https://bugs.webkit.org/show_bug.cgi?id=228605
https://commits.webkit.org/r280482

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

Add spacebar functionality for macOS smooth scrolling
https://bugs.webkit.org/show_bug.cgi?id=228155

Patch by Dana Estra <destra@apple.com> on 2021-07-30
Reviewed by Tim Horton.

Fixed bug that was causing spacebar events to return false from beginKeyboardScrollGesture.

Manually tested on webpage.

  • platform/KeyboardScrollingAnimator.cpp:

(WebCore::KeyboardScrollingAnimator::beginKeyboardScrollGesture):

3:38 PM Changeset in webkit [280500] by Jean-Yves Avenard
  • 5 edits in trunk

REGRESSION (r274460?): Infinite recursion on fullscreen/full-screen-remove-ancestor.html in WTR::InjectedBundlePage::closeFullScreen
https://bugs.webkit.org/show_bug.cgi?id=224085
rdar://75576840

Reviewed by Eric Carlson.

Source/WebKit:

WebFullScreenManager::close() is used to cleanup a transient error when exiting or
attempting to exit fullscreen; it then calls InjectedBundleXXX::closeFullScreen().
It is possible for the injected bundle's closeFullScreen() to attempt to exit full
screen mode again.
Rather than making the bundle responsible for doing the right thing, we add a
workaround in the fullscreen manager to ensure no recursion is happening.

Covered by existing test.

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::close):

  • WebProcess/FullScreen/WebFullScreenManager.h: Make close() method private

LayoutTests:

  • platform/mac-wk2/TestExpectations: re-enable test.
3:29 PM Changeset in webkit [280499] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iPad ] fast/canvas/canvas-color-space-display-p3.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=228663

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
3:03 PM Changeset in webkit [280498] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed follow-up to r280491 to address review feedback from Darin Adler.

Use URL::isBlankURL() instead of a case-sensitive match for aboutBlankURL().

  • dom/Document.cpp:

(WebCore::Document::updateBaseURL):

2:35 PM Changeset in webkit [280497] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS Debug ] fast/events/tabindex-focus-blur-all.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=228659

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:16 PM Changeset in webkit [280496] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix wrong access width
https://bugs.webkit.org/show_bug.cgi?id=228301
rdar://81341472

  • yarr/YarrJIT.cpp:
1:58 PM Changeset in webkit [280495] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

REGRESSION (r275641): [ iPad Debug ] accessibility/ios-simulator/scroll-in-overflow-div.html is asserting.
https://bugs.webkit.org/show_bug.cgi?id=228622

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
1:46 PM Changeset in webkit [280494] by Ayumi Kojima
  • 1 edit
    1 add in trunk/LayoutTests

[ iPad ] Rebaselining fast/dom/collection-iterators.html.
https://bugs.webkit.org/show_bug.cgi?id=228657

Unreviewed test gardening.

  • platform/ipad/fast/dom/collection-iterators-expected.txt: Added.
1:44 PM Changeset in webkit [280493] by Yijia Huang
  • 16 edits
    1 copy
    1 add in trunk/Source/JavaScriptCore

Add Pre/Post-Indexed Address Mode to Air for ARM64
https://bugs.webkit.org/show_bug.cgi?id=228047

Reviewed by Phil Pizlo.

Pre-indexed addressing means that the address is the sum of the value in the 64-bit base register
and an offset, and the address is then written back to the base register. And post-indexed
addressing means that the address is the value in the 64-bit base register, and the sum of the
address and the offset is then written back to the base register. They are relatively common for
loops to iterate over an array by increasing/decreasing a pointer into the array at each iteration.
With such an addressing mode, the instruction selector can merge the increment and access the array.

#####################################
## Pre-Index Address Mode For Load ##
#####################################

LDR Wt, [Xn, #imm]!

In B3 Reduction Strength, since we have this reduction rule:

Turn this: Load(Add(address, offset1), offset = offset2)
Into this: Load(address, offset = offset1 + offset2)

Then, the equivalent pattern is:

address = Add(base, offset)
...
memory = Load(base, offset)

First, we convert it to the canonical form:

address = Add(base, offset)
newMemory = Load(base, offset) move the memory to just after the address
...
memory = Identity(newMemory)

Next, lower to Air:

Move %base, %address
Move (%address, prefix(offset)), %newMemory

######################################
## Post-Index Address Mode For Load ##
######################################

LDR Wt, [Xn], #imm

Then, the equivalent pattern is:

memory = Load(base, 0)
...
address = Add(base, offset)

First, we convert it to the canonical form:

newOffset = Constant
newAddress = Add(base, offset)
memory = Load(base, 0) move the offset and address to just before the memory
...
offset = Identity(newOffset)
address = Identity(newAddress)

Next, lower to Air:

Move %base, %newAddress
Move (%newAddress, postfix(offset)), %memory

#############################
## Pattern Match Algorithm ##
#############################

To detect the pattern for prefix/postfix increment address is tricky due to the structure in B3 IR. The
algorithm used in this patch is to collect the first valid values (add/load), then search for any
paired value (load/add) to match all of them. In worst case, the runtime complexity is O(n2)
when n is the number of all values.

After collecting two sets of candidates, we match the prefix incremental address first since it seems
more beneficial to the compiler (shown in the next section). And then, go for the postfix one.

##############################################
## Test for Pre/Post-Increment Address Mode ##
##############################################

Given Loop with Pre-Increment:
int64_t ldr_pre(int64_t *p) {

int64_t res = 0;
while (res < 10)

res += *++p;

return res;

}

B3 IR:


BB#0: ; frequency = 1.000000

Int64 b@0 = Const64(0)
Int64 b@2 = ArgumentReg(%x0)
Void b@20 = Upsilon($0(b@0), 18, WritesLocalState)
Void b@21 = Upsilon(b@2,
19, WritesLocalState)
Void b@4 = Jump(Terminal)

Successors: #1
BB#1: ; frequency = 1.000000
Predecessors: #0, #2

Int64 b@18 = Phi(ReadsLocalState)
Int64 b@19 = Phi(ReadsLocalState)
Int64 b@7 = Const64(10)
Int32 b@8 = AboveEqual(b@18, $10(b@7))
Void b@9 = Branch(b@8, Terminal)

Successors: Then:#3, Else:#2
BB#2: ; frequency = 1.000000
Predecessors: #1

Int64 b@10 = Const64(8)
Int64 b@11 = Add(b@19, $8(b@10))
Int64 b@13 = Load(b@11, ControlDependent|Reads:Top)
Int64 b@14 = Add(b@18, b@13)
Void b@22 = Upsilon(b@14, 18, WritesLocalState)
Void b@23 = Upsilon(b@11,
19, WritesLocalState)
Void b@16 = Jump(Terminal)

Successors: #1
BB#3: ; frequency = 1.000000
Predecessors: #1

Void b@17 = Return(b@18, Terminal)

Variables:

Int64 var0
Int64 var1


W/O Pre-Increment Address Mode:


...
BB#2: ; frequency = 1.000000
Predecessors: #1

Move $8, %x3, $8(b@12)
Add64 $8, %x0, %x1, b@11
Move (%x0,%x3), %x0, b@13
Add64 %x0, %x2, %x2, b@14
Move %x1, %x0, b@23
Jump b@16

Successors: #1
...


W/ Pre-Increment Address Mode:


...
BB#2: ; frequency = 1.000000
Predecessors: #1

MoveWithIncrement64 (%x0,Pre($8)), %x2, b@13
Add64 %x2, %x1, %x1, b@14
Jump b@16

Successors: #1
...


Given Loop with Post-Increment:
int64_t ldr_pre(int64_t *p) {

int64_t res = 0;
while (res < 10)

res += *p++;

return res;

}

B3 IR:


BB#0: ; frequency = 1.000000

Int64 b@0 = Const64(0)
Int64 b@2 = ArgumentReg(%x0)
Void b@20 = Upsilon($0(b@0), 18, WritesLocalState)
Void b@21 = Upsilon(b@2,
19, WritesLocalState)
Void b@4 = Jump(Terminal)

Successors: #1
BB#1: ; frequency = 1.000000
Predecessors: #0, #2

Int64 b@18 = Phi(ReadsLocalState)
Int64 b@19 = Phi(ReadsLocalState)
Int64 b@7 = Const64(10)
Int32 b@8 = AboveEqual(b@18, $10(b@7))
Void b@9 = Branch(b@8, Terminal)

Successors: Then:#3, Else:#2
BB#2: ; frequency = 1.000000
Predecessors: #1

Int64 b@10 = Load(b@19, ControlDependent|Reads:Top)
Int64 b@11 = Add(b@18, b@10)
Int64 b@12 = Const64(8)
Int64 b@13 = Add(b@19, $8(b@12))
Void b@22 = Upsilon(b@11, 18, WritesLocalState)
Void b@23 = Upsilon(b@13,
19, WritesLocalState)
Void b@16 = Jump(Terminal)

Successors: #1
BB#3: ; frequency = 1.000000
Predecessors: #1

Void b@17 = Return(b@18, Terminal)

Variables:

Int64 var0
Int64 var1


W/O Post-Increment Address Mode:


...
BB#2: ; frequency = 1.000000
Predecessors: #1

Move (%x0), %x2, b@10
Add64 %x2, %x1, %x1, b@11
Add64 $8, %x0, %x0, b@13
Jump b@16

Successors: #1
...


W/ Post-Increment Address Mode:


...
BB#2: ; frequency = 1.000000
Predecessors: #1

MoveWithIncrement64 (%x0,Post($8)), %x2, b@10
Add64 %x2, %x1, %x1, b@11
Jump b@16

Successors: #1
...


  • Sources.txt:
  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::PreIndexAddress::PreIndexAddress):
(JSC::AbstractMacroAssembler::PostIndexAddress::PostIndexAddress):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):

  • assembler/testmasm.cpp:

(JSC::testStorePrePostIndex32):
(JSC::testStorePrePostIndex64):
(JSC::testLoadPrePostIndex32):
(JSC::testLoadPrePostIndex64):

  • b3/B3CanonicalizePrePostIncrements.cpp: Added.

(JSC::B3::canonicalizePrePostIncrements):

  • b3/B3CanonicalizePrePostIncrements.h: Copied from Source/JavaScriptCore/b3/B3ValueKeyInlines.h.
  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • b3/B3LowerToAir.cpp:
  • b3/B3ValueKey.h:
  • b3/B3ValueKeyInlines.h:

(JSC::B3::ValueKey::ValueKey):

  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::jsHash const):
(JSC::B3::Air::Arg::dump const):
(WTF::printInternal):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::preIndex):
(JSC::B3::Air::Arg::postIndex):
(JSC::B3::Air::Arg::isPreIndex const):
(JSC::B3::Air::Arg::isPostIndex const):
(JSC::B3::Air::Arg::isMemory const):
(JSC::B3::Air::Arg::base const):
(JSC::B3::Air::Arg::offset const):
(JSC::B3::Air::Arg::isGP const):
(JSC::B3::Air::Arg::isFP const):
(JSC::B3::Air::Arg::isValidPreIndexForm):
(JSC::B3::Air::Arg::isValidPostIndexForm):
(JSC::B3::Air::Arg::isValidForm const):
(JSC::B3::Air::Arg::forEachTmpFast):
(JSC::B3::Air::Arg::forEachTmp):
(JSC::B3::Air::Arg::asPreIndexAddress const):
(JSC::B3::Air::Arg::asPostIndexAddress const):

  • b3/air/AirOpcode.opcodes:
  • b3/air/opcode_generator.rb:
  • b3/testb3.h:
  • b3/testb3_3.cpp:

(testLoadPreIndex32):
(testLoadPreIndex64):
(testLoadPostIndex32):
(testLoadPostIndex64):
(addShrTests):

  • jit/ExecutableAllocator.cpp:

(JSC::jitWriteThunkGenerator):

1:26 PM Changeset in webkit [280492] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk/Source/WebCore

Add key-driven smooth scrolling to macOS
https://bugs.webkit.org/show_bug.cgi?id=228009

Patch by Dana Estra <destra@apple.com> on 2021-07-30
Reviewed by Tim Horton.

Cause keyboard scroll event to trigger start of smooth scroll animation, using same physics implementation as iOS smooth scrolling.

No tests yet.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Node.cpp:

(WebCore::Node::defaultEventHandler):

  • page/EventHandler.cpp:

(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::scrollDistance):
(WebCore::EventHandler::stopKeyboardScrolling):
(WebCore::EventHandler::startKeyboardScrolling):

  • platform/KeyboardScrollingAnimator.cpp: Added.
  • platform/KeyboardScrollingAnimator.h: Added.
  • platform/ScrollAnimator.cpp:

(WebCore::ScrollAnimator::startAnimationCallback):

  • platform/ScrollAnimator.h:
  • platform/ScrollController.cpp:

(WebCore::ScrollController::animationCallback):
(WebCore::ScrollController::startOrStopAnimationCallbacks):
(WebCore::ScrollController::beginKeyboardScrolling):
(WebCore::ScrollController::stopKeyboardScrolling):
(WebCore::ScrollController::setIsAnimatingKeyboardScrolling):
(WebCore::ScrollController::updateKeyboardScrollingAnimatingState):

  • platform/ScrollController.h:

(WebCore::ScrollControllerClient::updateKeyboardScrollPosition):

1:25 PM Changeset in webkit [280491] by Chris Dumez
  • 15 edits
    5 moves in trunk

Document's fallback base URL should be deduced from its creator when URL is about:blank
https://bugs.webkit.org/show_bug.cgi?id=228624

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

  • web-platform-tests/html/infrastructure/urls/terminology-0/document-base-url-expected.txt:

Source/WebCore:

Document's fallback base URL should be deduced from its creator when URL is about:blank:

Chrome and Firefox match the specification here.

Tests: http/tests/dom/iframe-no-src-local-origin-allow.html

http/tests/dom/iframe-no-src-set-location.html

  • dom/Document.cpp:

(WebCore::Document::updateBaseURL):

LayoutTests:

Update existing tests to reflect behavior change. I have verified that those tests were failing in Firefox & Chrome and
are now passing in those browsers.

  • http/tests/dom/iframe-no-src-local-origin-allow-expected.txt: Renamed from LayoutTests/fast/frames/iframe-no-src-local-origin-allow-expected.txt.
  • http/tests/dom/iframe-no-src-local-origin-allow.html: Renamed from LayoutTests/fast/frames/iframe-no-src-local-origin-allow.html.
  • http/tests/dom/iframe-no-src-set-location-expected.txt: Renamed from LayoutTests/fast/frames/iframe-no-src-set-location-expected.txt.
  • http/tests/dom/iframe-no-src-set-location.html: Renamed from LayoutTests/fast/frames/iframe-no-src-set-location.html.
  • http/tests/dom/resources/iframe-no-src-set-location-pass.html: Renamed from LayoutTests/fast/frames/resources/iframe-no-src-set-location-pass.html.
  • http/tests/security/aboutBlank/security-context-expected.txt:
  • http/tests/security/aboutBlank/security-context-grandchildren-expected.txt:
  • http/tests/security/aboutBlank/security-context-grandchildren-lexical-expected.txt:
  • http/tests/security/aboutBlank/security-context-grandchildren-write-lexical-expected.txt:
  • http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical-expected.txt:
  • http/tests/security/aboutBlank/security-context-window-open-expected.txt:
  • http/tests/security/aboutBlank/security-context-with-base-tag-expected.txt:
  • http/tests/security/aboutBlank/security-context-write-expected.txt:
  • http/tests/security/aboutBlank/security-context-writeln-expected.txt:
12:49 PM Changeset in webkit [280490] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Accessibility code logs to stderr in many layout test runs
https://bugs.webkit.org/show_bug.cgi?id=228653

Reviewed by Wenson Hsieh.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::accessibilityPreferencesDidChange):
r279342 accidentally landed a WTFLogAlways in a common codepath. Remove it.

11:56 AM Changeset in webkit [280489] by Alexey Shvayka
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r280460): 42 JSC test failures on Debug arm64 with ASSERTION FAILED: !m_needExceptionCheck
https://bugs.webkit.org/show_bug.cgi?id=228652

Unreviewed unchecked exception fix.

Release scope before calling RegExpGlobalData::getBackref().

  • runtime/RegExpConstructor.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):

11:49 AM Changeset in webkit [280488] by jer.noble@apple.com
  • 7 edits
    1 add in trunk

[Cocoa] Remove support for AVAssetImageGenerator
https://bugs.webkit.org/show_bug.cgi?id=228560

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

The 2x2-green.mp4 file fails to decode as its natural size is too small for the system decoder to handle. Replace with
a media file of more reasonable size.

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base.html:
  • web-platform-tests/media/16x16-green.mp4: Added.

Source/WebCore:

AVAssetImageGenerator is used when there is not yet an available image from AVPlayerItemVideoOutput.
However, AVAssetImageGenerator is a synchronous API call; if data for the current time is not available,
the generator will cause a request for that data to be issued, and if the main thread is blocked in a
synchronous call to the generator, that request can never be completed, causing a deadlock.

Instead, always block moving to a readyState >= HAVE_CURRENT_DATA until either the AVPlayerLayer or
the AVPlayerItemVideoOutput report having an available frame. This prevents clients from attempting
to paint until a frame is available, and ensures that we will always have an available frame for
painting, removing the need for the synchronous generator call.

To ensure the readyState is updated when AVPlayerItemVideoOutput has an available image, register
with the output at creation time for a notification as soon as an image is available. And in the existing
delegate object, send a message back to the MediaPlayerPrivateAVFoundationObjC when that occurs.

No tests needed; this should reduce flakiness of existing tests and cause no regression in behavior.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::updateStates):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(-[WebCoreAVFPullDelegate setParent:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Deleted.

11:25 AM Changeset in webkit [280487] by Russell Epstein
  • 1 copy in tags/Safari-612.1.26

Tag Safari-612.1.26.

11:13 AM Changeset in webkit [280486] by Russell Epstein
  • 2 edits in branches/safari-612.1.26-branch/Source/WebKit

Cherry-pick r280433. rdar://problem/81334141

The bundle path of downlevel Safari is wrong
https://bugs.webkit.org/show_bug.cgi?id=228339

Reviewed by Tim Horton.

Use the same approach as isSystemWebKit to check whether the WebKit bundle
is from the staged framework.

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm: (WebKit::isFeatureFlagEnabled):

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

11:13 AM Changeset in webkit [280485] by Russell Epstein
  • 2 edits in branches/safari-612.1.26-branch/Source/WebKit

Cherry-pick r280424. rdar://problem/81334136

[macOS Catalina] Some feature preferences have wrong default values
https://bugs.webkit.org/show_bug.cgi?id=228564

Reviewed by Tim Horton.

When HAVE(SYSTEM_FEATURE_FLAGS) is false, we still need to enable
some features by default.

This patch makes sure the following features are enabled by default
on macOS (consistent with the properties in WebKit-macos.plist):

  • async_frame_and_overflow_scrolling
  • gpu_process_canvas_rendering
  • gpu_process_media
  • gpu_process_webrtc
  • incremental_pdf
  • vp9_decoder
  • webm_format_reader
  • webm_parser
  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultUseGPUProcessForCanvasRenderingEnabled): (WebKit::defaultUseGPUProcessForDOMRenderingEnabled): (WebKit::defaultUseGPUProcessForMediaEnabled): (WebKit::defaultCaptureAudioInGPUProcessEnabled): (WebKit::defaultCaptureVideoInGPUProcessEnabled): (WebKit::defaultWebRTCCodecsInGPUProcess): (WebKit::defaultIncrementalPDFEnabled): (WebKit::defaultWebMFormatReaderEnabled):

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

11:08 AM Changeset in webkit [280484] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

softlink nw_parameters_allow_sharing_port_with_listener
https://bugs.webkit.org/show_bug.cgi?id=228636

Reviewed by Eric Carlson.

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
This helps compiling/running WebKit on older OSes.
Also make use of nw_endpoint_create_host_with_numeric_port to remove the need for string to int conversion.

  • Platform/spi/Cocoa/NWParametersSPI.h:
10:46 AM Changeset in webkit [280483] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Forward errors from log and blame
https://bugs.webkit.org/show_bug.cgi?id=228621
<rdar://problem/81297642>

Rubber-stamped by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(FilteredCommand.main): If the exit code is non-zero, print all errors.

10:46 AM Changeset in webkit [280482] by Chris Dumez
  • 28 edits in trunk

HTMLElement.innerText setter should convert new lines to <br>
https://bugs.webkit.org/show_bug.cgi?id=228605

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaselined WPT tests that are now passing. Note that those were failing in WebKit but passing in Firefox
and Chrome.

  • web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/innertext-setter-expected.txt:
  • web-platform-tests/html/dom/elements/the-innertext-idl-attribute/setter-expected.txt:
  • web-platform-tests/innerText/setter-expected.txt:

Source/WebCore:

HTMLElement.innerText setter should convert new lines to <br>:

Our innerText setter had some logic that was specific to form elements and specific render
styles that wasn't part of the specification. It was causing us to not replace the new lines
with <br> in some cases. I dropped this logic to align with Blink and Gecko, as those are
passing the same WPT tests.

No new tests, rebaselined existing tests.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setInnerText):

LayoutTests:

Rebaseline a few tests that changed output.

  • editing/pasteboard/smart-paste-paragraph-003-expected.txt:
  • platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/mac/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/mac/fast/forms/textarea-scroll-height-expected.txt:
  • platform/mac/fast/forms/textarea-scrollbar-expected.txt:
  • platform/mac/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/mac/fast/forms/textarea-width-expected.txt:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
10:30 AM Changeset in webkit [280481] by youenn@apple.com
  • 8 edits in trunk/Source/WebKit

Attribute nw connections to the source application
https://bugs.webkit.org/show_bug.cgi?id=228641
<rdar://81039713>

Reviewed by Alex Christensen.

Add source application token for every nw connection/listener, like done for WebSocket or NSURLSession tasks.
This will allow the nw layer to do custom processing based on the application doing the loads.
Introduce an audit_token_t getter on NetworkProcess.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::sourceApplicationAuditData const):
(WebKit::NetworkProcess::sourceApplicationAuditToken const):

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::sourceApplicationAuditToken const):

  • NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:

(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):

  • Platform/spi/Cocoa/NWParametersSPI.h:
10:02 AM Changeset in webkit [280480] by sihui_liu@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=201481
<rdar://problem/55046055>

Reviewed by Youenn Fablet.

The test always passes now according to recent results, but it is shown as failed as TEXT because of the
expectation.

  • platform/mac/TestExpectations:
9:41 AM Changeset in webkit [280479] by Chris Dumez
  • 13 edits in trunk

Clicking an HTMLLinkElement should not trigger a navigation
https://bugs.webkit.org/show_bug.cgi?id=228618

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub-expected.txt:

Source/WebCore:

Clicking an HTMLLinkElement should not trigger a navigation because HTMLLinkElement has no activation
behavior as per the HTML specification:

Firefox and Chrome follow the specification here.

No new tests, updated/rebaselined existing tests.

  • html/HTMLLinkElement.cpp:
  • html/HTMLLinkElement.h:

LayoutTests:

Update existing tests to reflect behavior change. I verified that the tests were failing
in both Firefox and Chrome prior to me updating them.

  • fast/dom/html-link-element-activation-behavior-on-element-click-expected.txt:
  • fast/dom/html-link-element-activation-behavior-on-element-click.html:
  • fast/dom/html-link-element-activation-behavior-on-mouse-click-expected.txt:
  • fast/dom/html-link-element-activation-behavior-on-mouse-click.html:
  • fast/dom/resources/html-link-element-activation-behavior-on-element-click-step1.html:
  • fast/dom/resources/html-link-element-activation-behavior-on-mouse-click-step1.html:
  • fast/dom/resources/html-link-element-activation-behavior-target.html:
9:35 AM Changeset in webkit [280478] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Not all platforms support more -F
https://bugs.webkit.org/show_bug.cgi?id=228619
<rdar://problem/81296290>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(FilteredCommand.pager): Only pass -F to more on Darwin.

9:21 AM Changeset in webkit [280477] by dino@apple.com
  • 7 edits in trunk

[Media Controls] Add an option for having no scrubber on the time control and parameterize margin
https://bugs.webkit.org/show_bug.cgi?id=228633
rdar://81314458

Reviewed by Tim Horton.

Source/WebCore:

Add support for a scrubber bar that does not have a knob (or, to be clear, an
invisible knob). While here, move the constant for the margin into a custom
CSS property so it can be easily overridden.

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

(*): Add --scrubber-margin custom property.

  • Modules/modern-media-controls/controls/slider.css:

(.slider > .custom-slider > .knob.none): Add style for a "none" knob.

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

(Slider.prototype.commit): Support "none".

  • Modules/modern-media-controls/controls/time-control.js: Get the margin from

the new custom property.
(TimeControl.prototype.get minimumWidth):
(TimeControl.prototype.get idealMinimumWidth):
(TimeControl.prototype.layout):
(TimeControl.prototype._performIdealLayout):

LayoutTests:

Make sure the TimeControls element is in the document so its computed style
can be read.

  • media/modern-media-controls/time-control/time-control.html:
8:47 AM Changeset in webkit [280476] by Chris Dumez
  • 6 edits in trunk

postMessage() should throw if any duplicate transferable is found in transferList
https://bugs.webkit.org/show_bug.cgi?id=228608

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt:

Source/WebCore:

postMessage() should throw if any duplicate transferable is found in transferList:

No new tests, rebaselined existing test.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::create):

8:25 AM Changeset in webkit [280475] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ BigSur Release wk2 arm64] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228644.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:02 AM Changeset in webkit [280474] by Eric Hutchison
  • 3 edits in trunk/LayoutTests

Updated test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/header-parsing.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228197.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
7:52 AM Changeset in webkit [280473] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html is a flaky failure .
https://bugs.webkit.org/show_bug.cgi?id=228642.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
7:00 AM Changeset in webkit [280472] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[Mac Debug] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228640.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:09 AM Changeset in webkit [280471] by commit-queue@webkit.org
  • 4 edits in trunk

[AspectRatio] Fix replaced-element-034.html
https://bugs.webkit.org/show_bug.cgi?id=228223

Patch by Rob Buis <rbuis@igalia.com> on 2021-07-30
Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

Fix replaced-element-034.html by making hasReplacedLogicalHeight
return false for *-content when aspect-ratio is provided and relying
on computeReplacedLogicalHeight to take aspect-ratio into account.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::hasReplacedLogicalHeight const):

LayoutTests:

1:41 AM Changeset in webkit [280470] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Use UCPURegister argument to remove zero extension in JIT code
https://bugs.webkit.org/show_bug.cgi?id=228625

Reviewed by Robin Morisset.

Yarr JIT code emits zeroExtend32ToWord for some arguments, but this is not necessary if
argument is defined as UCPURegister. In that case, caller guarantees that top 32bits are
cleared.

  • yarr/YarrJIT.cpp:
  • yarr/YarrJIT.h:
1:29 AM Changeset in webkit [280469] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Fix fallback methods in the libgcrypt find module
https://bugs.webkit.org/show_bug.cgi?id=228581

Reviewed by Carlos Alberto Lopez Perez.

  • Source/cmake/FindLibGcrypt.cmake: Make sure to use the libgcrypt-config script as

first fallback if libgcrypt.pc is not present, and fix the regexp used as last fallback
that checks the version from the gcrypt.h header as last fallback to only include digits
and periods.

Jul 29, 2021:

11:43 PM Changeset in webkit [280468] by Tomoki Imai
  • 3 edits
    2 adds in trunk

Missing playing events when the ready state becomes HAVE_FUTURE_DATA/HAVE_ENOUGH_DATA from HAVE_METADATA state
https://bugs.webkit.org/show_bug.cgi?id=228531

Reviewed by Eric Carlson.

Source/WebCore:

The main issue is that missing playing event when the ready state becomes HAVE_FUTURE_DATA or HAVE_ENOUGH_DATA from HAVE_METADATA.
According to the specification, we need to "notify about playing" in the following cases:

  • If the previous ready state was HAVE_CURRENT_DATA or less, and the new ready state is HAVE_FUTURE_DATA, and it's not paused.
  • If the new ready state is HAVE_ENOUGH_DATA, and it's eligible for autoplay

The implementation didn't cover these cases and had web compatibility issues.

We also should move scheduleNotifyAboutPlaying from setPlaying to playInternal and checks the ready state.

  • Without this change, playing event is fired twice. The first one is fired by setReadyState, and the second is called from setPlaying.
  • According to the specification, scheduleNotifyAboutPlaying should be in "internal play steps" and check the ready state. Checking ready state fixes the issue where playing event is fired twice.

Test: media/media-source/media-source-monitor-playing-event.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setReadyState): Added missing scheduleNotifyAboutPlaying calls. Added do-while to make the implementation similar to the specification text
(WebCore::HTMLMediaElement::playInternal): Added scheduleNotifyAboutPlaying call.

According to the specification, "internal play steps" should "notify about playing" when
the ready state is HAVE_FUTURE_DATA or HAVE_ENOUGH_DATA.

(WebCore::HTMLMediaElement::setPlaying): Removed scheduleNotifyAboutPlaying call because playInternal now calls scheduleNotifyAboutPlaying instead.

Reference:

LayoutTests:

Added the testcase to checks if the playing event is fired correctly on the ready state changes.

  • media/media-source/media-source-monitor-playing-event-expected.txt: Added.
  • media/media-source/media-source-monitor-playing-event.html: Added.
8:53 PM Changeset in webkit [280467] by mmaxfield@apple.com
  • 71 edits
    396 deletes in trunk

Stop building WebGPU and the WHLSL compiler to decrease binary size
https://bugs.webkit.org/show_bug.cgi?id=228179

Reviewed by Dean Jackson, Robin Morisset, and Devin Rousso.

.:

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWinCairo.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

This patch deletes the existing implementation just to reduce binary size in releases of WebKit
which don't enable WebGPU by default. It doesn't represent a change in direction or policy or
anything regarding WebGPU. It's a (somewhat temporary) pragmatic change.

Our current implementation of WebGPU:

  1. Is off by default on all platforms
  2. Is extremely outdated
  3. Has no notion of the GPU Process, and therefore needs to be redesigned and largely rewritten
  4. Only implements a fraction of what is in the spec

Removing the code from the tree doesn't delete it from existence; it's still in source control.
The benefit of reducing binary size seems to outweigh having this code in the tree.

  • inspector/protocol/Canvas.json:
  • inspector/scripts/codegen/generator.py:

Source/WebCore:

No new tests because there is no behavior change.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webgpu/GPUBindGroupLayoutBinding.h: Removed.
  • Modules/webgpu/GPUBindGroupLayoutBinding.idl: Removed.
  • Modules/webgpu/GPUBindGroupLayoutDescriptor.h: Removed.
  • Modules/webgpu/GPUBindGroupLayoutDescriptor.idl: Removed.
  • Modules/webgpu/GPUBlendDescriptor.idl: Removed.
  • Modules/webgpu/GPUBufferDescriptor.idl: Removed.
  • Modules/webgpu/GPUBufferUsage.idl: Removed.
  • Modules/webgpu/GPUCanvasContext.cpp: Removed.
  • Modules/webgpu/GPUCanvasContext.h: Removed.
  • Modules/webgpu/GPUCanvasContext.idl: Removed.
  • Modules/webgpu/GPUColor.idl: Removed.
  • Modules/webgpu/GPUColorStateDescriptor.idl: Removed.
  • Modules/webgpu/GPUColorWrite.idl: Removed.
  • Modules/webgpu/GPUCompareFunction.idl: Removed.
  • Modules/webgpu/GPUDepthStencilStateDescriptor.idl: Removed.
  • Modules/webgpu/GPUErrorFilter.idl: Removed.
  • Modules/webgpu/GPUExtent3D.idl: Removed.
  • Modules/webgpu/GPULoadOp.idl: Removed.
  • Modules/webgpu/GPUOrigin3D.h: Removed.
  • Modules/webgpu/GPUOrigin3D.idl: Removed.
  • Modules/webgpu/GPUOutOfMemoryError.idl: Removed.
  • Modules/webgpu/GPURequestAdapterOptions.idl: Removed.
  • Modules/webgpu/GPUSamplerDescriptor.idl: Removed.
  • Modules/webgpu/GPUShaderStage.h: Removed.
  • Modules/webgpu/GPUShaderStage.idl: Removed.
  • Modules/webgpu/GPUStoreOp.idl: Removed.
  • Modules/webgpu/GPUTextureDescriptor.idl: Removed.
  • Modules/webgpu/GPUTextureFormat.idl: Removed.
  • Modules/webgpu/GPUTextureUsage.idl: Removed.
  • Modules/webgpu/GPUUncapturedErrorEvent.cpp: Removed.
  • Modules/webgpu/GPUUncapturedErrorEvent.h: Removed.
  • Modules/webgpu/GPUUncapturedErrorEvent.idl: Removed.
  • Modules/webgpu/GPUValidationError.idl: Removed.
  • Modules/webgpu/GPUVertexAttributeDescriptor.idl: Removed.
  • Modules/webgpu/GPUVertexBufferDescriptor.idl: Removed.
  • Modules/webgpu/GPUVertexInputDescriptor.idl: Removed.
  • Modules/webgpu/Navigator+GPU.idl: Removed.
  • Modules/webgpu/NavigatorGPU.cpp: Removed.
  • Modules/webgpu/NavigatorGPU.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLAST.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLAddressEscapeMode.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLAddressSpace.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLAssignmentExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLBaseFunctionAttribute.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLBaseSemantic.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLBlock.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLBooleanLiteral.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLBreak.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLCommaExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLConstantExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLContinue.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLDefaultDelete.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLDereferenceExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLDoWhileLoop.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLDotExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLEffectfulExpressionStatement.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLEntryPointType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMember.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMemberLiteral.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLExpression.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLFallthrough.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteral.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLFunctionAttribute.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLFunctionDefinition.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLGlobalVariableReference.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLIfStatement.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteral.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteral.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLLogicalExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLLogicalNotExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLMakeArrayReferenceExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLMakePointerExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLNameSpace.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLNativeFunctionDeclaration.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLNumThreadsFunctionAttribute.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLQualifier.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLReplaceWith.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLResolvableType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLSemantic.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLSpecializationConstantSemantic.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLSpecializationConstantSemantic.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLStageInOutSemantic.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLStageInOutSemantic.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLStatement.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLSwitchCase.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLSwitchStatement.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLTernaryExpression.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLTypeArgument.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLTypeArgument.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedTypeHash.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteral.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteral.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.cpp: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclarationsStatement.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h: Removed.
  • Modules/webgpu/WHLSL/AST/WHLSLWhileLoop.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLMangledNames.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLVertexBufferIndexCalculator.cpp: Removed.
  • Modules/webgpu/WHLSL/Metal/WHLSLVertexBufferIndexCalculator.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLASTDumper.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLASTDumper.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLBuildStandardLibraryFunctionMap.py: Removed.
  • Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLCheckReferenceTypes.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLCheckReferenceTypes.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLCheckTextureReferences.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLCheckTextureReferences.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLChecker.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLChecker.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLCodeLocation.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLComputeDimensions.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLError.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLFunctionStageChecker.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLFunctionStageChecker.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLHighZombieFinder.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLHighZombieFinder.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLInferTypes.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLIntrinsics.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLLexer.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLLexer.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLLiteralTypeChecker.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLLiteralTypeChecker.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLNameContext.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLNameContext.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLNameResolver.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLNameResolver.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLParser.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLParser.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLParsingMode.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLPipelineDescriptor.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLPrepare.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLProgram.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLPruneUnreachableStandardLibraryFunctions.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLPruneUnreachableStandardLibraryFunctions.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLRecursionChecker.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLRecursiveTypeChecker.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLRecursiveTypeChecker.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLResolvingType.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLScopedSetAdder.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: Removed.
  • Modules/webgpu/WHLSL/WHLSLStandardLibraryFunctionMap.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLStatementBehaviorChecker.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.h: Removed.
  • Modules/webgpu/WHLSL/WHLSLVisitor.cpp: Removed.
  • Modules/webgpu/WHLSL/WHLSLVisitor.h: Removed.
  • Modules/webgpu/WebGPU.cpp: Removed.
  • Modules/webgpu/WebGPU.h: Removed.
  • Modules/webgpu/WebGPU.idl: Removed.
  • Modules/webgpu/WebGPUAdapter.cpp: Removed.
  • Modules/webgpu/WebGPUAdapter.h: Removed.
  • Modules/webgpu/WebGPUAdapter.idl: Removed.
  • Modules/webgpu/WebGPUBindGroup.cpp: Removed.
  • Modules/webgpu/WebGPUBindGroup.h: Removed.
  • Modules/webgpu/WebGPUBindGroup.idl: Removed.
  • Modules/webgpu/WebGPUBindGroupBinding.h: Removed.
  • Modules/webgpu/WebGPUBindGroupBinding.idl: Removed.
  • Modules/webgpu/WebGPUBindGroupDescriptor.cpp: Removed.
  • Modules/webgpu/WebGPUBindGroupDescriptor.h: Removed.
  • Modules/webgpu/WebGPUBindGroupDescriptor.idl: Removed.
  • Modules/webgpu/WebGPUBindGroupLayout.cpp: Removed.
  • Modules/webgpu/WebGPUBindGroupLayout.h: Removed.
  • Modules/webgpu/WebGPUBindGroupLayout.idl: Removed.
  • Modules/webgpu/WebGPUBuffer.cpp: Removed.
  • Modules/webgpu/WebGPUBuffer.h: Removed.
  • Modules/webgpu/WebGPUBuffer.idl: Removed.
  • Modules/webgpu/WebGPUBufferBinding.h: Removed.
  • Modules/webgpu/WebGPUBufferBinding.idl: Removed.
  • Modules/webgpu/WebGPUCommandBuffer.cpp: Removed.
  • Modules/webgpu/WebGPUCommandBuffer.h: Removed.
  • Modules/webgpu/WebGPUCommandBuffer.idl: Removed.
  • Modules/webgpu/WebGPUCommandEncoder.cpp: Removed.
  • Modules/webgpu/WebGPUCommandEncoder.h: Removed.
  • Modules/webgpu/WebGPUCommandEncoder.idl: Removed.
  • Modules/webgpu/WebGPUComputePassEncoder.cpp: Removed.
  • Modules/webgpu/WebGPUComputePassEncoder.h: Removed.
  • Modules/webgpu/WebGPUComputePassEncoder.idl: Removed.
  • Modules/webgpu/WebGPUComputePipeline.cpp: Removed.
  • Modules/webgpu/WebGPUComputePipeline.h: Removed.
  • Modules/webgpu/WebGPUComputePipeline.idl: Removed.
  • Modules/webgpu/WebGPUComputePipelineDescriptor.cpp: Removed.
  • Modules/webgpu/WebGPUComputePipelineDescriptor.h: Removed.
  • Modules/webgpu/WebGPUComputePipelineDescriptor.idl: Removed.
  • Modules/webgpu/WebGPUDevice.cpp: Removed.
  • Modules/webgpu/WebGPUDevice.h: Removed.
  • Modules/webgpu/WebGPUDevice.idl: Removed.
  • Modules/webgpu/WebGPUDeviceErrorScopes.cpp: Removed.
  • Modules/webgpu/WebGPUDeviceErrorScopes.h: Removed.
  • Modules/webgpu/WebGPUDeviceErrorScopes.idl: Removed.
  • Modules/webgpu/WebGPUDeviceEventHandler.idl: Removed.
  • Modules/webgpu/WebGPUPipeline.cpp: Removed.
  • Modules/webgpu/WebGPUPipeline.h: Removed.
  • Modules/webgpu/WebGPUPipelineDescriptorBase.h: Removed.
  • Modules/webgpu/WebGPUPipelineDescriptorBase.idl: Removed.
  • Modules/webgpu/WebGPUPipelineLayout.cpp: Removed.
  • Modules/webgpu/WebGPUPipelineLayout.h: Removed.
  • Modules/webgpu/WebGPUPipelineLayout.idl: Removed.
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.cpp: Removed.
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.h: Removed.
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl: Removed.
  • Modules/webgpu/WebGPUProgrammablePassEncoder.cpp: Removed.
  • Modules/webgpu/WebGPUProgrammablePassEncoder.h: Removed.
  • Modules/webgpu/WebGPUProgrammablePassEncoder.idl: Removed.
  • Modules/webgpu/WebGPUProgrammableStageDescriptor.cpp: Removed.
  • Modules/webgpu/WebGPUProgrammableStageDescriptor.h: Removed.
  • Modules/webgpu/WebGPUProgrammableStageDescriptor.idl: Removed.
  • Modules/webgpu/WebGPUQueue.cpp: Removed.
  • Modules/webgpu/WebGPUQueue.h: Removed.
  • Modules/webgpu/WebGPUQueue.idl: Removed.
  • Modules/webgpu/WebGPURenderPassDescriptor.cpp: Removed.
  • Modules/webgpu/WebGPURenderPassDescriptor.h: Removed.
  • Modules/webgpu/WebGPURenderPassDescriptor.idl: Removed.
  • Modules/webgpu/WebGPURenderPassEncoder.cpp: Removed.
  • Modules/webgpu/WebGPURenderPassEncoder.h: Removed.
  • Modules/webgpu/WebGPURenderPassEncoder.idl: Removed.
  • Modules/webgpu/WebGPURenderPipeline.cpp: Removed.
  • Modules/webgpu/WebGPURenderPipeline.h: Removed.
  • Modules/webgpu/WebGPURenderPipeline.idl: Removed.
  • Modules/webgpu/WebGPURenderPipelineDescriptor.cpp: Removed.
  • Modules/webgpu/WebGPURenderPipelineDescriptor.h: Removed.
  • Modules/webgpu/WebGPURenderPipelineDescriptor.idl: Removed.
  • Modules/webgpu/WebGPUSampler.cpp: Removed.
  • Modules/webgpu/WebGPUSampler.h: Removed.
  • Modules/webgpu/WebGPUSampler.idl: Removed.
  • Modules/webgpu/WebGPUShaderModule.cpp: Removed.
  • Modules/webgpu/WebGPUShaderModule.h: Removed.
  • Modules/webgpu/WebGPUShaderModule.idl: Removed.
  • Modules/webgpu/WebGPUShaderModuleDescriptor.h: Removed.
  • Modules/webgpu/WebGPUShaderModuleDescriptor.idl: Removed.
  • Modules/webgpu/WebGPUSwapChain.cpp: Removed.
  • Modules/webgpu/WebGPUSwapChain.h: Removed.
  • Modules/webgpu/WebGPUSwapChain.idl: Removed.
  • Modules/webgpu/WebGPUSwapChainDescriptor.cpp: Removed.
  • Modules/webgpu/WebGPUSwapChainDescriptor.h: Removed.
  • Modules/webgpu/WebGPUTexture.cpp: Removed.
  • Modules/webgpu/WebGPUTexture.h: Removed.
  • Modules/webgpu/WebGPUTexture.idl: Removed.
  • Modules/webgpu/WebGPUTextureView.cpp: Removed.
  • Modules/webgpu/WebGPUTextureView.h: Removed.
  • Modules/webgpu/WebGPUTextureView.idl: Removed.
  • Modules/webgpu/WorkerNavigator+GPU.idl: Removed.
  • Modules/webgpu/WorkerNavigatorGPU.cpp: Removed.
  • Modules/webgpu/WorkerNavigatorGPU.h: Removed.
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Document.cpp:

(WebCore::Document::getCSSCanvasContext):

  • dom/Document.h:
  • dom/Document.idl:
  • dom/EventNames.in:
  • dom/EventTargetFactory.in:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::isWebGPUType): Deleted.
(WebCore::HTMLCanvasElement::createContextWebGPU): Deleted.
(WebCore::HTMLCanvasElement::getContextWebGPU): Deleted.

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:
  • html/canvas/CanvasRenderingContext.h:

(WebCore::CanvasRenderingContext::isWebGL const):
(WebCore::CanvasRenderingContext::isWebGPU const): Deleted.

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::InspectorCanvas):
(WebCore::InspectorCanvas::canvasElement const):
(WebCore::InspectorCanvas::scriptExecutionContext const):
(WebCore::InspectorCanvas::resolveContext const):
(WebCore:: const):
(WebCore::InspectorCanvas::resetRecordingData):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::releaseObjectForRecording):
(WebCore::InspectorCanvas::buildInitialState):
(WebCore::canvasIfContextMatchesDevice): Deleted.
(WebCore::InspectorCanvas::deviceContext const): Deleted.
(WebCore::InspectorCanvas::isDeviceForCanvasContext const): Deleted.

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

(WebCore::InspectorInstrumentation::didCreateWebGPUDeviceImpl): Deleted.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDeviceImpl): Deleted.
(WebCore::InspectorInstrumentation::willConfigureSwapChainImpl): Deleted.
(WebCore::InspectorInstrumentation::didCreateWebGPUPipelineImpl): Deleted.
(WebCore::InspectorInstrumentation::willDestroyWebGPUPipelineImpl): Deleted.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didCreateWebGPUDevice): Deleted.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDevice): Deleted.
(WebCore::InspectorInstrumentation::willConfigureSwapChain): Deleted.
(WebCore::InspectorInstrumentation::didCreateWebGPUPipeline): Deleted.
(WebCore::InspectorInstrumentation::willDestroyWebGPUPipeline): Deleted.

  • inspector/InspectorShaderProgram.cpp:

(WebCore::InspectorShaderProgram::requestShaderSource):
(WebCore::InspectorShaderProgram::updateShader):
(WebCore::InspectorShaderProgram::buildObjectForShaderProgram):
(WebCore::InspectorShaderProgram::pipeline const): Deleted.

  • inspector/InspectorShaderProgram.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::recordAction):
(WebCore::InspectorCanvasAgent::reset):
(WebCore::InspectorCanvasAgent::didCreateWebGPUDevice): Deleted.
(WebCore::InspectorCanvasAgent::willDestroyWebGPUDevice): Deleted.
(WebCore::InspectorCanvasAgent::willConfigureSwapChain): Deleted.
(WebCore::InspectorCanvasAgent::didCreateWebGPUPipeline): Deleted.
(WebCore::InspectorCanvasAgent::willDestroyWebGPUPipeline): Deleted.

  • inspector/agents/InspectorCanvasAgent.h:
  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • platform/Logging.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):

  • platform/graphics/cocoa/WebGPULayer.h: Removed.
  • platform/graphics/cocoa/WebGPULayer.mm: Removed.
  • platform/graphics/gpu/GPUBindGroup.h: Removed.
  • platform/graphics/gpu/GPUBindGroupAllocator.h: Removed.
  • platform/graphics/gpu/GPUBindGroupBinding.h: Removed.
  • platform/graphics/gpu/GPUBindGroupDescriptor.h: Removed.
  • platform/graphics/gpu/GPUBindGroupLayout.h: Removed.
  • platform/graphics/gpu/GPUBlendDescriptor.h: Removed.
  • platform/graphics/gpu/GPUBuffer.cpp: Removed.
  • platform/graphics/gpu/GPUBuffer.h: Removed.
  • platform/graphics/gpu/GPUBufferBinding.h: Removed.
  • platform/graphics/gpu/GPUBufferDescriptor.h: Removed.
  • platform/graphics/gpu/GPUBufferUsage.h: Removed.
  • platform/graphics/gpu/GPUColor.h: Removed.
  • platform/graphics/gpu/GPUColorStateDescriptor.h: Removed.
  • platform/graphics/gpu/GPUColorWrite.h: Removed.
  • platform/graphics/gpu/GPUCommandBuffer.h: Removed.
  • platform/graphics/gpu/GPUCompareFunction.h: Removed.
  • platform/graphics/gpu/GPUComputePassEncoder.h: Removed.
  • platform/graphics/gpu/GPUComputePipeline.h: Removed.
  • platform/graphics/gpu/GPUComputePipelineDescriptor.h: Removed.
  • platform/graphics/gpu/GPUDepthStencilStateDescriptor.h: Removed.
  • platform/graphics/gpu/GPUDevice.cpp: Removed.
  • platform/graphics/gpu/GPUDevice.h:

(WebCore::GPUDevice::platformDevice const): Deleted.
(WebCore::GPUDevice::swapChain const): Deleted.
(WebCore::GPUDevice::setErrorScopes): Deleted.

  • platform/graphics/gpu/GPUError.cpp: Removed.
  • platform/graphics/gpu/GPUError.h: Removed.
  • platform/graphics/gpu/GPUErrorFilter.h: Removed.
  • platform/graphics/gpu/GPUErrorScopes.cpp: Removed.
  • platform/graphics/gpu/GPUErrorScopes.h: Removed.
  • platform/graphics/gpu/GPUExtent3D.h: Removed.
  • platform/graphics/gpu/GPULimits.h: Removed.
  • platform/graphics/gpu/GPULoadOp.h: Removed.
  • platform/graphics/gpu/GPUObjectBase.h: Removed.
  • platform/graphics/gpu/GPUOutOfMemoryError.h: Removed.
  • platform/graphics/gpu/GPUPipeline.cpp: Removed.
  • platform/graphics/gpu/GPUPipeline.h: Removed.
  • platform/graphics/gpu/GPUPipelineDescriptorBase.h: Removed.
  • platform/graphics/gpu/GPUPipelineLayout.cpp: Removed.
  • platform/graphics/gpu/GPUPipelineLayout.h: Removed.
  • platform/graphics/gpu/GPUPipelineLayoutDescriptor.h: Removed.
  • platform/graphics/gpu/GPUPlatformTypes.h: Removed.
  • platform/graphics/gpu/GPUProgrammablePassEncoder.cpp: Removed.
  • platform/graphics/gpu/GPUProgrammablePassEncoder.h: Removed.
  • platform/graphics/gpu/GPUProgrammableStageDescriptor.h: Removed.
  • platform/graphics/gpu/GPUQueue.h: Removed.
  • platform/graphics/gpu/GPURenderPassDescriptor.h: Removed.
  • platform/graphics/gpu/GPURenderPassEncoder.h: Removed.
  • platform/graphics/gpu/GPURenderPipeline.h: Removed.
  • platform/graphics/gpu/GPURenderPipelineDescriptor.h: Removed.
  • platform/graphics/gpu/GPURequestAdapterOptions.h: Removed.
  • platform/graphics/gpu/GPUSampler.h: Removed.
  • platform/graphics/gpu/GPUSamplerDescriptor.h: Removed.
  • platform/graphics/gpu/GPUShaderModule.h: Removed.
  • platform/graphics/gpu/GPUShaderModuleDescriptor.h: Removed.
  • platform/graphics/gpu/GPUStoreOp.h: Removed.
  • platform/graphics/gpu/GPUSwapChain.h: Removed.
  • platform/graphics/gpu/GPUSwapChainDescriptor.h: Removed.
  • platform/graphics/gpu/GPUTexture.h: Removed.
  • platform/graphics/gpu/GPUTextureDescriptor.h: Removed.
  • platform/graphics/gpu/GPUTextureFormat.h: Removed.
  • platform/graphics/gpu/GPUTextureUsage.h: Removed.
  • platform/graphics/gpu/GPUUtils.h: Removed.
  • platform/graphics/gpu/GPUValidationError.cpp: Removed.
  • platform/graphics/gpu/GPUValidationError.h: Removed.
  • platform/graphics/gpu/GPUVertexAttributeDescriptor.h: Removed.
  • platform/graphics/gpu/GPUVertexBufferDescriptor.h: Removed.
  • platform/graphics/gpu/GPUVertexInputDescriptor.h: Removed.
  • platform/graphics/gpu/cocoa/GPUBindGroupAllocatorMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUBindGroupLayoutMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::prewarmGPU):
(WebCore::isAcceptableDevice): Deleted.
(WebCore::GPUDevice::prewarm): Deleted.
(WebCore::GPUDevice::tryCreate): Deleted.
(WebCore::GPUDevice::GPUDevice): Deleted.

  • platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.cpp: Removed.
  • platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.h: Removed.
  • platform/graphics/gpu/cocoa/GPUPlatformTypesMetal.h: Removed.
  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUQueueMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUSamplerMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUSwapChainMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUTextureMetal.mm: Removed.
  • platform/graphics/gpu/cocoa/GPUUtilsMetal.mm: Removed.
  • platform/graphics/gpu/dawn/GPUBindGroupAllocatorDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUBindGroupDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUBindGroupLayoutDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUBufferDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUCommandBufferDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUComputePassEncoderDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUComputePipelineDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUDeviceDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUPlatformTypesDawn.h: Removed.
  • platform/graphics/gpu/dawn/GPUProgrammablePassEncoderDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUQueueDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPURenderPassEncoderDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPURenderPipelineDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUSamplerDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUShaderModuleDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUSwapChainDawn.cpp: Removed.
  • platform/graphics/gpu/dawn/GPUTextureDawn.cpp: Removed.
  • platform/ios/DragImageIOS.mm:
  • platform/mediastream/mac/WindowDisplayCapturerMac.mm:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::contentChanged):

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebGPUEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences webGPUEnabled]): Deleted.
(-[WebPreferences setWebGPUEnabled:]): Deleted.

  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultWebGPUEnabled): Deleted.

  • WebView/WebPreferencesPrivate.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • TestExpectations:
  • fast/dom/navigator-detached-no-crash-expected.txt:
  • inspector/canvas/create-context-webgpu-expected.txt: Removed.
  • inspector/canvas/create-context-webgpu.html: Removed.
  • inspector/canvas/requestClientNodes-webgpu-expected.txt: Removed.
  • inspector/canvas/requestClientNodes-webgpu.html: Removed.
  • inspector/canvas/requestShaderSource-webgpu-expected.txt: Removed.
  • inspector/canvas/requestShaderSource-webgpu.html: Removed.
  • inspector/canvas/resolveContext-webgpu-expected.txt: Removed.
  • inspector/canvas/resolveContext-webgpu.html: Removed.
  • inspector/canvas/shaderProgram-add-remove-webgpu-expected.txt: Removed.
  • inspector/canvas/shaderProgram-add-remove-webgpu.html: Removed.
  • inspector/canvas/updateShader-webgpu-expected.txt: Removed.
  • inspector/canvas/updateShader-webgpu-sharedVertexFragment-expected.txt: Removed.
  • inspector/canvas/updateShader-webgpu-sharedVertexFragment.html: Removed.
  • inspector/canvas/updateShader-webgpu.html: Removed.
  • platform/glib/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • webgpu/bind-groups-expected.txt: Removed.
  • webgpu/bind-groups.html: Removed.
  • webgpu/blend-color-triangle-strip-expected.html: Removed.
  • webgpu/blend-color-triangle-strip.html: Removed.
  • webgpu/blend-triangle-strip-expected.html: Removed.
  • webgpu/blend-triangle-strip.html: Removed.
  • webgpu/blit-commands-expected.html: Removed.
  • webgpu/blit-commands-texture-to-texture-expected.html: Removed.
  • webgpu/blit-commands-texture-to-texture.html: Removed.
  • webgpu/blit-commands.html: Removed.
  • webgpu/buffer-command-buffer-races-expected.html: Removed.
  • webgpu/buffer-command-buffer-races.html: Removed.
  • webgpu/buffer-errors-expected.txt: Removed.
  • webgpu/buffer-errors.html: Removed.
  • webgpu/color-write-mask-triangle-strip-expected.html: Removed.
  • webgpu/color-write-mask-triangle-strip.html: Removed.
  • webgpu/command-buffers-expected.txt: Removed.
  • webgpu/command-buffers.html: Removed.
  • webgpu/compute-pipeline-errors-expected.txt: Removed.
  • webgpu/compute-pipeline-errors.html: Removed.
  • webgpu/depth-enabled-triangle-strip-expected.html: Removed.
  • webgpu/depth-enabled-triangle-strip.html: Removed.
  • webgpu/draw-indexed-triangles-expected.html: Removed.
  • webgpu/draw-indexed-triangles.html: Removed.
  • webgpu/error-scopes-test-expected.txt: Removed.
  • webgpu/error-scopes-test.html: Removed.
  • webgpu/expando-properties-expected.txt: Removed.
  • webgpu/expando-properties.html: Removed.
  • webgpu/js/webgpu-functions.js: Removed.
  • webgpu/map-read-buffers-expected.txt: Removed.
  • webgpu/map-read-buffers.html: Removed.
  • webgpu/map-write-buffers-expected.txt: Removed.
  • webgpu/map-write-buffers.html: Removed.
  • webgpu/pipeline-layouts-expected.txt: Removed.
  • webgpu/pipeline-layouts.html: Removed.
  • webgpu/queue-creation-expected.txt: Removed.
  • webgpu/queue-creation.html: Removed.
  • webgpu/render-command-encoding-expected.txt: Removed.
  • webgpu/render-command-encoding.html: Removed.
  • webgpu/render-pipeline-errors-expected.txt: Removed.
  • webgpu/render-pipeline-errors.html: Removed.
  • webgpu/render-pipelines-expected.txt: Removed.
  • webgpu/render-pipelines.html: Removed.
  • webgpu/resources/blue-checkered.png: Removed.
  • webgpu/resources/green-400.png: Removed.
  • webgpu/shader-modules-expected.txt: Removed.
  • webgpu/shader-modules.html: Removed.
  • webgpu/simple-triangle-strip-expected.html: Removed.
  • webgpu/simple-triangle-strip.html: Removed.
  • webgpu/texture-creation-expected.txt: Removed.
  • webgpu/texture-creation.html: Removed.
  • webgpu/texture-triangle-strip-expected.html: Removed.
  • webgpu/texture-triangle-strip.html: Removed.
  • webgpu/textures-textureviews-expected.txt: Removed.
  • webgpu/textures-textureviews.html: Removed.
  • webgpu/uncaptured-errors-expected.txt: Removed.
  • webgpu/uncaptured-errors.html: Removed.
  • webgpu/vertex-buffer-triangle-strip-expected.html: Removed.
  • webgpu/vertex-buffer-triangle-strip.html: Removed.
  • webgpu/viewport-scissor-rect-triangle-strip-expected.html: Removed.
  • webgpu/viewport-scissor-rect-triangle-strip.html: Removed.
  • webgpu/whlsl/address-of-swizzle-expected.txt: Removed.
  • webgpu/whlsl/address-of-swizzle.html: Removed.
  • webgpu/whlsl/arbitrary-vertex-attribute-locations-expected.html: Removed.
  • webgpu/whlsl/arbitrary-vertex-attribute-locations.html: Removed.
  • webgpu/whlsl/argument-evaluation-order-expected.txt: Removed.
  • webgpu/whlsl/argument-evaluation-order.html: Removed.
  • webgpu/whlsl/array-length-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/array-length-spec-tests.html: Removed.
  • webgpu/whlsl/array-oob-alias-expected.txt: Removed.
  • webgpu/whlsl/array-oob-alias.html: Removed.
  • webgpu/whlsl/array-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/array-spec-tests.html: Removed.
  • webgpu/whlsl/bad-add-expected.txt: Removed.
  • webgpu/whlsl/bad-add.html: Removed.
  • webgpu/whlsl/bad-literals-expected.txt: Removed.
  • webgpu/whlsl/bad-literals.html: Removed.
  • webgpu/whlsl/bitwise-bool-ops-expected.txt: Removed.
  • webgpu/whlsl/bitwise-bool-ops.html: Removed.
  • webgpu/whlsl/bool-matrix-expected.txt: Removed.
  • webgpu/whlsl/bool-matrix.html: Removed.
  • webgpu/whlsl/bools-expected.txt: Removed.
  • webgpu/whlsl/bools.html: Removed.
  • webgpu/whlsl/buffer-fragment-expected.html: Removed.
  • webgpu/whlsl/buffer-fragment.html: Removed.
  • webgpu/whlsl/buffer-length-expected.txt: Removed.
  • webgpu/whlsl/buffer-length.html: Removed.
  • webgpu/whlsl/buffer-vertex-expected.html: Removed.
  • webgpu/whlsl/buffer-vertex.html: Removed.
  • webgpu/whlsl/builtin-vectors-2-expected.txt: Removed.
  • webgpu/whlsl/builtin-vectors-2.html: Removed.
  • webgpu/whlsl/builtin-vectors-expected.txt: Removed.
  • webgpu/whlsl/builtin-vectors.html: Removed.
  • webgpu/whlsl/casts-expected.txt: Removed.
  • webgpu/whlsl/casts.html: Removed.
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables-expected.txt: Removed.
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html: Removed.
  • webgpu/whlsl/clamp-stdlib-expected.txt: Removed.
  • webgpu/whlsl/clamp-stdlib.html: Removed.
  • webgpu/whlsl/comment-parsing-expected.txt: Removed.
  • webgpu/whlsl/comment-parsing.html: Removed.
  • webgpu/whlsl/compute-expected.txt: Removed.
  • webgpu/whlsl/compute.html: Removed.
  • webgpu/whlsl/copy-expected.txt: Removed.
  • webgpu/whlsl/copy.html: Removed.
  • webgpu/whlsl/dereference-ordering-expected.txt: Removed.
  • webgpu/whlsl/dereference-ordering.html: Removed.
  • webgpu/whlsl/dereference-pointer-should-type-check-expected.html: Removed.
  • webgpu/whlsl/dereference-pointer-should-type-check.html: Removed.
  • webgpu/whlsl/device-proper-type-checker-expected.txt: Removed.
  • webgpu/whlsl/device-proper-type-checker.html: Removed.
  • webgpu/whlsl/do-while-loop-break-expected.html: Removed.
  • webgpu/whlsl/do-while-loop-break.html: Removed.
  • webgpu/whlsl/do-while-loop-continue-expected.html: Removed.
  • webgpu/whlsl/do-while-loop-continue.html: Removed.
  • webgpu/whlsl/do-while-loop-expected.html: Removed.
  • webgpu/whlsl/do-while-loop.html: Removed.
  • webgpu/whlsl/dont-crash-parsing-enum-expected.html: Removed.
  • webgpu/whlsl/dont-crash-parsing-enum.html: Removed.
  • webgpu/whlsl/dot-expressions-expected.html: Removed.
  • webgpu/whlsl/dot-expressions.html: Removed.
  • webgpu/whlsl/double-not-expected.txt: Removed.
  • webgpu/whlsl/double-not.html: Removed.
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors-expected.txt: Removed.
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html: Removed.
  • webgpu/whlsl/duplicates-expected.txt: Removed.
  • webgpu/whlsl/duplicates.html: Removed.
  • webgpu/whlsl/ensure-proper-pointer-usage-expected.txt: Removed.
  • webgpu/whlsl/ensure-proper-pointer-usage.html: Removed.
  • webgpu/whlsl/ensure-proper-variable-lifetime-2-expected.html: Removed.
  • webgpu/whlsl/ensure-proper-variable-lifetime-2.html: Removed.
  • webgpu/whlsl/ensure-proper-variable-lifetime-3-expected.html: Removed.
  • webgpu/whlsl/ensure-proper-variable-lifetime-3.html: Removed.
  • webgpu/whlsl/ensure-proper-variable-lifetime-expected.html: Removed.
  • webgpu/whlsl/ensure-proper-variable-lifetime.html: Removed.
  • webgpu/whlsl/enum-integer-constructor-expected.txt: Removed.
  • webgpu/whlsl/enum-integer-constructor.html: Removed.
  • webgpu/whlsl/enum-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/enum-spec-tests.html: Removed.
  • webgpu/whlsl/enums-2-expected.txt: Removed.
  • webgpu/whlsl/enums-2.html: Removed.
  • webgpu/whlsl/enums-expected.txt: Removed.
  • webgpu/whlsl/enums.html: Removed.
  • webgpu/whlsl/equality-expected.txt: Removed.
  • webgpu/whlsl/equality.html: Removed.
  • webgpu/whlsl/float-math-expected.txt: Removed.
  • webgpu/whlsl/float-math.html: Removed.
  • webgpu/whlsl/getter-setter-type-expected.txt: Removed.
  • webgpu/whlsl/getter-setter-type.html: Removed.
  • webgpu/whlsl/huge-array-expected.txt: Removed.
  • webgpu/whlsl/huge-array.html: Removed.
  • webgpu/whlsl/if-statement-expected.txt: Removed.
  • webgpu/whlsl/if-statement.html: Removed.
  • webgpu/whlsl/increment-decrement-expected.txt: Removed.
  • webgpu/whlsl/increment-decrement.html: Removed.
  • webgpu/whlsl/increment-setter-expected.txt: Removed.
  • webgpu/whlsl/increment-setter.html: Removed.
  • webgpu/whlsl/index-getter-setter-expected.txt: Removed.
  • webgpu/whlsl/index-getter-setter.html: Removed.
  • webgpu/whlsl/int-bit-math-expected.txt: Removed.
  • webgpu/whlsl/int-bit-math.html: Removed.
  • webgpu/whlsl/int-literal-compare-expected.txt: Removed.
  • webgpu/whlsl/int-literal-compare.html: Removed.
  • webgpu/whlsl/js/test-harness.js: Removed.
  • webgpu/whlsl/length-stdlib-expected.txt: Removed.
  • webgpu/whlsl/length-stdlib.html: Removed.
  • webgpu/whlsl/lexing-expected.txt: Removed.
  • webgpu/whlsl/lexing.html: Removed.
  • webgpu/whlsl/literals-expected.txt: Removed.
  • webgpu/whlsl/literals.html: Removed.
  • webgpu/whlsl/logical-negation-expected.txt: Removed.
  • webgpu/whlsl/logical-negation.html: Removed.
  • webgpu/whlsl/loops-break-expected.html: Removed.
  • webgpu/whlsl/loops-break.html: Removed.
  • webgpu/whlsl/loops-continue-expected.html: Removed.
  • webgpu/whlsl/loops-continue.html: Removed.
  • webgpu/whlsl/loops-expected.html: Removed.
  • webgpu/whlsl/loops-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/loops-spec-tests.html: Removed.
  • webgpu/whlsl/loops.html: Removed.
  • webgpu/whlsl/lots-of-local-variables-expected.txt: Removed.
  • webgpu/whlsl/lots-of-local-variables.html: Removed.
  • webgpu/whlsl/lvalues-expected.txt: Removed.
  • webgpu/whlsl/lvalues.html: Removed.
  • webgpu/whlsl/make-array-ref-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/make-array-ref-spec-tests.html: Removed.
  • webgpu/whlsl/make-array-reference-expected.txt: Removed.
  • webgpu/whlsl/make-array-reference.html: Removed.
  • webgpu/whlsl/matrices-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/matrices-spec-tests.html: Removed.
  • webgpu/whlsl/matrix-2-expected.txt: Removed.
  • webgpu/whlsl/matrix-2.html: Removed.
  • webgpu/whlsl/matrix-alignment-expected.txt: Removed.
  • webgpu/whlsl/matrix-alignment.html: Removed.
  • webgpu/whlsl/matrix-compare-expected.txt: Removed.
  • webgpu/whlsl/matrix-compare.html: Removed.
  • webgpu/whlsl/matrix-constructors-expected.txt: Removed.
  • webgpu/whlsl/matrix-constructors-list-of-scalars-expected.txt: Removed.
  • webgpu/whlsl/matrix-constructors-list-of-scalars.html: Removed.
  • webgpu/whlsl/matrix-constructors.html: Removed.
  • webgpu/whlsl/matrix-expected.txt: Removed.
  • webgpu/whlsl/matrix-index-assign-expected.txt: Removed.
  • webgpu/whlsl/matrix-index-assign.html: Removed.
  • webgpu/whlsl/matrix-index-order-expected.txt: Removed.
  • webgpu/whlsl/matrix-index-order.html: Removed.
  • webgpu/whlsl/matrix-memory-layout-expected.txt: Removed.
  • webgpu/whlsl/matrix-memory-layout.html: Removed.
  • webgpu/whlsl/matrix.html: Removed.
  • webgpu/whlsl/nested-dot-expression-rvalue-expected.html: Removed.
  • webgpu/whlsl/nested-dot-expression-rvalue.html: Removed.
  • webgpu/whlsl/nested-loop-expected.html: Removed.
  • webgpu/whlsl/nested-loop.html: Removed.
  • webgpu/whlsl/null-arg-expected.txt: Removed.
  • webgpu/whlsl/null-arg.html: Removed.
  • webgpu/whlsl/null-array-property-access-expected.txt: Removed.
  • webgpu/whlsl/null-array-property-access.html: Removed.
  • webgpu/whlsl/null-array-ref.html: Removed.
  • webgpu/whlsl/oob-access-2-expected.txt: Removed.
  • webgpu/whlsl/oob-access-2.html: Removed.
  • webgpu/whlsl/oob-access-expected.txt: Removed.
  • webgpu/whlsl/oob-access.html: Removed.
  • webgpu/whlsl/operator-div-expected.txt: Removed.
  • webgpu/whlsl/operator-div.html: Removed.
  • webgpu/whlsl/operator-equal-equal-expected.txt: Removed.
  • webgpu/whlsl/operator-equal-equal.html: Removed.
  • webgpu/whlsl/operator-minus-expected.txt: Removed.
  • webgpu/whlsl/operator-minus.html: Removed.
  • webgpu/whlsl/operator-overload-expected.txt: Removed.
  • webgpu/whlsl/operator-overload.html: Removed.
  • webgpu/whlsl/operator-plus-expected.txt: Removed.
  • webgpu/whlsl/operator-plus.html: Removed.
  • webgpu/whlsl/operator-syntax-expected.txt: Removed.
  • webgpu/whlsl/operator-syntax.html: Removed.
  • webgpu/whlsl/operator-times-expected.txt: Removed.
  • webgpu/whlsl/operator-times.html: Removed.
  • webgpu/whlsl/operator-vector-assign-expected.txt: Removed.
  • webgpu/whlsl/operator-vector-assign.html: Removed.
  • webgpu/whlsl/operator-vector-load-expected.txt: Removed.
  • webgpu/whlsl/operator-vector-load.html: Removed.
  • webgpu/whlsl/operator-xy-expected.txt: Removed.
  • webgpu/whlsl/operator-xy.html: Removed.
  • webgpu/whlsl/overload-expected.txt: Removed.
  • webgpu/whlsl/overload.html: Removed.
  • webgpu/whlsl/plus-equals-expected.txt: Removed.
  • webgpu/whlsl/plus-equals.html: Removed.
  • webgpu/whlsl/pointer-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/pointer-spec-tests.html: Removed.
  • webgpu/whlsl/postfix-prefix-expected.txt: Removed.
  • webgpu/whlsl/postfix-prefix.html: Removed.
  • webgpu/whlsl/property-evaluation-order-expected.txt: Removed.
  • webgpu/whlsl/property-evaluation-order.html: Removed.
  • webgpu/whlsl/read-modify-write-expected.txt: Removed.
  • webgpu/whlsl/read-modify-write-high-zombies-expected.txt: Removed.
  • webgpu/whlsl/read-modify-write-high-zombies.html: Removed.
  • webgpu/whlsl/read-modify-write.html: Removed.
  • webgpu/whlsl/recursive-structs-expected.txt: Removed.
  • webgpu/whlsl/recursive-structs.html: Removed.
  • webgpu/whlsl/return-local-variable-expected.html: Removed.
  • webgpu/whlsl/return-local-variable.html: Removed.
  • webgpu/whlsl/return-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/return-spec-tests.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-10-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-11-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-12-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-13-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-14-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-15-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-16-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-17-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-18-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-19-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-2-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-20-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-21-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-22-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-23-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-24-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-25-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-26-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-27-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-3-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-4-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-5-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-6-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-7-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-8-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-9-expected.txt: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-expected.html: Removed.
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules.html: Removed.
  • webgpu/whlsl/setter-spec-tests-expected.txt: Removed.
  • webgpu/whlsl/setter-spec-tests.html: Removed.
  • webgpu/whlsl/simple-arrays-expected.txt: Removed.
  • webgpu/whlsl/simple-arrays.html: Removed.
  • webgpu/whlsl/simple-getter-setter-expected.txt: Removed.
  • webgpu/whlsl/simple-getter-setter.html: Removed.
  • webgpu/whlsl/simple-tests-expected.txt: Removed.
  • webgpu/whlsl/simple-tests.html: Removed.
  • webgpu/whlsl/simple-while-loop-expected.txt: Removed.
  • webgpu/whlsl/simple-while-loop.html: Removed.
  • webgpu/whlsl/smaller-than-32-bit-types-expected.txt: Removed.
  • webgpu/whlsl/smaller-than-32-bit-types.html: Removed.
  • webgpu/whlsl/sparse-bind-group-2-expected.txt: Removed.
  • webgpu/whlsl/sparse-bind-group-2.html: Removed.
  • webgpu/whlsl/sparse-bind-group-3-expected.txt: Removed.
  • webgpu/whlsl/sparse-bind-group-3.html: Removed.
  • webgpu/whlsl/sparse-bind-group-expected.txt: Removed.
  • webgpu/whlsl/sparse-bind-group.html: Removed.
  • webgpu/whlsl/store-null-expected.txt: Removed.
  • webgpu/whlsl/store-null.html: Removed.
  • webgpu/whlsl/store-to-property-updates-properly-expected.html: Removed.
  • webgpu/whlsl/store-to-property-updates-properly.html: Removed.
  • webgpu/whlsl/struct-expected.txt: Removed.
  • webgpu/whlsl/struct.html: Removed.
  • webgpu/whlsl/structure-field-enumeration-element-clash-expected.txt: Removed.
  • webgpu/whlsl/structure-field-enumeration-element-clash.html: Removed.
  • webgpu/whlsl/switch-expected.txt: Removed.
  • webgpu/whlsl/switch.html: Removed.
  • webgpu/whlsl/ternary-spec-test-expected.txt: Removed.
  • webgpu/whlsl/ternary-spec-test.html: Removed.
  • webgpu/whlsl/test-harness-test-expected.txt: Removed.
  • webgpu/whlsl/test-harness-test.html: Removed.
  • webgpu/whlsl/textures-getdimensions-expected.txt: Removed.
  • webgpu/whlsl/textures-getdimensions.html: Removed.
  • webgpu/whlsl/textures-load-expected.html: Removed.
  • webgpu/whlsl/textures-load.html: Removed.
  • webgpu/whlsl/textures-sample-bias-expected.html: Removed.
  • webgpu/whlsl/textures-sample-bias.html: Removed.
  • webgpu/whlsl/textures-sample-expected.html: Removed.
  • webgpu/whlsl/textures-sample-grad-expected.html: Removed.
  • webgpu/whlsl/textures-sample-grad.html: Removed.
  • webgpu/whlsl/textures-sample-level-expected.html: Removed.
  • webgpu/whlsl/textures-sample-level.html: Removed.
  • webgpu/whlsl/textures-sample.html: Removed.
  • webgpu/whlsl/two-dimensional-array-expected.txt: Removed.
  • webgpu/whlsl/two-dimensional-array.html: Removed.
  • webgpu/whlsl/type-mismatch-expected.txt: Removed.
  • webgpu/whlsl/type-mismatch.html: Removed.
  • webgpu/whlsl/uint-bitwise-expected.txt: Removed.
  • webgpu/whlsl/uint-bitwise.html: Removed.
  • webgpu/whlsl/use-undefined-variable-2-expected.txt: Removed.
  • webgpu/whlsl/use-undefined-variable-2.html: Removed.
  • webgpu/whlsl/use-undefined-variable-expected.txt: Removed.
  • webgpu/whlsl/use-undefined-variable.html: Removed.
  • webgpu/whlsl/variable-shadowing-expected.txt: Removed.
  • webgpu/whlsl/variable-shadowing.html: Removed.
  • webgpu/whlsl/vector-compare-expected.txt: Removed.
  • webgpu/whlsl/vector-compare.html: Removed.
  • webgpu/whlsl/vector-constructors-expected.txt: Removed.
  • webgpu/whlsl/vector-constructors.html: Removed.
  • webgpu/whlsl/vector-matrix-addition-subtraction-expected.txt: Removed.
  • webgpu/whlsl/vector-matrix-addition-subtraction.html: Removed.
  • webgpu/whlsl/vector-syntax-expected.txt: Removed.
  • webgpu/whlsl/vector-syntax.html: Removed.
  • webgpu/whlsl/void-variable-parameter-expected.txt: Removed.
  • webgpu/whlsl/void-variable-parameter.html: Removed.
  • webgpu/whlsl/while-loop-break-expected.html: Removed.
  • webgpu/whlsl/while-loop-break.html: Removed.
  • webgpu/whlsl/while-loop-continue-expected.html: Removed.
  • webgpu/whlsl/while-loop-continue.html: Removed.
  • webgpu/whlsl/whlsl-expected.html: Removed.
  • webgpu/whlsl/whlsl.html: Removed.
  • webgpu/whlsl/wrong-argument-length-expected.txt: Removed.
  • webgpu/whlsl/wrong-argument-length.html: Removed.
  • webgpu/whlsl/wrong-types-expected.txt: Removed.
  • webgpu/whlsl/wrong-types.html: Removed.
  • webgpu/whlsl/zero-initialize-values-2-expected.html: Removed.
  • webgpu/whlsl/zero-initialize-values-2.html: Removed.
  • webgpu/whlsl/zero-initialize-values-expected.html: Removed.
  • webgpu/whlsl/zero-initialize-values.html: Removed.
7:57 PM Changeset in webkit [280466] by clopez@igalia.com
  • 7 edits in trunk

[WPE][GTK] build broken with python2 after r280382
https://bugs.webkit.org/show_bug.cgi?id=228629

Reviewed by Philippe Normand.

Source/JavaScriptCore:

Call {PYTHON_EXECUTABLE} instead of python3.

  • PlatformGTK.cmake:

Source/WebKit:

Call {PYTHON_EXECUTABLE} instead of python3. Our build currently
supports both versions of python (2 and 3). If the user wants
to force a specific version it can do that via the CMake argument
-DPYTHON_EXECUTABLE=/path/to/python/interpreter

No new tests, is a build fix.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:

Tools:

Fix compatibility with python2.

  • glib/apply-build-revision-to-files.py:

(main):

7:32 PM Changeset in webkit [280465] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS|AS] VTImageRotationSession returns a kVTImageRotationNotSupportedErr, breaks painting rotated videos
https://bugs.webkit.org/show_bug.cgi?id=228620

Reviewed by Per Arne Vollan.

Error is thrown from ImageRotationSessionVT, forcing WebKit to go down software rotation path.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
7:05 PM Changeset in webkit [280464] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Crash at WebCore: -[WebAccessibilityObjectWrapper _accessibilityTableAncestor].
https://bugs.webkit.org/show_bug.cgi?id=228600
rdar://79910135

Reviewed by Chris Fleizach.

The cause of the crash was that [WebAccessibilityObjectWrapper
_accessibilityTableAncestor] was dereferencing self.axBackingObject
which can be null.
The same problem was present in a number of methods that are retrieving
an ancestor of a given role. This patch solves this problem by calling
_prepareAccessibilityCall before trying to dereference the backing core
object.
Avoided code repetition by adding the helper function ancestorWithRole.

  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(ancestorWithRole):
(-[WebAccessibilityObjectWrapper _accessibilityTreeAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityDescriptionListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
(-[WebAccessibilityObjectWrapper _accessibilityFieldsetAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityFrameAncestor]):

7:00 PM Changeset in webkit [280463] by Tadeu Zagallo
  • 4 edits
    1 add in trunk

definePropertyOnReceiver should check if receiver canPerformFastPutInline
https://bugs.webkit.org/show_bug.cgi?id=227963
<rdar://80259710>

Reviewed by Alexey Shvayka.

JSTests:

  • stress/reflect-set-custom-value.js: Added.

Source/JavaScriptCore:

definePropertyOnReceiver has a fast path if the slot is not opaque and the receiver doesn't
have a custom defineOwnProperty implementation, in which case it calls putInlineFast (and
transitively putDirectInternal<PutModePut>). The issue is that putDirectInternal does not
handle customValues correctly: it just overwrites the property without changing the attributes.
To fix that, we should first check if the property might be a custom value, and if that's the case
we now call definePropertyOnReceiverSlow, which has been updated to handle custom values correctly.
I also added assertions to putInlineFastReplacingStaticPropertyIfNeeded and putDirectInternal
to make sure we don't accidentally overwrite custom values in the future.

  • runtime/JSObject.cpp:

(JSC::definePropertyOnReceiverSlow):
(JSC::JSObject::definePropertyOnReceiver):
(JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::putDirectInternal):

6:51 PM Changeset in webkit [280462] by jer.noble@apple.com
  • 6 edits in trunk/Source/WebCore

[Cocoa|WK1] -[NSAttributeString loadFromHTML...] methods will disable bluetooth route switching
https://bugs.webkit.org/show_bug.cgi?id=228593
<rdar://81160969>

Reviewed by Eric Carlson.

NSAttributedString will use WebKitLegacy APIs to load provided HTML; in so doing, an AudioSessionIOS
singleton object is created, and -[AVAudioSession setEligibleForBTSmartRoutingConsideration:error:]
is called with a NO parameter, disabling smart routing for the calling process.

Disable this behavior if DeprecatedGlobalSettings::shouldManageAudioSessionCategory() returns false;
this setting is disabled for all WK1 clients, and enabled for WK2.

  • page/DeprecatedGlobalSettings.cpp:

(WebCore::DeprecatedGlobalSettings::setShouldManageAudioSessionCategory):
(WebCore::DeprecatedGlobalSettings::shouldManageAudioSessionCategory):

  • page/DeprecatedGlobalSettings.h:

(WebCore::DeprecatedGlobalSettings::setShouldManageAudioSessionCategory): Deleted.
(WebCore::DeprecatedGlobalSettings::shouldManageAudioSessionCategory): Deleted.

  • platform/audio/AudioSession.h:
  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::setEligibleForSmartRouting):

6:44 PM Changeset in webkit [280461] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Fix missing libgpg-error not added to link commands as libgcrypt dep after r280423
https://bugs.webkit.org/show_bug.cgi?id=228581

Reviewed by Carlos Alberto Lopez Perez.

  • Source/cmake/FindLibGcrypt.cmake: Manually search for libgpg-error, which is not listed

in libgcrypt.pc as a dependency, add an imported target for it, and add it as a dependency
of LibGcrypt::LibGcrypt to avoid missing symbols at link time.

6:36 PM Changeset in webkit [280460] by Alexey Shvayka
  • 24 edits
    3 adds
    3 deletes in trunk

[JSC] Legacy RegExp fields should be accessors
https://bugs.webkit.org/show_bug.cgi?id=220233

Reviewed by Tadeu Zagallo.

JSTests:

  • ChakraCore/test/Lib/forin_lib_v3.baseline-jsc:
  • microbenchmarks/assign-custom-setter-polymorphic.js:
  • microbenchmarks/assign-custom-setter.js:
  • microbenchmarks/custom-setter-getter-as-put-get-by-id.js:
  • microbenchmarks/custom-value-2.js:
  • microbenchmarks/custom-value.js:
  • microbenchmarks/get-custom-getter.js:
  • stress/custom-value-delete-property-1.js:
  • stress/custom-value-delete-property-2.js:
  • stress/custom-value-delete-property-3.js:
  • stress/object-assign-fast-path.js:
  • stress/reflect-set.js:
  • stress/regexp-constructor-dollar-getters-are-unique.js: Added.
  • stress/regexp-setter-realm.js: Added.
  • stress/static-put-in-prototype-chain.js: Added.
  • test262/config.yaml:
  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch implements a part of Legacy RegExp features proposal [1], replacing
custom values with custom accessors that require |this| value to be RegExp
constructor of the same realm.

Apart from fixing property descriptors, this change brings legacy RegExpConstructor
fields in compliance with invariants of internal methods [2] (described in #151348),
aligning JSC with V8 and SpiderMonkey.

It doesn't, however, implement LegacyFeaturesEnabled? and RegExp.prototype.compile
changes.

[1]: https://github.com/tc39/proposal-regexp-legacy-features
[2]: https://tc39.es/ecma262/#sec-invariants-of-the-essential-internal-methods

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • runtime/RegExpConstructor.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_CUSTOM_SETTER):
(JSC::regExpConstructorDollarImpl): Deleted.

  • tools/JSDollarVM.cpp:

LayoutTests:

  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/dom/regexp-caching-expected.txt:
  • js/dom/regexp-caching.html:
  • js/resources/getOwnPropertyDescriptor.js:
  • js/script-tests/static-put-in-prototype-chain.js:
  • js/static-put-in-prototype-chain-expected.txt:
  • js/static-put-in-prototype-chain.html:
5:28 PM Changeset in webkit [280459] by Devin Rousso
  • 18 edits
    3 adds in trunk

[Payment Request] additionalShippingMethods are not used if a paymentMethodType is provided
https://bugs.webkit.org/show_bug.cgi?id=228599
<rdar://problem/81190366>

Reviewed by Andy Estes.

Source/WebCore:

r275169 made it so that paymentMethodType is no longer required so that additionalShippingMethods
can be specified without having to limit it to a specific payment method type. While this
works in theory, WebKit doesn't know about the user's selected payment method type until the
user actually selects a payment method, meaning that until then the additionalShippingMethods
are not used. Unfortunately (until now) PKPaymentRequestPaymentMethodUpdate did not
support providing a NSArray<PKShippingMethod *> *, so there was no way to update the list
of shipping methods when the user changed their selected payment method, meaning that WebKit
would have to wait/rely on the user to change their shipping address _after_ selecting a
payment method in order for additionalShippingMethods to take effect.

This also fixes an issue with WebKit's implementation of the W3C Payment Request API by
allowing any generic (i.e. things not specific to Apple Pay) shippingOptions provided in
PaymentDetailsUpdate to actually be used and update the Apple Pay sheet accordingly.

Test: http/tests/paymentrequest/ApplePayModifier-paymentMethodType.https.html

  • Modules/applepay/ApplePayModifier.idl:
  • Modules/applepay/ApplePayModifier.h:
  • Modules/applepay/ApplePayPaymentMethodUpdate.idl:
  • Modules/applepay/ApplePayPaymentMethodUpdate.h:

(WebCore::ApplePayPaymentMethodUpdate::encode const):
(WebCore::ApplePayPaymentMethodUpdate::decode):

  • Modules/applepay/ApplePayShippingMethodUpdate.idl:
  • Modules/applepay/ApplePayShippingMethodUpdate.h:

(WebCore::ApplePayShippingMethodUpdate::encode const):
(WebCore::ApplePayShippingMethodUpdate::decode):
Add (or wrap existing) additionalShippingMethods/newShippingMethods properties.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::computeShippingMethods):
(WebCore::ApplePayPaymentHandler::detailsUpdated):
(WebCore::ApplePayPaymentHandler::shippingOptionUpdated):
(WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
Also call computeShippingMethods() and add the result to the update.

  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
(WebCore::MockPaymentCoordinator::completeShippingContactSelection):
(WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
(WebCore::MockPaymentCoordinator::completeCouponCodeChange):
Support for testing.

Source/WebCore/PAL:

r275169 made it so that paymentMethodType is no longer required so that additionalShippingMethods
can be specified without having to limit it to a specific payment method type. While this
works in theory, WebKit doesn't know about the user's selected payment method type until the
user actually selects a payment method, meaning that until then the additionalShippingMethods
are not used. Unfortunately (until now) PKPaymentRequestPaymentMethodUpdate did not
support providing a NSArray<PKShippingMethod *> *, so there was no way to update the list
of shipping methods when the user changed their selected payment method, meaning that WebKit
would have to wait/rely on the user to change their shipping address _after_ selecting a
payment method in order for additionalShippingMethods to take effect.

This also fixes an issue with WebKit's implementation of the W3C Payment Request API by
allowing any generic (i.e. things not specific to Apple Pay) shippingOptions provided in
PaymentDetailsUpdate to actually be used and update the Apple Pay sheet accordingly.

  • pal/spi/cocoa/PassKitSPI.h:
    • add the new shippingMethods property on PKPaymentRequestUpdate
    • add the existing errors property on PKPaymentRequestPaymentMethodUpdate

Source/WebKit:

r275169 made it so that paymentMethodType is no longer required so that additionalShippingMethods
can be specified without having to limit it to a specific payment method type. While this
works in theory, WebKit doesn't know about the user's selected payment method type until the
user actually selects a payment method, meaning that until then the additionalShippingMethods
are not used. Unfortunately (until now) PKPaymentRequestPaymentMethodUpdate did not
support providing a NSArray<PKShippingMethod *> *, so there was no way to update the list
of shipping methods when the user changed their selected payment method, meaning that WebKit
would have to wait/rely on the user to change their shipping address _after_ selecting a
payment method in order for additionalShippingMethods to take effect.

This also fixes an issue with WebKit's implementation of the W3C Payment Request API by
allowing any generic (i.e. things not specific to Apple Pay) shippingOptions provided in
PaymentDetailsUpdate to actually be used and update the Apple Pay sheet accordingly.

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
Also convert and set the shippingMethods on the update.

Source/WTF:

r275169 made it so that paymentMethodType is no longer required so that additionalShippingMethods
can be specified without having to limit it to a specific payment method type. While this
works in theory, WebKit doesn't know about the user's selected payment method type until the
user actually selects a payment method, meaning that until then the additionalShippingMethods
are not used. Unfortunately (until now) PKPaymentRequestPaymentMethodUpdate did not
support providing a NSArray<PKShippingMethod *> *, so there was no way to update the list
of shipping methods when the user changed their selected payment method, meaning that WebKit
would have to wait/rely on the user to change their shipping address _after_ selecting a
payment method in order for additionalShippingMethods to take effect.

This also fixes an issue with WebKit's implementation of the W3C Payment Request API by
allowing any generic (i.e. things not specific to Apple Pay) shippingOptions provided in
PaymentDetailsUpdate to actually be used and update the Apple Pay sheet accordingly.

  • wtf/PlatformHave.h:
  • wtf/PlatformEnableCocoa.h:

Add new compile flags for PassKit supporting modifying shipping methods with any update.

LayoutTests:

  • http/tests/paymentrequest/ApplePayModifier-paymentMethodType.https.html: Added.
  • http/tests/paymentrequest/ApplePayModifier-paymentMethodType.https-expected.txt: Added.
  • platform/ios-14-wk2/TestExpectations:
  • platform/mac-bigsur-wk2/TestExpectations: Added.

Skip on older macOS/iOS since they don't support modifying shipping methods with any update.

5:14 PM Changeset in webkit [280458] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Debug] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228626.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:10 PM Changeset in webkit [280457] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Handle relative paths in filtered commands
https://bugs.webkit.org/show_bug.cgi?id=228606
<rdar://problem/81289748>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(FilteredCommand.pager): Child process should use the same current working directory.
(FilteredCommand.main): Convert any file names to their absolute paths.

4:54 PM Changeset in webkit [280456] by mmaxfield@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add WebGPU to webkit.org/status
https://bugs.webkit.org/show_bug.cgi?id=228623

Reviewed by Robin Morisset.

  • features.json:
4:12 PM Changeset in webkit [280455] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] compositing/video/poster.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228616

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:02 PM Changeset in webkit [280454] by achristensen@apple.com
  • 5 edits in trunk

[ Mac ] fast/dom/webtiming-document-open.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=228571

Reviewed by Chris Dumez.

Source/WebCore:

In r278391 I made PerformanceTiming::monotonicTimeToIntegerMilliseconds call MonotonicTime::approximateWallTime,
which, if called multiple times, can give slightly different values, usually differing by 1 (millisecond, in this case).
To fix this, cache the value from the first call. This uses an additional 168 bytes per frame in pages that use PerformanceTiming.
Once bug 227336 is turned on and the web is given a year or so to move to that replacement API, this whole API will be removed.

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::navigationStart const):
(WebCore::PerformanceTiming::unloadEventStart const):
(WebCore::PerformanceTiming::unloadEventEnd const):
(WebCore::PerformanceTiming::redirectStart const):
(WebCore::PerformanceTiming::redirectEnd const):
(WebCore::PerformanceTiming::fetchStart const):
(WebCore::PerformanceTiming::domainLookupStart const):
(WebCore::PerformanceTiming::domainLookupEnd const):
(WebCore::PerformanceTiming::connectStart const):
(WebCore::PerformanceTiming::connectEnd const):
(WebCore::PerformanceTiming::secureConnectionStart const):
(WebCore::PerformanceTiming::requestStart const):
(WebCore::PerformanceTiming::responseStart const):
(WebCore::PerformanceTiming::responseEnd const):
(WebCore::PerformanceTiming::domLoading const):
(WebCore::PerformanceTiming::domInteractive const):
(WebCore::PerformanceTiming::domContentLoadedEventStart const):
(WebCore::PerformanceTiming::domContentLoadedEventEnd const):
(WebCore::PerformanceTiming::domComplete const):
(WebCore::PerformanceTiming::loadEventStart const):
(WebCore::PerformanceTiming::loadEventEnd const):

  • page/PerformanceTiming.h:

LayoutTests:

  • platform/mac/TestExpectations:
3:52 PM Changeset in webkit [280453] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Simplify ImageDiff SDK logic
https://bugs.webkit.org/show_bug.cgi?id=228603
<rdar://problem/81281548>

Reviewed by Sam Weinig.

  • ImageDiff/Makefile:

For any non-macOS SDK, build a macOS ImageDiff (because we use it on the host, not the target).

3:26 PM Changeset in webkit [280452] by ysuzuki@apple.com
  • 11 edits
    5 adds in trunk

[JSC] Yarr should perform BoyerMoore search
https://bugs.webkit.org/show_bug.cgi?id=228301

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/jquery-todomvc-regexp.js:
  • stress/regexp--bm-search-long-character.js: Added.

(shouldBe):

  • stress/regexp--bm-search-long-map.js: Added.

(shouldBe):

  • stress/regexp-bitvector-reuse.js: Added.

(shouldBe):

  • stress/regexp-non-ascii-bm-search-character.js: Added.

(shouldBe):

  • stress/regexp-non-ascii-bm-search-map.js: Added.

(shouldBe):

Source/JavaScriptCore:

This patch emits skipping fast-path at the beginning of body alternatives with a large stride. So we can quickly discard unrelated characters
and attempt to find possibly related sequence in the long sequence. The method is derived from V8's implementation (with some extensions).

If we have a searching pattern /abcdef/, then we can check the 6th character against a set of {a, b, c, d, e, f}.
If it does not match, we can shift 6 characters. We use this strategy since this way can be extended easily to support
disjunction, character-class, and ignore-cases. For example, in the case of /(?:abc|def)/, we can check 3rd character
against {a, b, c, d, e, f} and shift 3 characters if it does not match.

Then, the best way to perform the above shifting is that finding the longest character sequence which does not have
many candidates. In the case of /[a-z]aaaaaaa[a-z]/, we can extract "aaaaaaa" sequence and check 8th character against {a}.
If it does not match, then we can shift 7 characters (length of "aaaaaaa"). This shifting is better than using "[a-z]aaaaaaa[a-z]"
sequence and {a-z} set since {a-z} set will almost always match.

We first collect possible characters for each character position. Then, apply heuristics to extract good character sequence from
that and construct fast searching with long stride.

Microbenchmark which performs RegExp ops in Speedometer2/jQuery-TodoMVC shows 25% improvement.

ToT Patched

jquery-todomvc-regexp 723.9739+-1.3997 579.1698+-1.2505 definitely 1.2500x faster

This improves Speedometer2/jQuery-TodoMVC by 3%.

----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |123.365625 |123.456250 |1.000735 | 0.804077 |
| VueJS-TodoMVC |26.912500 |26.925000 |1.000464 | 0.969603 |
| EmberJS-TodoMVC |127.540625 |127.562500 |1.000172 | 0.960474 |
| BackboneJS-TodoMVC |50.606250 |50.518750 |0.998271 | 0.670313 |
| Preact-TodoMVC |21.018750 |20.850000 |0.991971 | 0.563818 |
| AngularJS-TodoMVC |136.943750 |137.271875 |1.002396 | 0.531513 |
| Vanilla-ES2015-TodoMVC |68.521875 |68.593750 |1.001049 | 0.701376 |
| Inferno-TodoMVC |65.559375 |65.803125 |1.003718 | 0.414418 |
| Flight-TodoMVC |77.284375 |76.715625 |0.992641 | 0.219870 |
| Angular2-TypeScript-TodoMVC |40.725000 |40.318750 |0.990025 | 0.281212 |
| VanillaJS-TodoMVC |55.209375 |54.715625 |0.991057 | 0.056921 |
| jQuery-TodoMVC |266.396875 |258.471875 |0.970251 | 0.000000 (significant) |
| EmberJS-Debug-TodoMVC |341.550000 |341.856250 |1.000897 | 0.618140 |
| React-TodoMVC |88.731250 |88.871875 |1.001585 | 0.512407 |
| React-Redux-TodoMVC |150.340625 |150.065625 |0.998171 | 0.412940 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |65.390625 |65.362500 |0.999570 | 0.834760 |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 245.96997
b mean = 246.86366
pValue = 0.0061448402
(Bigger means are better.)
1.004 times better
Results ARE significant

  • runtime/OptionsList.h:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::BoyerMooreInfo::BoyerMooreInfo):
(JSC::Yarr::BoyerMooreInfo::length const):
(JSC::Yarr::BoyerMooreInfo::set):
(JSC::Yarr::BoyerMooreInfo::index const):
(JSC::Yarr::BoyerMooreInfo::setIndex):
(JSC::Yarr::BoyerMooreInfo::create):
(JSC::Yarr::BoyerMooreInfo::findBestCharacterSequence const):
(JSC::Yarr::BoyerMooreInfo::findWorthwhileCharacterSequenceForLookahead const):
(JSC::Yarr::BoyerMooreInfo::createCandidateBitmap const):

  • yarr/YarrJIT.h:

(JSC::Yarr::BoyerMooreBitmap::count const):
(JSC::Yarr::BoyerMooreBitmap::map const):
(JSC::Yarr::BoyerMooreBitmap::isMaskEffective const):
(JSC::Yarr::BoyerMooreBitmap::add):
(JSC::Yarr::BoyerMooreByteVector::BoyerMooreByteVector):
(JSC::Yarr::YarrCodeBlock::set8BitCode):
(JSC::Yarr::YarrCodeBlock::set16BitCode):
(JSC::Yarr::YarrCodeBlock::set8BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::set16BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::clear):
(JSC::Yarr::YarrCodeBlock::findSameVector const):

Source/WTF:

  • wtf/BitVector.cpp:

(WTF::BitVector::dump const):

  • wtf/Bitmap.h:

(WTF::WordType>::dump const):

  • wtf/UniqueRef.h:

(WTF::makeUniqueRefFromNonNullUniquePtr):
(WTF::UniqueRef::UniqueRef):

3:12 PM Changeset in webkit [280451] by commit-queue@webkit.org
  • 11 edits
    2 moves
    1 add in trunk/Source

REGRESSION (r278877) [Cocoa] WebAuthn stopped working for non-Safari browsers
https://bugs.webkit.org/show_bug.cgi?id=228116
<rdar://problem/80693607>

Patch by Brent Fulgham.

Patch by Kate Cheney <Kate Cheney> on 2021-07-29
Reviewed by Per Arne Vollan.

Source/WebKit:

We should not be using the PAC key to confirm a valid WebContent process is the source of
WebAuthn-related messages. Instead, we should confirm the message source is an Apple-signed
executable, and that the signining identity is for the WebContent process.

  • Shared/Cocoa/CodeSigning.h: Renamed from Source/WebKit/Shared/mac/CodeSigning.h.
  • Shared/Cocoa/CodeSigning.mm: Renamed from Source/WebKit/Shared/mac/CodeSigning.mm.

(WebKit::codeSigningIdentifier):
(WebKit::codeSigningIdentifierForCurrentProcess):
(WebKit::currentProcessIsPlatformBinary):
(WebKit::codeSigningIdentifierAndPlatformBinaryStatus):

  • Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint):

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::messageSourceIsValidWebContentProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getWebAuthnProcessConnection):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/mac/WebProcessProxyMac.mm:
  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

Add new SPI header for code signing features.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/cocoa/SecuritySPI.h:
  • wtf/spi/darwin/CodeSignSPI.h: Added.
2:55 PM Changeset in webkit [280450] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] 2 http/tests/cookies/same-site tests are flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=228604

RUnreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:49 PM Changeset in webkit [280449] by Ayumi Kojima
  • 1 edit
    1 add in trunk/LayoutTests

[ iPad ] Rebaselining editing/selection/ios/change-selection-by-tapping-with-existing-selection.html.
https://bugs.webkit.org/show_bug.cgi?id=228607

Unreviewed test gardening.

  • platform/ipad/editing/selection/ios/change-selection-by-tapping-with-existing-selection-expected.txt: Added.
2:23 PM Changeset in webkit [280448] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

-Wreturn-type warning in SQLiteDatabase.cpp
https://bugs.webkit.org/show_bug.cgi?id=228602

Unreviewed, add missing RELEASE_ASSERT_NOT_REACHED().

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-07-29

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::checkpointModeValue):

2:00 PM Changeset in webkit [280447] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] 2 http/tests/cookies/same-site tests are flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=228604

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:59 PM Changeset in webkit [280446] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Disable hanging punctuation content
https://bugs.webkit.org/show_bug.cgi?id=228598

Reviewed by Antti Koivisto.

Currently we only check the root for hanging punctuation, but it is applicable to all elements including inline boxes.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

1:43 PM Changeset in webkit [280445] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WTF

[iOS] Don't set capture attribution dynamically in the simulator
https://bugs.webkit.org/show_bug.cgi?id=228596
rdar://81176531

Reviewed by Jer Noble.

  • wtf/PlatformHave.h: Don't define HAVE_SYSTEM_STATUS for the simulator.
1:17 PM Changeset in webkit [280444] by Alan Coon
  • 1 copy in tags/Safari-612.1.24.11.7

Tag Safari-612.1.24.11.7.

1:15 PM Changeset in webkit [280443] by Alan Coon
  • 2 edits in branches/safari-612.1.24.11-branch/Source/WebKit

Cherry-pick r280433. rdar://problem/81286942

The bundle path of downlevel Safari is wrong
https://bugs.webkit.org/show_bug.cgi?id=228339

Reviewed by Tim Horton.

Use the same approach as isSystemWebKit to check whether the WebKit bundle
is from the staged framework.

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm: (WebKit::isFeatureFlagEnabled):

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

1:15 PM Changeset in webkit [280442] by Alan Coon
  • 2 edits in branches/safari-612.1.24.11-branch/Source/WebKit

Cherry-pick r280424. rdar://problem/81286934

[macOS Catalina] Some feature preferences have wrong default values
https://bugs.webkit.org/show_bug.cgi?id=228564

Reviewed by Tim Horton.

When HAVE(SYSTEM_FEATURE_FLAGS) is false, we still need to enable
some features by default.

This patch makes sure the following features are enabled by default
on macOS (consistent with the properties in WebKit-macos.plist):

  • async_frame_and_overflow_scrolling
  • gpu_process_canvas_rendering
  • gpu_process_media
  • gpu_process_webrtc
  • incremental_pdf
  • vp9_decoder
  • webm_format_reader
  • webm_parser
  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultUseGPUProcessForCanvasRenderingEnabled): (WebKit::defaultUseGPUProcessForDOMRenderingEnabled): (WebKit::defaultUseGPUProcessForMediaEnabled): (WebKit::defaultCaptureAudioInGPUProcessEnabled): (WebKit::defaultCaptureVideoInGPUProcessEnabled): (WebKit::defaultWebRTCCodecsInGPUProcess): (WebKit::defaultIncrementalPDFEnabled): (WebKit::defaultWebMFormatReaderEnabled):

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

12:54 PM Changeset in webkit [280441] by commit-queue@webkit.org
  • 6 edits in trunk/Source

GetIdentifierStringForPreferredVoiceInListWithLocale() is deprecated in Monterey
<https://webkit.org/b/228066>
<rdar://problem/80577312>

Patch by David Kilzer.

Patch by Kate Cheney <Kate Cheney> on 2021-07-29
Reviewed by David Kilzer.

Source/WebCore:

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(WebCore::speechSynthesisGetDefaultVoiceIdentifierForLocale):

  • Switch to use CopyIdentifierStringForPreferredVoiceInListWithLocale() in Monterey.
  • Change to return RetainPtr<> to handle lifetime of object returned from new function.

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

  • Change varible type to 'auto' since return type of speechSynthesisGetDefaultVoiceIdentifierForLocale() changed.

Source/WebCore/PAL:

  • pal/spi/mac/SpeechSynthesisSPI.h:
  • pal/spi/mac/SpeechSynthesisSPI.h:

(CopyIdentifierStringForPreferredVoiceInListWithLocale): Add.

  • Define replacement function for GetIdentifierStringForPreferredVoiceInListWithLocale() in Monterey.

Source/WTF:

  • wtf/PlatformHave.h:
  • Add HAVE(SPEECHSYNTHESIS_MONTEREY_SPI).
12:47 PM Changeset in webkit [280440] by Jonathan Bedard
  • 7 edits in trunk/Tools

[webkitscmpy] Return remote objects from remote() function
https://bugs.webkit.org/show_bug.cgi?id=226980
<rdar://problem/79299760>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.url): Add function to return remote url directly.
(Git.remote): Construct the appropriate remote object.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.url): Add function to return the remote url directly.
(Svn.remote): Construct the appropriate remote object.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit.test_url):
(TestGit.test_remote):
(TestGit.test_remote_github):
(TestGit.test_remote_bitbucket):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestLocalSvn.test_url):
(TestLocalSvn.test_remote):

12:04 PM Changeset in webkit [280439] by Peng Liu
  • 5 edits in trunk/Tools

[Catalina][GPUP] Some API tests fail after GPU Process features are enabled
https://bugs.webkit.org/show_bug.cgi?id=228589

Reviewed by Aakash Jain.

Disable a few API tests while the investigation is ongoing.

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NowPlaying.mm:

(TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:

(TEST_F):

11:58 AM Changeset in webkit [280438] by sihui_liu@apple.com
  • 3 edits in trunk/LayoutTests

Fix fast/speechrecognition/detached-iframe.html
https://bugs.webkit.org/show_bug.cgi?id=228586

Reviewed by Chris Dumez.

The result of detached-iframe.html does not print description as remove() removes document.body instead of
the iframe.

  • fast/speechrecognition/detached-iframe-expected.txt:
  • fast/speechrecognition/detached-iframe.html:
11:44 AM Changeset in webkit [280437] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

Send email notification when VerifyGitHubIntegrity step fails
https://bugs.webkit.org/show_bug.cgi?id=228592

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/emails.json:
  • CISupport/ews-build/send_email.py:

(send_email_to_github_admin):

  • CISupport/ews-build/steps.py:

(VerifyGitHubIntegrity):
(VerifyGitHubIntegrity.evaluateCommand):
(VerifyGitHubIntegrity.send_email_for_github_issue):

11:32 AM Changeset in webkit [280436] by Jonathan Bedard
  • 7 edits
    2 copies
    1 add in trunk/Tools

[git-webkit] Add identifiers to 'log' and 'blame'
https://bugs.webkit.org/show_bug.cgi?id=228027
<rdar://problem/80691164>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.from_path): Pass all kwargs to local SCM object.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Blame and Log commands.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/blame.py: Added.

(Blame): Invoke pager.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(FilteredCommand): Shared command that handles replace hashes/revisions in
an SCM command with identifiers.
(FilteredCommand.parser): Allow user to change the prefered commit representation.
(FilteredCommand.pager): Pass output through more if called from a terminal.
(FilteredCommand.main): Modify output of provided command to replace commit representation
with the preffered commit representation.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/log.py: Added.

(Log): Invoke pager.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/log_unittest.py: Added.

(TestLog):
(TestLog.setUp):
(TestLog.test_git):
(TestLog.test_git_svn):
(TestLog.test_git):

11:18 AM Changeset in webkit [280435] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitcorepy] Catch AttributeError when getting password
https://bugs.webkit.org/show_bug.cgi?id=228590
<rdar://problem/81278799>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:

(credentials): Catch AttributeError.

10:52 AM Changeset in webkit [280434] by Ayumi Kojima
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/appcache/main-resource-redirect-with-sw.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228588

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:50 AM Changeset in webkit [280433] by Peng Liu
  • 2 edits in trunk/Source/WebKit

The bundle path of downlevel Safari is wrong
https://bugs.webkit.org/show_bug.cgi?id=228339

Reviewed by Tim Horton.

Use the same approach as isSystemWebKit to check whether the WebKit bundle
is from the staged framework.

  • Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:

(WebKit::isFeatureFlagEnabled):

10:48 AM Changeset in webkit [280432] by Eric Hutchison
  • 2 edits in trunk/LayoutTests

[ Mac wk2] fast/scrolling/mac/programmatic-scroll-overrides-rubberband.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228591.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:21 AM Changeset in webkit [280431] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] VerifyGitHubIntegrity step fails with an exception
https://bugs.webkit.org/show_bug.cgi?id=228587

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(VerifyGitHubIntegrity): Fixed the base class.
(VerifyGitHubIntegrity.getResultSummary): Drive-by fix to improve error message.

  • CISupport/ews-build/steps_unittest.py: Added unit-tests.
10:15 AM Changeset in webkit [280430] by Russell Epstein
  • 8 edits in branches/safari-612.1.26-branch/Source

Versioning.

WebKit-7612.1.26

10:14 AM Changeset in webkit [280429] by Russell Epstein
  • 1 copy in branches/safari-612.1.26-branch

New branch.

10:12 AM Changeset in webkit [280428] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.27

10:04 AM Changeset in webkit [280427] by Chris Dumez
  • 5 edits in trunk/LayoutTests

Unreviewed, unskip storage/indexeddb/detached-iframe.html now that it is no longer flaky after r280426.

  • platform/glib/TestExpectations:
  • platform/ios-14/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
9:55 AM Changeset in webkit [280426] by Chris Dumez
  • 3 edits in trunk/LayoutTests

storage/indexeddb/detached-iframe.html is flaky on some bots
https://bugs.webkit.org/show_bug.cgi?id=228569
<rdar://80396559>

Reviewed by Sihui Liu.

The test was flaky because the detachIframe() function was incorrect and actually
removing the iframe's parent instead of the iframe (Credit to Sihui for finding this
out). This patch fixes the issue and also adds a description() to improve the test
output.

  • storage/indexeddb/detached-iframe-expected.txt:
  • storage/indexeddb/detached-iframe.html:
9:47 AM Changeset in webkit [280425] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

CORS preflight checks not attributed to the correct application
https://bugs.webkit.org/show_bug.cgi?id=228585
<rdar://problem/81220151>

Reviewed by Alex Christensen.

We use _attributedBundleIdentifier to attribute loads to the correct
application. This parameter is set on each NSURLSession in the per-page
session sets. This patch sets the webPageProxyID for CORS preflight check
in the load parameters so the network data task knows to use the per-page
session set, so the loads get attributed to the right application.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::startPreflight):

9:27 AM Changeset in webkit [280424] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[macOS Catalina] Some feature preferences have wrong default values
https://bugs.webkit.org/show_bug.cgi?id=228564

Reviewed by Tim Horton.

When HAVE(SYSTEM_FEATURE_FLAGS) is false, we still need to enable
some features by default.

This patch makes sure the following features are enabled by default
on macOS (consistent with the properties in WebKit-macos.plist):

  • async_frame_and_overflow_scrolling
  • gpu_process_canvas_rendering
  • gpu_process_media
  • gpu_process_webrtc
  • incremental_pdf
  • vp9_decoder
  • webm_format_reader
  • webm_parser
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultUseGPUProcessForCanvasRenderingEnabled):
(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
(WebKit::defaultUseGPUProcessForMediaEnabled):
(WebKit::defaultCaptureAudioInGPUProcessEnabled):
(WebKit::defaultCaptureVideoInGPUProcessEnabled):
(WebKit::defaultWebRTCCodecsInGPUProcess):
(WebKit::defaultIncrementalPDFEnabled):
(WebKit::defaultWebMFormatReaderEnabled):

8:30 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
8:16 AM Changeset in webkit [280423] by Adrian Perez de Castro
  • 7 edits in trunk

[CMake] Use an imported target for the libgcrypt library
https://bugs.webkit.org/show_bug.cgi?id=228581

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/FindLibGcrypt.cmake: Replaced find module by a new one which defines a

LibGcrypt::LibGcrypt imported target, using more modern CMake constructs.

  • Source/cmake/OptionsGTK.cmake: Use the LibGcrypt::LibGcrypt imported target.
  • Source/cmake/OptionsWPE.cmake: Ditto.

Source/WebCore:

No new tests needed.

  • platform/GCrypt.cmake: Use the LibGcrypt::LibGcrypt imported target.
  • platform/GStreamer.cmake: Remove unneeded usage of ${LIBGCRYPT_INCLUDE_DIRS} and

${LIBGCRYPT_LIBRARIES}, as those are handled now by making WebCore depend on the
LibGcrypt::LibGcrypt imported target.

7:56 AM Changeset in webkit [280422] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[WPE][GTK] .asc file extension is appended to filename of text/plain downloads
https://bugs.webkit.org/show_bug.cgi?id=228566

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-07-29
Reviewed by Adrian Perez de Castro.

Source/WebCore:

Our MIMETypeRegistry::preferredExtensionForMIMEType returns "asc" for text/plain, possibly
because "asc" sorts alphabetically ahead of all other possible file extensions for
text/plain, and we just pick the first one. So if the text file does not contain any file
extension, we give it a file extension for a GPG signature. Ouch.

I don't know how to fix it, but we don't need to, because we don't really want to append any
file extension for text/plain anyway. That's just annoying. If I download a file named
"backtrace" then I don't want it renamed to "backtrace.txt". That would be expected on
Windows, but certainly not from WebKitGTK. So I think it's reasonable to have a special case
for text/plain.

  • platform/xdg/MIMETypeRegistryXdg.cpp:

(WebCore::MIMETypeRegistry::preferredExtensionForMIMEType):

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:

(serverCallback):
(testDownloadTextPlainMIMEType):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/resources/text: Added.
4:21 AM Changeset in webkit [280421] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer should update m_currentRotationSessionAngle
https://bugs.webkit.org/show_bug.cgi?id=228549
<rdar://80608977>

Reviewed by Eric Carlson.

Do not forget to update m_currentRotationSessionAngle when creating a new rotation session.
Also, make sure to recreate rotation session in case the pixel buffer size changes.

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):

4:21 AM Changeset in webkit [280420] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

NetworkRTCUDPSocketCocoaConnections nw_listener_set_state_changed_handler callback should hold a reference to its listener
https://bugs.webkit.org/show_bug.cgi?id=228551
<rdar://81137047>

Reviewed by Alex Christensen.

nw_listener is not guaranteed to stay valid when calling the state change callback.
We need to hold a reference to the listener in the callback.
To prevent memory leaks, the callback will clear its listener reference when entering cancelled state.
The cancelled state is guaranteed to happen when calling cancel in the listener, which happens when closing the socket.
Covered by existing tests.

  • NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:

(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):

4:03 AM Changeset in webkit [280419] by Adrian Perez de Castro
  • 12 edits in trunk/Source

Non-unified build fixes, late July 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=228579

Unreviewed non-unified build fixes.

Source/WebCore:

  • Modules/webaudio/AudioContextOptions.h: Add missing <optional> header.
  • html/BaseDateAndTimeInputType.cpp: Add missing "FrameView.h" header.
  • page/PageConfiguration.cpp: Add missing "BroadcastChannelRegistry.h" header.

Source/WebKit:

  • NetworkProcess/IndexedDB/WebIDBServer.cpp: Add missing "Logging.h" header.
  • NetworkProcess/NetworkBroadcastChannelRegistry.cpp: Add missing

<WebCore/MessageWithMessagePorts.h> header.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp: Add missing

"NetworkBroadcastChannelRegistry.h" header.

  • UIProcess/gtk/WebDateTimePickerGtk.cpp:

(WebKit::timeToString): Add missing WebCore:: namespace prefix to usages of constants of the
WebCore::SecondFormat enum.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: Add missing

<WebCore/FrameView.h> header.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp: Add missing

<WebCore/RenderView.h> header.

  • WebProcess/gtk/GtkSettingsManagerProxy.cpp: Add missing "WebCore.h" header.
1:32 AM Changeset in webkit [280418] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

☂️ [GPU Process] Defer removal of resources in the GPU Process until we've executed all display list items which reference them
https://bugs.webkit.org/show_bug.cgi?id=228216
<rdar://problem/80473805>

Reviewed by Wenson Hsieh.

All the code changes have landed. Mark the tests as passing again.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
Note: See TracTimeline for information about the timeline view.