Timeline
Jan 23, 2022:
- 11:32 PM Changeset in webkit [288431] by
-
- 1 copy in tags/Safari-613.1.14.2.3
Tag Safari-613.1.14.2.3.
- 11:28 PM Changeset in webkit [288430] by
-
- 9 edits in branches/safari-613.1.14.2-branch/Source
Versioning.
WebKit-7613.1.14.2.3
- 8:48 PM Changeset in webkit [288429] by
-
- 6 edits1 copy1 add in trunk
Position:fixed layers shouldn't allocate a backing buffer if all children are offscreen.
https://bugs.webkit.org/show_bug.cgi?id=235420
<rdar://86612099>
Patch by Matt Woodrow <Matt Woodrow> on 2022-01-23
Reviewed by Simon Fraser and Darin Adler.
Source/WebCore:
Adds a bounds intersection check to isPaintDestinationForDescendantLayers,
so that we can exclude descendants that definitely won't draw anything into
the compositing layer. Uses a conservative check, which gives up if there are
any transforms in the ancestor chain.
Test: compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html
- rendering/RenderLayerBacking.cpp:
(WebCore::intersectsWithAncestor):
(WebCore::RenderLayerBacking::isPaintDestinationForDescendantLayers const):
LayoutTests:
Adds a test that has a viewport sized position:fixed element (with compositing
layer), and a single child which is entirely offscreen. Tests that we correctly
determine that we don't need a backing store for the layer.
- compositing/backing/no-backing-for-offscreen-children-of-position-fixed-expected.txt: Added.
- compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html: Added.
- 6:07 PM Changeset in webkit [288428] by
-
- 2 edits in trunk/Source/WebCore
Fix "componet" typo in just-landed patch.
- platform/graphics/ColorInterpolation.h: I suggested Sam change a name
to interpolateComponentWithoutAccountingForNaN, but mispelled it "componet".
Fixing it here.
- 4:57 PM Changeset in webkit [288427] by
-
- 10 edits in trunk
Support interpolating colors with missing/none components via color-mix()
https://bugs.webkit.org/show_bug.cgi?id=235496
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update color-mix() tests to include test cases that use 'none' components.
- web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/color-mix-computed.html:
- web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-mix-valid.html:
Source/WebCore:
Adds support for interpolating colors that have a missing/none component. Currently,
the only way for a color to have a missing/none component is for it to be specified
explicitly by the user (e.g. hsl(none 20% 40%)), but the interpolation implementation
is agnostic to how the color was created so will work once there is automatic creation
of missing/none components on conversion for powerless components.
This change only enables the new interpolation behavior for color-mix(), by replacing
a call of colorType.resolved() with colorType.unresolved(), support for other interpolation
use cases will follow.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::mixColorComponentsUsingColorInterpolationMethod):
Replace resolved() with unrersolved() to allow NaN values through to interpolation.
- platform/graphics/ColorInterpolation.cpp:
(WebCore::fixupHueComponentsPriorToInterpolation):
(WebCore::interpolateColors):
Move non-templated version of interpolateColors to the implementation file as it generates
a lot of code and there is little reason to believe it would be useful to inline it.
- platform/graphics/ColorInterpolation.h:
(WebCore::interpolateComponent):
(WebCore::interpolateComponentAccountingForNaN):
(WebCore::interpolateHue):
(WebCore::interpolateAlphaPremulitplied):
(WebCore::interpolateComponentUsingPremultipliedAlpha):
(WebCore::interpolateAlphaUnpremulitplied):
(WebCore::interpolateComponentUsingUnpremultipliedAlpha):
(WebCore::interpolateColorComponents):
(WebCore::preInterpolationNormalizationForComponent): Deleted.
(WebCore::preInterpolationNormalization): Deleted.
(WebCore::postInterpolationNormalizationForComponent): Deleted.
(WebCore::postInterpolationNormalization): Deleted.
(WebCore::interpolateColors): Deleted.
Replace existing interpolation implementation which separated each component into pre/interpolate/post
steps, with one that does all three steps at once and now also supports missing components. Removing
the steps made the overall algorithm is easier to understand a couples premulitplication and unpremultiplication
much closer together.
- platform/graphics/ColorTypes.h:
(WebCore::constexprIsNaN):
Update comment to include missing word.
- 4:55 PM Changeset in webkit [288426] by
-
- 18 edits in trunk/Source/WebCore
Improve FourCC to use more inlining, fix incorrect mix of WEBCORE_EXPORT on entire class with inline functions
https://bugs.webkit.org/show_bug.cgi?id=235461
Reviewed by Sam Weinig.
- WebCore.xcodeproj/project.pbxproj: Added FourCC.cpp. Because of
unified sources it was compiled, but because it was not in the project
various Xcode features would not work.
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp:
Added some explicitly non-inlined exported functions. These need to
be exported because they are used in TestWebKitAPI tests and we
want to export the functions rather than the vtable pointer.
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:
Stop using WEBCORE_EXPORT on whole classes that contain inline
functions, and instead use it on individual functions.
- platform/graphics/FourCC.cpp:
(WebCore::FourCC::fromString): Take a StringView instead of String.
Removed unnecessary allocation of a temporary CString for the result
of String::ascii.
(WebCore::FourCC::string const): Rename from toString to string and
changed the return type to std::array instead of String.
- platform/graphics/FourCC.h: Made all the constructors constexpr.
Changed the string literal constructor to just work with 4-character
strings. The old one was a template for any length string, but then
asserted it was 4 characters long, which is a roundabout way to do it.
- platform/graphics/HEVCUtilities.cpp:
(WebCore::parseHEVCDecoderConfigurationRecord): Take FourCC instead
of const FourCC&. Also removed unnecessary explicit conversion to
FourCC since four character strings.
- platform/graphics/HEVCUtilities.h: Ditto.
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:
Removed unneeded WEBCORE_EXPORT on these classes.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Removed
unnecesary calls to toString, logging can handle FourCC without it.
Also removed unneeded type casts to size_t.
- platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm:
(WebCore::contentTypesToCodecs): Removed unnecessary allocation of
a String by using StringView for the substring.
- platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
(WebCore::validateHEVCParameters): Added an explicit cast to String
since FourCC::fromString now takes a StringView. Sadly there's not
a trivial way to do this without allocating a String.
- platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:
(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):
Since FourCC::string now returns a std::array with a C-style
null-terminated string, use it instead of calling toString and
then utf8. Cleaner and also much more efficient.
- platform/graphics/iso/ISOBox.cpp: Moved constructors and
destructors so they are no longer inlined so there is no need to
export the vtable.
(WebCore::ISOBox::peekBox): Removed unnecessary initialization
of FourCC since they are zero by default.
- platform/graphics/iso/ISOBox.h: Removed WEBCORE_EXPORT of
the entire class, since that's not fully compatible with a class
with inline functions (warning is done by check-webkit-style).
Put WEBCORE_EXPORT on individual functions instead. Also use some
more constexpr, removed unneeded FourCC initialization since it is
zero by default, and use FourCC, not const FourCC& for return value.
- platform/graphics/iso/ISOOriginalFormatBox.h: Removed unneeded
FourCC initialization since it is zero by default.
- platform/graphics/iso/ISOSchemeTypeBox.h: Ditto.
- platform/graphics/iso/ISOVTTCue.cpp: Moved constructors and
destructors so they are no longer inlined so there is no need to
export the vtable.
(WebCore::ISOWebVTTCue::parse): Use PRIu64 instead of casting
to size_t, no need to rely on the relationship between type sizes.
- platform/graphics/iso/ISOVTTCue.h: Removed WEBCORE_EXPORT of
the entire class, since that's not fully compatible with a class
with inline functions (warning is done by check-webkit-style).
Put WEBCORE_EXPORT on individual functions instead.
- 3:10 PM Changeset in webkit [288425] by
-
- 4 edits2 adds in trunk
AX Isolated Tree Mode: Re-compute AXPropertyName::IsEnabled when a node experiences AXDisabledStateChanged
https://bugs.webkit.org/show_bug.cgi?id=235295
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/dynamic-attribute-changes-should-update-isenabled.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::updateIsolatedTree):
Re-compute AXPropertyName::IsEnabled when receiving an AXDisabledStateChanged notification.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperty):
Handle requests for AXPropertyName::IsEnabled updates.
LayoutTests:
This patch adds a test verifying that AXPropertyName::IsEnabled is re-computed when an
object's disabled state changes.
- accessibility/dynamic-attribute-changes-should-update-isenabled-expected.txt: Added.
- accessibility/dynamic-attribute-changes-should-update-isenabled.html: Added.
- 1:50 PM Changeset in webkit [288424] by
-
- 16 edits3 adds4 deletes in trunk
[Model] Add load and error events to distinguish resource load from model readiness
https://bugs.webkit.org/show_bug.cgi?id=233706
rdar://85922697
Reviewed by Chris Dumez and Dean Jackson.
Source/WebCore:
Test: model-element/model-element-error-and-load-events.html
Prior to this patch, <model> elements had a "ready" promise which resolved once the resource had been loaded.
However, this promise should be used when the <model> is fully ready, and this is done on macOS and iOS asynchronously
after the resource has been loaded by the supporting ARQL framework. So we need a way to monitor success or failure of
the resource load specifically.
To that end, and matching the <img> element, we dispatch "load" and "error" events on <model> elements and add a
"complete" property to indicate whether the resource is loaded.
Meanwhile, the "ready" promise is now resolved when the model is fully loaded by the supporting framework, indicating
that further APIs are safe to use.
Since creating the support ARQL object for macOS and iOS also requires the <model> element's renderer being available,
we opt into "custom style resolve callbacks" so that we may implement didAttachRenderers() on HTMLModelElement and keep
track of renderer availability before attempting to create the ModelPlayer.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::HTMLModelElement):
(WebCore::HTMLModelElement::create):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::didAttachRenderers):
(WebCore::HTMLModelElement::notifyFinished):
(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::didFinishLoading):
(WebCore::HTMLModelElement::didFailLoading):
(WebCore::HTMLModelElement::activeDOMObjectName const):
(WebCore::HTMLModelElement::virtualHasPendingActivity const):
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElement.idl:
Tools:
Use the "load" event instead of the "ready" promise for this test which only requires monitoring
the <model> resource being loaded.
- TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::TEST):
LayoutTests:
Remove existing tests around resource loading and recreate them in terms of "load" and "error"
events in model-element/model-element-error-and-load-events.html and in terms of the ready
promise in model-element/model-element-ready.html.
Other tests using model.ready for other purposes are also rewritten using events.
- model-element/model-element-contents-layer-updates-with-clipping.html:
- model-element/model-element-contents-layer-updates.html:
- model-element/model-element-error-and-load-events-expected.txt: Added.
- model-element/model-element-error-and-load-events.html: Added.
- model-element/model-element-graphics-layers-opacity.html:
- model-element/model-element-graphics-layers.html:
- model-element/model-element-ready-expected.txt:
- model-element/model-element-ready-load-aborted-expected.txt: Removed.
- model-element/model-element-ready-load-aborted.html: Removed.
- model-element/model-element-ready-load-failed-expected.txt: Removed.
- model-element/model-element-ready-load-failed.html: Removed.
- model-element/model-element-ready.html:
- model-element/resources/model-element-test-utils.js: Added.
(const.createModelAndSource):
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 1:21 PM Changeset in webkit [288423] by
-
- 3 edits2 adds in trunk
m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/accelerated-animation-without-duration-crash.html
In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.
We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.
We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
LayoutTests:
New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.
- webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
- webanimations/accelerated-animation-without-duration-crash.html: Added.
- 11:27 AM Changeset in webkit [288422] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] C++20 warnings
https://bugs.webkit.org/show_bug.cgi?id=235493
Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-23
Reviewed by Darin Adler.
Fix ambiguous-reversed-operator warnings. In C++20 comparison operators (like a == b) need
to be declared const, so that reverse comparisons (like b == a) also work as intended.
- platform/graphics/gstreamer/GStreamerCommon.h:
(GstIteratorAdaptor::iterator::operator== const):
(GstIteratorAdaptor::iterator::operator!= const):
(GstIteratorAdaptor::iterator::operator==): Deleted.
(GstIteratorAdaptor::iterator::operator!=): Deleted.
- 10:43 AM Changeset in webkit [288421] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] InlineFormattingContext::computeGeometryForLineContent should always return the line logical rect
https://bugs.webkit.org/show_bug.cgi?id=235494
Reviewed by Antti Koivisto.
The return rect of computeGeometryForLineContent (based on the display line) is input to the next line's
initial rect and therefore it is supposed to be logical (in general, layout should strictly use logical coords).
This is in preparation for supporting vertical writing mode.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::InlineFormattingGeometry::flipVisualRectToLogicalForWritingMode):
- layout/formattingContexts/inline/InlineFormattingGeometry.h:
- 8:59 AM Changeset in webkit [288420] by
-
- 4 edits in trunk
[forms] Prevent contenteditable anchors from being stuck
https://bugs.webkit.org/show_bug.cgi?id=235438
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update 1 WPT test expectation file as the test is now passing.
- web-platform-tests/html/semantics/forms/the-input-element/anchor-active-contenteditable-expected.txt:
Source/WebCore:
Anchors can be stuck in the :active state if contenteditable is enabled before
:active is removed. With this patch setActive() can remove :active during
contenteditable in order to prevent anchors from navigating during contenteditable.
This is an import of Chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/2595978
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setActive):
- 8:50 AM Changeset in webkit [288419] by
-
- 2 edits in trunk/Source/WebCore
AX: Refactor near-duplicate AXObjectCache::updateIsolatedTree implementations
https://bugs.webkit.org/show_bug.cgi?id=235481
Reviewed by Chris Fleizach.
AXObjectCache::updateIsolatedTree(AXCoreObject&, AXNotification) and
AXObjectCache::updateIsolatedTree(const Vector<std::pair<RefPtr<AXCoreObject>, AXNotification>>&)
duplicate a lot of code, and make it possible to forget to add new
notification handling in one place or the other. This patch refactors
this by making the single-object versions of this method defer to the
multiple-object version by wrapping the single change in a Vector.
No tests added because there is no behavior change.
- accessibility/AXObjectCache.cpp:
(WebCore::appendIfNotContainsMatching):
Moved this function above updateIsolatedTree methods. No other change.
(WebCore::AXObjectCache::updateIsolatedTree):
- 8:25 AM Changeset in webkit [288418] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] LineLayout::contentLogicalHeight should always return the logical height
https://bugs.webkit.org/show_bug.cgi?id=235488
Reviewed by Antti Koivisto.
The display boxes/lines always have visual geometries and in case of vertical writing mode it means that the
content stretches in horiztonal direction (left to right/right to left).
This is in preparation for supporting vertical writing mode.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
- layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::isPaginated const):
- 6:48 AM Changeset in webkit [288417] by
-
- 5 edits in trunk
[LFC][IFC] Enable unicode-bidi: plaintext for IFC
https://bugs.webkit.org/show_bug.cgi?id=235429
Reviewed by Antti Koivisto.
Source/WebCore:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
- layout/integration/LayoutIntegrationCoverage.h:
LayoutTests:
- platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
Jan 22, 2022:
- 9:20 PM Changeset in webkit [288416] by
-
- 22 edits1 copy in trunk/Source
Add PushSubscriptionIdentifier
https://bugs.webkit.org/show_bug.cgi?id=234797
Reviewed by Darin Adler.
Source/WebCore:
This adds a PushSubscriptionIdentifier to each PushSubscription. Implementation-wise, it
will be the rowid if the subscription in the subscription database. We need this so that
PushSubscription.unsubscribe only unsubscribes from the given subscription. Currently it
unsubscribes from any active subscription associated with the subscription's service worker
scope.
No new tests. I plan on adding a test for this case in an API test which will work with real
PushSubscription objects when I submit the patch that implements the subscription business
logic in webpushd. The current layout tests only work with fake PushSubscription objects
that aren't connected to webpushd.
- Headers.cmake:
- Modules/push-api/PushSubscription.cpp:
(WebCore::PushSubscription::unsubscribe):
- Modules/push-api/PushSubscriptionData.cpp:
(WebCore::PushSubscriptionData::isolatedCopy const):
- Modules/push-api/PushSubscriptionData.h:
(WebCore::PushSubscriptionData::encode const):
(WebCore::PushSubscriptionData::decode):
webpushd only supports modern decoding and we need to send this object to it, so use modern decoding.
- Modules/push-api/PushSubscriptionIdentifier.h:
- WebCore.xcodeproj/project.pbxproj:
- testing/Internals.cpp:
(WebCore::Internals::createPushSubscription):
- testing/ServiceWorkerInternals.cpp:
(WebCore::ServiceWorkerInternals::createPushSubscription):
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::unsubscribeFromPushService):
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::unsubscribeFromPushService):
- workers/service/ServiceWorkerRegistration.h:
- workers/service/WorkerSWClientConnection.cpp:
(WebCore::WorkerSWClientConnection::unsubscribeFromPushService):
- workers/service/WorkerSWClientConnection.h:
Source/WebKit:
Pass the subscription identifier in the PushSubscription.unsubscribe call to guarantee that
we only unsubscribe from the given subscription.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::unsubscribeFromPushService):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::unsubscribeFromPushService):
- WebProcess/Storage/WebSWClientConnection.h:
- 9:01 PM Changeset in webkit [288415] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r280887) broke some svg based chart content repaint
https://bugs.webkit.org/show_bug.cgi?id=235483
<rdar://87904254>
Unreviewed, reverting r280887.
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):
- 8:37 PM Changeset in webkit [288414] by
-
- 2 edits in trunk/LayoutTests
[iOS] Unreviewed gardering
- platform/ios/TestExpectations: blank selection.
- 7:38 PM Changeset in webkit [288413] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (Safari 15?): Blob videos slow to pause, affects CBS and CNN
https://bugs.webkit.org/show_bug.cgi?id=234066
Reviewed by Jer Noble.
MediaPlayerPrivateMediaSourceAVFObjC::playInternal()calls[m_synchronizer setRate:],
which will make the return value ofMediaPlayerPrivateMediaSourceAVFObjC::paused()change
from true to false. But it won't push the newpausedvalue back to the Web process.
RemoteMediaPlayerProxy::play()does callsendCachedState()after calling
m_player->play(), but becauseMediaPlayerPrivateMediaSourceAVFObjC::playInternal()is not
called in the same run loop,sendCachedState()won't send back the updatedpausedvalue either.
In most cases, this is not an issue, because other member functions of
RemoteMediaPlayerProxy
will callsendCachedState()to push the updatedpausedvalue back to the Web process later.
However, we did find some videos need thepausedvalue to be pushed back the Web process
in a timely manner.
No new tests, manually tested.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
- 5:03 PM Changeset in webkit [288412] by
-
- 18 edits2 adds in trunk/Source
[GPU Process] Add the class 'SourceImage' to represent variants of image
https://bugs.webkit.org/show_bug.cgi?id=235467
Reviewed by Cameron McCormack.
Source/WebCore:
Before the existence of GPUProcess we used to do some drawing on an
ImageBuffer, get a NativeImage from the ImageBuffer and then use this
NativeImage. With GPUProces, this will require bouncing the NativeImage
between WebProcess and GPUProcess at least two times. To make this scenario
efficient, a new class called 'SourceImage' will be introduced. The purpose
of this class is to provide a new level of abstraction for the images
such that no conversion is needed before the actual use.
Replace FEImage::SourceImage with a new class named 'SourceImage'. Let
the new class handle the encoding and decoding and the conversion from
NativeImage to ImageBuffer and vice versa.
Make Recorder::recordResourceUse() returns a boolean which indicates
whether the resource can be cached for later replay or not.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/Image.h:
(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::preTransformedNativeImageForCurrentFrame):
- platform/graphics/SourceImage.cpp: Added.
(WebCore::SourceImage::SourceImage):
(WebCore::SourceImage::nativeImageIfExists const):
(WebCore::SourceImage::nativeImage):
(WebCore::SourceImage::imageBufferIfExists const):
(WebCore::SourceImage::imageBuffer):
(WebCore::SourceImage::imageIdentifier const):
- platform/graphics/SourceImage.h: Added.
(WebCore::SourceImage::encode const):
(WebCore::SourceImage::decode):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):
(WebCore::DisplayList::Recorder::drawImageBuffer):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordResourceUse):
- platform/graphics/displaylists/DisplayListRecorderImpl.h:
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::filterEffect const):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame): Deleted.
- svg/graphics/SVGImage.h:
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImageSoftwareApplier::apply const):
- svg/graphics/filters/SVGFEImage.h:
(WebCore::FEImage::encode const):
(WebCore::FEImage::decode):
Source/WebKit:
Provide a new recordResourceUse() for the SourceImage.
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
- 4:00 PM Changeset in webkit [288411] by
-
- 6 edits1 add in trunk
[JSC] Relax Date.parse requirement
https://bugs.webkit.org/show_bug.cgi?id=235468
Reviewed by Darin Adler.
JSTests:
- stress/date-relaxed-separator.js: Added.
(shouldBe):
Source/WTF:
While the spec does not require accepting 't' / ' ' separator, ISO 8601 accepts it.
This is because ECMA262's Date format is *not* ISO 8601 (it is called simplification
of ISO 8601[1]).
This patch relaxes this strictness to accept more formats, which can be accepted in
the other engines too.
[1]: https://tc39.es/ecma262/#sec-date-time-string-format
- wtf/DateMath.cpp:
(WTF::parseES5DateFromNullTerminatedCharacters):
LayoutTests:
- js/date-parse-test-expected.txt:
- js/script-tests/date-parse-test.js:
- 2:58 PM Changeset in webkit [288410] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add InlineDisplay::Box::isHorizontal
https://bugs.webkit.org/show_bug.cgi?id=235482
Reviewed by Antti Koivisto.
This is in preparation for supporting vertical writing mode.
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::isHorizontal const):
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::isHorizontal const):
- 2:57 PM Changeset in webkit [288409] by
-
- 3 edits2 adds in trunk
REGRESSION (r288069): Bits of selection left after deselecting on bugzilla page
https://bugs.webkit.org/show_bug.cgi?id=235466
<rdar://87902230>
Reviewed by Darin Adler.
Source/WebCore:
Undo the incorrect dynamicDowncast change.
This code reads (perhaps confusingly at first sight):
return is<RenderView>(containingBlock) ? nullptr : containingBlock;
while the dynamicDowncast is meant to shorten code like this:
return is<RenderView>(containingBlock) ? containingBlock : nullptr;
Test: fast/text/incorrect-deselection-across-multiple-elements.html
- rendering/SelectionRangeData.cpp:
(WebCore::containingBlockBelowView):
LayoutTests:
- fast/text/incorrect-deselection-across-multiple-elements-expected.txt: Added.
- fast/text/incorrect-deselection-across-multiple-elements.html: Added. Use indexOf because
while the repaint rect area is always the same, the rects order may vary.
- 2:20 PM Changeset in webkit [288408] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Use content direction for the first "unicode-paragraph" when "unicode-bidi: plaintext" is present
https://bugs.webkit.org/show_bug.cgi?id=235452
Reviewed by Antti Koivisto.
This makes the /css/css-writing-modes/bidi-plaintext-br-* tests pass (not enabled yet).
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
- 2:14 PM Changeset in webkit [288407] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Alignment logic should take the line specific direction (which may be different from the root direction)
https://bugs.webkit.org/show_bug.cgi?id=235460
Reviewed by Antti Koivisto.
This makes the the /html/dom/elements/global-attributes/dir_auto-* tests pass (not enabled yet).
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::build):
- 12:55 PM Changeset in webkit [288406] by
-
- 4 edits in trunk/Source/WebKit
Skip installing webpushd in STP and downlevel builds
https://bugs.webkit.org/show_bug.cgi?id=235464
<rdar://87425138>
Patch by Elliott Williams <Elliott Williams> on 2022-01-22
Reviewed by Brady Eidson.
We can't ship webpushd as part of STP or builds made for previous versions of macOS. This
change adjusts build settings to skip installing webpushd and its launchd plist outside of a
non-relocatable production build environment.
As a consequence, webpushd will not _install_ in development builds (where all build
products are relocatable). It will continue to build and be runnable from the build
products directory.
- Configurations/BaseTarget.xcconfig: Add WK_SKIP_INSTALL_WEBPUSHD to determine whether to
skip installation.
- Configurations/webpushd.xcconfig: Set SKIP_INSTALL based on WK_SKIP_INSTALL_WEBPUSHD.
- WebKit.xcodeproj/project.pbxproj: Skip installing launchd plists when
WK_SKIP_INSTALL_WEBPUSHD=YES.
- 10:17 AM Changeset in webkit [288405] by
-
- 3 edits in trunk/Source/WebCore
Create ancestry of isolated objects instead of generating the entire subtree for an ancestor.
https://bugs.webkit.org/show_bug.cgi?id=235389
<rdar://problem/87803473>
Reviewed by Chris Fleizach.
AXIsolatedTree::updateChildren may be called for an AXObject that has no
corresponding IsolatedObject. That is the case of empty canvas and some
empty div elements. In those cases we were generating the subtree of the
first available ancestor in the isolated tre. This can be expensive
because in some cases the immediate exisiting ancestor was the webarea,
causing the re-generation of the entire isolated tree. With this patch,
only the IsolatedObjects that are missing in the isolated tree are added
to the tree.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueChanges):
The above two methods are added to avoid coude duplication and to be
able to decouple the creation of new isolated objects from the addition
of those objects to the isolated tree.
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateChildren):
- accessibility/isolatedtree/AXIsolatedTree.h:
- 9:26 AM Changeset in webkit [288404] by
-
- 3 edits2 deletes in trunk
[CSS Cascade Layers] Enable CSSImportRule.layerName for WebKitGTK
https://bugs.webkit.org/show_bug.cgi?id=235455
Reviewed by Darin Adler.
Source/WebCore:
Bug 231340 added support for CSSImportRule.layerName, but CMakeLists.txt
wasn't listing CSSImportRule+Layer.idl
So the attribute was not there when running WebKitGTK, built with CMake.
Tests: imported/w3c/web-platform-tests/css/css-cascade/idlharness.html
imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom.html
- CMakeLists.txt: link missing css/CSSImportRule+Layer.idl
LayoutTests:
Expect the tests to pass.
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/idlharness-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom-expected.txt: Removed.
- 1:31 AM Changeset in webkit [288403] by
-
- 9 edits in trunk
[GTK][a11y] Stop registering the tree when clients are connected with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235313
Reviewed by Adrian Perez de Castro.
Source/WebCore:
That was needed with the isolated tree mode, now we can go back to register objects on demand.
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::platformPerformDeferredCacheUpdate):
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::parentChanged):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::cacheClearTimerFired):
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::isTreeRegistered const): Deleted.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::embedded):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::childAdded):
(WebCore::registerSubtree): Deleted.
(WebCore::AccessibilityRootAtspi::registerTree): Deleted.
(WebCore::AccessibilityRootAtspi::didUnregisterTree): Deleted.
- accessibility/atspi/AccessibilityRootAtspi.h:
Tools:
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testDocumentLoadEvents): Now we don't get the initial event from previous document web because it happens
before the first client is connected.
Jan 21, 2022:
- 11:39 PM Changeset in webkit [288402] by
-
- 6 edits6 adds in trunk/LayoutTests/imported/w3c
Update css/css-animation WPT following animation-composition testing updates
https://bugs.webkit.org/show_bug.cgi?id=235443
Unreviewed WPT import and rebaseline.
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
- web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative.html: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-invalid.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-invalid.tentative.html: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative.html: Added.
- web-platform-tests/css/css-animations/parsing/w3c-import.log:
- 10:03 PM Changeset in webkit [288401] by
-
- 11 edits in trunk/Source
Unreviewed, reverting r288400.
https://bugs.webkit.org/show_bug.cgi?id=235470
broke ARM64E build
Reverted changeset:
"[JSC][32bit] Fix regexp crash on ARMv7"
https://bugs.webkit.org/show_bug.cgi?id=234476
https://commits.webkit.org/r288400
- 8:58 PM Changeset in webkit [288400] by
-
- 10 edits in trunk/Source
[JSC][32bit] Fix regexp crash on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=234476
Reviewed by Yusuke Suzuki.
This patch fixes several regexp crashes on ARMv7 due to an incorrect
offset to retrieve the 5th argument from the stack: in ARMv7, only
4 arguments are passed via registers r0-r3i, and any other argument is
placed on the stack, however, YarrJIT was trying to get the 5th arg
from a fixed offset, so because the generateEnter() method pushed
register into the stack, the offset was wrong. This patch fixes how
the offset is calculated for MIPS and ARMv7.
This patch also introduces some small changes:
- Added static_asserts that the YarrJIT calls do indeed have 5 arguments
and that the 5th argument has the type that we expect (MatchingContextHolder*).
- Removed an unnecessary pointer from the MatchingContextHolder
constructor.
- Fixed some warnings in the YarrJIT code here and there.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
- runtime/RegExpInlines.h:
(JSC::RegExp::matchInline):
- yarr/YarrJIT.cpp:
- yarr/YarrMatchingContextHolder.h:
(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):
- 7:03 PM Changeset in webkit [288399] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, follow-up after r288066
https://bugs.webkit.org/show_bug.cgi?id=235271
- runtime/DatePrototype.cpp:
(JSC::applyToNumberToOtherwiseIgnoredArguments):
(JSC::fillStructuresUsingDateArgs):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::applyToNumbersToTrashedArguments): Deleted.
- 6:22 PM Changeset in webkit [288398] by
-
- 1 copy in tags/Safari-613.1.14.5.1
Tag Safari-613.1.14.5.1.
- 6:18 PM Changeset in webkit [288397] by
-
- 10 edits2 adds in branches/safari-613.1.14.5-branch/Source/ThirdParty/libwebrtc
Cherry-pick r288391. rdar://problem/87829404
WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=235459
Reviewed by Mark Lam.
We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
This is needed for both the include files and archive libraries.
- Configurations/boringssl.xcconfig:
- Configurations/libsrtp.xcconfig:
- Configurations/libvpx.xcconfig:
- Configurations/libwebm.xcconfig:
- Configurations/libwebrtc.xcconfig:
- Configurations/libyuv.xcconfig:
- Configurations/opus.xcconfig:
- Configurations/usrsctp.xcconfig:
- Scripts: Added.
- Scripts/create-symlink-to-altroot.sh: Added.
- libwebrtc.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:13 PM Changeset in webkit [288396] by
-
- 9 edits in branches/safari-613.1.14.5-branch/Source
Versioning.
WebKit-7613.1.14.5.1
- 6:13 PM Changeset in webkit [288395] by
-
- 4 edits in trunk
GraphicsContextStateChange logging doesn't dump shadow color
https://bugs.webkit.org/show_bug.cgi?id=235428
Reviewed by Wenson Hsieh.
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContextStateChange::dump const):
Add shadowColor property to the things we dump on ShadowChange.
- 5:59 PM Changeset in webkit [288394] by
-
- 9 edits in branches/safari-613.1.14.41-branch/Source
Revert "Versioning."
This reverts commit r288393.
- 5:58 PM Changeset in webkit [288393] by
-
- 9 edits in branches/safari-613.1.14.41-branch/Source
Versioning.
WebKit-7613.1.14.5.1
- 5:48 PM Changeset in webkit [288392] by
-
- 1 copy in branches/safari-613.1.14.5-branch
New branch.
- 5:38 PM Changeset in webkit [288391] by
-
- 10 edits2 adds in trunk/Source/ThirdParty/libwebrtc
WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=235459
Reviewed by Mark Lam.
We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
This is needed for both the include files and archive libraries.
- Configurations/boringssl.xcconfig:
- Configurations/libsrtp.xcconfig:
- Configurations/libvpx.xcconfig:
- Configurations/libwebm.xcconfig:
- Configurations/libwebrtc.xcconfig:
- Configurations/libyuv.xcconfig:
- Configurations/opus.xcconfig:
- Configurations/usrsctp.xcconfig:
- Scripts: Added.
- Scripts/create-symlink-to-altroot.sh: Added.
- libwebrtc.xcodeproj/project.pbxproj:
- 5:23 PM Changeset in webkit [288390] by
-
- 9 edits in trunk/Source/WebCore
AX: Move Mac subrole logic to new subrolePlatformString AXCoreObject interface method
https://bugs.webkit.org/show_bug.cgi?id=235414
Reviewed by Chris Fleizach.
This patch moves most of the Mac subrole logic to a new AXCoreObject interface
method, subrolePlatformString (matching the naming of rolePlatformString).
This allows us to cache a new AXPropertyName::SubrolePlatformString
property in isolated tree objects.
This fixes accessibility/mac/subroles-for-formatted-groups.html in isolated
tree mode because this test exercised thebackingObject->isStyleFormatGroup()codepath,
which in turn tried to compare AtomStrings off the main-thread, which won't work
(the string comparisons will unexpectedly not match).
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::subrolePlatformString const):
Added.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
Add new AXPropertyName::SubrolePlatformString property.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
Initialize new AXPropertyName::subrolePlatformString.
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::subrolePlatformString const):
Added.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper isEmptyGroup]):
Added.
(-[WebAccessibilityObjectWrapper subrole]):
Defer to subrolePlatformString for determining all subroles except AXEmptyGroup.
- 5:01 PM Changeset in webkit [288389] by
-
- 13 edits in trunk/Source
Disable CFURLCache in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=234988
<rdar://problem/87619196>
Reviewed by Geoffrey Garen.
Source/WebCore:
_CFURLStorageSessionCopyCache can be slow (see rdar://85418732) and UI process may kill network process for
being unresponsive. Since WebKit does not use CFURLCache, we should disable it to avoid the hang.
- platform/network/NetworkStorageSession.h:
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::createCFStorageSessionForIdentifier):
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::createPrivateStorageSession):
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::newTestingSession):
(WebKit::NetworkProcess::ensureSession):
Source/WebKitLegacy:
- WebCoreSupport/NetworkStorageSessionMap.cpp:
(NetworkStorageSessionMap::ensureSession):
Source/WTF:
- wtf/PlatformHave.h:
- 4:41 PM Changeset in webkit [288388] by
-
- 2 edits in trunk/Source/WebCore
imported/w3c/web-platform-tests/css/css-color/parsing/color-valid.html fails in debug
Reviewed by Sam Weinig.
- platform/graphics/ColorTypes.h:
(WebCore::assertInRange):
We want to *ignore* NaN alpha, like for the other channels. The conditional was backwards.
- 4:29 PM Changeset in webkit [288387] by
-
- 12 edits in trunk/Source/WebKit
Inject Launch Services database before NSApplication is initialized
https://bugs.webkit.org/show_bug.cgi?id=235186
<rdar://87468788>
Reviewed by Chris Dumez.
To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database. To make sure also prewarmed WebContent
processes are receiving the Launch Services database, the WebsiteDataStore method
sendNetworkProcessXPCEndpointToProcess is moved to the class NetworkProcessProxy, since prewarmed processes
will not have a data store initially. This allows us to simplify the code, since we are no longer depending
on having a Website data store before sending the XPC endpoint.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.h:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- WebProcess/cocoa/LaunchServicesDatabaseManager.h:
- WebProcess/cocoa/LaunchServicesDatabaseManager.mm:
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 4:21 PM Changeset in webkit [288386] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WP] Allow access to CFNetwork prefs
https://bugs.webkit.org/show_bug.cgi?id=235457
<rdar://87822314>
Reviewed by Brent Fulgham.
Allow access to CFNetwork prefs on internal builds.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 3:40 PM Changeset in webkit [288385] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Make alignment editor accessible
https://bugs.webkit.org/show_bug.cgi?id=235395
<rdar://problem/87851989>
Reviewed by Patrick Angle.
Make alignment editor icons focusable, and annotate elements so VoiceOver could correctly read what is selected.
- UserInterface/Views/AlignmentEditor.css:
(.alignment-editor .glyph:focus):
(.alignment-editor .glyph:not(:focus-visible)):
- UserInterface/Views/AlignmentEditor.js:
(WI.AlignmentEditor):
(WI.AlignmentEditor.prototype.set alignment):
(WI.AlignmentEditor.prototype._removePreviouslySelected):
(WI.AlignmentEditor.prototype._updateSelected):
- 3:30 PM Changeset in webkit [288384] by
-
- 2 edits in trunk/Tools
[EWS] Support pull-requests in ValidateChange (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=234861
<rdar://problem/87114299>
Unreviewed follow-up fix.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.fetch_data_from_url_with_authentication): Fix authentication call.
Canonical link: https://commits.webkit.org/246281@main
- 3:10 PM WebKitGTK/2.34.x edited by
- (diff)
- 2:49 PM Changeset in webkit [288383] by
-
- 2 edits in trunk/Tools
[EWS] Avoid extra network request from buildbot to github
https://bugs.webkit.org/show_bug.cgi?id=235417
<rdar://problem/87846222>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/events.py:
(GitHubEventHandlerNoEdits._get_commit_msg): Return empty string.
Canonical link: https://commits.webkit.org/246280@main
- 2:18 PM Changeset in webkit [288382] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test resource change.
Change this alpha PNG image to use a simple color with alpha, rather than a gradient,
so that when the image is stretched it doesn't result in small pixel diffs in test
results.
- compositing/resources/simple_image.png:
- 1:59 PM Changeset in webkit [288381] by
-
- 3 edits in trunk/Source/bmalloc
[libpas] Follow-up after r288339
https://bugs.webkit.org/show_bug.cgi?id=235423
Changed the type names.
- libpas/src/libpas/pas_allocation_callbacks.c:
- libpas/src/libpas/pas_allocation_callbacks.h:
- 1:51 PM Changeset in webkit [288380] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r286944?): web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click tests have become flaky failures
https://bugs.webkit.org/show_bug.cgi?id=234410
Unreviewed test gardening. Adding expectations due to negative impact on EWS.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 1:47 PM Changeset in webkit [288379] by
-
- 9 edits in trunk
Build failure with g++ 12: std::exchange undefined
https://bugs.webkit.org/show_bug.cgi?id=235445
Patch by Mike Gorse <mgorse@suse.com> on 2022-01-21
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
- API/JSRetainPtr.h: Include <utility>
Source/WebCore:
- platform/graphics/x11/XUniqueResource.h: Include <utility>
Source/WTF:
- wtf/CompletionHandler.h: Include <utility>
- wtf/MallocPtr.h: Ditto
Tools:
- ImageDiff/ImageDiff.cpp: Include <utility>
- 1:38 PM Changeset in webkit [288378] by
-
- 1 copy in tags/Safari-613.1.14.41.1
Tag Safari-613.1.14.41.1.
- 1:32 PM Changeset in webkit [288377] by
-
- 1 edit in branches/safari-613.1.14.41-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj
Revert "Apply patch. rdar://problem/86298747"
This reverts commit r288231
- 1:29 PM Changeset in webkit [288376] by
-
- 9 edits in branches/safari-613.1.14.41-branch/Source
Versioning.
WebKit-7613.1.14.41.1
- 1:25 PM Changeset in webkit [288375] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Add access to IOKit property
https://bugs.webkit.org/show_bug.cgi?id=235450
<rdar://76403140>
Reviewed by Brent Fulgham.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 1:19 PM Changeset in webkit [288374] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Add MacroAssemblerRISCV64 branch-testing operations
https://bugs.webkit.org/show_bug.cgi?id=235442
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-21
Reviewed by Yusuke Suzuki.
Implement MacroAssemblerRISCV64 branch-testing operations. The branching
instructions being intentionally simple in RISC-V, and with no status
register, scratch register has to be used to hold the testing result
and perform a branch based on its value. This will disallow use of these
implementations from Air, but that has to be address inside Air itself.
When performing tests for values that are smaller than 64 bits in width,
the tested value is zero-extended or, when necessary, loaded as an
unsigned value, to impose zeroed upper bits that eliminate masking
values that are too wide or get sign-extended when used as immediates.
Post-masking, these shorter-width values still have to be sign-extended
to accommodate branch instructions that are used when testing
signedness.
The test result value is then passed on, along with the desired
condition, to the new branchTestFinalize() helper method that finally
generates the appropriate branch.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::branchTest8):
(JSC::MacroAssemblerRISCV64::branchTest16):
(JSC::MacroAssemblerRISCV64::branchTest32):
(JSC::MacroAssemblerRISCV64::branchTest64):
(JSC::MacroAssemblerRISCV64::branchPtr):
(JSC::MacroAssemblerRISCV64::branchTestFinalize):
- 1:18 PM Changeset in webkit [288373] by
-
- 1 copy in branches/safari-613.1.14.41-branch
New branch.
- 1:13 PM Changeset in webkit [288372] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Add MacroAssemblerRISCV64 operations for bitfield, zero-counting, byte-swapping operations
https://bugs.webkit.org/show_bug.cgi?id=235439
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-21
Reviewed by Yusuke Suzuki.
Add MacroAssemblerRISCV64 implementations that cover unsigned bitfield,
leading-zero, trailing-zero and byte-swapping operations. All these
operations are not supported in base RISC-V specifications. There are
extensions currently being ratified that will introduce more useful
instructions, but until then more verbose implementations will have
to be used.
For the unsigned bitfield operations, the desired result is achieved
through shifting and masking. Scratch registers are only needed in
case of the mask immediate being too large, but that will be properly
handled by the higher-level JITs. For other operations covered in this
patch we have to use scratch registers and custom loops to implement
the necessary behavior.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::extractUnsignedBitfield32):
(JSC::MacroAssemblerRISCV64::extractUnsignedBitfield64):
(JSC::MacroAssemblerRISCV64::insertUnsignedBitfieldInZero32):
(JSC::MacroAssemblerRISCV64::insertUnsignedBitfieldInZero64):
(JSC::MacroAssemblerRISCV64::countLeadingZeros32):
(JSC::MacroAssemblerRISCV64::countLeadingZeros64):
(JSC::MacroAssemblerRISCV64::countTrailingZeros32):
(JSC::MacroAssemblerRISCV64::countTrailingZeros64):
(JSC::MacroAssemblerRISCV64::byteSwap16):
(JSC::MacroAssemblerRISCV64::byteSwap32):
(JSC::MacroAssemblerRISCV64::byteSwap64):
- 1:07 PM Changeset in webkit [288371] by
-
- 4 edits in trunk
[LFC][IFC] Inline boxes with collapsible content only should not be considered opaque bidi items
https://bugs.webkit.org/show_bug.cgi?id=235447
Reviewed by Antti Koivisto.
Source/WebCore:
We don't normally submit inline boxes with content to ubidi re-ordering since their content drives the visual
position unless they are empty. While empty inline boxes do not usually produce visual artifacts (except ones with decoration)
they still need to be able to answer "bounding box" type of questions.
So in order to have geometry generated for inline boxes, they either
1, need to have some content so that while processing their content, we also compute their geometries
2, have to participate in ubidi's visual re-ordering so that they show up in the visual list (which is the input to the display box create function)
This patch treats inline boxes with fully collapsible content empty so that they fall into group #2.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
LayoutTests:
- 1:02 PM Changeset in webkit [288370] by
-
- 1 edit1 move in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/dom/events/focus-event-document-move.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235150
<rdar://problem/87524787>
Unreviewed, re-land iOS baseline in the correct location. The behaviour difference is expected as it involves mouse events.
- platform/ios/imported/w3c/web-platform-tests/dom/events/focus-event-document-move-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/dom/events/focus-event-document-move-expected.txt.
- 1:01 PM Changeset in webkit [288369] by
-
- 1 copy in branches/safari-613.1.13.1-branch
New branch.
- 12:30 PM Changeset in webkit [288368] by
-
- 2 edits in trunk/Tools
[EWS] Use token when processing hook
https://bugs.webkit.org/show_bug.cgi?id=235383
<rdar://problem/87791577>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/master.cfg:
Canonical link: https://commits.webkit.org/246270@main
- 10:54 AM Changeset in webkit [288367] by
-
- 2 edits in trunk/Tools
[EWS] ConfigureBuild should display PR information instead of ValidateChange
https://bugs.webkit.org/show_bug.cgi?id=235377
<rdar://problem/87853245>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(GitHub):
(GitHub.commit_url): Convert a sha and repository to clickable commit url.
(ConfigureBuild._addToLog): Added.
(ConfigureBuild.add_pr_details): Print link to pull request, commit being
tested and author of change.
(ValidateChange.validate_github): Move links to ConfigureBuild.
Canonical link: https://commits.webkit.org/246269@main
- 10:31 AM Changeset in webkit [288366] by
-
- 5 edits in trunk/Tools
[webkitscmpy] Stop killing finished processes
https://bugs.webkit.org/show_bug.cgi?id=235427
<rdar://problem/87887233>
Rubber-stamped by Aakash Jain.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.Cache.populate): Check if process has finished before killing it.
(Git.commits): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.Cache.populate): Check if process has finished before killing it.
(Svn.commits): Ditto.
Canonical link: https://commits.webkit.org/246268@main
- 9:14 AM Changeset in webkit [288365] by
-
- 1 copy in tags/Safari-612.4.9.1.7
Tag Safari-612.4.9.1.7.
- 9:10 AM Changeset in webkit [288364] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.7
- 8:11 AM Changeset in webkit [288363] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix build when using Visual Studio 2022
https://bugs.webkit.org/show_bug.cgi?id=235440
Reviewed by Antti Koivisto.
It doesn't like having a switch with a default but no cases.
This is cleaner with if statements anyways.
Also make members const because I can.
- jit/JITCode.cpp:
(JSC::JITCode::calleeSaveRegisters const):
- jit/JITCode.h:
- 7:08 AM Changeset in webkit [288362] by
-
- 6 edits2 adds in trunk
WPT version of css/css-cascade/parsing/layer-import-parsing.html crashes with nullptr
https://bugs.webkit.org/show_bug.cgi?id=235434
rdar://87832940
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/parsing/layer-import-parsing.html:
Update to WPT version.
Source/WebCore:
Test: fast/css/insert-import-rule-crash.html
- css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::setCSSStyleSheet):
Null check the parent stylesheet. It can be null if the rule has been removed.
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):
Also fix a debug assert in addPendingSheet, this can get called multiple times.
LayoutTests:
- fast/css/insert-import-rule-crash-expected.txt: Added.
- fast/css/insert-import-rule-crash.html: Added.
- 5:11 AM Changeset in webkit [288361] by
-
- 13 edits in trunk
[CMake] Cannot link libTestRunnerInjectedBundle.so in non unified build
https://bugs.webkit.org/show_bug.cgi?id=226088
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
- wasm/js/JSWebAssemblyModule.h: Add missing header
Source/WebCore:
Covered by existing tests.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::isUnderTest const): Defining it.
- inspector/InspectorController.h: Export isUnderTest().
- loader/SubresourceIntegrity.h: Add missing header.
- platform/gtk/ValidationBubbleGtk.cpp: Ditto.
- svg/graphics/filters/SVGFEImage.h: Ditto.
- testing/Internals.cpp:
(WebCore::Internals::mediaSessionState): Cast new enum to the WebCore
one.
- testing/Internals.h: Redefine MediaSessionState as a new enum
instead of aliasing to avoid redefinitions of
convertEnumerationToString in non-unified builds.
- workers/WorkerConsoleClient.h:
Tools:
- WebKitTestRunner/CMakeLists.txt: Pull WebCore as dependency for
WTR/WTRInjectedBundle
- 3:05 AM Changeset in webkit [288360] by
-
- 1 copy in releases/WPE WebKit/webkit-2.34.4
WPE WebKit 2.34.4
- 3:03 AM Changeset in webkit [288359] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.34.4 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.34.4
- 2:36 AM Changeset in webkit [288358] by
-
- 10 edits1 delete in trunk
element.scrollIntoView() sometimes doesn't scroll
https://bugs.webkit.org/show_bug.cgi?id=42593
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/cssom-view/scrollIntoView-horizontal-partially-visible-expected.txt:
Source/WebCore:
No new tests. This is covered by existing WPT tests.
For some operations which scroll to a rectangle, if an object is more than
32 pixels onscreen, it's not considered onscreen. This was originally used
to prevent unnecessary scrolling while tabbing through form fields, but is
no longer used for that in the majority of cases. Instead, the behavior affects
the calls to Element.focus(), Element.scrollIntoView(), and navigations to
anchor elements.
While navigation to anchor elements and calls to Element.focus() offer more
flexibility to the user agent, this behavior is not spec-compliant with
scrollIntoView(). This change adds a flag to ScrollAlignment to turn it off.
It could be that, in the future, the behavior for focus() is specified more
thoroughly, which might mean extending this fix.
- dom/Element.cpp:
(WebCore::Element::scrollIntoView): Turn off the legacy horizontal visibility threshold.
(WebCore::Element::scrollIntoViewIfNeeded): Ditto.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::getRectToExpose const): Use the new setting in ScrollAlignment
and also rework the code to use the new methods on ScrollAlignment.
- rendering/ScrollAlignment.h:
(WebCore::ScrollAlignment::getVisibleBehavior const): Converted this to a method to match
the new ones.
(WebCore::ScrollAlignment::getPartialBehavior const): Ditto.
(WebCore::ScrollAlignment::getHiddenBehavior const): Ditto.
(WebCore::ScrollAlignment::disableLegacyHorizontalVisibilityThreshold): Added.
(WebCore::ScrollAlignment::legacyHorizontalVisibilityThresholdEnabled const): Added.
(WebCore::ScrollAlignment::getVisibleBehavior): Deleted.
(WebCore::ScrollAlignment::getPartialBehavior): Deleted.
(WebCore::ScrollAlignment::getHiddenBehavior): Deleted.
LayoutTests:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-empty-inline-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-shy-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:
- 2:25 AM Changeset in webkit [288357] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Garden fast/mediastream/getUserMedia-to-canvas-*.html failure for WPE
https://bugs.webkit.org/show_bug.cgi?id=235396
Unreviewed gardnening.
Move fast/mediastream/getUserMedia-to-canvas-*.html failures to glib
to suppress also WPE failures.
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-21
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 1:41 AM Changeset in webkit [288356] by
-
- 5 edits in trunk/Source
Fix AppleWin build with newer MSVC
https://bugs.webkit.org/show_bug.cgi?id=235431
Reviewed by Alex Christensen.
Source/WebCore:
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(printLayer):
Source/WebKitLegacy/win:
- WebDownloadCFNet.cpp:
(WebDownload::cancelForResume):
- WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:
(WKQCA::CAD3DRenderer::resetD3DDevice):
- 1:25 AM Changeset in webkit [288355] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations:
- 12:32 AM Changeset in webkit [288354] by
-
- 28 edits1 copy3 adds in trunk
Support in-process testing of IPC messages
https://bugs.webkit.org/show_bug.cgi?id=231674
<rdar://84189314>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-21
Reviewed by Brent Fulgham.
Source/WebKit:
Add IPCTester service to UI, GPU, Network, Authn process.
The service can be used to send random messages to the processes.
Test: ipc/start-message-testing.html
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchIncomingMessageForTesting):
(IPC::Connection::dispatchMessage):
(IPC::CompletionHandler<void):
Remove asserts from takeAsyncReplyHandler, they're already present
in the caller. The caller can filter them based on the testing flag,
allowing testing without asserts.
- Platform/IPC/Connection.h:
- Platform/IPC/Decoder.cpp:
(IPC::Decoder::create):
(IPC::Decoder::Decoder):
(IPC::Decoder::~Decoder):
- Platform/IPC/Decoder.h:
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::createMessageDecoder):
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
- Platform/IPC/win/ConnectionWin.cpp:
(IPC::Connection::readEventHandler):
- Shared/IPCTester.cpp: Added.
(WebKit::messageTestDriver):
(WebKit::runMessageTesting):
(WebKit::IPCTester::~IPCTester):
(WebKit::IPCTester::startMessageTesting):
(WebKit::IPCTester::stopMessageTesting):
(WebKit::IPCTester::stopIfNeeded):
- Shared/IPCTester.h: Added.
- Shared/IPCTester.messages.in: Copied from Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in.
- Sources.txt:
- UIProcess/LegacySessionStateCodingNone.cpp:
(WebKit::decodeLegacySessionState):
- UIProcess/WebProcessPool.cpp:
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shouldSendPendingMessage):
- WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp:
(WebKit::WebAuthnConnectionToWebProcess::dispatchMessage):
(WebKit::WebAuthnConnectionToWebProcess::dispatchSyncMessage):
- WebAuthnProcess/WebAuthnConnectionToWebProcess.h:
- WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSMessageListener::didReceiveMessage):
(WebKit::IPCTestingAPI::JSMessageListener::willSendMessage):
LayoutTests:
done-ipc-fuzizng
- TestExpectations:
- ipc/start-message-testing.html: Added.
Jan 20, 2022:
- 10:38 PM Changeset in webkit [288353] by
-
- 3 edits in trunk/LayoutTests
Partially garden [iOS] Triage failing LayoutTests in the storage/indexeddb directory
https://bugs.webkit.org/show_bug.cgi?id=181752
rdar://36590081
Patch by Jon Lee <jonlee554@gmail.com> on 2022-01-20
Reviewed by Simon Fraser.
Some of the tests always pass now. Update expectations.
- gpu-process/TestExpectations:
- platform/ios/TestExpectations:
- 10:15 PM Changeset in webkit [288352] by
-
- 59 edits in trunk/Source
[Cocoa] Accelerated filters are enabled by the wrong setting
https://bugs.webkit.org/show_bug.cgi?id=235376
Reviewed by Simon Fraser.
Source/WebCore:
This patch does the following:
- Delete the setting AcceleratedFiltersEnabled since it has not been enabled by any port.
- Delete CoreImageAcceleratedFilterRenderEnabled from the experimental features list because CoreImage filters are not ready to be run in the layout tests.
- Add AcceleratedFiltersEnabled as an internal feature and use it to enable CoreImage filters for Cocoa ports. and SourceGraphic::createApplier().
- Use "Accelerated" instead of using "CoreImage" in the methods of Filter and FilterEffect. The implementation of these methods will be guarded by #if USE(CORE_IMAGE) for Cocoa ports.
- Split the method createApplier() to two methods: createSoftwareApplier() and createAcceleratedApplier() and make FilterEffect::createApplier() decide which one to call.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- page/Page.cpp:
(WebCore::Page::acceleratedFiltersEnabled const):
- page/Page.h:
- page/Settings.yaml:
- platform/graphics/coreimage/FEColorMatrixCoreImageApplier.h:
- platform/graphics/coreimage/FEComponentTransferCoreImageApplier.h:
- platform/graphics/coreimage/SourceGraphicCoreImageApplier.h:
- platform/graphics/filters/FEBlend.cpp:
(WebCore::FEBlend::createSoftwareApplier const):
(WebCore::FEBlend::createApplier const): Deleted.
- platform/graphics/filters/FEBlend.h:
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::resultIsAlphaImage const):
(WebCore::FEColorMatrix::supportsAcceleratedRendering const):
(WebCore::FEColorMatrix::createAcceleratedApplier const):
(WebCore::FEColorMatrix::createSoftwareApplier const):
(WebCore::FEColorMatrix::supportsCoreImageRendering const): Deleted.
(WebCore::FEColorMatrix::createApplier const): Deleted.
- platform/graphics/filters/FEColorMatrix.h:
- platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::supportsAcceleratedRendering const):
(WebCore::FEComponentTransfer::createAcceleratedApplier const):
(WebCore::FEComponentTransfer::createSoftwareApplier const):
(WebCore::FEComponentTransfer::supportsCoreImageRendering const): Deleted.
(WebCore::FEComponentTransfer::createApplier const): Deleted.
- platform/graphics/filters/FEComponentTransfer.h:
- platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::createSoftwareApplier const):
(WebCore::FEComposite::createApplier const): Deleted.
- platform/graphics/filters/FEComposite.h:
- platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::createSoftwareApplier const):
(WebCore::FEConvolveMatrix::createApplier const): Deleted.
- platform/graphics/filters/FEConvolveMatrix.h:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::createSoftwareApplier const):
(WebCore::FEDisplacementMap::createApplier const): Deleted.
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::createSoftwareApplier const):
(WebCore::FEDropShadow::createApplier const): Deleted.
- platform/graphics/filters/FEDropShadow.h:
- platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::createSoftwareApplier const):
(WebCore::FEFlood::createApplier const): Deleted.
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::createSoftwareApplier const):
(WebCore::FEGaussianBlur::createApplier const): Deleted.
- platform/graphics/filters/FEGaussianBlur.h:
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::createSoftwareApplier const):
(WebCore::FELighting::createApplier const): Deleted.
- platform/graphics/filters/FELighting.h:
- platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::createSoftwareApplier const):
(WebCore::FEMerge::createApplier const): Deleted.
- platform/graphics/filters/FEMerge.h:
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::createSoftwareApplier const):
(WebCore::FEMorphology::createApplier const): Deleted.
- platform/graphics/filters/FEMorphology.h:
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::createSoftwareApplier const):
(WebCore::FEOffset::createApplier const): Deleted.
- platform/graphics/filters/FEOffset.h:
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::createSoftwareApplier const):
(WebCore::FETile::createApplier const): Deleted.
- platform/graphics/filters/FETile.h:
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::createSoftwareApplier const):
(WebCore::FETurbulence::createApplier const): Deleted.
- platform/graphics/filters/FETurbulence.h:
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::createApplier const):
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::createAcceleratedApplier const):
- platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::supportsAcceleratedRendering const):
(WebCore::FilterFunction::supportsCoreImageRendering const): Deleted.
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::createSoftwareApplier const):
(WebCore::SourceAlpha::createApplier const): Deleted.
- platform/graphics/filters/SourceAlpha.h:
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::supportsAcceleratedRendering const):
(WebCore::SourceGraphic::createAcceleratedApplier const):
(WebCore::SourceGraphic::createSoftwareApplier const):
(WebCore::SourceGraphic::createApplier const): Deleted.
- platform/graphics/filters/SourceGraphic.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::supportsAcceleratedRendering const):
(WebCore::CSSFilter::supportsCoreImageRendering const): Deleted.
- rendering/CSSFilter.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::createSoftwareApplier const):
(WebCore::FEImage::createApplier const): Deleted.
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::supportsAcceleratedRendering const):
(WebCore::SVGFilter::supportsCoreImageRendering const): Deleted.
- svg/graphics/filters/SVGFilter.h:
Source/WTF:
Delete ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER and use USE_CORE_IMAGE
instead since CoreImage is only used for filters right now. Besides
CoreImage filters will be enabled by the internal feature control flag
AcceleratedFiltersEnabled.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
- wtf/PlatformEnableCocoa.h:
- 8:54 PM Changeset in webkit [288351] by
-
- 2 edits in trunk/LayoutTests
It looks like word-break-break-all-008.html still fails on Catalina.
Unreviewed.
- platform/mac/TestExpectations:
- 8:18 PM Changeset in webkit [288350] by
-
- 4 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/ios-wk2/TestExpectations:
- 7:58 PM Changeset in webkit [288349] by
-
- 2 edits in trunk/Tools
[GTK] API test /webkit/WebKitWebsiteData/cache is flaky
https://bugs.webkit.org/show_bug.cgi?id=188113
Unreviewed test gardening.
It has been passing consistently for a long time. Sometimes failing
consistently too, but when there are regressions.
- TestWebKitAPI/glib/TestExpectations.json:
- 7:51 PM Changeset in webkit [288348] by
-
- 3 edits in trunk/LayoutTests
media/video-src-blob-using-open-panel.html now always passes.
rdar://problem/32715902
Gardening. Unreviewed.
- gpu-process/TestExpectations:
- platform/ios/TestExpectations:
- 7:47 PM Changeset in webkit [288347] by
-
- 5 edits in trunk/LayoutTests
WPT progressions after r288070 (complex font codepath for IFC)
Unreviewed.
Patch by Alan Bujtas <Alan Bujtas> on 2022-01-20
- TestExpectations:
- platform/mac/TestExpectations:
- 7:18 PM Changeset in webkit [288346] by
-
- 3 edits in trunk/LayoutTests
WPT progressions after r288070 (complex font codepath for IFC)
Unreviewed.
- TestExpectations:
- platform/mac/TestExpectations:
- 7:09 PM Changeset in webkit [288345] by
-
- 18 edits4 copies2 adds in trunk
Add SPI for passing around and getting details about
WebCore::CSSStyleDeclarationin injected bundle code
https://bugs.webkit.org/show_bug.cgi?id=235386
<rdar://problem/87566737>
Reviewed by Tim Horton.
Source/WebKit:
Test: WebKit.WKWebProcessPlugInCSSStyleDeclarationHandle
- WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.h:
- WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::coreCSSStyleDeclaration): Added.
Expose a way to get the relatedWebCore::CSSStyleDeclaration(fortoJS).
Add a method that returns the string value for a given property name.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInCSSStyleDeclarationHandle.h: Added.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInCSSStyleDeclarationHandleInternal.h: Added.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInCSSStyleDeclarationHandle.mm: Added.
(-[WKWebProcessPlugInCSSStyleDeclarationHandle dealloc]):
(+[WKWebProcessPlugInCSSStyleDeclarationHandle cssStyleDeclarationHandleWithJSValue:inContext:]):
(-[WKWebProcessPlugInCSSStyleDeclarationHandle _cssStyleDeclarationHandle]):
(-[WKWebProcessPlugInCSSStyleDeclarationHandle _apiObject]):
Add ObjC SPI for manipulatingWebCore::CSSStyleDeclaration(in the injected bundle).
- WebProcess/WebPage/WebFrame.h:
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::jsWrapperForWorld):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame jsCSSStyleDeclarationForCSSStyleDeclarationHandle:inWorld:]): Added.
Add methods for converting from ObjC SPI wrappers ofWebCore::CSSStyleDeclarationto JS.
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add support for automatic conversion ofWKBundleCSSStyleDeclarationRefto ObjC (above).
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/cocoa/WebProcessCocoa.mm:
Drive-by: Unified sources fixes.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/BundleCSSStyleDeclarationHandleProtocol.h: Added.
- TestWebKitAPI/Tests/WebKitCocoa/BundleCSSStyleDeclarationHandle.mm: Added.
(-[BundleCSSStyleDeclarationHandleRemoteObject verifyStyle:]):
(TEST.WebKit.WKWebProcessPlugInCSSStyleDeclarationHandle):
- TestWebKitAPI/Tests/WebKitCocoa/BundleCSSStyleDeclarationHandlePlugIn.mm: Added.
(-[BundleCSSStyleDeclarationHandlePlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[BundleCSSStyleDeclarationHandlePlugIn webProcessPlugInBrowserContextController:didFinishDocumentLoadForFrame:]):
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm:
(-[CookiePrivateBrowsingDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST.WebKit.CookiePrivateBrowsing):
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/RestoreSessionStateWithoutNavigation.mm:
(-[SessionStateDelegate webView:didFinishNavigation:]):
(TestWebKitAPI::createSessionStateData):
Drive-by: Unified sources fixes.
- 7:00 PM Changeset in webkit [288344] by
-
- 3 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations: Remove failure expectations on media tests that are passing on iOS.
- platform/ios/TestExpectations:
- 6:58 PM Changeset in webkit [288343] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Implement TextUtil::directionForTextContent
https://bugs.webkit.org/show_bug.cgi?id=235392
Reviewed by Antti Koivisto.
Let's check with ubidi_getBaseDirection what the content direction is. We use this
direction value to drive the line based "content alignment".
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::directionForTextContent):
- 6:43 PM Changeset in webkit [288342] by
-
- 13 edits in trunk/Source/bmalloc
[libpas] medium directory lookup should bail if begin_index is zero to catch races with expendable memory decommit (cherry pick 434465bfb8e0c285d6763cf6aa0e04982199f824)
https://bugs.webkit.org/show_bug.cgi?id=235280
Reviewed by Yusuke Suzuki.
I've been seeing crashes in pas_segregated_heap_ensure_allocator_index where the directory that is
passed to the function doesn't match the size. The most likely reason why this is happening is that
the medium directory lookup raced with expendable memory decommit and returned the wrong directory.
To figure out how this happens, I added a bunch of tests to ExpendableMemoryTests. This change
includes various small fixes (like removing assertions) that were found by doing such testing, and it
also includes a test and a change that I think exactly catches what is going on:
- Expendable memory is decommitted so that the medium lookup sees begin_index == 0, but end_index still has its original value. This will cause it to return a tuple that is for a too-large size class.
- Some other thread rematerializes the expendable memory right after the medium lookup finishes, but before it loads the directory.
- The medium lookup finally loads the directory from the tuple, and now sees a non-NULL directory, so it thinks that everything is fine.
This race barely "works" since:
- Any other field in the medium tuple being zero would cause the medium lookup to fail, which would then cause a slow path that rematerializes expendable memory under a lock.
- Rematerialization of expendable memory adjusts the mutation count, so this race would only go undetected if the rematerialization happened after the medium lookup search but before when the medium lookup loads the directory.
The solution is to just have the medium lookup fail if begin_index == 0. Begin_index can never
legitimately be zero, because there's no way that a size class would want to be responsible for both
index 0 (i.e. the zero-byte object) and objects big enough to require medium lookup.
This adds new tests. While running those new tests, I found and fixed two other bugs:
- Recomputation of the index_to_small_allocator_index table subtly mishandles the cached_index case. Previously, it was only special-casing it only when the directory was not participating in lookup tables at all, but actually it needs to special-case it anytime that the directory doesn't otherwise think that it should set the entry at cached_index.
- Expendable memory commit/decommit was playing fast-and-loose with version numbers. This fixes it so that there is a global monotonically increasing version number.
- libpas/src/libpas/bmalloc_heap.c:
(bmalloc_flex_heap_ref_get_heap):
(bmalloc_auxiliary_heap_ref_get_heap):
(bmalloc_get_heap):
- libpas/src/libpas/bmalloc_heap.h:
- libpas/src/libpas/pas_expendable_memory.c:
(pas_expendable_memory_state_version_next):
(pas_expendable_memory_construct):
(pas_expendable_memory_commit_if_necessary):
(scavenge_impl):
(pas_expendable_memory_scavenge):
- libpas/src/libpas/pas_expendable_memory.h:
- libpas/src/libpas/pas_scavenger.c:
(handle_expendable_memory):
(scavenger_thread_main):
(pas_scavenger_decommit_expendable_memory):
(pas_scavenger_fake_decommit_expendable_memory):
- libpas/src/libpas/pas_scavenger.h:
- libpas/src/libpas/pas_segregated_heap.c:
(medium_directory_tuple_for_index_impl):
(pas_segregated_heap_medium_directory_tuple_for_index):
(pas_segregated_heap_medium_allocator_index_for_index):
(recompute_size_lookup):
(rematerialize_size_lookup_set_medium_directory_tuple):
(pas_segregated_heap_ensure_allocator_index):
(check_size_lookup_recomputation_set_medium_directory_tuple):
(check_size_lookup_recomputation_dump_directory):
(check_size_lookup_recomputation):
(check_size_lookup_recomputation_if_appropriate):
(pas_segregated_heap_ensure_size_directory_for_size):
- libpas/src/libpas/pas_segregated_heap.h:
- libpas/src/libpas/pas_segregated_size_directory.h:
(pas_segregated_size_directory_get_tlc_allocator_index):
- libpas/src/libpas/pas_try_allocate_primitive.h:
(pas_try_allocate_primitive_impl_casual_case):
(pas_try_allocate_primitive_impl_inline_only):
- libpas/src/test/ExpendableMemoryTests.cpp:
(std::testRage):
(std::testRematerializeAfterSearchOfDecommitted):
(std::testBasicSizeClass):
(addExpendableMemoryTests):
- libpas/src/test/TestHarness.cpp:
(RuntimeConfigTestScope::RuntimeConfigTestScope):
- 6:39 PM Changeset in webkit [288341] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations:
- 6:11 PM Changeset in webkit [288340] by
-
- 3 edits in trunk/Source/bmalloc
Make bmalloc work better with various MallocStackLogging modes
https://bugs.webkit.org/show_bug.cgi?id=235425
Reviewed by Yusuke Suzuki.
This conditionalizes the way system malloc is used depending on the exact value of the
MallocStackLogging environment variable:
- If the mode is "vm" or "vmlite", then we don't need to use system malloc at all, since those logging modes only intercept syscalls.
- If the mode is "lite", then we should use the default malloc zone (rather than our custom "WebKit Using System Malloc" zone), since the lite mode only intercepts allocations from the default zone.
Before this change, the lite mode didn't capture bmalloc/FastMalloc callstacks, which made
it less useful than it should have been.
- bmalloc/DebugHeap.cpp:
(bmalloc::shouldUseDefaultMallocZone):
(bmalloc::DebugHeap::DebugHeap):
- bmalloc/Environment.cpp:
(bmalloc::isMallocEnvironmentVariableImplyingSystemMallocSet):
(bmalloc::Environment::computeIsDebugHeapEnabled):
- 5:36 PM Changeset in webkit [288339] by
-
- 3 edits in trunk/Source/bmalloc
[libpas] Ensure pas_allocation_callback and pas_deallocation_callback are initialized as NULL
https://bugs.webkit.org/show_bug.cgi?id=235423
Reviewed by Mark Lam.
Some compiler options cause link-failure when we do not explicitly initialize these variables
in the C file (but it is not necessary strictly speaking). This patch cleans up and initializes
them with NULL.
- libpas/src/libpas/pas_allocation_callbacks.c:
- libpas/src/libpas/pas_allocation_callbacks.h:
- 5:35 PM Changeset in webkit [288338] by
-
- 1 copy in tags/Safari-613.1.14.2.2
Tag Safari-613.1.14.2.2.
- 5:33 PM Changeset in webkit [288337] by
-
- 9 edits in branches/safari-613.1.14.2-branch/Source
Versioning.
WebKit-7613.1.14.2.2
- 5:23 PM Changeset in webkit [288336] by
-
- 8 edits2 adds in trunk
REGRESSION (r284136): A slight horizontal rubberband kills scroll momentum
https://bugs.webkit.org/show_bug.cgi?id=234384
Reviewed by Tim Horton.
Source/WebCore:
ScrollAnimationRubberBand subtly changed the behavior of the rubberband animation on the
axis that is not the rubberbanding axis. Because it converged on m_targetOffset, it always
resulted in no offset on that axis.
Fix by restoring the behavior from before r284136, which applies the rubberbanding as a
delta from the current offset and no longer uses m_targetOffset, which is removed. It's a
bit surprising that this rubberband animation drives a vertical scroll when the gesture is
primarily horizontal (normally we'd clamp these deltas to be purely horizontal), but people
are used to this behavior so restore it.
Test: fast/scrolling/mac/j-shaped-scroll-rubberband.html
- platform/ScrollAnimation.h:
- platform/ScrollingEffectsController.cpp:
(WebCore::ScrollingEffectsController::overscrollAmount):
(WebCore::ScrollingEffectsController::scrollOffset):
- platform/ScrollingEffectsController.h:
- platform/mac/ScrollAnimationRubberBand.h:
- platform/mac/ScrollAnimationRubberBand.mm:
(WebCore::ScrollAnimationRubberBand::startRubberBandAnimation):
(WebCore::ScrollAnimationRubberBand::serviceAnimation):
(WebCore::ScrollAnimationRubberBand::debugDescription const):
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::startRubberBandAnimation):
(WebCore::ScrollingEffectsController::startRubberBandAnimationIfNecessary):
LayoutTests:
- fast/scrolling/mac/j-shaped-scroll-rubberband-expected.txt: Added.
- fast/scrolling/mac/j-shaped-scroll-rubberband.html: Added.
- 5:13 PM Changeset in webkit [288335] by
-
- 2 edits in trunk/Source/WebKit
ReplayCGDisplayListsIntoBackingStore often results in compositing layers with black backgrounds
https://bugs.webkit.org/show_bug.cgi?id=235424
Reviewed by Simon Fraser.
No new tests, covered by many existing tests when run in this mode.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
Since we use CA-driven painting when ReplayCGDisplayListsIntoBackingStore
is enabled, we need to tell CA whether or not our backing store needs
an alpha channel before invalidating and painting into the layer.
- 5:01 PM Changeset in webkit [288334] by
-
- 2 edits in trunk/Source/WebCore
AXCoreObject::childrenIDs can be simplified and more efficient by using map
https://bugs.webkit.org/show_bug.cgi?id=235418
Reviewed by Darin Adler.
Follow-up to address Darin's comment at
https://bugs.webkit.org/show_bug.cgi?id=235384#c8.
No tests added because there's no behavior change.
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::childrenIDs):
Use map instead of for-loop for simplicity and efficiency through
map's use of uncheckedAppend and reserveInitialCapacity.
- 4:34 PM Changeset in webkit [288333] by
-
- 3 edits in trunk/Source/WebKit
[WebAuthn] Support all valid FIDO NFC tag types
https://bugs.webkit.org/show_bug.cgi?id=234616
rdar://85871173
Reviewed by Darin Adler.
This patch modifies a check when looking for FIDO nfc tags
to support all valid FIDO tag types.
Tested using physical NFC tags provided for this bug.
- Platform/spi/Cocoa/NearFieldSPI.h:
- UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:
(WebKit::NfcConnection::didDetectTags):
- 4:17 PM Changeset in webkit [288332] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] Add LineContent::inlineBaseDirection to support line based inline direction
https://bugs.webkit.org/show_bug.cgi?id=235391
Reviewed by Antti Koivisto.
In this patch we introduce the line based inline base direction. With "unicode-bidi: plaintext" each line can have its own
base direction depending on the content on the line.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::toString): Unfortunately we have to rebuild the text content part of the line here.
(WebCore::Layout::LineBuilder::layoutInlineContent):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::InlineDisplayLineBuilder::build const):
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h:
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::directionForTextContent):
- layout/formattingContexts/inline/text/TextUtil.h:
- 3:48 PM Changeset in webkit [288331] by
-
- 1 copy in releases/WebKitGTK/webkit-2.34.4
WebKitGTK 2.34.4
- 3:41 PM Changeset in webkit [288330] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Unreviewed. Update OptionsGTK.cmake and NEWS for the 2.34.4 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.34.4
- 3:41 PM Changeset in webkit [288329] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r288305 - [JSC] Add section directive in MacroAssemblerX86Common asm blocks
https://bugs.webkit.org/show_bug.cgi?id=235406
Patch by Joseph Griego <jgriego@igalia.com> on 2022-01-20
Reviewed by Yusuke Suzuki.
These asm blocks aren't in a function body so they need a .text
directive to prevent them from being included in some arbitrary section
(say, an inline function's section) by happenstance, which was happening
in the WPE build without UnifiedSources.
- assembler/MacroAssemblerX86Common.cpp:
- 3:41 PM Changeset in webkit [288328] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r288324 - Non-unified build fails due to forward declaration in JavaScriptCore/jit/JITStubRoutine.h
https://bugs.webkit.org/show_bug.cgi?id=235409
Unreviewed non-unified build fix.
- jit/JITStubRoutine.h:
- 3:09 PM Changeset in webkit [288327] by
-
- 2 edits in trunk/Source/WebCore
[macOS] Various tests hit debug assertions under
SearchBuffer::searchafter system ICU changes
https://bugs.webkit.org/show_bug.cgi?id=235413
rdar://87423185
Reviewed by Darin Adler.
After upgrading the system ICU version to ICU 70, many layout tests that attempt to use TextIterator on macOS
(e.g. tests inaccessibility/mac) hit debug assertions underneathWebCore::SearchBuffer::search; this is
because ICU now emitsU_USING_DEFAULT_WARNINGas the error code when callingusearch_next(), instead of
U_ZERO_ERROR, like it did in previous versions.
This warning is propagated due to ICU falling back to the root locale (
kRootLocaleName) when creating an
icu::BreakIterator, and appears to be benign. We can address this by relaxing the debug assertion in this
method to just check that the error code indicates success (i.e. "warning, or no error"), rather than strictly
being equal toU_ZERO_ERROR.
- editing/TextIterator.cpp:
(WebCore::SearchBuffer::search):
- 2:32 PM Changeset in webkit [288326] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add "previous line ends with a line break" flag to PreviousLine
https://bugs.webkit.org/show_bug.cgi?id=235405
Reviewed by Antti Koivisto.
This is in preparation for supporting unicode-bidi: plaintext where we need to know if the previous line ends in a line break or not.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- 2:10 PM Changeset in webkit [288325] by
-
- 2 edits in trunk/PerformanceTests
[WinCairo] Unreviewed performance test gardening.
- Skipped:
Skip various IndexedDB timeouts.
- 2:06 PM Changeset in webkit [288324] by
-
- 2 edits in trunk/Source/JavaScriptCore
Non-unified build fails due to forward declaration in JavaScriptCore/jit/JITStubRoutine.h
https://bugs.webkit.org/show_bug.cgi?id=235409
Unreviewed non-unified build fix.
- jit/JITStubRoutine.h:
- 2:04 PM Changeset in webkit [288323] by
-
- 1 edit1 add in trunk/LayoutTests
Mark range boundary point containers
https://bugs.webkit.org/show_bug.cgi?id=233462
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-20
Reviewed by Darin Adler.
Add test that should have been part of r287131. Caught by Adrian.
- fast/dom/Range/delete-contents-crash.html: Added.
- 1:36 PM Changeset in webkit [288322] by
-
- 2 edits in trunk/Tools
[ews] Load credentials from passwords.json in master.cfg (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=235296
Reviewed by Aakash Jain.
- CISupport/ews-build/master.cfg:
(load_password): Define default value.
Canonical link: https://commits.webkit.org/246234@main
- 1:26 PM Changeset in webkit [288321] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288293. rdar://problem/87777915
Prevent empty folders being created during install builds
rdar://87777915
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Brady Eidson.
The "Copy Daemon Plists" script phase has output files which aren't always written to. Since
Xcode mkdir-p's these output directories, it ends up creating an empty directory under some
circumstances. Fix by removing these declared outputs: since this script is install-only
and executes quickly, it's not really a problem to have it run redundantly.
Once we use XCBuild everywhere, it can be rewritten as a Copy Files phase.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288293 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [288320] by
-
- 4 edits4 adds in branches/safari-613-branch
Cherry-pick r288078. rdar://problem/87662271
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [288319] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r287997. rdar://problem/87274541
Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
- WebProcess/WebPage/MomentumEventDispatcher.h: We store std::optional<ScrollingAccelerationCurve> in a map, but then when looking at whether we have a curve (to decide whether or not to even use MomentumEventDispatcher), we check if the map has *any* value for the given page... even an unengaged optional. To fix, check if the optional is engaged.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [288318] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r287957. rdar://problem/87327557
[WebAuthn] Fix freebie call without user gesture not being given
https://bugs.webkit.org/show_bug.cgi?id=235078
rdar://87327557
Reviewed by Brent Fulgham.
Source/WebKit:
This logic was previously always requiring a user gesture. The desired
behavior of giving pages a single "freebie" webauthn call without gesture
was lost in a refactor.
Tested manually on iOS device with webauthn.me.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::processingUserGesture):
Tools:
Updated API test to reflect user gesture freebie.
- TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-mock.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:18 PM Changeset in webkit [288317] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] LineBuilder::layoutInlineContent should take PreviousLine
https://bugs.webkit.org/show_bug.cgi?id=235403
Reviewed by Antti Koivisto.
Let's pass in a PreviousLine struct to LineBuilder::layoutInlineContent instead of individual variables about the previous line.
This is in preparation for supporting unicode-bidi: plaintext where we need to know if the previous line ends in a line break or not.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialize):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- 1:11 PM Changeset in webkit [288316] by
-
- 9 edits1 copy in trunk
[XCBuild] Build via the workspace with USE_WORKSPACE=YES
https://bugs.webkit.org/show_bug.cgi?id=235385
rdar://87489695
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Alexey Proskuryakov.
.:
Experimental XCBuild support is available by passing USE_WORKSPACE=YES to Make. This is
roughly equivalent to opening WebKit.xcworkspace and building a scheme in the IDE.
A workspace build is only one
xcodebuildinvocation, in contrast with the traditional
recursive-Make build that iterates through each project directory. As a result, workspace
builds are faster: the build system can schedule targets from different projects to build
simultaneously, and there's lower xcodebuild overhead.
Workspaces build _schemes_, which are a collection of targets. By default, Make looks for a
scheme whose name matches the source directory (Source/WebCore => build scheme "WebCore").
Makefiles can customize this by setting SCHEME.
At this time, there is no guarantee of correctness when building with USE_WORKSPACE=YES, and
workspace builds are not checked by builders.
- Makefile: Use workspace logic when USE_WORKSPACE=YES
- Makefile.shared: xcodebuild invocation logic for workspace builds
- Source/Makefile: Use workspace logic and set custom SCHEME name
- WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: Use XCBuild for workspace
builds
- WebKit.xcworkspace/xcshareddata/xcschemes/All Modules.xcscheme: Added, to correspond with
the top-level Makefile
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme: Let XCBuild determine build
order
- WebKit.xcworkspace/xcshareddata/xcschemes/All Tools.xcscheme: Let XCBuild determine build
order
Tools:
- Makefile: Use workspace logic and set custom SCHEME name
- 12:48 PM Changeset in webkit [288315] by
-
- 33 edits1 copy6 adds2 deletes in trunk
Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams
https://bugs.webkit.org/show_bug.cgi?id=235233
<rdar://problem/87601762>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-20
Reviewed by Youenn Fablet.
Source/WebCore:
Make full texture uploads from MediaStream camera captures use CVPixelBuffers
instead of reading the pixels back.
Implement MediaPlayerInterface::pixelBufferForCurrentTime() for
MediaPlayerPrivateMediaSourceAVFObjC.
Rename functions from pixelBuffer... to videoSample...
Use new type MediaSampleVideoFrame instead of CVPixelBuffer.
MediaSampleVideoFrame contains also the frame orientation. The
orientation is needed as the camera might capture the image
with a rotation or a flip.
To avoid ifdefs, the new API videoSampleForCurrentTime exists
for all platforms, but is currently called only by Cocoa.
Also the type MediaSampleVideoFrame exists for all platforms
but has the frame contents implementation only for Cocoa.
Tested by
fast/mediastream/getUserMedia-to-canvas-1.html
fast/mediastream/getUserMedia-to-canvas-2.html
Currently the "mirrored" part is tested manually, WebKit
does not request mirrored camera image so it is dead code.
- Headers.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::videoSampleForCurrentTime):
(WebCore::MediaPlayer::pixelBufferForCurrentTime): Deleted.
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateInterface::videoSampleForCurrentTime):
(WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime): Deleted.
- platform/graphics/MediaSampleVideoFrame.h: Added.
(WebCore::MediaSampleVideoFrame::orientation const):
(WebCore::MediaSampleVideoFrame::pixelBuffer const):
(WebCore::MediaSampleVideoFrame::operator== const):
(WebCore::MediaSampleVideoFrame::encode const):
(WebCore::MediaSampleVideoFrame::decode):
- platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Added.
(WebCore::MediaSampleVideoFrame::MediaSampleVideoFrame):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::videoSampleForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoSampleForCurrentTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::videoOrientation):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleForCurrentTime):
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):
- platform/graphics/cv/GraphicsContextGLCV.h:
- platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:
(WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa):
(WebCore::GraphicsContextGLCVCocoa::copyVideoFrameToTexture):
(WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture): Deleted.
- platform/graphics/cv/GraphicsContextGLCVCocoa.h:
Source/WebKit:
Rename functions from pixelBuffer... to videoFrame.
Send new type MediaPlayerVideoFrame instead of CVPixelBuffer.
MediaPlayerVideoFrame contains also the frame orientation.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::invalidate):
(WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
(WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTimeIfChanged): Deleted.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime):
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
LayoutTests:
- fast/mediastream/getUserMedia-to-canvas.html:
- webrtc/routines.js:
Test camera image rotations in the test.
- 12:34 PM Changeset in webkit [288314] by
-
- 5 edits in trunk/Tools
[EWS] Add CheckOutPullRequest step
https://bugs.webkit.org/show_bug.cgi?id=235157
<rdar://problem/87487209 >
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/factories.py:
(Factory.init): Add CheckOutPullRequest step.
(StyleFactory.init): Ditto.
(WatchListFactory.init): Ditto.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps): Add CheckOutPullRequest step.
- Tools/CISupport/ews-build/steps.py:
(ApplyPatch.doStepIf): Only run step if a patch is provided.
(ApplyPatch.hideStepIf): Only display step if a patch was provided.
(ApplyPatch.getResultSummary): Add SKIPPED description.
(CheckOutPullRequest):
(CheckOutPullRequest.init):
(CheckOutPullRequest.doStepIf): Only run step if a pull request is provided.
(CheckOutPullRequest.hideStepIf): Only display step if a pul request was provided.
(CheckOutPullRequest.run): Configure new remote, fetch remote and checkout pull request
branch from the newly configured remote.
(CheckOutPullRequest.getResultSummary):
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/246230@main
- 12:02 PM Changeset in webkit [288313] by
-
- 3 edits in trunk/Source/WebCore
AXIsolatedTree::updateChildren childrenIDs and children local variables could get out of sync
https://bugs.webkit.org/show_bug.cgi?id=235384
Reviewed by Andres Gonzalez.
In AXIsolatedTree::updateChildren, we have this:
const auto& axChildren = axAncestor->children();
auto axChildrenIDs = axAncestor->childrenIDs();
Because the current version of AXCoreObject::childrenIDs
always updates the underlying children if necessary, these
two variables could get out of sync if childrenIDs actually
performs an update after we already got children().
This patch changes childrenIDs to have the same interface as
children() by adding abool updateChildrenIfNecessaryparameter,
and using childrenIDs(false) in the above method.
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::childrenIDs):
Add updateChildrenIfNecessary parameter to match AXCoreObject::children(bool).
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateChildren):
- 11:48 AM Changeset in webkit [288312] by
-
- 18 edits1 copy in trunk/Tools
[webkitbugspy] Support automated comments
https://bugs.webkit.org/show_bug.cgi?id=235371
<rdar://problem/87783426>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
(Tracker.user): Add potential credentials to requests.
(Tracker.credentials): Explicitly call credentials from webkitcorepy.
(Tracker._login_arguments): Create login query from credentials.
(Tracker.me): Return user based on credentials.
(Tracker.populate): Add potential credentials to requests.
(Tracker.add_comment): Add comment to bugzilla issue.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.me): Return user based on credentials.
(Tracker.add_comment): Add comment to GitHub issue.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:
(Issue.add_comment): Base class.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/base.py:
(Base.add): We don't want to edit the original list of comments.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:
(Bugzilla.init): Add optional Environment mock.
(Bugzilla.enter): Enter Environment mock.
(Bugzilla.exit): Exit Environment mock.
(Bugzilla._user): Use jsonlib instead of json.
(Bugzilla._user_for_credentials): Convert a credential string into
a User object.
(Bugzilla._issue): Use jsonlib instead of json.
(Bugzilla._see_also): Ditto.
(Bugzilla._comments): Ditto.
(Bugzilla._post_comment): Update mock issue database with posted comment.
(Bugzilla.request): Add credentials to each request, handle comment POST request.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:
(GitHub.init): Add optional Environment mock.
(GitHub.enter): Enter Environment mock.
(GitHub.exit): Exit Environment mock.
(GitHub._post_comment): Update mock issue database with posted comment.
(GitHub.request): Handle comment POST request.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py:
(AppleDirectoryQuery.user_entry_for_attribute_value): Map AppleConnect username
to user.
(RadarModel.CollectionProperty.init): Pass parent model in.
(RadarModel.CollectionProperty.add): Add an element to the collection.
(RadarModel.init): Pass self into CollectionProperty.
(RadarModel.commit_changes): Update mock issue database with issue contents.
(RadarClient.init): Accept authentication_strategy.
(Radar.AuthenticationStrategySystemAccount.init): Save username.
(Radar.AuthenticationStrategySystemAccount.username): Return username.
(Radar.AuthenticationStrategySPNego.username): Assume username from environment.
(Radar.DiagnosisEntry): Moved from RadarModel.DiagnosisEntry.
(Radar.transform_user): Add AppleConnect email.
(Radar.init): Pass authentication_strategy to RadarClient.
(RadarModel.DiagnosisEntry): Moved to Radar.DiagnosisEntry.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:
(Tracker.user): Support queries by AppleConnect username.
(Tracker.me): Use authentication to determine the logged in user.
(Tracker.add_comment): Add comment to Radar.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:
(TestBugzilla.test_reference_parse): Use add_comment.
(TestBugzilla.test_me): Added.
(TestBugzilla.test_add_comment): Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:
(TestGitHub.test_watcher_parse): Use add_comment.
(TestGitHub.test_reference_parse): Ditto.
(TestGitHub.test_me): Added.
(TestGitHub.test_add_comment): Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:
(TestRadar): Renamed from TestGitHub.
(TestRadar.test_reference_parse): Use add_comment.
(TestRadar.test_me): Added.
(TestRadar.test_add_comment): Added.
(TestGitHub): Renamed TestRadar.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:
(Tracker.me): Added.
(Tracker.add_comment): Added.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/init.py: Export mock environment, bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/environment.py: Added.
(Environment): Mock os.environ and reset credential cache.
Canonical link: https://commits.webkit.org/246228@main
- 11:16 AM Changeset in webkit [288311] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r288215 - Null check m_progressTracker in clearProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=233063
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-19
Reviewed by Alex Christensen.
Source/WebCore:
Null check m_progressTracker in clearProvisionalLoad.
Test: fast/frames/contentFrame-disconnecting-crash.html
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::clearProvisionalLoad):
LayoutTests:
- platform/mac/fast/frames/contentFrame-disconnecting-crash-expected.txt: Added.
- platform/mac/fast/frames/contentFrame-disconnecting-crash.html: Added.
- 11:12 AM Changeset in webkit [288310] by
-
- 2 edits in trunk/Tools
[ iOS15 ] TestWebKitAPI.WebKit.ServerTrust and TestWebKitAPI.WebKit.FastServerTrust tests timing out
https://bugs.webkit.org/show_bug.cgi?id=231320
<rdar://80352256>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-20
Reviewed by Chris Dumez.
SecTrustCopyCertificateChain returns a CFArrayRef of SecCertificateRef, not CFData.
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(verifyCertificateAndPublicKey):
(TestWebKitAPI::TEST):
- 11:12 AM Changeset in webkit [288309] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed PlayStation / clang-cl build fix following r288298.
clang for Windows (< v10.0.0) cannot destructure a const class.
See also r261572, r254471, r249524, etc.
- NetworkProcess/storage/StorageAreaBase.cpp:
(WebKit::StorageAreaBase::notifyListenersAboutClear):
(WebKit::StorageAreaBase::dispatchEvents const):
- 11:08 AM Changeset in webkit [288308] by
-
- 4 edits3 adds in releases/WebKitGTK/webkit-2.34
Merge r288052 - null ptr deref in WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor()
https://bugs.webkit.org/show_bug.cgi?id=233463
Patch by Frederic Wang <fwang@igalia.com> on 2022-01-14
Reviewed by Wenson Hsieh.
Source/WebCore:
One line of ReplaceSelectionCommand::moveNodeOutOfAncestor() assumes that the pointer
ancestor.parentNode() is non-null. However, the call to removeNode(node) just before can
lead to arbitrary tree mutations that leaves the ancestor orphan, causing a nullptr deref.
This patch mitigates that issue by exiting early if that situation happens.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Exit early if the ancestor
is no longer connected.
LayoutTests:
Add non-regression test.
- editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash-expected.txt: Added.
- editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html: Added.
- editing/execCommand/resources/paste-as-quotation-disconnected-paragraph-ancestor-crash-iframe.html: Added.
- platform/win/TestExpectations: Skip test on windows, as the test seems to shift expectations with text output
of other execCommand tests.
- 10:43 AM Changeset in webkit [288307] by
-
- 60 edits34 adds2 deletes in trunk
Callback functions / interfaces should use global object of its _value_ for errors and lifecycle
https://bugs.webkit.org/show_bug.cgi?id=232387
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32449.
The remaining failures are due to unrelated spec compat issue with calling cross-realm ProxyObject / JSBoundFunction.
- web-platform-tests/dom/events/EventListener-handleEvent-cross-realm-expected.txt: Added.
- web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html: Added.
- web-platform-tests/dom/events/resources/empty-document.html: Added.
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-expected.txt:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context-expected.txt:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html:
- web-platform-tests/dom/traversal/support/TreeWalker-acceptNode-filter-cross-realm-subframe.html: Removed.
- web-platform-tests/dom/traversal/support/empty-document.html: Added.
- web-platform-tests/domxpath/resolver-callback-interface-cross-realm-expected.txt: Added.
- web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html: Added.
- web-platform-tests/domxpath/resources: Added.
- web-platform-tests/domxpath/resources/empty-document.html: Added.
- web-platform-tests/domxpath/resources/invalid_namespace_test.js: Added.
Source/WebCore:
This is a re-land of r288197 with an IntersectionObserver fixed to rely on its
associated document rather than m_callback's context for time origin as per spec [3].
Before this change, _relevant_ global object was used a) to throw errors in when
invoking callback function / interface, which isn't correct [1], and b) to call
canInvokeCallback() on (lifecycle), which doesn't match other browsers and not
quite useful: _relevant_ event loop stops if document is detached.
This patch:
- Removes [SkipCallbackInvokeCheck] extended attribute, while ensuring DOM traversal doesn't crash, which aligns WebKit with other browsers.
- Invokes canInvokeCallback() on the global object of _value_, which matches
Gecko but not Blink, which uses _incumbent_ realm to determine if callback
can still be invoked (doesn't make much sense to me).
- Throws callback invocation errors (e.g. non-callable method, revoked Proxy) in the global object of _value_, which matches the spec [1] and Blink, but not Gecko, which uses _current_ realm (of the method that was passed callback's _value_) to throw TypeErrors in.
That doesn't make much sense to me either: "registering" a callback and invoking
it could happen in different realms.
The spec on this is worded quite trickily (yet I think I've figured it out):
ECMA's "throw a TypeError exception" uses "running execution context" [2]
to create an object in, which is switched to the realm of _value_ per [1].
AudioWorklet changes are unobservable as worklets can't acquire a cross-realm method.
It's also nicer not to pass JSCallbackDataStrong around.
This patch fixes only JSCallbackData-based callback interfaces / functions, and not
the JSEventListener, which would also benefit from a similar change.
[1] https://webidl.spec.whatwg.org/#ref-for-prepare-to-run-script
[2] https://tc39.es/ecma262/#sec-ecmascript-function-objects-call-thisargument-argumentslist (step 4)
[3] https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-time
Tests: fast/dom/callback-function-detached-frame-intersection-observer.html
fast/dom/callback-function-detached-frame-mutation-observer.html
fast/dom/callback-function-detached-frame-performance-observer.html
fast/dom/callback-function-detached-frame-raf.html
fast/dom/callback-function-detached-frame-resize-observer.html
fast/dom/callback-function-detached-frame-to-blob.html
fast/dom/callback-interface-detached-frame-node-filter.html
fast/dom/callback-interface-detached-frame-xpathnsresolver.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html
imported/w3c/web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html
imported/w3c/web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html
imported/w3c/web-platform-tests/intersection-observer/timestamp.html
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
(WebCore::AudioWorkletGlobalScope::createProcessor):
- Modules/webaudio/AudioWorkletProcessor.cpp:
(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setProcessCallback):
- Modules/webaudio/AudioWorkletProcessor.h:
(WebCore::AudioWorkletProcessor::processCallbackWrapper):
- bindings/js/JSAudioWorkletProcessorCustom.cpp:
(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
- bindings/js/JSCallbackData.h:
(WebCore::JSCallbackData::~JSCallbackData):
(WebCore::JSCallbackDataStrong::JSCallbackDataStrong):
(WebCore::JSCallbackDataStrong::invokeCallback):
(WebCore::JSCallbackDataWeak::JSCallbackDataWeak):
(WebCore::JSCallbackDataWeak::invokeCallback):
(WebCore::JSCallbackData::globalObject): Deleted.
(WebCore::JSCallbackData::JSCallbackData): Deleted.
- bindings/js/JSDOMConvertCallbacks.h:
(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):
- bindings/js/JSDOMConvertXPathNSResolver.h:
(WebCore::Converter<IDLInterface<XPathNSResolver>>::convert):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowInstanceFunction_openDatabaseBody):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
(JSValueToNativeDOMConvertNeedsGlobalObject):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/*: Updated.
- bindings/scripts/test/TestCallbackInterface.idl:
- dom/NodeFilter.idl:
- dom/Traversal.cpp:
(WebCore::NodeIteratorBase::acceptNode):
- page/IntersectionObserver.h:
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::nowTimestamp const):
- workers/WorkerOrWorkletGlobalScope.h:
- worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
- xml/CustomXPathNSResolver.idl:
LayoutTests:
- fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
- fast/dom/Geolocation/callback-to-deleted-context.html:
- fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
Aligns test assertions with behavior of Blink and Gecko.
- fast/dom/Geolocation/disconnected-frame-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied.html:
- fast/dom/Geolocation/disconnected-frame.html:
Aligns tests assertions with their initial descriptions.
While other browsers don't call error callback for a disconnected frame,
it seems like a useful thing to do.
- fast/events/detached-svg-parent-window-events-expected.txt:
- fast/events/detached-svg-parent-window-events.html:
Aligns test assertion with other browsers.
There is no reason why eval() wouldn't throw an error given the <iframe> is connected.
- fast/frames/resources/wrong-global-object.html: Removed.
- fast/frames/frame-window-as-callback-expected.txt:
- fast/frames/frame-window-as-callback.html:
Aligns test assertions with the spec and Blink / Gecko.
- fast/dom/callback-function-detached-frame-intersection-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-intersection-observer.html: Added.
- fast/dom/callback-function-detached-frame-mutation-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-mutation-observer.html: Added.
- fast/dom/callback-function-detached-frame-performance-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-performance-observer.html: Added.
- fast/dom/callback-function-detached-frame-raf-expected.txt: Added.
- fast/dom/callback-function-detached-frame-raf.html: Added.
- fast/dom/callback-function-detached-frame-resize-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-resize-observer.html: Added.
- fast/dom/callback-function-detached-frame-to-blob-expected.txt: Added.
- fast/dom/callback-function-detached-frame-to-blob.html: Added.
- fast/dom/callback-interface-detached-frame-node-filter-expected.txt: Added.
- fast/dom/callback-interface-detached-frame-node-filter.html: Added.
- fast/dom/callback-interface-detached-frame-xpathnsresolver-expected.txt: Added.
- fast/dom/callback-interface-detached-frame-xpathnsresolver.html: Added.
- fast/dom/resources/callback-function-detached-frame-common.js: Added.
- fast/dom/resources/callback-function-detached-frame-intersection-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-mutation-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-performance-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-raf-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-resize-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-to-blob-iframe.html: Added.
- fast/dom/resources/callback-interface-detached-frame-node-filter-iframe.html: Added.
- fast/dom/resources/callback-interface-detached-frame-xpathnsresolver-iframe.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
IntersectionObserver / ResizeObserver are not enabled on these platforms.
- 10:26 AM Changeset in webkit [288306] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening of GPU Process bots
- gpu-process/TestExpectations:
- 10:18 AM Changeset in webkit [288305] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Add section directive in MacroAssemblerX86Common asm blocks
https://bugs.webkit.org/show_bug.cgi?id=235406
Patch by Joseph Griego <jgriego@igalia.com> on 2022-01-20
Reviewed by Yusuke Suzuki.
These asm blocks aren't in a function body so they need a .text
directive to prevent them from being included in some arbitrary section
(say, an inline function's section) by happenstance, which was happening
in the WPE build without UnifiedSources.
- assembler/MacroAssemblerX86Common.cpp:
- 10:14 AM Changeset in webkit [288304] by
-
- 3 edits3 adds in trunk
[:has() pseudo-class] Ignore :visited inside :has()
https://bugs.webkit.org/show_bug.cgi?id=235404
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/has-visited-expected.html: Added.
- web-platform-tests/css/selectors/has-visited-ref.html: Added.
- web-platform-tests/css/selectors/has-visited.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/selectors/has-visited.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchHasPseudoClass const):
Make this more similar to :is/:not():
Use the current SelectorChecker with a different context rather than a nested SelectorChecker.
Use matchRecursively.
Setup the functional pseudo-class bits for the context.
- 10:09 AM Changeset in webkit [288303] by
-
- 3 edits2 adds in trunk
[:has pseudo-class] Support :has(:not(foo))
https://bugs.webkit.org/show_bug.cgi?id=235399
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-with-not-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-with-not.html: Added.
Source/WebCore:
This already works except for a filter bug.
Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-with-not.html
- style/HasSelectorFilter.h:
(WebCore::Style::HasSelectorFilter::reject const):
We shouldn't reject a selector if we have a null key.
- 10:06 AM Changeset in webkit [288302] by
-
- 2 edits in trunk/Source/WebCore
Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
https://bugs.webkit.org/show_bug.cgi?id=235397
Reviewed by Eric Carlson.
Manually tested.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
When using VPIO to render speaker samples, we might have to reconfigure the VPIO unit to take into account the speaker format.
In that case, we might have a speaker sample producer and we should not stop the audio unit if getting samples from the producer at the same time.
To prevent this, we set the producer temporarily, stop the audio unit, then set back the producer.
- 9:55 AM Changeset in webkit [288301] by
-
- 1 copy in tags/Safari-613.1.14.11.1
Tag Safari-613.1.14.11.1.
- 9:53 AM Changeset in webkit [288300] by
-
- 2 edits in branches/safari-613.1.14.11-branch/Source/WebKit
Cherry-pick r288293. rdar://problem/87777915
Prevent empty folders being created during install builds
rdar://87777915
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Brady Eidson.
The "Copy Daemon Plists" script phase has output files which aren't always written to. Since
Xcode mkdir-p's these output directories, it ends up creating an empty directory under some
circumstances. Fix by removing these declared outputs: since this script is install-only
and executes quickly, it's not really a problem to have it run redundantly.
Once we use XCBuild everywhere, it can be rewritten as a Copy Files phase.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288293 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:27 AM Changeset in webkit [288299] by
-
- 9 edits in branches/safari-613.1.14.11-branch/Source
Versioning.
WebKit-7613.1.14.11.1
- 9:24 AM Changeset in webkit [288298] by
-
- 27 edits1 copy in trunk/Source
Make LocalStorage prewarming async
https://bugs.webkit.org/show_bug.cgi?id=235236
Reviewed by Chris Dumez.
Source/WebCore:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::prewarmLocalStorageIfNecessary):
- page/Frame.cpp:
(WebCore::Frame::didPrewarmLocalStorage): Deleted.
(WebCore::Frame::mayPrewarmLocalStorage const): Deleted.
- page/Frame.h:
- storage/StorageArea.h:
(WebCore::StorageArea::prewarm):
- storage/StorageType.h:
Source/WebKit:
StorageAreaMap in web process needs to sync with a remote StorageArea in network process before it performs any
Web Storage operation. To connect to remote StorageArea, StorageAreaMap currently sends out two sync messages:
- ConnectTo*StorageArea: for getting the remote StorageAreaIdentifier
- getValues: for getting the content of StorageArea
We can merge these two messages into one message: ConnectToStorageAreaSync, and return both remote
StorageAreaIdentifier and content in its reply. This way, web process will not be blocked twice.
To reduce the wait time for connecting to a local StorageArea, we would prewarm LocalStorage by creating its
StorageAreaMap ahead and making it connected (r247555), but we don't actually need StorageAreaMap to be ready
for operation at this time. Therefore, a new async message ConnectToStorageArea is added to be used for
prewarming.
If LocalStorage is used immediately after prewarming, a StorageAreaMap may send ConnectToStorageAreaSync before
receiving the reply of ConnectToStorageArea. In this case, StorageAreaMap would handle ConnectToStorageAreaSync
reply before ConnectToStorageArea reply (due to the priority of sync message), and also before other async
messages (DispatchStorageEvent / ClearCache) that are sent from network process earlier before the sync reply.
To solve this, we use a message identifier to indicate the order of messages sent from network process, so
StorageAreaMap can ignore previous messages when it is already synced with a more recent version of StorageArea.
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::clear):
(WebKit::StorageArea::dispatchEvents const):
- NetworkProcess/storage/LocalStorageManager.cpp:
(WebKit::LocalStorageManager::connectToLocalStorageArea):
(WebKit::LocalStorageManager::connectToTransientLocalStorageArea):
- NetworkProcess/storage/LocalStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::connectToStorageArea):
(WebKit::NetworkStorageManager::connectToStorageAreaSync):
(WebKit::NetworkStorageManager::connectToLocalStorageArea): Deleted.
(WebKit::NetworkStorageManager::connectToTransientLocalStorageArea): Deleted.
(WebKit::NetworkStorageManager::connectToSessionStorageArea): Deleted.
(WebKit::NetworkStorageManager::getValues): Deleted.
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.messages.in:
- NetworkProcess/storage/SessionStorageManager.cpp:
(WebKit::SessionStorageManager::connectToSessionStorageArea):
- NetworkProcess/storage/SessionStorageManager.h:
- NetworkProcess/storage/StorageAreaBase.cpp:
(WebKit::StorageAreaBase::nextMessageIdentifier):
(WebKit::StorageAreaBase::StorageAreaBase):
(WebKit::StorageAreaBase::addListener):
(WebKit::StorageAreaBase::notifyListenersAboutClear):
(WebKit::StorageAreaBase::dispatchEvents const):
- NetworkProcess/storage/StorageAreaBase.h:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::registerStorageAreaMap):
(WebKit::WebProcess::unregisterStorageAreaMap):
(WebKit::WebProcess::storageAreaMap const):
- WebProcess/WebProcess.h:
- WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::prewarm):
(WebKit::StorageAreaImpl::incrementAccessCount): Deleted.
(WebKit::StorageAreaImpl::decrementAccessCount): Deleted.
(WebKit::StorageAreaImpl::closeDatabaseIfIdle): Deleted.
- WebProcess/WebStorage/StorageAreaImpl.h:
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::ensureMap):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::clearCache):
(WebKit::StorageAreaMap::sendConnectMessage):
(WebKit::StorageAreaMap::connectSync):
(WebKit::StorageAreaMap::connect):
(WebKit::StorageAreaMap::didConnect):
(WebKit::StorageAreaMap::disconnect):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageAreaMap.messages.in:
- WebProcess/WebStorage/StorageAreaMapIdentifier.h: Added.
- 9:16 AM Changeset in webkit [288297] by
-
- 1 copy in branches/safari-613.1.14.11-branch
New branch.
- 9:04 AM Changeset in webkit [288296] by
-
- 5 edits in trunk/Source/WebKit
Disable fallback path to WebRTC platform sockets
https://bugs.webkit.org/show_bug.cgi?id=235402
Reviewed by Eric Carlson.
We should not fallback to the legacy WebRTC socket code path in Cocoa ports.
Instead, if we cannot create the corresponding sockets (in case of ssltcp candidates for instance),
we mark the socket as closed.
Minor refactoring to show that NetworkRTCUDPSocketCocoa code path should always be successful.
Manually tested on meet.google.com which can make use of ssltcp candidates.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
- 8:59 AM Changeset in webkit [288295] by
-
- 1 copy in tags/Safari-613.1.12.1.12
Tag Safari-613.1.12.1.12.
- 8:48 AM Changeset in webkit [288294] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.12
- 8:37 AM Changeset in webkit [288293] by
-
- 2 edits in trunk/Source/WebKit
Prevent empty folders being created during install builds
rdar://87777915
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Brady Eidson.
The "Copy Daemon Plists" script phase has output files which aren't always written to. Since
Xcode mkdir-p's these output directories, it ends up creating an empty directory under some
circumstances. Fix by removing these declared outputs: since this script is install-only
and executes quickly, it's not really a problem to have it run redundantly.
Once we use XCBuild everywhere, it can be rewritten as a Copy Files phase.
- WebKit.xcodeproj/project.pbxproj:
- 8:01 AM Changeset in webkit [288292] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287867 - null ptr deref in WebCore::LayoutIntegration::LineLayout::collectOverflow()
https://bugs.webkit.org/show_bug.cgi?id=234654
<rdar://problem/86571571>
Reviewed by Antti Koivisto.
Source/WebCore:
needsLayout() check in invalidateLineLayoutPath is insufficient for modern line layout.
m_lineLayout = std::monostate() does not only destroy the line layout object but it also nukes all the IFC geometries.
It is equivalent to having all the child boxes dirty, since in order to re-generate the geometry information,
we have to layout _all_ the boxes (note that nuking the legacy line layout object does not destroy the inline tree).
The bug here is that needsLayout() returns true for cases (e.g. posChildNeedsLayout) when
while the geometry is all gone, we are going to take a special layout codepath which expects pre-computed geometries.
Test: fast/block/line-layout/line-layout-collect-overflow-crash.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
LayoutTests:
- fast/block/line-layout/line-layout-collect-overflow-crash-expected.txt: Added.
- fast/block/line-layout/line-layout-collect-overflow-crash.html: Added.
- 7:58 AM Changeset in webkit [288291] by
-
- 7 edits in trunk/Source/WebCore
Address post-landing review comments from Darin.
Reviewed by Antti Koivisto and Darin Adler.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator UnicodeBidi const):
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::handleEnterExitBidiContext):
(WebCore::Layout::buildBidiParagraph):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxStart):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxEnd):
- rendering/LegacyInlineIterator.h:
(WebCore::notifyObserverEnteredObject):
(WebCore::notifyObserverWillExitObject):
- rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::initialUnicodeBidi):
- 7:55 AM Changeset in webkit [288290] by
-
- 4 edits7 adds in releases/WebKitGTK/webkit-2.34
Merge r287812 - null ptr deref in WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange
https://bugs.webkit.org/show_bug.cgi?id=234862
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-08
Reviewed by Darin Adler.
Source/WebCore:
ModifySelectionListLevelCommand::appendSiblingNodeRange loops through nodes assuming
existence of siblings, which is not guaranteed, and can result in nullptr deref. Instead,
check for node existence as part of loop condition, and change raw pointer usage to RefPtr.
This addresses the crash but results in ASSERT(isEndOfParagraph(endOfParagraphToMove))
failing in CompositeEditCommand::moveParagraph. We modify WebCore::findEndOfParagraph
to check for HTMLBRElement nodes to avoid unexpectedly changing the AnchorType.
Test: http/tests/lists/list-new-parent-no-sibling-append.html
- editing/ModifySelectionListLevel.cpp:
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeBefore):
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeAfter):
(WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange):
- editing/VisibleUnits.cpp:
(WebCore::findEndOfParagraph):
LayoutTests:
- http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- http/tests/lists/list-new-parent-no-sibling-append.html: Added.
- platform/gtk/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- platform/win/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- 7:49 AM Changeset in webkit [288289] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287667 - [ Monterey Debug arm64 ] ASSERTION FAILED: result == &worker ./workers/service/server/SWServer.cpp(837) : void WebCore::SWServer::workerContextTerminated(WebCore::SWServerWorker &)
https://bugs.webkit.org/show_bug.cgi?id=233219
<rdar://problem/85478756>
Reviewed by Darin Adler.
The crash would occur when we get notified by the service worker process that a given service worker
was terminated right after we've determined that we no longer needed a given service worker process
and called markAllWorkersForRegistrableDomainAsTerminated(). This race would cause
SWServer::workerContextTerminated() to get called twice for the same worker. During the second call,
we would retrieve a null worker from the HashMap and hit the assertion. I updated the call to ignore
the call to workerContextTerminated() if the worker was already removed from the HashMap and added
an assertion to make sure we've already marked the service worker as "not running" in this case.
No new tests, covered by existing API test that is flakily crashing in debug.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::workerContextTerminated):
- 7:46 AM Changeset in webkit [288288] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287428 - Simplify test for startOfLastParagraph in InsertListCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=234600
Patch by Frederic Wang <fwang@igalia.com> on 2021-12-24
Reviewed by Darin Adler.
Current test is !startOfLastParagraph.deepEquivalent().anchorNode()->isConnected(). It could
be replaced with the less verbose startOfLastParagraph.isOrphan() which is equivalent to
startOfLastParagraph.deepEquivalent().isOrphan() and so to the condition
startOfLastParagraph.deepEquivalent().anchorNode() &&
!startOfLastParagraph.deepEquivalent().anchorNode()->isConnected(). A difference can only
happen for a page where anchorNode() is a null pointer. In such a test case exists, then it
is already crashing with a null ptr deref anyway.
No new tests, behavior essentially unchanged.
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Use startOfLastParagraph.isOrphan().
- 7:41 AM Changeset in webkit [288287] by
-
- 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287410 - [GStreamer] MediaPlayerPrivateGStreamer mishandles failure to create WebKitTextCombiner
https://bugs.webkit.org/show_bug.cgi?id=233230
Patch by Philippe Normand <pnormand@igalia.com> on 2021-12-23
Reviewed by Michael Catanzaro.
Gracefully fail when the subenc plugin is not available. It is optional, we should not
assert or crash if it's not found. Two warnings are logged already when it's not found.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- 7:39 AM Changeset in webkit [288286] by
-
- 2 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287354 - null ptr deref in DocumentTimeline::animate
https://bugs.webkit.org/show_bug.cgi?id=234260
Patch by Frédéric Wang <fwang@igalia.com> on 2021-12-22
Reviewed by Darin Adler.
Source/WebCore:
Test: webanimations/document-timeline-animate-crash.html
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::animate): If the WeakPtr m_document was destroyed, throw a
TypeError exception so that the call to WebAnimation::create won't cause a null ptr deref.
LayoutTests:
Add non-regression test.
- webanimations/document-timeline-animate-crash-expected.txt: Added.
- webanimations/document-timeline-animate-crash.html: Added.
- 7:39 AM Changeset in webkit [288285] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287194 - null ptr deref in WebCore::findPlaceForCounter
https://bugs.webkit.org/show_bug.cgi?id=234375
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-12-17
Reviewed by Alan Bujtas.
Source/WebCore:
Test: fast/css/counters/findPlaceForCounter-parent-renderer-crash.html
When the current renderer's element is an HTML document and root of the tree, parentOrPseudoHostElement can return a nullptr,
so we need to check for nullptr before trying to access the renderer() of the Element pointer it returns.
- rendering/RenderCounter.cpp:
(WebCore::findPlaceForCounter):
LayoutTests:
- fast/css/counters/findPlaceForCounter-parent-renderer-crash-expected.txt: Added.
- fast/css/counters/findPlaceForCounter-parent-renderer-crash.html: Added.
- 6:55 AM Changeset in webkit [288284] by
-
- 2 edits in trunk
[WinCairo] Make USE_CF conditional on ENABLE_WEBKIT_LEGACY
https://bugs.webkit.org/show_bug.cgi?id=235393
Reviewed by Fujii Hironori.
CoreFoundation is used heavily in WebKitLegacy on Windows and won't compile without it.
Modern WebKit doesn't have this requirement so tie CoreFoundation usage to whether
WebKitLegacy is being used.
- Source/cmake/OptionsWinCairo.cmake:
- 6:13 AM Changeset in webkit [288283] by
-
- 7 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287131 - Mark range boundary point containers
https://bugs.webkit.org/show_bug.cgi?id=233462
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-16
Reviewed by Darin Adler.
Source/WebCore:
Mark range boundary point containers as unreachable for gc.
Test: fast/dom/Range/delete-contents-crash.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSRangeCustom.cpp: Added.
(WebCore::JSRange::visitAdditionalChildren):
- dom/Range.cpp:
(WebCore::Range::visitNodesConcurrently const):
- dom/Range.h:
- dom/Range.idl:
LayoutTests:
- fast/dom/Range/delete-contents-crash-expected.txt: Added.
- fast/dom/Range/delete-contents-crash.html: Added.
- 5:53 AM Changeset in webkit [288282] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287118 - null ptr deref in WebCore::ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=234312
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-12-15
Reviewed by Chris Dumez.
Source/WebCore:
In some situations calling ApplyStyleCommand::nodeFullySelected forces layout in a
way that disconnects the element. In this situation, we now break out of iteration.
We also add an isOrphan() check in ApplyStyleCommand::applyInlineStyle given
the possibility of this scenario.
Test: fast/editing/apply-relative-font-style-change-crash-004.html
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::applyInlineStyle):
LayoutTests:
- TestExpectations:
- fast/editing/apply-relative-font-style-change-crash-004-expected.txt: Added.
- fast/editing/apply-relative-font-style-change-crash-004.html: Added.
- 5:53 AM Changeset in webkit [288281] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287017 - Null pointer crash in FetchResponse::clone
https://bugs.webkit.org/show_bug.cgi?id=234236
<rdar://86327601>
Reviewed by Alex Christensen.
From the log, we are most probably getting a null globalObject from a ScriptExecutionContext in FetchResponse::clone.
This may happen in case the document is navigated away but we still execute some code for it.
Add a null check to ensure we do not crash.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::clone):
- 5:35 AM Changeset in webkit [288280] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286866 - nullptr deref in ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=234018
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-12-10
Reviewed by Alan Bujtas.
Source/WebCore:
Test: fast/rendering/floating-object-renderer-crash.html
When destroying a given renderer, we first remove floats and out-of-flow positioned objects
from their containing block before detaching the renderer from the tree. We do this by obtaining
the renderer’s outermost block containing a floating object and recursively marking all siblings
and descendants for layout.
The criteria for continuing down the list of children require the current block to contain floats
or be able to shrink to avoid floats. However, we can have a scenario where the current child block
doesn’t have a float, but one of its descendants does. In this case, although we should continue to
that descendant and remove the float, we do not.
The proposal in this patch will instead check whether the child block contains a float, or any of its descendants do.
If so we should continue traversing towards that descendant.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::subtreeContainsFloat const):
(WebCore::RenderBlockFlow::subtreeContainsFloats const):
(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):
- rendering/RenderBlockFlow.h:
LayoutTests:
- fast/rendering/floating-object-renderer-crash-expected.txt: Added.
- fast/rendering/floating-object-renderer-crash.html: Added.
- 4:54 AM Changeset in webkit [288279] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286827 - Stack-overflow crash in WebCore::RenderBox::computeLogicalHeight()
https://bugs.webkit.org/show_bug.cgi?id=233460
Reviewed by Sergio Villar Senin and Darin Adler.
Source/WebCore:
Like flexibleBox item, deprecatedFlexibleBox item should call clearOverridingContentSize if
it is positioned. Otherwise, RenderReplaced::computeAspectRatioInformationForRenderBox might call
itself recursively.
Test: fast/css/deprecated-flex-box-with-min-content-crashes.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isDisplayFlexibleOrGridBoxIncludingDeprecated const):
(WebCore::RenderStyle::isDisplayDeprecatedFlexibleBox):
LayoutTests:
- fast/css/deprecated-flex-box-with-min-content-crashes-expected.txt: Added.
- fast/css/deprecated-flex-box-with-min-content-crashes.html: Added.
- 4:37 AM Changeset in webkit [288278] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286553 - Null check in shouldUseBreakElement
https://bugs.webkit.org/show_bug.cgi?id=229275
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-06
Reviewed by Ryosuke Niwa.
Source/WebCore:
Need to null check node in shouldUseBreakElement.
Also bail out early in InsertLineBreakCommand::doApply
in case position is not editable.
Test: editing/execCommand/insert-line-break-crash.html
- editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::shouldUseBreakElement):
(WebCore::InsertLineBreakCommand::doApply):
LayoutTests:
- editing/execCommand/insert-line-break-crash-expected.txt: Added.
- editing/execCommand/insert-line-break-crash.html: Added.
- 4:37 AM Changeset in webkit [288277] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286531 - Fix parentNode in CompositeEditCommand::splitTreeToNode
https://bugs.webkit.org/show_bug.cgi?id=230710
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-04
Reviewed by Ryosuke Niwa.
Source/WebCore:
Fix parentNode handling in CompositeEditCommand::splitTreeToNode and
also a few more IndentOutdentCommand methods to support the test case.
Test: editing/execCommand/outdent-cut-crash.html
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
- editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentIntoBlockquote): do not call positionInParentAfterNode
if insertNodeBefore failed.
(WebCore::IndentOutdentCommand::outdentParagraph): need to check for null positions
before calling moveParagraphs.
LayoutTests:
- editing/execCommand/outdent-cut-crash-expected.txt: Added.
- editing/execCommand/outdent-cut-crash.html: Added.
- 2:00 AM Changeset in webkit [288276] by
-
- 2 edits in trunk/Tools
[JSC] Further unification in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=234343
Reviewed by Jonathan Bedard.
Extend defaultRunCfg to be able to omit a subset of the test
modes and change defaultNoNoLLIntRun, defaultNoEagerRun and
defaultNoSamplingProfilerRun to call into it.
When defaultNoNoLLIntRun was added in https://commits.webkit.org/176404@main,
it was a verbatim copy of defaultRun, except for the NoLLInt test
modes. It hasn't diverged further, so after this patch, the set of
tests executed remains the same.
When defaultNoEagerRun was added in https://commits.webkit.org/150033@main,
it was intended to be the same as defaultRun, minus the eager modes. It
hasn't been kept in sync, so this change results in few more testing modes for
the tests explicitly using defaultNoEagerRun.
defaultNoSamplingProfilerRun was ignoring quick mode and was dropping
runFTLNoCJITValidate when added in https://commits.webkit.org/171769@main.
This patch enables more test modes for the handful of tests that use
defaultNoSamplingProfilerRun.
- Scripts/run-jsc-stress-tests:
- 12:36 AM Changeset in webkit [288275] by
-
- 3 edits in trunk/Source/WebCore
AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>
Reviewed by Eric Carlson.
Sometimes the defaultInput is not available, in which case it is good to resort to the previous default device if available.
This fix prevents the following case to happen:
- We start rendering WebRTC audio on some output, say AirPods
- We start capturing microphone, but the default microphone is not the AirPods one (while it probably should, this is not always the case).
- We migrate audio rendering to VPIO which will output audio to the same device as the input microphone if feasible (typically builtin speaker).
- Audio is now flowing on builtin speaker instead of AirPods.
Manually tested.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
- 12:31 AM Changeset in webkit [288274] by
-
- 5 edits1 delete in releases/WebKitGTK/webkit-2.34
Merge r288219 - [ResourceTiming] nextHopProtocol is exposed regardless of Timing-Allow-Origin
https://bugs.webkit.org/show_bug.cgi?id=235294
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-19
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https-expected.txt:
Source/WebCore:
Covered by an existing WPT test that starts passing.
This was recently fixed in Chromium in https://chromium-review.googlesource.com/c/chromium/src/+/3354335
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::nextHopProtocol const):
- 12:18 AM Changeset in webkit [288273] by
-
- 8 edits in releases/WebKitGTK/webkit-2.34
Merge r286299 - ServiceWorkerContainer does not respond well to network process crash
https://bugs.webkit.org/show_bug.cgi?id=233626
Reviewed by Chris Dumez.
Source/WebCore:
Add a boolean to SWClientConnection to identify whether connection is closed.
ServiceWorkerContainer will retrieve a new connection if its existing connection is closed.
Covered by updated test.
- workers/service/SWClientConnection.h:
(WebCore::SWClientConnection::isClosed const):
(WebCore::SWClientConnection::setIsClosed):
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ensureSWClientConnection):
Source/WebKit:
Set SW client connection as closed when IPC connection gets closed.
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::connectionToServerLost):
LayoutTests:
- http/wpt/service-workers/service-worker-networkprocess-crash.html:
- platform/mac-wk2/TestExpectations:
Remove flaky expectation as test is no longer flaky according results.webkit.org.