Timeline
Jul 1, 2021:
- 11:37 PM Changeset in webkit [279498] by
-
- 13 edits in trunk
CSS parser using a token for Unicode ranges, but recent CSS specification says it should not
https://bugs.webkit.org/show_bug.cgi?id=227569
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-syntax/unicode-range-selector-expected.txt:
- web-platform-tests/css/css-syntax/urange-parsing-expected.txt:
Expect passes instead of fails.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-syntax/unicode-range-selector.html
imported/w3c/web-platform-tests/css/css-syntax/urange-parsing.html
- css/parser/CSSParserToken.cpp:
(WebCore::CSSParserToken::CSSParserToken): Change the NumberToken constructor to
take a StringView so we can recover the original text if we need to parse it as
part of a Unicode range.
(WebCore::mergeIfAdjacent): Added. Helper used by convertToDimensionWithUnit.
(WebCore::CSSParserToken::convertToDimensionWithUnit): If the number token string
is adjacent to the dimension, then store the string containing both, so it can
be used if we need to parse it as part of a Unicode range. If the string is long,
then don't bother because a long string can't be part of such a range anyway. We
use 4 bits for the length, so can handle lengths in the range [1,15].
(WebCore::CSSParserToken::originalText const): Added. Used to recover the original
text for Unicode range parsing.
(WebCore::CSSParserToken::unitString const): Added. Used to get just the unit part
of the string for DimensionToken, since the full string now can include the number
as well in some cases (see above).
(WebCore::CSSParserToken::copyWithUpdatedString const): Changed the argument type
to StringView instead of using const& and added an assertion since this is only
safe if we are moving the backing characters, not changing the string contents.
(WebCore::CSSParserToken::valueDataCharRawEqual const): Deleted.
(WebCore::CSSParserToken::operator== const): Use StringView == operator instead of
our own valueDataCharRawEqual function. Also use unitString for DimensionToken.
(WebCore::CSSParserToken::serialize const): Use unitString for DimensionToken.
- css/parser/CSSParserToken.h: Updated for the above. Also deleted
UnicodeRangeToken, unicodeRangeStart, unicodeRangeEnd, and m_unicodeRange.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension):
Use unitString for DimensionToken.
(WebCore::CSSPropertyParserHelpers::parseHexColor): Ditto.
- css/parser/CSSPropertyParserWorkerSafe.cpp:
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeOptionalDelimiter): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeIdentifier): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeAndAppendOptionalNumber): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeAndAppendOptionalDelimiter): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeAndAppendOptionalQuestionMarks): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeUnicodeRangeString): Added.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeUnicodeRange): Added. Along with the
functions above, this implements the CSS specification's algorithm for consuming a Unicode
range, based on existing tokens without requiring a <urange> token.
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFaceUnicodeRange): Call
the new consumeUnicodeRange function from this file instead of the old one that
depended on a <urange> token. Also refactored to use auto and to do the validity
check for the range as specified.
- css/parser/CSSSelectorParser.cpp:
(WebCore::consumeANPlusB): Use unitString for DimensionToken.
- css/parser/CSSTokenizer.cpp:
(WebCore::CSSTokenizer::letterU): Deleted.
(WebCore::CSSTokenizer::consumeNumber): Added code to pass in the original text
when constructing a NumberToken.
(WebCore::CSSTokenizer::consumeUnicodeRange): Deleted.
- css/parser/CSSTokenizer.h: Deleted consumeUnicodeRange.
- css/parser/SizesCalcParser.cpp:
(WebCore::SizesCalcParser::calcToReversePolishNotation): Removed case for
UnicodeRangeToken.
- dom/ConstantPropertyMap.cpp:
(WebCore::variableDataForPositivePixelLength): Pass a null StringView for the
original text when constructing a NumberToken. This is OK for now since this token
won't ever be parsed as part of a Unicode range, and we can change it if we ever
need to support originalText for any other cases.
(WebCore::variableDataForPositiveDuration): Ditto.
- 11:01 PM Changeset in webkit [279497] by
-
- 9 edits in trunk/Source
Unreviewed, reverting r279172.
Broke WebGL context construction on some devices.
Reverted changeset:
"rAF driven WebGL submits excessive amount of GPU work when frames are slow"
https://bugs.webkit.org/show_bug.cgi?id=227059
https://commits.webkit.org/r279172
- 9:05 PM Changeset in webkit [279496] by
-
- 4 edits in trunk/Tools
[run-webkit-tests] Set software_variant from runtime
https://bugs.webkit.org/show_bug.cgi?id=227600
<rdar://problem/80052263>
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/xcode/device_type.py:
(DeviceType._define_software_variant_from_hardware_family):
(DeviceType.check_consistency):
(DeviceType.contains):
- Scripts/webkitpy/xcode/device_type_unittest.py:
(DeviceTypeTest.test_from_string):
(DeviceTypeTest.test_contained_in):
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager._create_device_with_runtime):
- 8:14 PM Changeset in webkit [279495] by
-
- 9 edits in trunk/Source
[macOS] Suspend WebProcesses that are in the process cache
https://bugs.webkit.org/show_bug.cgi?id=227269
Reviewed by Geoffrey Garen.
Suspend WebProcesses that are in the process cache on macOS to make sure they use no CPU.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):
- UIProcess/WebProcessProxy.h:
- UIProcess/mac/WebProcessProxyMac.mm:
(WebKit::WebProcessProxy::platformSuspendProcess):
(WebKit::WebProcessProxy::platformResumeProcess):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setIsInProcessCache):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 6:45 PM Changeset in webkit [279494] by
-
- 4 edits in trunk
loadSimulatedRequest: should do same delegate callbacks as loadHTMLString and loadData
https://bugs.webkit.org/show_bug.cgi?id=227599
Patch by Alex Christensen <achristensen@webkit.org> on 2021-07-01
Reviewed by Chris Dumez.
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadSimulatedRequestAndResponse):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:
(TEST):
- 6:36 PM Changeset in webkit [279493] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: [Regression: r279271] Sources: Breakpoints section in navigation sidebar disappears when Web Inspector becomes taller than 650px
https://bugs.webkit.org/show_bug.cgi?id=227597
Reviewed by Devin Rousso.
As of r279271, flex base size is no longer clamped by max-height. As a result the non-clamped element
(resources-container) was sized to the full height of the container, leaving no space for the other sections
to be shown. Removing theheight: 100%;declaration resolves this by allowing the flex container to lay out
its children as needed. Because the resources container has no maximum height constraint, it still occupies the
remaining height of the container. Each container will also continue to shrink/grow at their prescribed ratio
just as they did before r279271.
- UserInterface/Views/SourcesNavigationSidebarPanel.css:
(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources-container, .local-overrides-container)):
- 6:08 PM Changeset in webkit [279492] by
-
- 5 edits8 adds in trunk
[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis' appended to a SampleBuffer are not played
https://bugs.webkit.org/show_bug.cgi?id=226069
Source/WebCore:
rdar://79951528
Reviewed by Jer Noble.
Source/WebCore:
When parsing samples from a WebM file, the samples emitted by the parser can be very short in
duration, which is ineffecient both in storage costs in our SampleMap, as well as in decoding
CPU costs, as each sample must be fed into the decoder separately. So the parser will group
together these small samples into a larger "meta sample" with a duration no shorter than 2s.
However, at the end of a file, no more sample data will be appended, up to 2s of audio data
will not be emitted from the parser.
At the end of an append, always flush audio track data to ensure that all parsed samples are
emitted, regardless of their collective duration.
Drive-by Fixes:
- The logic to handle a partial frame was incorrect. libwebm will always progress and call
Callback's OnFrame even with partial content as soon as the frame size has been determined.
bytesRemaining actually contains how many bytes there are available to read and that the
Callback should attempt to fetch.
The Callback should then return Status::kOkPartial if the full frame hasn't been seen yet
or Status::kOkCompleted if it has. kWouldBlock indicates that we do not have information to
read. kOkPartial and kWouldBlock indicates that libwebm should
retry later to complete the current frame. All other codes indicate an error.
- createSampleBuffer() would use the entire m_packetsData to create a CMSampleBuffer, even if partial
data was read but not yet complete. Only use the fully parsed data to create the CMSampleBuffer.
When the fully parsed packets are removed from packetsData; adjust the offset of the start of the
current partial data (this was the primary cause for bug 227499 that caused the first backout)
- consumeFrameData() would only increase the size of m_packetsData when m_currentPacketSize was
unset, which would leave the buffer zeroed when partial sample data was present. Always grow
m_packetsData to be large enough to receive the read data.
- The Read() method would not return the correct number of bytes read (0) when a null destination
buffer was passed in.
- Bug 227382 - SourceBufferParserWebM::StreamingVectorReader Read() returns an incorrect value
for numActuallyRead when moving to the next segment.
Test: media/media-source/media-vorbis-partial.html
media/media-source/media-opus-partial.html
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::AudioTrackData::createSampleBuffer):
- platform/graphics/cocoa/SourceBufferParserWebM.h: Rename some members to better indicate what
they contain. Move some members to the base class as they are always used by Video and Audio.
LayoutTests:
- platform/mac/TestExpectations:
- media/media-source/content/test-vorbis-manifest.json: Added.
- media/media-source/content/test-vorbis.webm: Added.
- media/media-source/content/test-opus-manifest.json: Added.
- media/media-source/content/test-opus.webm: Added.
- media/media-source/media-vorbis-partial-expected.txt: Added.
- media/media-source/media-vorbis-partial.html: Added.
- media/media-source/media-opus-partial-expected.txt: Added.
- media/media-source/media-opus-partial.html: Added.
LayoutTests:
Reviewed by Jer Noble.
- media/media-source/content/test-vorbis-manifest.json: Added.
- media/media-source/media-vorbis-partial-expected.txt: Added.
- media/media-source/content/test-vorbis.webm: Added.
- media/media-source/content/test-opus-manifest.json: Added.
- media/media-source/media-opus-partial-expected.txt: Added.
- media/media-source/media-opus-partial.html: Added.
- media/media-source/content/test-opus.webm: Added.
- media/media-source/media-vorbis-partial.html: Added.
- 6:07 PM Changeset in webkit [279491] by
-
- 5 edits3 moves in trunk/Source/WebCore
PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
https://bugs.webkit.org/show_bug.cgi?id=227556
<rdar://79992592>
Reviewed by Alex Christensen.
Source/WebCore:
No new tests since no functionality is changed.
- loader/cocoa/PrivateClickMeasurementCocoa.mm:
Changed import from CryptoKitCBridgingSoftLink.h to CryptoKitPrivateSoftLink.h.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/PlatformMac.cmake:
- pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
- pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
- pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.
- 6:03 PM Changeset in webkit [279490] by
-
- 4 edits in trunk
Align beacon CORS mode with Chrome and Firefox
https://bugs.webkit.org/show_bug.cgi?id=227590
Patch by Alex Christensen <achristensen@webkit.org> on 2021-07-01
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/beacon/beacon-cors.https.window-expected.txt:
Source/WebCore:
This follows https://w3c.github.io/beacon/#sec-processing-model step 6.3.
Now we pass a WPT test that Chrome and Firefox already passed.
- Modules/beacon/NavigatorBeacon.cpp:
(WebCore::NavigatorBeacon::sendBeacon):
- 5:22 PM Changeset in webkit [279489] by
-
- 5 edits in trunk/Source/WebCore
Unreviewed, reverting r279481.
Broke a pre-existing test
Reverted changeset:
"Move BottomControlsBarHeight and InsideMargin to be computed
at runtime"
https://bugs.webkit.org/show_bug.cgi?id=227505
https://commits.webkit.org/r279481
- 5:20 PM Changeset in webkit [279488] by
-
- 3 edits in trunk/Tools
[webkitscmpy] Cache identifiers in Git checkouts (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=225616
<rdar://problem/77789230>
Reviewed by Dewei Zhu.
Python 2's Subprocess is 10x slower than Python 3, which means generating
the cache is impractical in Python 2.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.init): Disable cache on Python 2 by default.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(test_cache): Force Git to use cache.
(test_revision_cache): Ditto.
- 5:08 PM Changeset in webkit [279487] by
-
- 7 edits4 adds in trunk
WebAudio auto-play policy should come from top document
https://bugs.webkit.org/show_bug.cgi?id=227593
rdar://76920375
Reviewed by Chris Dumez.
Source/WebCore:
Tests: media/auto-play-video-in-about-blank-iframe.html
media/auto-play-web-audio-in-about-blank-iframe.html
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::constructCommon): Get auto-play policy from document()->topDocument().
- testing/Internals.cpp:
(WebCore::Internals::setDocumentAutoplayPolicy): New method to test auto-play policy.
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- media/auto-play-video-in-about-blank-iframe-expected.txt: Added.
- media/auto-play-video-in-about-blank-iframe.html: Added.
- media/auto-play-web-audio-in-about-blank-iframe-expected.txt: Added.
- media/auto-play-web-audio-in-about-blank-iframe.html: Added.
- media/video-test.js:
(waitForEventWithTimeout): Return event.
- 4:57 PM Changeset in webkit [279486] by
-
- 3 edits in trunk/Tools
[clean-webkit] Exclude autoinstalled directory
https://bugs.webkit.org/show_bug.cgi?id=227588
<rdar://problem/80033943>
Patch by Jonathan Bedard <Jonathan Bedard> on 2021-07-01
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.discard_untracked_files): Never discard the autoinstalled directory.
- 2:53 PM Changeset in webkit [279485] by
-
- 2 edits2 copies7 moves8 adds1 delete in trunk/LayoutTests
Move some Mac MathML test expectation files around
https://bugs.webkit.org/show_bug.cgi?id=227520
<rdar://79749198>
Reviewed by Frédéric Wang.
This should make it so that the same test expectation files are used
for Monterey as for Big Sur, without needing to add Monterey-specific
files.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Copied from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt.
- platform/mac-mojave-wk1/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt: Renamed from LayoutTests/platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining-expected.txt.
- platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt:
- 2:32 PM Changeset in webkit [279484] by
-
- 8 edits in branches/safari-612.1.21-branch/Source
Versioning.
WebKit-7612.1.21.2
- 1:56 PM Changeset in webkit [279483] by
-
- 20 edits1 add in trunk/Source
Disable relay for UDP sockets when not needed
https://bugs.webkit.org/show_bug.cgi?id=227253
Source/WebCore:
Reviewed by Eric Carlson.
- Modules/mediastream/PeerConnectionBackend.h:
(WebCore::PeerConnectionBackend::shouldFilterICECandidates const):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::setConfiguration):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
(WebCore::LibWebRTCMediaEndpoint::rtcSocketFactory):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::disableICECandidateFiltering):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
Source/WebKit:
Reviewed by Eric Carlson.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createUDPSocket):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h:
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::create):
(WebKit::NetworkRTCUDPSocketCocoa::createUDPSocket):
(WebKit::NetworkRTCUDPSocketCocoa::NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::RTCSocketFactory::RTCSocketFactory):
(WebKit::RTCSocketFactory::CreateUdpSocket):
(WebKit::LibWebRTCProvider::createSocketFactory):
- WebProcess/Network/webrtc/LibWebRTCProvider.h:
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
Source/WTF:
<rdar://problem/79912154>
Reviewed by Eric Carlson.
- wtf/PlatformHave.h:
Add a macro for new NW methods.
- 1:46 PM Changeset in webkit [279482] by
-
- 2 edits in trunk/Tools
[clean-webkit] Exclude autoinstalled directory
https://bugs.webkit.org/show_bug.cgi?id=227588
<rdar://problem/80033943>
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.discard_untracked_files): Never discard the autoinstalled directory.
- 1:28 PM Changeset in webkit [279481] by
-
- 5 edits in trunk/Source/WebCore
Move BottomControlsBarHeight and InsideMargin to be computed at runtime
https://bugs.webkit.org/show_bug.cgi?id=227505
<rdar://problem/79932256>
Reviewed by Devin Rousso.
Rather than having two JS constants that have to be kept in sync
with CSS, simply retrieve the value from the computed style.
No change in behaviour.
- Modules/modern-media-controls/controls/inline-media-controls.js:
(InlineMediaControls.prototype.layout):
- Modules/modern-media-controls/controls/media-controls.css:
(:host(audio), :host(video.media-document.audio), *):
- Modules/modern-media-controls/controls/layout-node.js: Add two helpers to
retrive computed style values.
- 1:22 PM Changeset in webkit [279480] by
-
- 3 edits in trunk/Source/WebCore
HIDGamepadProvider adds an extra 50ms to all inputs
<rdar://70315838> and https://bugs.webkit.org/show_bug.cgi?id=217742
Reviewed by Alex Christensen.
No new tests.
Tried to write an API test to drive inputs in the delay range, but that was way too fragile
on a local developer machine, much less a bot that's under load.
These input delays were an early best-effort to get input to line up with RaF, which the spec
mentions as a goal.
Not sure how 50 slipped in for HID, vs the 16 on GCF.
Whether or not lining up perfectly with RaF is actually a useful goal, in the meantime driving
input as quickly as possible seems much more desirable.
We still want to coalesce multiple close together inputs into 1 logical event to smooth out jitter
with certain devices, and reduce IPC and DOM object churn during rapid input (or with buggy devices).
In testing with what I have on my desk, using a true 0-delay timer for that was not desirable.
But 1ms seems peachy keen.
- platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
- platform/gamepad/mac/HIDGamepadProvider.mm:
- 1:22 PM Changeset in webkit [279479] by
-
- 12 edits1 add in trunk
Selecting or dragging images that contain recognizable text is difficult in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=227544
Reviewed by Devin Rousso.
Source/WebKit:
Long pressing images in editable content on iOS initiates dragging, and a tap-and-half gesture over the image
selects the entire image. Both of these are common interactions for image attachments in Mail compose that
take precedence over new Live Text interactions, so there's no advantage to triggering image analysis on images
in editable content.
Avoid doing this extra work by adjusting
-imageAnalysisGestureDidBegin:to bail early if the image is inside
editable content.
Tests: ImageAnalysisTests.DoNotAnalyzeImagesInEditableContent
ImageAnalysisTests.HandleImageAnalyzerError
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
Add an
isContentEditableflag.
- UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
- UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _imageAnalysisGestureRecognizer]):
Add a testing hook to return the gesture recognizer used to trigger image analysis.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView imageAnalysisGestureRecognizer]):
(-[WKContentView imageAnalysisGestureDidBegin:]):
Pull logic for avoiding image analysis out into a separate lambda, and add a check for
isContentEditable.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::positionInformation):
Populate the
isContentEditableflag based on whether or not the node found by the position information request
is editable.
Tools:
See WebKit/ChangeLog for more details.
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
Link against VisionKitCore on iOS 15+ and macOS 12+.
- TestWebKitAPI/Configurations/WebKitTargetConditionals.xcconfig:
Update WebKitTargetConditionals to be consistent with the other target conditions in WebKit, so that we can use
IOS_SINCE_15in TestWebKitAPI.xcconfig.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm: Added.
Add new API tests that trigger the image analysis gesture recognizer and check whether or not we requested image
analysis from VisionKit.
(TestWebKitAPI::swizzledLocationInView):
(TestWebKitAPI::swizzledProcessRequest):
- 12:59 PM Changeset in webkit [279478] by
-
- 3 edits in trunk/Source/WebCore
Add a layoutTrait for an additional controls scale factor
https://bugs.webkit.org/show_bug.cgi?id=227561
<rdar://problem/79997951>
Reviewed by Anders Carlsson.
Allow controls with different layout traits to apply
a scale factor to their buttons.
No change in behaviour.
- Modules/modern-media-controls/controls/button.js:
(Button.prototype._updateImageMetrics):
(Button):
- Modules/modern-media-controls/controls/layout-traits.js:
(LayoutTraits.prototype.additionalControlScaleFactor):
(LayoutTraits):
- 12:37 PM Changeset in webkit [279477] by
-
- 31 edits in trunk/Source
[Model] Restrict IPC calls to ARKit SPI availability and runtime flag
https://bugs.webkit.org/show_bug.cgi?id=227581
Reviewed by Tim Horton.
Source/WebCore:
Guard all IPC calls related to <model> by the most appropriate platform-specific flag
and also ensure that those calls don't do anything unless the runtime flag is also
enabled.
- Modules/model-element/HTMLModelElement.cpp:
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElementCocoa.mm:
(WebCore::HTMLModelElement::inlinePreviewDidObtainContextId):
- loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::modelElementDidCreatePreview const):
- loader/EmptyClients.h:
- page/ChromeClient.h:
Source/WebKit:
Guard all IPC calls related to <model> by the most appropriate platform-specific flag
and also ensure that those calls don't do anything unless the runtime flag is also
enabled.
- Shared/WebProcessDataStoreParameters.h:
(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
(WebKit::ModelElementController::takeModelElementFullscreen):
(WebKit::ModelElementController::modelElementDidCreatePreview):
- UIProcess/ModelElementController.cpp:
- UIProcess/ModelElementController.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::takeModelElementFullscreen):
(WebKit::WebPageProxy::modelElementDidCreatePreview):
(WebKit::WebPageProxy::modelElementPreviewDidObtainContextId):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::webProcessDataStoreParameters):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
(WebKit::WebsiteDataStoreConfiguration::copy const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::modelElementDidCreatePreview const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::modelElementPreviewDidObtainContextId):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setWebsiteDataStoreParameters):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):
Source/WTF:
Define a new compile-time flag when either of the iOS or macOS ARKit SPIs are available.
- wtf/PlatformHave.h:
- 11:52 AM Changeset in webkit [279476] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Fix sandbox violations related to IOKit filtering
https://bugs.webkit.org/show_bug.cgi?id=227572
<rdar://78354215>
Reviewed by Brent Fulgham.
- WebProcess/com.apple.WebProcess.sb.in:
- 11:34 AM Changeset in webkit [279475] by
-
- 4 edits in trunk/Source
[iOS] <select> menus should scroll to the selected option
https://bugs.webkit.org/show_bug.cgi?id=227562
<rdar://problem/77887668>
Reviewed by Wenson Hsieh.
Source/WebKit:
Before iOS 15, <select> pickers were implemented using UIPickerView on
iPhone and UITableView on iPad. Both these views gave WebKit the ability
to scroll the view to the currently selected option.
In iOS 15, <select> options are displayed in a context menu. WebKit does
not have access to the menu's view hierarchy, and must rely on UIKit to
perform the scrolling behavior.
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPicker createMenu]):
Adopt UIMenuOptionsSingleSelection to obtain UIKit behaviors for popup menus.
Source/WTF:
- wtf/PlatformHave.h:
Add HAVE(UIMENUOPTIONS_SINGLE_SELECTION).
- 11:24 AM Changeset in webkit [279474] by
-
- 1 copy in tags/Safari-612.1.21.1
Tag Safari-612.1.21.1.
- 11:24 AM Changeset in webkit [279473] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove unnecessary canBeInternal invocations to mitigate the cost of potential unmatched patterns in B3LowerToAir
https://bugs.webkit.org/show_bug.cgi?id=227508
Patch by Yijia Huang <Yijia Huang> on 2021-07-01
Reviewed by Filip Pizlo.
The bit pattern doesn't cause worse code generation in the all-internals-are-captured
case. So, they don't need canBeInternal checks which might terminate potential matched
scenarios.
The equivalent pattern of SBFIZ is ((src << amount) >> amount) << lsb. Given the code:
a = x << C
b = a >> C
c = b << D
print(a)
print(b)
print(c)
The pattern won't match because of !canBeInternal for a and b (useCounts > 1).
So, this would emit three separate instructions. But if we removed canBeInternal,
it would still be just three separate instructions, and they wouldn't be any more
expensive. Suppose the print(b) is removed, above. Then, with the canBeInternal check,
it is emitting three instructions. Without the canBeInternal check, it would emit only
two (x << C and SBFIZ to compute c). And that would be less expensive.
- b3/B3LowerToAir.cpp:
- 10:41 AM Changeset in webkit [279472] by
-
- 13 edits in trunk
ReadableStream.getReader do not throw a proper exception when parameter is of wrong type
https://bugs.webkit.org/show_bug.cgi?id=226220
<rdar://problem/78711382>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/streams/readable-streams/default-reader.any-expected.txt:
- web-platform-tests/streams/readable-streams/default-reader.any.worker-expected.txt:
- web-platform-tests/streams/readable-streams/general.any-expected.txt:
- web-platform-tests/streams/readable-streams/general.any.worker-expected.txt:
- web-platform-tests/streams/readable-streams/templated.any-expected.txt:
- web-platform-tests/streams/readable-streams/templated.any.worker-expected.txt:
Source/WebCore:
Covered by rebased tests.
- Modules/streams/ReadableStream.js:
(getReader):
Tighten option parameter check.
In case mode is bad, fire a type error instead of range error.
LayoutTests:
- streams/readable-stream-getReader-expected.txt:
- streams/readable-stream-getReader.html:
Update test to match latest spec.
- 10:37 AM Changeset in webkit [279471] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
Disable ABSL_HAVE_THREAD_LOCAL in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=227577
<rdar://79915864>
Reviewed by Eric Carlson.
We do no want to resort on thread local yet so disable ABSL_HAVE_THREAD_LOCAL until we can use it properly.
- Source/third_party/abseil-cpp/absl/base/config.h:
- 10:25 AM Changeset in webkit [279470] by
-
- 8 edits in trunk/Source/JavaScriptCore
Add a new pattern to instruction selector to use EXTR supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=227171
Patch by Yijia Huang <Yijia Huang> on 2021-07-01
Reviewed by Robin Morisset.
This patch includes two modifications:
- Introduce a strength reduction rule to zero extend bitfield.
- Add Extract Register (EXTR) to Air opcode to serve instruction selector.
### Part A zero extend bitfield ###
A new strength reduction rule is added for the canonical form of the zero-extend
bitfield.
Turn this: ZShr(Shl(value, amount)), amount)
Into this: BitAnd(value, mask)
with constraints:
- 0 <= amount < datasize
- width = datasize - amount
- mask is !(mask & (mask + 1)) where bitCount(mask) == width
### Part B EXTR ###
Given instruction:
extr Rd, Rn, Rm, lowWidth
Extract register (EXTR) extracts a register from a pair of registers, where
concat = Rn:Rm and Rd = concat<lowWidth + datasize - 1:lowWidth>.
The equivalent pattern of this instruction is:
d = ((n & mask) << highWidth) | (m >> lowWidth)
highWidth = datasize - lowWidth
mask = (1 << lowWidth) - 1
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = mask
Int @3 = BitAnd(@0, @2)
Int @4 = highWidth
Int @5 = Shl(@3, @4)
Int @6 = lowWidth
Int @7 = ZShr(@1, @6)
Int @8 = BitOr(@7, @5)
Void@9 = Return(@10, Terminal)
Before Adding BIC:
Old optimized AIR
InsertUnsignedBitfieldInZero %x0, highWidth, lowWidth, %x0, @5
Urshift %x1, lowWidth, %x1, @7
Or %x0, %x1, %x0, @8
Ret %x0, @9
After Adding BIC:
New optimized AIR
ExtractRegister %x0, %x1, lowWidth, %x0, @8
Ret %x0, @9
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::extractRegister32):
(JSC::MacroAssemblerARM64::extractRegister64):
- assembler/testmasm.cpp:
(JSC::testExtractRegister32):
(JSC::testExtractRegister64):
- b3/B3LowerToAir.cpp:
- b3/B3ReduceStrength.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(testBitfieldZeroExtend32):
(testBitfieldZeroExtend64):
(testExtractRegister32):
(testExtractRegister64):
(addBitTests):
- 10:14 AM Changeset in webkit [279469] by
-
- 8 edits in branches/safari-612.1.21-branch/Source
Versioning.
WebKit-7612.1.21.1
- 10:09 AM Changeset in webkit [279468] by
-
- 3 edits in branches/safari-612.1.21-branch/Source/ThirdParty/ANGLE
Cherry-pick r279373. rdar://problem/80030448
ANGLE Metal primitive restart range computation could index with size_t
https://bugs.webkit.org/show_bug.cgi?id=227449
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-29
Reviewed by Kenneth Russell.
Make the
calculateRestartRanges()a bit simpler in order
for it to be easier to understand.
- src/libANGLE/renderer/metal/BufferMtl.h:
(rx::IndexRange::IndexRange):
Add documentation what the mtl::IndexRange is.
Add constructor so that
std::vector::emplace_back()works.
- src/libANGLE/renderer/metal/BufferMtl.mm:
(rx::calculateRestartRanges):
Index with size_t to make it simpler to understand if the index
overflows or not.
Use reinterpret_cast in order to not accidentally cast away
const from
mtl::BufferRef::mapReadOnly(). Skip the non-marker elements withcontinueto avoid deep nesting. Give a name to the restart range marker value. Remove intermediate variablevalue = bufferData[i]as it is never used more than once. This simplifies the code as the do-while loop does not need to check the if condition as the loop ending condition already checks. Make the array a returned result instead of out variable.
(rx::BufferMtl::getRestartIndices):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:08 AM Changeset in webkit [279467] by
-
- 5 edits3 moves in trunk/Source/WebCore
Unreviewed, reverting r279452.
Broke MacOS build
Reverted changeset:
"PCM: Change import from CryptoKitCBridging to
CryptoKitPrivate"
https://bugs.webkit.org/show_bug.cgi?id=227556
https://commits.webkit.org/r279452
- 10:03 AM Changeset in webkit [279466] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
BabylonJS Under water demo is slower than it should be on Intel
https://bugs.webkit.org/show_bug.cgi?id=227226
Remove fastMath restriction on Intel
Removing fastmath in all scenarios leads to unacceptable performance on integrated graphics
Currently, webgl conformance tests and the Safari tests don't have any invariance tests that show invariance issues. deQP tests are similarly passing.
In Metal-ANGLE, gl_position and gl_fragcoord are valid attributes to be marked as invariant. All others will be ignored.
Reviewed by Kenneth Russell.
- src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:
(GenMetalTraverser::emitPostQualifier):
- src/libANGLE/renderer/metal/mtl_utils.mm:
(rx::mtl::CreateShaderLibrary):
- 9:34 AM Changeset in webkit [279465] by
-
- 2 edits in trunk/Source/WebKit
[Mac] Adopt async GroupActivity.sessions() iterable instead of GroupSessionObserver
https://bugs.webkit.org/show_bug.cgi?id=227548
<rdar://78240035>
Reviewed by Sam Weinig.
Rather than adopting GroupSessionObserver, which requires Combine, GroupActivity.sessions()
uses AsyncSequence, a new Swift 5.5 feature, to allow clients to be notified that new
sessions are avaliable.
- UIProcess/Cocoa/GroupActivities/WKGroupSession.swift:
(WKGroupSessionObserver.incomingSessionsTask):
(WKGroupSessionObserver.receivedSession(_:)):
(WKGroupSessionObserver.cancellables): Deleted.
(WKGroupSessionObserver.recievedSession(_:)): Deleted.
- 8:58 AM Changeset in webkit [279464] by
-
- 3 edits in trunk/Source/WebKit
[Cocoa] Migrate WebRTC UDP socket handling to NW API
https://bugs.webkit.org/show_bug.cgi?id=227210
<rdar://problem/79859045>
Unreviewed, post commit fix.
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h:
(WTF::HashTraits<rtc::SocketAddress>::constructDeletedValue):
(WTF::HashTraits<rtc::SocketAddress>::isDeletedValue):
No need to set all deleted value slots, instead just rely on scope id being equal to numeric_limits<int>::min.
Also ensure we do not add an empty/deleted address to the map.
- 6:29 AM Changeset in webkit [279463] by
-
- 6 edits2 adds in trunk
VisiblePosition::absoluteSelectionBoundsForLine fails on multiline vertical-rl content
https://bugs.webkit.org/show_bug.cgi?id=227543
<rdar://79887141>
Reviewed by Simon Fraser.
Source/WebCore:
absoluteSelectionBoundsForLine flips the line's logical rect for the writing mode (horizontal vs. vertical)
but not for the block flow direction (ltr vs. rtl).
This adjustment is very similar to what we do in absoluteCaretBounds (see absoluteBoundsForLocalCaretRect).
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):
- testing/Internals.cpp:
(WebCore::Internals::absoluteLineRectFromPoint):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/inline/line-rect-from-point-expected.txt: Added.
- fast/inline/line-rect-from-point.html: Added.
- 4:20 AM Changeset in webkit [279462] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r278062): [Nicosia] Threaded rendering is broken since r278062
https://bugs.webkit.org/show_bug.cgi?id=227578
Reviewed by Žan Doberšek.
Since r278062 NicosiaCairoOperationRecorder is a GraphicsContext class, so we need to bring back things
previously done by the base class and chain up to base class save/restore and being/end transparency.
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::fillPath):
(Nicosia::CairoOperationRecorder::strokePath):
(Nicosia::CairoOperationRecorder::drawLine):
(Nicosia::CairoOperationRecorder::drawLinesForText):
(Nicosia::CairoOperationRecorder::drawFocusRing):
(Nicosia::CairoOperationRecorder::save):
(Nicosia::CairoOperationRecorder::restore):
(Nicosia::CairoOperationRecorder::beginTransparencyLayer):
(Nicosia::CairoOperationRecorder::endTransparencyLayer):
- 3:37 AM Changeset in webkit [279461] by
-
- 20 edits1 copy2 moves1 add in trunk
[Cocoa] Migrate WebRTC UDP socket handling to NW API
https://bugs.webkit.org/show_bug.cgi?id=227210
LayoutTests/imported/w3c:
Reviewed by Eric Carlson.
Rebasing tests as timing changes a bit.
This aligns with Chrome and Firefox behavior.
- web-platform-tests/webrtc/no-media-call-expected.txt:
- web-platform-tests/webrtc/promises-call-expected.txt:
Source/ThirdParty/libwebrtc:
Reviewed by Eric Carlson.
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
Source/WebCore:
Reviewed by Eric Carlson.
Add infrastructure to new experimental feature flag for NW backed UDP sockets.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webRTCPlatformTCPSocketsEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformTCPSocketsEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCPlatformUDPSocketsEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformUDPSocketsEnabled):
Source/WebKit:
Reviewed by Eric Carlson.
Migrate UDP socket handling from WebRTC physical socket server to nw API for Cocoa ports.
For each UDP socket opened, we open a nw_listener that will listen to inbound connections.
On inbound connection, we receive a nw_connection that we store in a address -> connection map.
Whenever sending a packet, we look at the remote address.
If needed, we create a nw_connection to that particular remote address and store it in the address -> connection map.
We then use the pre-existing or newly created nw_connection to send the packet.
Make sure to cancel NW connection in case of failure before releasing the socket.
Covered by existing tests
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
(WebKit::NetworkRTCProvider::setPlatformTCPSocketsEnabled):
(WebKit::NetworkRTCProvider::setPlatformUDPSocketsEnabled):
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.h.
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm: Renamed from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm.
(WebKit::tcpSocketQueue):
(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
(WebKit::NetworkRTCTCPSocketCocoa::close):
(WebKit::NetworkRTCTCPSocketCocoa::setOption):
(WebKit::NetworkRTCTCPSocketCocoa::createMessageBuffer):
(WebKit::NetworkRTCTCPSocketCocoa::sendTo):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h: Added.
(WTF::DefaultHash<rtc::SocketAddress>::hash):
(WTF::DefaultHash<rtc::SocketAddress>::equal):
(WTF::HashTraits<rtc::SocketAddress>::emptyValue):
(WTF::HashTraits<rtc::SocketAddress>::constructDeletedValue):
(WTF::HashTraits<rtc::SocketAddress>::isDeletedValue):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm: Added.
(WebKit::NetworkRTCUDPSocketCocoaConnections::create):
(WebKit::NetworkRTCUDPSocketCocoaConnections::WTF_GUARDED_BY_LOCK):
(WebKit::udpSocketQueue):
(WebKit::NetworkRTCUDPSocketCocoa::createUDPSocket):
(WebKit::NetworkRTCUDPSocketCocoa::NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoa::~NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoa::close):
(WebKit::NetworkRTCUDPSocketCocoa::setOption):
(WebKit::NetworkRTCUDPSocketCocoa::sendTo):
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::close):
(WebKit::NetworkRTCUDPSocketCocoaConnections::setOption):
(WebKit::processUDPData):
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
(WebKit::NetworkRTCUDPSocketCocoaConnections::setupNWConnection):
(WebKit::NetworkRTCUDPSocketCocoaConnections::sendTo):
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::setConnection):
Source/WTF:
Reviewed by Eric Carlson.
Add a new experimental flag for NW backed UDP sockets.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
<rdar://problem/79859045>
Reviewed by Eric Carlson.
- platform/ios-simulator-wk2/TestExpectations:
Mark test as failed, as this test is using unsupported API (transport).
- 3:35 AM Changeset in webkit [279460] by
-
- 15 edits in trunk/Source
[Cairo] Simplify GraphicsContextCairo creation
https://bugs.webkit.org/show_bug.cgi?id=227575
Reviewed by Žan Doberšek.
Source/WebCore:
Remove the constructors taking a PlatformContextCairo and add two that receive a RefPtr<cairo_t>&& and
cairo_surface_t*. In both cases the PlatformContextCairo is created, so it's now always owned and callers don't
need to create it.
No change in behavior, covered by existing tests.
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContextCairo::GraphicsContextCairo):
(WebCore::GraphicsContextCairo::drawLine):
- platform/graphics/cairo/GraphicsContextCairo.h:
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
(WebCore::ImageBufferCairoSurfaceBackend::ImageBufferCairoSurfaceBackend):
(WebCore::ImageBufferCairoSurfaceBackend::context const):
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
- platform/graphics/cairo/NativeImageCairo.cpp:
- platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::PlatformContextCairo):
- platform/graphics/cairo/PlatformContextCairo.h:
(WebCore::PlatformContextCairo::cr const):
(WebCore::PlatformContextCairo::cr): Deleted.
(WebCore::PlatformContextCairo::setCr): Deleted.
- platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.cpp:
(Nicosia::PaintingContextCairo::ForPainting::ForPainting):
(Nicosia::PaintingContextCairo::ForPainting::~ForPainting):
(Nicosia::PaintingContextCairo::ForPainting::replay):
- platform/graphics/nicosia/cairo/NicosiaPaintingContextCairo.h:
- platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContextCairo::GraphicsContextCairo):
- platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
Source/WebKit:
Use the new GraphicsContextCairo constructors.
- Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createGraphicsContext):
- UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::incorporateUpdate):
- 3:19 AM Changeset in webkit [279459] by
-
- 6 edits in trunk
RealtimeIncomingAudioSourceCocoa should support other sample rate than 48000
https://bugs.webkit.org/show_bug.cgi?id=227439
Reviewed by Eric Carlson.
Source/WebCore:
We reduced memory allocations by early allocating buffers for the most often used sample rate (48000), but this broke other sample rates, like for G722.
Make sure to update sample rate and buffers if it is not 48000.
Since the initial OnData call is often with a sample rate of 16000 and switches to 48000 after a few calls, early return for a few initial calls (20) or if sample rate is not 16000.
Covered by updated test.
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.h:
LayoutTests:
Improve test to validate received audio is not silence.
- webrtc/audio-peer-connection-g722-expected.txt:
- webrtc/audio-peer-connection-g722.html:
- 2:10 AM Changeset in webkit [279458] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, unskip web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html
https://bugs.webkit.org/show_bug.cgi?id=227574
This was unskipped in https://trac.webkit.org/changeset/279401/webkit, before it was (accidentally?) re-skipped
again in https://trac.webkit.org/changeset/279427/webkit.
- 2:03 AM Changeset in webkit [279457] by
-
- 10 edits in trunk
Support unprefixed :autofill pseudo-class.
https://bugs.webkit.org/show_bug.cgi?id=220459
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/selectors/pseudo-classes/autofill-expected.txt: Test passes now
Source/WebCore:
Tests: web-platform-tests/html/semantics/selectors/pseudo-classes/autofill.html
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText const):
- css/SelectorPseudoClassAndCompatibilityElementMap.in:
LayoutTests:
- fast/css/css-selector-text-expected.txt:
- fast/css/css-selector-text.html:
- fast/css/css-set-selector-text-expected.txt:
- fast/css/css-set-selector-text.html:
- 1:45 AM Changeset in webkit [279456] by
-
- 2 edits in trunk/Tools
[WPE] Pack Cog modules in built-product archive
https://bugs.webkit.org/show_bug.cgi?id=227527
Patch by Philippe Normand <pnormand@igalia.com> on 2021-07-01
Reviewed by Žan Doberšek.
- CISupport/built-product-archive: Cog now ships its platform plugins in a dedicated modules
directory, which we need to include in the zip archive.
- 1:22 AM Changeset in webkit [279455] by
-
- 4 edits in trunk/Source/WebCore
Change
typedef EventSender<X> Ytousing Y = EventSender<X>
https://bugs.webkit.org/show_bug.cgi?id=227570
Reviewed by Antti Koivisto.
This is for consistency with HTMLDialogElement.h, HTMLStyleElement.h and SVGSMILElement.h.
- html/HTMLDetailsElement.h:
- html/HTMLLinkElement.h:
- loader/ImageLoader.h:
- 12:37 AM Changeset in webkit [279454] by
-
- 2 edits2 copies1 delete in trunk/LayoutTests
Merge LayoutTests/imported/blink/fast/dom/HTMLDialogElement and LayoutTests/imported/blink/dialog
https://bugs.webkit.org/show_bug.cgi?id=227566
Reviewed by Antti Koivisto.
They're only one directory in the Chromium codebase: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/html/dialog/;drc=d154f7938274ffda2e51690404522117533be62a
Keep only LayoutTests/imported/blink/dialog.
- TestExpectations:
- imported/blink/dialog/dont-share-style-to-top-layer-expected.html: Renamed from LayoutTests/imported/blink/fast/dom/HTMLDialogElement/dont-share-style-to-top-layer-expected.html.
- imported/blink/dialog/dont-share-style-to-top-layer.html: Renamed from LayoutTests/imported/blink/fast/dom/HTMLDialogElement/dont-share-style-to-top-layer.html.
- 12:07 AM Changeset in webkit [279453] by
-
- 4 edits in trunk/Source
[Mac] (Re-)enable GroupActivities after upstreaming
https://bugs.webkit.org/show_bug.cgi?id=227546
Reviewed by Eric Carlson.
Source/WebKit:
Fix some build errors exposed by enabling GroupActivities.
- UIProcess/Cocoa/GroupActivities/GroupActivitiesCoordinator.mm:
Source/WTF:
Add support for HAVE_GROUP_ACTIVITIES.
- wtf/PlatformHave.h:
Jun 30, 2021:
- 11:32 PM Changeset in webkit [279452] by
-
- 5 edits3 moves in trunk/Source/WebCore
PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
https://bugs.webkit.org/show_bug.cgi?id=227556
<rdar://79992592>
Reviewed by Alex Christensen.
Source/WebCore:
No new tests since no functionality is changed.
- loader/cocoa/PrivateClickMeasurementCocoa.mm:
Changed import from CryptoKitCBridgingSoftLink.h to CryptoKitPrivateSoftLink.h.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/PlatformMac.cmake:
- pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
- pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
- pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.
- 11:32 PM Changeset in webkit [279451] by
-
- 26 edits1 copy1 add in trunk/Source
[Model] [macOS] Add support for rendering model resources
https://bugs.webkit.org/show_bug.cgi?id=227530
<rdar://problem/79968206>
Reviewed by Dean Jackson.
Source/WebCore:
On macOS, ASVInlinePreview requires an instance in both the WebProcess and the UIProcess to exist with a matching UUID.
On the WebCore side, in the WebProcess, after writing the model resource as a file to disk, we create an instance when a
<model> element is created and message the UIProcess through the ChromeClient providing the UUID generated for it. When
the UIProcess is done processing this message, it will reply with another message which calls into
HTMLModelElement::inlinePreviewDidObtainContextId() with the matching UUID and a context ID for the remote context.
We can then set that remote context ID on our ASVInlinePreview instance.
We also introduce a HTMLModelElement::platformLayer() method such that RenderLayerBacking::updateConfiguration() can call
it to host the ASVInlinePreview layer.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::~HTMLModelElement):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::notifyFinished):
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElementCocoa.mm: Added.
(WebCore::HTMLModelElement::createFile):
(WebCore::HTMLModelElement::clearFile):
(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::inlinePreviewDidObtainContextId):
(WebCore::HTMLModelElement::platformLayer const):
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::modelElementDidCreatePreview const):
- loader/EmptyClients.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::modelElementDidCreatePreview const):
- platform/Logging.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
Source/WebCore/PAL:
Declare the ASVInlinePreview class for macOS.
- PAL.xcodeproj/project.pbxproj:
- pal/spi/mac/SystemPreviewSPI.h: Added.
Source/WebKit:
On macOS, ASVInlinePreview requires an instance in both the WebProcess and the UIProcess to exist with a matching UUID.
On the WebKit side, in the UIProcess, we receive a message from the WebProcess when the ASVInlinePreview in that process
was created with its generated UUID. We provide this to the ModelElementController, set the remote connection up and load
the file. When those tasks complete successfully we message back the WebProcess with the UUID and the provided ElementContext
to talk back to the HTMLModelElement instance that initiated the message to the UIProcess in the first place.
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
(WebKit::ModelElementController::modelElementDidCreatePreview):
- UIProcess/ModelElementController.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::modelElementDidCreatePreview):
(WebKit::WebPageProxy::modelElementPreviewDidObtainContextId):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::modelElementDidCreatePreview const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::modelElementDidCreatePreview):
(WebKit::WebPage::modelElementPreviewDidObtainContextId):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WTF:
Add a new compile-time flag indicating the availability of the ASVInlinePreview SPI on macOS.
We only define it when the header itself is present for now to avoid issues with older macOS
12 SDKs, but ultimately we will only use the macOS version check.
- wtf/PlatformHave.h:
- 11:09 PM Changeset in webkit [279450] by
-
- 4 edits in trunk
Regression(r278737): WebContent crash when calling [WKWebView loadHTMLString:] with an invalid URL
https://bugs.webkit.org/show_bug.cgi?id=227560
<rdar://79815425>
Reviewed by Alex Christensen.
Source/WebKit:
Make sure the parsed URL is valid in WebPage::loadData() before getting its protocol and calling
LegacySchemeRegistry::registerURLSchemeAsHandledBySchemeHandler() with it. Passing a null String
to LegacySchemeRegistry::registerURLSchemeAsHandledBySchemeHandler() causes crashes.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadData):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:
(TEST):
- 11:07 PM Changeset in webkit [279449] by
-
- 8 edits in trunk
Turn off data ICs by default
https://bugs.webkit.org/show_bug.cgi?id=227334
<rdar://problem/79802812>
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/deltablue-varargs.js:
- microbenchmarks/richards-try-catch.js:
Source/JavaScriptCore:
There are GC crashes that are caused by access data IC sharing. This
patch is both turning off data IC sharing by default, and turning off data
ICs by default.
We should re-enable this once we figure out the issue:
https://bugs.webkit.org/show_bug.cgi?id=227551
Some of our testing modes are still running with data ICs on, so the code doesn't
bit rot. And a select few tests are running with data IC sharing on, for
similar reasons, even though we know it has issues. If those tests start
crashing, we'll just disable sharing completely until the issue is resolved.
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
- runtime/OptionsList.h:
Tools:
- Scripts/run-jsc-stress-tests:
- 7:12 PM Changeset in webkit [279448] by
-
- 6 edits1 add in trunk
[JSC] Stop generating default parameter code if class constructor is called without 'new'
https://bugs.webkit.org/show_bug.cgi?id=227547
rdar://78821453
Reviewed by Mark Lam.
JSTests:
- stress/calling-non-callable-constructors.js: Added.
(shouldThrow):
Source/JavaScriptCore:
We already do not generate body bytecode when class constructor is called without 'new' because many features including "super()" assume
that they generate bytecode only when it is called as a constructor. But we are not doing that for default parameters' bytecode generation.
This patch stops generating bytecode for default parameters if class constructor is called without 'new'.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
- runtime/ConstructorKind.h:
- 7:03 PM Changeset in webkit [279447] by
-
- 15 edits in trunk
[JSC] Private names should be handled by usedVariables mechanism
https://bugs.webkit.org/show_bug.cgi?id=227476
rdar://76049469
Reviewed by Saam Barati.
Source/JavaScriptCore:
Private name handling in the current parser has many problems.
- The parser backtracks when it sees destructuring assignment, arrow function etc. In that case, the discarded code must not have any effect on the outside of that code. However, private name handling is annotating "used" of the upper scopes, which is wrong.
- In class expression, private name lookup intentionally skips the class-scope when parsing class heritage. But this is not correct since CodeBlock will perform lookup on the normal scope chain and this will look into the class-scope inconsistently. This means that we could encounter different private name at runtime. (it is tested in the added test).
- We skip inner function parsing when it is parsed previously. At that case, we must preserve private name annotation, but restored function information does not preserve that.
This patch changes how private name is handled.
- We were anyway defining #XXX variables which holds private symbols. So we track "use" information by the mechanism used for usual variables. We remove Used / Declared bits from PrivateNameEntry since they are not necessary at runtime, and these information is handled / tracked in Parser's Scope. For backtracking, we already have a mechanism to roll-back m_usedVariables, so using variable mechanism automatically fixes the problem.
- We define class-head-scope separately from class-scope. class-heritage expression can see class name, but it cannot use private names. Previously, our implementation attempted to achieve that by hacky way: skipping this class-scope for private names only while parsing class-heritage. But this was wrong since it does not consider CodeBlock's linking phase as described in the problem (2). Instead, we just define class-head-scope which holds class constructor name.
- We clean up popScopeInternal to populate lexical-variables and function-stack. Previously, we are stealing them before popping the scope when necessary, but this is a hack and a bit wrong since scope's popping operation needs to access these information in some cases. Instead, popScopeInternal populates them after popping the scope.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::pushClassHeadLexicalScope):
(JSC::BytecodeGenerator::popClassHeadLexicalScope):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::ClassExprNode::emitBytecode):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createClassExpr):
(JSC::ASTBuilder::createBlockStatement):
(JSC::ASTBuilder::createForLoop):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::createForOfLoop):
(JSC::ASTBuilder::createTryStatement):
(JSC::ASTBuilder::createSwitchStatement):
- parser/NodeConstructors.h:
(JSC::ForNode::ForNode):
(JSC::TryNode::TryNode):
(JSC::ClassExprNode::ClassExprNode):
(JSC::SwitchNode::SwitchNode):
(JSC::BlockNode::BlockNode):
(JSC::EnumerationNode::EnumerationNode):
(JSC::ForInNode::ForInNode):
(JSC::ForOfNode::ForOfNode):
- parser/Nodes.cpp:
(JSC::ScopeNode::ScopeNode):
(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):
(JSC::VariableEnvironmentNode::VariableEnvironmentNode):
- parser/Nodes.h:
(JSC::VariableEnvironmentNode::VariableEnvironmentNode): Deleted.
- parser/Parser.cpp:
(JSC::isPrivateFieldName):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseSwitchStatement):
(JSC::Parser<LexerType>::parseTryStatement):
(JSC::Parser<LexerType>::parseBlockStatement):
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseBinaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::usePrivateName): Deleted.
- parser/Parser.h:
(JSC::Scope::finalizeLexicalEnvironment):
(JSC::Scope::takeLexicalEnvironment):
(JSC::Scope::takeDeclaredVariables):
(JSC::Scope::takeFunctionDeclarations):
(JSC::Scope::forEachUsedVariable):
(JSC::Scope::usePrivateName):
(JSC::Scope::currentUsedVariablesSize):
(JSC::Parser::popScopeInternal):
(JSC::Parser::popScope):
(JSC::Parser<LexerType>::parse):
(JSC::Scope::copyUndeclaredPrivateNamesTo): Deleted.
(JSC::Scope::hasUsedButUndeclaredPrivateNames const): Deleted.
(JSC::Parser::privateNameScope): Deleted.
(JSC::Parser::copyUndeclaredPrivateNamesToOuterScope): Deleted.
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createClassExpr):
(JSC::SyntaxChecker::createBlockStatement):
(JSC::SyntaxChecker::createForLoop):
(JSC::SyntaxChecker::createForInLoop):
(JSC::SyntaxChecker::createForOfLoop):
(JSC::SyntaxChecker::createTryStatement):
(JSC::SyntaxChecker::createSwitchStatement):
- parser/VariableEnvironment.cpp:
(JSC::VariableEnvironmentEntry::dump const):
(JSC::VariableEnvironment::declarePrivateField):
(JSC::VariableEnvironment::declarePrivateAccessor):
(JSC::VariableEnvironment::declarePrivateMethod):
(JSC::VariableEnvironment::dump const):
- parser/VariableEnvironment.h:
(JSC::VariableEnvironment::declarePrivateField):
(JSC::VariableEnvironment::privateNameEnvironment):
(JSC::VariableEnvironment::addPrivateNamesFrom):
(JSC::PrivateNameEntry::isUsed const): Deleted.
(JSC::PrivateNameEntry::isDeclared const): Deleted.
(JSC::PrivateNameEntry::setIsUsed): Deleted.
(JSC::PrivateNameEntry::setIsDeclared): Deleted.
(JSC::VariableEnvironment::usePrivateName): Deleted.
(JSC::VariableEnvironment::copyPrivateNamesTo const): Deleted.
(JSC::VariableEnvironment::copyUndeclaredPrivateNamesTo const): Deleted.
- 5:48 PM Changeset in webkit [279446] by
-
- 4 edits1 delete in trunk/LayoutTests
REGRESSION (r279427) [ Mac ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity.html is failing
https://bugs.webkit.org/show_bug.cgi?id=227557
<rdar://problem/79993241>
Unreviewed, silence console logging to address test flakiness.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity-expected.txt:
LayoutTests:
- TestExpectations:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity-expected.txt: Removed.
- 5:16 PM Changeset in webkit [279445] by
-
- 8 edits in trunk/Tools
[webkitscmpy] Cache identifiers in Git checkouts
https://bugs.webkit.org/show_bug.cgi?id=225616
<rdar://problem/77789230>
Reviewed by Dewei Zhu.
Computing identifiers in git can be slow, especially if you need to compute
multiple. Caching all identifiers for a branch is not much more expensive than calculating a single identifier. Additionally, caching all identifiers
lets us build a performant subversion mapping, bypassing git-svn.
- Scripts/libraries/webkitcorepy/setup.py:
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.Cache): Class holding a cache allowing quick mapping between hashes, identifiers and revisions.
(Git.Cache.init): Load cache from json file on disk.
(Git.Cache.path): Path to location of cache on disk.
(Git.Cache._fill): Populate revision and hash to identifier dictionaries.
(Git.Cache.populate): Parse git-log and populate cache.
(Git.Cache.hash): Given an identifier or revision, find the hash.
(Git.Cache.revision): Given an identifier or hash, find the revision.
(Git.Cache.identifier): Given a hash or revision, determine the identifier.
(Git.init): Instantiate cache.
(Git.commit): Check cache before running expensive commands.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Add
git logmock. - Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit.test_tag): Surpress logging.
(TestGit.test_checkout): Ditto.
(TestGit.test_no_log): Ditto.
(TestGit.test_order): Ditto.
(test_cache): Verify identifier cache.
(test_revision_cache): Verify revision cache.
- Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
(SummarizedResultsTest.test_svn_revision_git): Surpress logging.
- Scripts/webkitpy/port/base_unittest.py:
(PortTest.test_commits_for_upload_git_svn): Surpress logging.
- 4:54 PM Changeset in webkit [279444] by
-
- 11 edits in trunk
Add ID and versioning support for AppHighlights
https://bugs.webkit.org/show_bug.cgi?id=227279
Reviewed by Tim Horton.
Source/WebCore:
AppHighlights.AppHighlightRestoreFromStorage
AppHighlights.AppHighlightCreateAndRestoreAndDropBytes
AppHighlights.AppHighlightCreateAndRestoreWithLaterVersion
AppHighlights.AppHighlightCreateAndRestoreWithExtraBytes
AppHighlights.AppHighlightRestoreFromStorageV0
AppHighlights.AppHighlightRestoreFromStorageV1
Reformat the storage of Highlight Data to allow for accurate deletion of active
highlights, as well as making them more robust and future-proof. Support decoding v0
highlights as well.
- Modules/highlight/AppHighlightRangeData.cpp:
(WebCore::AppHighlightRangeData::NodePathComponent::decode):
(WebCore::AppHighlightRangeData::encode const):
(WebCore::AppHighlightRangeData::decode):
- Modules/highlight/AppHighlightRangeData.h:
(WebCore::AppHighlightRangeData::NodePathComponent::NodePathComponent):
(WebCore::AppHighlightRangeData::AppHighlightRangeData):
(WebCore::AppHighlightRangeData::identifier const):
(WebCore::AppHighlightRangeData::startOffset const):
(WebCore::AppHighlightRangeData::endOffset const):
- Modules/highlight/AppHighlightStorage.cpp:
(WebCore::createAppHighlightRangeData):
Source/WebKit:
Reformat the storage of Highlight Data to allow for accurate deletion of active
highlights, as well as making them more robust and future-proof.
Also found an issue with creating SharedBuffers from the memory map, in that the ipcHandle size
should be used instead of the sharedMemory->size().
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::restoreAppHighlightsAndScrollToIndex):
Source/WTF:
Allow PersistentDecoders to rewind, to help support v0 highlight data.
- wtf/persistence/PersistentDecoder.cpp:
(WTF::Persistence::Decoder::Decoder):
(WTF::Persistence::Decoder::rewind):
- wtf/persistence/PersistentDecoder.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm:
(TestWebKitAPI::createAppHighlightWithHTML):
(TestWebKitAPI::createWebViewForAppHighlightsWithHTML):
(TestWebKitAPI::TEST):
- 4:53 PM Changeset in webkit [279443] by
-
- 13 edits5 adds in trunk
RemotePlayback must keep its media element alive when there is a pending activity
https://bugs.webkit.org/show_bug.cgi?id=227471
<rdar://79694015>
Reviewed by Geoffrey Garen.
Source/WebCore:
Fixed the bug that the media element's JS wrapper can be collected while there is still
a pending activity for RemotePlayback. In fact, the newly added test demonstrates that
the media element can be deleted without this patch.
This patch also introduces new extended IDL interface attribute GenerateAddOpaqueRoot
to make adding an opaque root as a part of visitChildren easy in the DOM code.
Test: media/remoteplayback-watch-availability-gc.html
- Modules/remoteplayback/RemotePlayback.cpp:
(WebCore::RemotePlayback::ownerNode const):
- Modules/remoteplayback/RemotePlayback.h:
- Modules/remoteplayback/RemotePlayback.idl:
- bindings/scripts/CodeGeneratorJS.pm:
(InstanceNeedsVisitChildren):
(GenerateImplementation):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/BindingTestGlobalConstructors.idl:
- bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp: Added.
(WebCore::JSTestGenerateAddOpaqueRootDOMConstructor::prototypeForStructure):
(WebCore::JSTestGenerateAddOpaqueRootDOMConstructor::initializeProperties):
(WebCore::JSTestGenerateAddOpaqueRootPrototype::finishCreation):
(WebCore::JSTestGenerateAddOpaqueRoot::JSTestGenerateAddOpaqueRoot):
(WebCore::JSTestGenerateAddOpaqueRoot::finishCreation):
(WebCore::JSTestGenerateAddOpaqueRoot::createPrototype):
(WebCore::JSTestGenerateAddOpaqueRoot::prototype):
(WebCore::JSTestGenerateAddOpaqueRoot::getConstructor):
(WebCore::JSTestGenerateAddOpaqueRoot::destroy):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::jsTestGenerateAddOpaqueRoot_someAttributeGetter):
(WebCore::JSTestGenerateAddOpaqueRoot::subspaceForImpl):
(WebCore::JSTestGenerateAddOpaqueRoot::visitChildrenImpl):
(WebCore::JSTestGenerateAddOpaqueRoot::analyzeHeap):
(WebCore::JSTestGenerateAddOpaqueRootOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestGenerateAddOpaqueRootOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestGenerateAddOpaqueRoot::toWrapped):
- bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.h: Added.
(WebCore::JSTestGenerateAddOpaqueRoot::create):
(WebCore::JSTestGenerateAddOpaqueRoot::createStructure):
(WebCore::JSTestGenerateAddOpaqueRoot::subspaceFor):
(WebCore::wrapperOwner):
(WebCore::wrapperKey):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObject_TestGenerateAddOpaqueRootConstructorGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestGenerateAddOpaqueRoot.idl: Added.
- testing/Internals.cpp:
(WebCore::Internals::isElementAlive const):
(WebCore::Internals::mediaElementCount):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Added a GC test.
- media/remoteplayback-watch-availability-gc-expected.txt: Added.
- media/remoteplayback-watch-availability-gc.html: Added.
- 4:51 PM Changeset in webkit [279442] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r278391) Sometimes load durations show up as large negative numbers in WebInspector
https://bugs.webkit.org/show_bug.cgi?id=227413
<rdar://79801896>
Reviewed by Chris Dumez.
In r278391 I changed the meaning of members of NetworkLoadMetrics from Seconds deltas from fetchStart
to the MonotonicTime at which each event occurred. I also changed InspectorNetworkAgent::didFinishLoading
accordingly, but I overlooked the fact that sometimes we get empty NetworkLoadMetrics that have been marked as complete,
such as from NetworkResourceLoader::didFinishWithRedirectResponse which indicates that it is complete but
members such as responseEnd are still 0. Rather than check if it is complete, check if the member is nonzero.
The layout test http/tests/inspector/network/resource-timing.html would fail on AS Macs when run after other tests before this change.
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::didFinishLoading):
- 4:36 PM Changeset in webkit [279441] by
-
- 4 edits in trunk/Source/JavaScriptCore
ARM64: Disable selection of BFI instruction variants by default.
https://bugs.webkit.org/show_bug.cgi?id=227554
rdar://79978150
Reviewed by Saam Barati.
We suspect that this may have caused some hangs. Disabling while we investigate.
- b3/B3LowerToAir.cpp:
- b3/testb3_2.cpp:
(testInsertBitField32):
(testInsertBitField64):
- runtime/OptionsList.h:
- 4:15 PM Changeset in webkit [279440] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Update test expectations for imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog.html after the changes in r279427
https://bugs.webkit.org/show_bug.cgi?id=227553
Unreviewed test gardening.
- web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-expected.txt:
- 3:51 PM Changeset in webkit [279439] by
-
- 15 edits in trunk/Source
Use WeakHashMap and WeakPtr with Node in more places
https://bugs.webkit.org/show_bug.cgi?id=227192
<rdar://problem/79828322>
Reviewed by Geoffrey Garen.
Source/WebCore:
Deploy WeakHashMap and WeakPtr with Node/Element in more places.
- dom/Document.cpp:
(WebCore::Document::elementForAccessKey):
(WebCore::Document::buildAccessKeyCache):
(WebCore::Document::registerForVisibilityStateChangedCallbacks):
(WebCore::Document::unregisterForVisibilityStateChangedCallbacks):
(WebCore::Document::visibilityStateChanged):
- dom/Document.h:
- dom/VisibilityChangeClient.h:
- html/FormController.cpp:
(WebCore::FormKeyGenerator::formKey):
(WebCore::FormKeyGenerator::willDeleteForm):
- html/HTMLAnchorElement.cpp:
(WebCore::rootEditableElementMap):
(WebCore::HTMLAnchorElement::rootEditableElementForSelectionOnMouseDown const):
(WebCore::HTMLAnchorElement::clearRootEditableElementForSelectionOnMouseDown):
(WebCore::HTMLAnchorElement::setRootEditableElementForSelectionOnMouseDown):
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::bind):
(WebCore::InspectorDOMAgent::unbind):
(WebCore::InspectorDOMAgent::nodeForId):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::boundNodeId):
(WebCore::InspectorDOMAgent::willDestroyDOMNode):
(WebCore::InspectorDOMAgent::mediaMetricsTimerFired):
- inspector/agents/InspectorDOMAgent.h:
- inspector/agents/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::bindPseudoElement):
(WebCore::InspectorLayerTreeAgent::unbindPseudoElement):
- inspector/agents/InspectorLayerTreeAgent.h:
- style/StyleSharingResolver.h:
Source/WTF:
- wtf/WeakHashMap.h:
(WTF::WeakHashMap::WeakHashMapIteratorBase::makePeek): Fixed type mismatch errors.
(WTF::WeakHashMap::ensure): Made this function return AddResult like HashMap::ensure.
(WTF::WeakHashMap::take): Added.
(WTF::WeakHashMap::removeIf): Fixed the bug that the callback was called with the iterator
of m_impl and not WeakHashMapIterator.
- wtf/WeakHashSet.h:
(WTF::HashTraits<Ref<WeakPtrImpl<Counter>>>::isReleasedWeakValue): Moved to WeakPtr.h
- wtf/WeakPtr.h:
(WTF::HashTraits<Ref<WeakPtrImpl<Counter>>>::isReleasedWeakValue): Moved from WeakHashSet.h
- 3:34 PM Changeset in webkit [279438] by
-
- 1 copy in tags/Safari-612.1.21
Tag Safari-612.1.21.
- 3:25 PM Changeset in webkit [279437] by
-
- 2 edits in trunk/LayoutTests
[ MacOS wk1 ] crypto/workers/subtle/hrsa-postMessage-worker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=227540.
Unreviewed test gardnening.
Patch by Ayumi Kojima <Ayumi Kojima> on 2021-06-30
- platform/mac-wk1/TestExpectations:
- 3:18 PM Changeset in webkit [279436] by
-
- 7 edits in branches/safari-612.1.21-branch/Source/JavaScriptCore
Revert r279249. rdar://problem/79987808
- 3:18 PM Changeset in webkit [279435] by
-
- 3 edits in branches/safari-612.1.21-branch/Source/JavaScriptCore
Revert r279253. rdar://problem/79987808
- 3:17 PM Changeset in webkit [279434] by
-
- 4 edits in trunk/Source/WebCore
Updated to use smart pointers in MutationObserver.
https://bugs.webkit.org/show_bug.cgi?id=227518
Patch by venky dass <yaranamavenkataramana@apple.com> on 2021-06-30
Reviewed by Ryosuke Niwa.
- dom/MutationObserver.cpp:
(WebCore::MutationObserver::~MutationObserver):
(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::observationStarted):
(WebCore::MutationObserver::observationEnded):
(WebCore::MutationObserver::isReachableFromOpaqueRoots const):
(WebCore::MutationObserver::deliver):
- dom/MutationObserver.h:
- dom/MutationObserverRegistration.h:
- 3:09 PM Changeset in webkit [279433] by
-
- 2 edits in trunk/LayoutTests
[BigSur wk2] imported/w3c/web-platform-tests/webrtc/simplecall-no-ssrcs.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=227536
Unreviewed test gardening
Patch by Eric Hutchison <Eric Hutchison> on 2021-06-30
- platform/mac-wk2/TestExpectations:
- 2:16 PM Changeset in webkit [279432] by
-
- 20 edits2 moves2 deletes in trunk
Unreviewed, reverting r279405.
Casued 50+ webrtc crashes on Big Sur Debug
Reverted changeset:
"[Cocoa] Migrate WebRTC UDP socket handling to NW API"
https://bugs.webkit.org/show_bug.cgi?id=227210
https://commits.webkit.org/r279405
- 2:01 PM Changeset in webkit [279431] by
-
- 1 copy in tags/Safari-612.1.18.11.3
Tag Safari-612.1.18.11.3.
- 1:40 PM Changeset in webkit [279430] by
-
- 2 edits in trunk/Source/WebKit
Fix the build.
- UIProcess/ios/ProcessAssertionIOS.mm:
- 1:07 PM Changeset in webkit [279429] by
-
- 4 edits in trunk
CSS specification prohibits numbers with trailing decimal point (e.g. "1.px"), but we allow them
https://bugs.webkit.org/show_bug.cgi?id=227517
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-syntax/decimal-points-in-numbers-expected.txt:
Expect a pass instead of a fail.
Source/WebCore:
Test: imported/w3c/web-platform-tests/css/css-syntax/decimal-points-in-numbers.html
- css/parser/CSSParserFastPaths.cpp:
(WebCore::parseCSSNumber): Added. Checks for the trailing decimal point. Also uses
std::optional instead of a bool plus an out argument; should refactor the other functions
to work that way at some point.
(WebCore::parseSimpleLength): Use parseCSSNumber and isASCIIAlphaCaselessEqual.
(WebCore::parseSimpleAngle): Ditto.
(WebCore::parseTransformNumberArguments): Ditto.
- 12:48 PM Changeset in webkit [279428] by
-
- 8 edits in branches/safari-612.1.18.11-branch/Source
Versioning.
WebKit-7612.1.18.11.3
- 11:43 AM Changeset in webkit [279427] by
-
- 392 edits93 copies2 moves1054 adds67 deletes in trunk/LayoutTests
Resync html WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227460
Reviewed by Sam Weinig.
Resync html WPT tests from upstream a38612f39e7752c3532.
LayoutTests/imported/w3c:
- resources/resource-files.json:
- web-platform-tests/html/*: Updated.
LayoutTests:
- TestExpectations:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- tests-options.json:
- 11:33 AM Changeset in webkit [279426] by
-
- 6 edits in trunk/Source/ThirdParty/ANGLE
ASSERT in webgl/1.0.x/conformance/glsl/misc/uninitialized-local-global-variables.html IdGen ASSERT(*base != '_');
https://bugs.webkit.org/show_bug.cgi?id=227482
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-30
Reviewed by Kenneth Russell.
Give unnamed structs normal "_<number>" name.
The original code thought it gave "ANGLEunnamed<number>", but in reality it
gave "unnamed<number>".
Since other constructs already create names of form "_<number>", it is unwarranted to
special case this particular case to give "_unnamed<number>" or "ANGLE_unnamed<number" or
"ANGLE_<number>".
- src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:
- src/tests/compiler_tests/MSLOutput_test.cpp:
(TEST_F):
- 11:31 AM Changeset in webkit [279425] by
-
- 43 edits59 adds1 delete in trunk/LayoutTests
Resync workers WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=227512
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Resync workers WPT tests from upstream a38612f39e7752c353208.
- resources/resource-files.json:
- web-platform-tests/workers/*: Updated.
LayoutTests:
- tests-options.json:
- 11:29 AM Changeset in webkit [279424] by
-
- 3 edits in trunk
toDataURL image upside down if premultipliedAlpha=false
https://bugs.webkit.org/show_bug.cgi?id=156129
<rdar://problem/53942867>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-06-30
Reviewed by Kenneth Russell.
Flip the result
PixelBufferofGraphicsContextGL::paintRenderingResultsToPixelBuffer()
along the y-axis manually with memcpy.
ReadPixels returns the pixels upside down.
ThePixelBuffercode-path is only used for reading unpremultiplied
image contents so thattoDataURL()can encode the premultipliedAlpha=false
WebGL content as was rendered.
Other code-paths, such as Context2D.drawImage and drawing to the document,
useGraphicsContextGL::paintRenderingResultsToCanvas().
In those cases y-flip is done by constructing aImageBufferfor the PixelBuffer
and then using y-flip transform to draw theImageBufferto the targetImageBuffer
usingGraphicsContext.
Fixes webgl/1.0.x/conformance/canvas/to-data-url-test.html
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToPixelBuffer):
- 11:26 AM Changeset in webkit [279423] by
-
- 4 edits in trunk
[iOS] [Live Text] "Text from Camera" should not be shown in callout bar when selecting text
https://bugs.webkit.org/show_bug.cgi?id=227535
rdar://79936981
Reviewed by Devin Rousso.
Source/WebKit:
Match new system behavior in rdar://79758142 by not showing the "Text from Camera" item in the callout bar when
the selection is a (non-collapsed) range.
Test: WebKit.CaptureTextFromCamera
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView canPerformActionForWebView:withSender:]):
Tools:
Add an API test to exercise the change. See WebKit ChangeLog for more detail.
- TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:
(canPerformActionWithSender):
(TEST):
- 11:14 AM Changeset in webkit [279422] by
-
- 4 edits2 adds in trunk
Web Inspector: Styles: Autocomplete should support function completions
https://bugs.webkit.org/show_bug.cgi?id=227097
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Covered by new test:
- inspector/unit-tests/css-keyword-completions.html
Add support for completing autocompleting values as part of a CSS function in the Styles sidebar panel.
- UserInterface/Models/CSSKeywordCompletions.js:
(WI.CSSKeywordCompletions.forPartialPropertyName):
(WI.CSSKeywordCompletions.forPartialPropertyValue):
Tokenize the provided partial value text to correct provide completion for functions, likeenv(.
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider):
(WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):
Moved logic toWI.CSSKeywordCompletions.
LayoutTests:
- inspector/unit-tests/css-keyword-completions-expected.txt: Added.
- inspector/unit-tests/css-keyword-completions.html: Added.
- 10:45 AM Changeset in webkit [279421] by
-
- 2 edits in trunk/Tools
[webkit.css] make the active tab more obvious
https://bugs.webkit.org/show_bug.cgi?id=227515
Reviewed by Jonathan Bedard.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:
(.tabs .tab.active .link):
- 10:09 AM Changeset in webkit [279420] by
-
- 23 edits3 adds in trunk/Source
[Model] [iOS] Add support for displaying <model> in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=227443
<rdar://problem/79859937>
Reviewed by Sam Weinig.
Source/WebCore:
Expose a new enterFullscreen() method on HTMLModelElement allowing to enter a fullscreen AR experience
where the resource may be displayed in the user's environment. This differs from the existing
Element.requestFullscreen() method since the experience is provided by the platform and we're not
presenting the inline <model> element in a fullscreen window.
From the WebProcess side, this requires obtaining a reference to the content layer for the <model> element
and sending it in an IPC message to the UIProcess.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::enterFullscreen):
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElement.idl:
- loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::takeModelElementFullscreen const):
- loader/EmptyClients.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::takeModelElementFullscreen const):
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::contentsLayerIDForModel const):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::contentsLayerIDForModel const):
- platform/graphics/ca/GraphicsLayerCA.h:
Source/WebCore/PAL:
Declare additional ASVInlinePreview methods required for fullscreen support.
- pal/spi/ios/SystemPreviewSPI.h:
Source/WebKit:
Displaying a model element in fullscreen requires making some calls on the ASVInlinePreview object
created by a WKModelView. We send the content layer ID we receive through an IPC call from the
WebProcess to the new ModelElementController. We then look at the remote layer tree for a node
matching that ID and find its related UIView. If we find a WKModelView, as expected, we can carry
on and call -[ASVInlinePreview createFullscreenInstanceWithInitialFrame:previewOptions:completionHandler:]
to enter fullscreen using the presentingViewController provided by the UI client, and then observe
when we exit fullscreen using -[ASVInlinePreview observeDismissFullscreenWithCompletionHandler:]
to make sure the presenting view controller is removed.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/Cocoa/ModelElementControllerCocoa.mm: Added.
(WebKit::ModelElementController::takeModelElementFullscreen):
- UIProcess/ModelElementController.cpp: Added.
(WebKit::ModelElementController::ModelElementController):
- UIProcess/ModelElementController.h: Added.
(WebKit::ModelElementController::page):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didAttachToRunningProcess):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::takeModelElementFullscreen):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::takeModelElementFullscreen const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::takeModelElementFullscreen):
- WebProcess/WebPage/WebPage.h:
- 9:43 AM Changeset in webkit [279419] by
-
- 7 edits in branches/safari-612.1.21-branch/Source/WebKit
Cherry-pick r279411. rdar://problem/79970312
Unreviewed, reverting r279155.
Caused a PLT5 regression
Reverted changeset:
"[macOS] Suspend WebProcesses that are in the process cache"
https://bugs.webkit.org/show_bug.cgi?id=227269
https://commits.webkit.org/r279155
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:43 AM Changeset in webkit [279418] by
-
- 4 edits in branches/safari-612.1.21-branch/Source
Cherry-pick r279392. rdar://problem/79970322
WebKit_iosmac build failure: SystemPreviewSPI.h:29:9: fatal error: 'AssetViewer/ARQuickLookWebKitItem.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=227507
<rdar://problem/79902043>
Reviewed by Dean Jackson.
When we added new SPIs in Source/WebCore/PAL/pal/spi/ios/SystemPreviewSPI.h as part of r279312 we also included this file
from a new file that is compiled on Catalyst. This revealed an issue where existing SPIs included in that file weren't
actually available on Catalyst. We now make sure we compile those out on Catalyst.
Source/WebCore/PAL:
- pal/spi/ios/SystemPreviewSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279392 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:43 AM Changeset in webkit [279417] by
-
- 4 edits4 deletes in branches/safari-612.1.21-branch
Cherry-pick r279382. rdar://problem/79970297
Unreviewed, reverting r279250.
https://bugs.webkit.org/show_bug.cgi?id=227499
Sometimes causes YouTube audio to cut out
Reverted changeset:
"[Cocoa] Last few seconds of 'audio/webm; codecs=vorbis'
appended to a SampleBuffer are not played"
https://bugs.webkit.org/show_bug.cgi?id=226069
https://commits.webkit.org/r279250
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:43 AM Changeset in webkit [279416] by
-
- 9 edits1 add in branches/safari-612.1.21-branch/Source
Cherry-pick r279365. rdar://problem/79969742
Enable Probabilistic Guard Malloc for RuleData and RuleFeature vectors
https://bugs.webkit.org/show_bug.cgi?id=227446
Reviewed by Geoffrey Garen.
Source/WebCore:
Help for catching a crash.
- style/RuleFeature.cpp: (WebCore::Style::RuleFeatureSet::collectFeatures): (WebCore::Style::RuleFeatureSet::add):
- style/RuleFeature.h:
- style/RuleSet.h:
- style/StyleScopeRuleSets.cpp: (WebCore::Style::makeRuleSet): (WebCore::Style::ensureInvalidationRuleSets):
Source/WTF:
Add SystemMalloc type that can be used with containers like Vector and
ProbabilisticGuardMalloc alias for it on Mac/iOS platforms.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/SystemMalloc.h: Added. (WTF::SystemMalloc::malloc): (WTF::SystemMalloc::tryMalloc): (WTF::SystemMalloc::zeroedMalloc): (WTF::SystemMalloc::tryZeroedMalloc): (WTF::SystemMalloc::realloc): (WTF::SystemMalloc::tryRealloc): (WTF::SystemMalloc::free):
- wtf/Vector.h: (WTF::Malloc>::appendVector):
Include all template parameters for the appendVector argument.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@279365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:39 AM Changeset in webkit [279415] by
-
- 2 edits in trunk/LayoutTests
[MacOS wk1] fast/shadow-dom/style-resolver-sharing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=227516
Unreviewed test gardening
Patch by Eric Hutchison <Eric Hutchison> on 2021-06-30
- platform/mac-wk1/TestExpectations:
- 9:31 AM Changeset in webkit [279414] by
-
- 18 edits2 adds1 delete in trunk
Add modal dialog UA styles
https://bugs.webkit.org/show_bug.cgi?id=226175
Reviewed by Antti Koivisto.
This adds an :-internal-modal-dialog pseudo class and a test to make sure it does not leak.
This improves WPT results a lot and expectations have been updated. Some tests start failing,
but those are mainly top-layer related (which isn't implemented yet).
LayoutTests/imported/w3c:
- web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt:
Source/WebCore:
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText const):
- css/CSSSelector.h:
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
- css/SelectorCheckerTestFunctions.h:
(WebCore::matchesModalDialogPseudoClass):
- css/SelectorPseudoClassAndCompatibilityElementMap.in:
- css/dialog.css:
(dialog:-internal-modal-dialog):
- css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):
- html/HTMLDialogElement.cpp:
(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::parseAttribute):
(WebCore::HTMLDialogElement::isModal const):
- html/HTMLDialogElement.h:
LayoutTests:
- TestExpectations:
- fast/css/pseudo-class-internal-expected.txt: Added.
- fast/css/pseudo-class-internal.html: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt: Removed.
- 9:28 AM Changeset in webkit [279413] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r278884): [Nicosia] Fix empty stack check in CairoOperationRecorder::restore()
https://bugs.webkit.org/show_bug.cgi?id=227525
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-06-30
Reviewed by Myles C. Maxfield.
We keep our own state stack, with a state added at construction, so we should check our stack instead.
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::restore):
- 8:37 AM Changeset in webkit [279412] by
-
- 4 edits in trunk/Source/WebKit
Unreviewed, reverting r276969.
Causes previous assertion to get released before the new one
is taken (asynchronously)
Reverted changeset:
"[iOS] Use async API to take RunningBoard assertions"
https://bugs.webkit.org/show_bug.cgi?id=225324
https://commits.webkit.org/r276969
- 8:22 AM Changeset in webkit [279411] by
-
- 7 edits in trunk/Source/WebKit
Unreviewed, reverting r279155.
Caused a PLT5 regression
Reverted changeset:
"[macOS] Suspend WebProcesses that are in the process cache"
https://bugs.webkit.org/show_bug.cgi?id=227269
https://commits.webkit.org/r279155
- 7:13 AM Changeset in webkit [279410] by
-
- 2 edits in trunk/JSTests
Unskip interpreter-wasm.js on ARM and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227295
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-06-30
Reviewed by Caio Araujo Neponoceno de Lima.
Changed the testcase to be guarded by $vm.isWasmSupported(), so the
test will be executed once wasm is available in the arch
- microbenchmarks/interpreter-wasm.js:
(key.in.Module.Module.hasOwnProperty): Deleted.
(quit_): Deleted.
(locateFile): Deleted.
(ENVIRONMENT_IS_NODE.read_): Deleted.
(ENVIRONMENT_IS_NODE.readBinary): Deleted.
(ENVIRONMENT_IS_NODE.quit_): Deleted.
(ENVIRONMENT_IS_NODE.Module.string_appeared_here): Deleted.
(else.read_): Deleted.
(else.readBinary): Deleted.
(else.quit_): Deleted.
(else): Deleted.
(else.xhr.onload): Deleted.
(else.readAsync): Deleted.
(else.setWindowTitle): Deleted.
(key.in.moduleOverrides.moduleOverrides.hasOwnProperty): Deleted.
(dynamicAlloc): Deleted.
(getNativeTypeSize): Deleted.
(warnOnce): Deleted.
(convertJsFunctionToWasm): Deleted.
(addFunctionWasm): Deleted.
(removeFunctionWasm): Deleted.
(): Deleted.
(setTempRet0): Deleted.
(setValue): Deleted.
(assert): Deleted.
(getCFunc): Deleted.
(toC.string_appeared_here): Deleted.
(convertReturnValue): Deleted.
(ccall): Deleted.
(UTF8ArrayToString): Deleted.
(UTF8ToString): Deleted.
(stringToUTF8Array): Deleted.
(stringToUTF8): Deleted.
(lengthBytesUTF8): Deleted.
(allocateUTF8OnStack): Deleted.
(writeArrayToMemory): Deleted.
(writeAsciiToMemory): Deleted.
(updateGlobalBufferAndViews): Deleted.
(callRuntimeCallbacks): Deleted.
(preRun): Deleted.
(initRuntime): Deleted.
(preMain): Deleted.
(exitRuntime): Deleted.
(postRun): Deleted.
(addOnPreRun): Deleted.
(addOnPostRun): Deleted.
(addRunDependency): Deleted.
(removeRunDependency): Deleted.
(hasPrefix): Deleted.
(isDataURI): Deleted.
(isFileURI): Deleted.
(getBinary): Deleted.
(getBinaryPromise): Deleted.
(createWasm.receiveInstance): Deleted.
(createWasm.receiveInstantiatedSource): Deleted.
(createWasm.instantiateArrayBuffer): Deleted.
(createWasm.instantiateAsync.): Deleted.
(createWasm.instantiateAsync): Deleted.
(createWasm): Deleted.
(ATINIT.push.func): Deleted.
(demangle): Deleted.
(demangleAll): Deleted.
(_emscripten_get_sbrk_ptr): Deleted.
(_emscripten_memcpy_big): Deleted.
(abortOnCannotGrowMemory): Deleted.
(_emscripten_resize_heap): Deleted.
(PATH.splitPath): Deleted.
(PATH.normalizeArray): Deleted.
(PATH.normalize): Deleted.
(PATH.dirname): Deleted.
(PATH.basename): Deleted.
(PATH.extname): Deleted.
(PATH.join): Deleted.
(PATH.join2): Deleted.
(SYSCALLS.printChar): Deleted.
(SYSCALLS.getStr): Deleted.
(SYSCALLS.get64): Deleted.
(_fd_write): Deleted.
(_setTempRet0): Deleted.
(_wasm_call_ctors.Module.string_appeared_here): Deleted.
(_main.Module.string_appeared_here): Deleted.
(_malloc.Module.string_appeared_here): Deleted.
(_errno_location.Module.string_appeared_here): Deleted.
(_free.Module.string_appeared_here): Deleted.
(stackSave.Module.string_appeared_here): Deleted.
(stackAlloc.Module.string_appeared_here): Deleted.
(stackRestore.Module.string_appeared_here): Deleted.
(growWasmMemory.Module.string_appeared_here): Deleted.
(dynCall_ii.Module.string_appeared_here): Deleted.
(dynCall_iiii.Module.string_appeared_here): Deleted.
(dynCall_jiji.Module.string_appeared_here): Deleted.
(ExitStatus): Deleted.
(dependenciesFulfilled): Deleted.
(callMain): Deleted.
(run.doRun): Deleted.
(run): Deleted.
(exit): Deleted.
- 6:36 AM Changeset in webkit [279409] by
-
- 14 edits5 adds2 deletes in trunk/LayoutTests
Re-import html/semantics/interactive-elements/the-dialog-element WPT
https://bugs.webkit.org/show_bug.cgi?id=227523
Reviewed by Antti Koivisto.
WPT Revision: https://github.com/web-platform-tests/wpt/commit/616577e3962171d2ffe41472e13f6353e6ea43ef
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-iframe.sub.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-audio-video-crash.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-not-in-tree-crash.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-scrolled-viewport-expected.txt: Removed.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-scrolled-viewport.html: Removed.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close-expected.txt: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/focus-after-close.html: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
LayoutTests:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/abspos-dialog-layout-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission-expected.txt:
- 5:53 AM Changeset in webkit [279408] by
-
- 8 edits in trunk
Support -internal- prefix for pseudo classes and rename :-webkit-direct-focus to :-internal-direct-focus
https://bugs.webkit.org/show_bug.cgi?id=227522
Reviewed by Antti Koivisto.
:-webkit-direct-focus was already UA-sheet only, so I took an opportunity to rename it here, also just to
test that the script is working. Test updated accordingly.
Source/WebCore:
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText const):
- css/SelectorPseudoClassAndCompatibilityElementMap.in:
- css/html.css:
(:-internal-direct-focus):
(:-webkit-direct-focus): Deleted.
- css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
(enumerablePseudoType):
LayoutTests:
- fast/shadow-dom/direct-focus-pseudo-does-not-match-in-author-stylesheet.html:
- fast/shadow-dom/direct-focus-pseudo-does-not-match-in-author-stylesheet-expected.txt:
- 3:19 AM Changeset in webkit [279407] by
-
- 2 edits in trunk/Source/WTF
Fix the build.
- wtf/PlatformHave.h:
This is not available on the simulator; disable it.
- 3:18 AM Changeset in webkit [279406] by
-
- 25 edits in trunk
Implement support for <dialog> element close event
https://bugs.webkit.org/show_bug.cgi?id=227493
Reviewed by Antti Koivisto.
With this change, the m_isOpen flag of HTMLDialogElement is only changed on attribute change, so attribute changes can
be detected more easily to fire this new "close" event.
Test: web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-close.html
Adjusted existing test expectations for newcloseevent.
LayoutTests/imported/w3c:
- web-platform-tests/html/browsers/the-window-object/security-window/window-security.https-expected.txt:
- web-platform-tests/html/browsers/the-window-object/window-properties.https-expected.txt:
- web-platform-tests/html/dom/idlharness.https-expected.txt:
- web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-close-expected.txt:
- web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt:
- web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt:
- web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt:
Source/WebCore:
- dom/GlobalEventHandlers.idl:
- html/HTMLAttributeNames.in:
- html/HTMLDialogElement.cpp:
(WebCore::dialogCloseEventSender):
(WebCore::HTMLDialogElement::~HTMLDialogElement):
(WebCore::HTMLDialogElement::show):
(WebCore::HTMLDialogElement::showModal):
(WebCore::HTMLDialogElement::close):
(WebCore::HTMLDialogElement::dispatchPendingEvent):
(WebCore::HTMLDialogElement::parseAttribute):
(WebCore::HTMLDialogElement::setOpen):
(WebCore::HTMLDialogElement::toggleOpen): Deleted.
- html/HTMLDialogElement.h:
- html/HTMLElement.cpp:
(WebCore::HTMLElement::createEventHandlerNameMap):
LayoutTests:
- platform/glib/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 1:46 AM Changeset in webkit [279405] by
-
- 20 edits1 copy2 moves1 add in trunk
[Cocoa] Migrate WebRTC UDP socket handling to NW API
https://bugs.webkit.org/show_bug.cgi?id=227210
LayoutTests/imported/w3c:
Reviewed by Eric Carlson.
Rebasing tests as timing changes a bit.
This aligns with Chrome and Firefox behavior.
- web-platform-tests/webrtc/no-media-call-expected.txt:
- web-platform-tests/webrtc/promises-call-expected.txt:
Source/ThirdParty/libwebrtc:
Reviewed by Eric Carlson.
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
Source/WebCore:
Reviewed by Eric Carlson.
Add infrastructure to new experimental feature flag for NW backed UDP sockets.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webRTCPlatformTCPSocketsEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformTCPSocketsEnabled):
(WebCore::RuntimeEnabledFeatures::webRTCPlatformUDPSocketsEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformUDPSocketsEnabled):
Source/WebKit:
Reviewed by Eric Carlson.
Migrate UDP socket handling from WebRTC physical socket server to nw API for Cocoa ports.
For each UDP socket opened, we open a nw_listener that will listen to inbound connections.
On inbound connection, we receive a nw_connection that we store in a address -> connection map.
Whenever sending a packet, we look at the remote address.
If needed, we create a nw_connection to that particular remote address and store it in the address -> connection map.
We then use the pre-existing or newly created nw_connection to send the packet.
Make sure to cancel NW connection in case of failure before releasing the socket.
Covered by existing tests
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
(WebKit::NetworkRTCProvider::setPlatformTCPSocketsEnabled):
(WebKit::NetworkRTCProvider::setPlatformUDPSocketsEnabled):
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h: Copied from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.h.
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm: Renamed from Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocketCocoa.mm.
(WebKit::tcpSocketQueue):
(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
(WebKit::NetworkRTCTCPSocketCocoa::close):
(WebKit::NetworkRTCTCPSocketCocoa::setOption):
(WebKit::NetworkRTCTCPSocketCocoa::createMessageBuffer):
(WebKit::NetworkRTCTCPSocketCocoa::sendTo):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h: Added.
(WTF::DefaultHash<rtc::SocketAddress>::hash):
(WTF::DefaultHash<rtc::SocketAddress>::equal):
(WTF::HashTraits<rtc::SocketAddress>::emptyValue):
(WTF::HashTraits<rtc::SocketAddress>::constructDeletedValue):
(WTF::HashTraits<rtc::SocketAddress>::isDeletedValue):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm: Added.
(WebKit::NetworkRTCUDPSocketCocoaConnections::create):
(WebKit::NetworkRTCUDPSocketCocoaConnections::WTF_GUARDED_BY_LOCK):
(WebKit::udpSocketQueue):
(WebKit::NetworkRTCUDPSocketCocoa::createUDPSocket):
(WebKit::NetworkRTCUDPSocketCocoa::NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoa::~NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoa::close):
(WebKit::NetworkRTCUDPSocketCocoa::setOption):
(WebKit::NetworkRTCUDPSocketCocoa::sendTo):
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::close):
(WebKit::NetworkRTCUDPSocketCocoaConnections::setOption):
(WebKit::processUDPData):
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
(WebKit::NetworkRTCUDPSocketCocoaConnections::setupNWConnection):
(WebKit::NetworkRTCUDPSocketCocoaConnections::sendTo):
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::setConnection):
Source/WTF:
Reviewed by Eric Carlson.
Add a new experimental flag for NW backed UDP sockets.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
<rdar://problem/79859045>
Reviewed by Eric Carlson.
- platform/ios-simulator-wk2/TestExpectations:
Mark test as failed, as this test is using unsupported API (transport).
- 12:56 AM Changeset in webkit [279404] by
-
- 3 edits in trunk/Source/WebCore
[SOUP] Implement CertificateInfo::summary
https://bugs.webkit.org/show_bug.cgi?id=227484
Reviewed by Michael Catanzaro.
GLib now provides API to get the information required to fill the CertificateSummary.
- platform/network/soup/CertificateInfo.h:
(WebCore::CertificateInfo::summary const): Deleted.
- platform/network/soup/CertificateInfoSoup.cpp:
(WebCore::CertificateInfo::summary const):
- 12:50 AM Changeset in webkit [279403] by
-
- 2 edits in trunk/LayoutTests
[GLIB] mark fast/text/international/system-language/navigator-language/navigator-language-en{,-US}.html as passing
https://bugs.webkit.org/show_bug.cgi?id=227513
These tests use the declarative language override feature in the test
harness, which is currently not supported on glib platforms. These
tests likely pass by coincidence in the testing environment.
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-06-30
- platform/glib/TestExpectations:
- 12:30 AM Changeset in webkit [279402] by
-
- 8 edits2 adds in trunk/Source
[Model] [iOS] Add support for manipulating <model> inline
https://bugs.webkit.org/show_bug.cgi?id=227448
<rdar://problem/79863579>
Reviewed by Tim Horton.
Source/WebCore/PAL:
Declare additional ASVInlinePreview methods.
- pal/spi/ios/SystemPreviewSPI.h:
Source/WebKit:
ASVInlinePreview instances allow for UITouch and UIEvent objects to be forwarded in order to manipulate
the object inline. We create a UIGestureRecognizer subclass that is attached to WKModelView and forwards
touchesBegan: and similar UIResponder messages over to the ASVInlinePreview managed by the WKModelView.
This allows multiple <model> elements to be manipulated at once.
We will add support for disallowing such interaction with an attribute and/or a call to preventDefault()
at a later time.
- SourcesCocoa.txt:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(WebKit::collectDescendantViewsAtPoint):
(-[UIView _web_findDescendantViewAtPoint:withEvent:]):
- UIProcess/ios/WKModelInteractionGestureRecognizer.h: Added.
- UIProcess/ios/WKModelInteractionGestureRecognizer.mm: Added.
(-[WKModelInteractionGestureRecognizer touchesBegan:withEvent:]):
(-[WKModelInteractionGestureRecognizer touchesMoved:withEvent:]):
(-[WKModelInteractionGestureRecognizer touchesEnded:withEvent:]):
(-[WKModelInteractionGestureRecognizer touchesCancelled:withEvent:]):
- UIProcess/ios/WKModelView.h:
- UIProcess/ios/WKModelView.mm:
(-[WKModelView initWithModel:]):
- WebKit.xcodeproj/project.pbxproj: