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

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:
Note: See TracTimeline for information about the timeline view.