Timeline
Apr 29, 2021:
- 11:31 PM Changeset in webkit [276833] by
-
- 8 edits in branches/safari-612.1.12-branch/Source
Versioning.
WebKit-7612.1.12.1
- 11:00 PM Changeset in webkit [276832] by
-
- 8 edits in branches/safari-611.2.7.1-branch/Source
Versioning.
WebKit-7611.2.7.1.2
- 9:54 PM Changeset in webkit [276831] by
-
- 8 edits in branches/safari-611.1.21.0-branch/Source
Versioning.
WebKit-7611.1.21.0.15
- 9:44 PM Changeset in webkit [276830] by
-
- 8 edits in branches/safari-611.1.21.161-branch/Source
Versioning.
WebKit-7611.1.21.161.7
- 7:06 PM Changeset in webkit [276829] by
-
- 2 edits in trunk/LayoutTests
[macOS-wk2] LayoutTest/http/tests/websocket/tests/hybi/inspector/binary.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=171553
Unreviewed test gardening.
Removing expectation as test no longer appears flakey.
- platform/mac-wk2/TestExpectations:
- 7:04 PM Changeset in webkit [276828] by
-
- 7 edits in trunk/Source/WebCore
Adopt AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification
https://bugs.webkit.org/show_bug.cgi?id=225170
Source/WebCore:
rdar://77086915
Reviewed by Eric Carlson.
When the AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification is received, the SourceBuffer will now
re-enqueue all audio frames from currentTime.
The handling of AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification is currently broken in AVFoundation.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: Add missing #include
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVSampleBufferErrorListener beginObservingRenderer:]): Add listener
(-[WebAVSampleBufferErrorListener stopObservingRenderer:]): Remove listener
(-[WebAVSampleBufferErrorListener audioRendererWasAutomaticallyFlushed:]):
(WebCore::SourceBufferPrivateAVFObjC::rendererWasAutomaticallyFlushed):
Source/WebCore/PAL:
Reviewed by Eric Carlson.
- pal/cocoa/AVFoundationSoftLink.h: Add AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification and its related key
- pal/cocoa/AVFoundationSoftLink.mm:
- 6:42 PM Changeset in webkit [276827] by
-
- 3 edits in trunk/Source/WebCore
https://bugs.webkit.org/show_bug.cgi?id=225183
rdar://77251937
Reviewed by Eric Carlson.
Under some circumstances, the decoded image may end up being empty. We need to handle this case.
- Modules/mediasession/MediaMetadata.cpp:
(WebCore::MediaMetadata::refreshArtworkImage): Exit early if image is empty.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::nowPlayingInfo const): Add assert to clarify code
- 6:17 PM Changeset in webkit [276826] by
-
- 3 edits in trunk/Source/WebKit
Remove some unneeded code.
https://bugs.webkit.org/show_bug.cgi?id=225216
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpAppHighlightMenusIfNeeded]): Deleted.
- 5:22 PM Changeset in webkit [276825] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
Metal-ANGLE: Shared memory texture tests failing in iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=222685
<rdar://75001722>
Using replaceRegion to perform texture uploads on simulator causes issues on some workflows.
As a workaround, use a GPU-driven upload instead of a CPU driven upload.
Patch by Kyle Piddington <Kyle Piddington> on 2021-04-29
Reviewed by Kenneth Russell.
- src/libANGLE/renderer/metal/TextureMtl.mm:
- 5:20 PM Changeset in webkit [276824] by
-
- 2 edits in trunk/Source/WebKit
AVAudioSession throws an exception when WebKit tries to set its routeSharingPolicy to "independent"
https://bugs.webkit.org/show_bug.cgi?id=225213
Reviewed by Jer Noble.
AVAudioSession does not expect WebKit to set its routeSharingPolicy
to AVAudioSessionRouteSharingPolicyIndependent(RouteSharingPolicy::Independent).
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::RemoteAudioSessionProxyManager::updateCategory):
- 5:12 PM Changeset in webkit [276823] by
-
- 4 edits in trunk/Source/JavaScriptCore
Inlining property accesses inside constant folding should check Options::useAccessInlining
https://bugs.webkit.org/show_bug.cgi?id=225194
Reviewed by Mark Lam.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):
- 4:44 PM Changeset in webkit [276822] by
-
- 8 edits in trunk/LayoutTests
REGRESSION: [iOS] 6 media/modern-media-controls/tracks-support/ tests timing out
https://bugs.webkit.org/show_bug.cgi?id=225202
<rdar://problem/77041631>
Reviewed by Devin Rousso.
The six tests modified in this patch were failing for two reasons:
- The media controls logic was modified to hide certain controls at
smaller widths. To ensure the tracks button was visible, the width
of the <video> element was increased. However, on iOS, this led to the
tracks button being positioned outside the viewport. Consequently, any
attempts to tap the button and wait for a context menu to show up
would fail, causing the tests to timeout waiting for a context menu.
To fix (1), call Element.scrollIntoViewIfNeeded before attempting to
tap on the tracks button, ensuring it is visible in the viewport. Then,
use window coordinates to tap at the right position. To ensure the
viewport is actually scrollable on iOS, "useFlexibleViewport" and the
viewport meta tag were added to failing tests.
- Even after fixing (1), the tests continued to timeout. Note that
both the pressOnElement() and getTracksContextMenu() helper methods
in "media-controls-utils.js" call into UIScriptController, and are
called in succession in the failing tests. Both methods add callbacks
to the test runner. However, pressOnElement() is not an async method,
which lead to getTracksContextMenu() getting called before the tap
actually completed. UIScriptController clears all callbacks after one
callback completes, so when the tap callback was completed, the context
menu callback was removed. Then, the tests get stuck waiting on the
context menu callback to get invoked.
To fix (2), make pressOnElement() return a promise if a continuation
function is not provided. Then, getTracksContextMenu() can be called
after the promise is resolved.
- media/modern-media-controls/resources/media-controls-utils.js:
(pressOnElement):
- media/modern-media-controls/tracks-support/auto-text-track.html:
- media/modern-media-controls/tracks-support/click-track-in-contextmenu.html:
- media/modern-media-controls/tracks-support/hidden-tracks.html:
- media/modern-media-controls/tracks-support/off-text-track.html:
- media/modern-media-controls/tracks-support/show-contextmenu-then-double-click-on-tracks-button.html:
- media/modern-media-controls/tracks-support/text-track-selected-via-media-api.html:
- 4:41 PM Changeset in webkit [276821] by
-
- 5 edits in trunk/Source/WebKit
[iOS] Remove unused logd-diagnostic-client rules
https://bugs.webkit.org/show_bug.cgi?id=225214
<rdar://problem/66587621>
Reviewed by Per Arne Vollan.
WebKit does not have either of the two entitlements required to use the 'log-diagnostic-client' rules.
We should remove these rules from the sandbox to reduce attack surface, since they provide no benefit.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 4:35 PM Changeset in webkit [276820] by
-
- 39 edits in trunk
[ANGLE-Metal] Fix 17 textureshadow tests
https://bugs.webkit.org/show_bug.cgi?id=224965
<rdar://77053085>
Depth24Stencil8 copies were being incorrectly managed when dealing with D24S8 emulation.
Fix conversion functions
Patch by Kyle Piddington <Kyle Piddington> on 2021-04-29
Reviewed by Dean Jackson.
- src/libANGLE/renderer/metal/mtl_format_utils.h:
- src/libANGLE/renderer/metal/mtl_format_utils.mm:
(rx::mtl::priv::OffsetDataPointer):
(rx::mtl::LoadS8D24S8ToD32FX24S8):
(rx::mtl::DEPTH24_STENCIL8_to_D32_FLOAT_X24S8_UINT):
(rx::mtl::GetLoadFunctionsMap):
(rx::mtl::FormatTable::initialize):
(): Deleted.
- 3:52 PM Changeset in webkit [276819] by
-
- 1 copy in tags/Safari-611.2.7
Tag Safari-611.2.7.
- 3:45 PM Changeset in webkit [276818] by
-
- 1 copy in tags/Safari-611.2.7.1.1
Tag Safari-611.2.7.1.1.
- 3:43 PM Changeset in webkit [276817] by
-
- 2 edits in branches/safari-611.2.7.1-branch/Source/WebKit
Cherry-pick r276618. rdar://problem/77326484
Handle warning-level memory notifications more aggressively
https://bugs.webkit.org/show_bug.cgi?id=225008
Reviewed by Chris Dumez.
We've found that in some workloads, the critical-level memory pressure handler releases
significantly more memory than the warning-level memory pressure handler. On Macs, it is
likely that the memory pressure coincides with swapping. So when we get even a warning-level
notification from the OS, we should err on the side of releasing more memory to help relieve
the swapping state. To do this, treat warning level notifications the same as critical level
notifications on Mac if the WebProcess is in the background.
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276618 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:43 PM Changeset in webkit [276816] by
-
- 3 edits2 adds in trunk
Floating object are not removed from the initial containing block
https://bugs.webkit.org/show_bug.cgi?id=225198
<rdar://77236776>
Reviewed by Antti Koivisto.
Source/WebCore:
outermostBlockContainingFloatingObject is supposed to find the top most ancestor for an intruding float. Now when the <html> is float positioned,
the initial containing block (RenderView) is the outermost containing block that has reference to this float (see FloatingObject).
removeFloatingOrPositionedChildFromBlockLists() calls outermostBlockContainingFloatingObject() to get the top most renderer where the float cleanup
is supposed to be initiated at. We call this function during style and tree mutation.
These float lists are getting invalidated during layout as well, with a simple call to m_floatingObjects->clear(). It unconditionally takes care of all the floats including
the ones on the initial containing block.
The bug only shows when we try to access the floating list between the style/tree mutation and the subsequent layout.
Test: fast/block/fail-to-remove-float-from-initial-containing-block.html
- rendering/RenderBox.cpp:
(WebCore::outermostBlockContainingFloatingObject):
LayoutTests:
- fast/block/fail-to-remove-float-from-initial-containing-block-expected.txt: Added.
- fast/block/fail-to-remove-float-from-initial-containing-block.html: Added.
- 3:42 PM Changeset in webkit [276815] by
-
- 8 edits in branches/safari-611.2.7.1-branch/Source
Versioning.
WebKit-7611.2.7.1.1
- 3:38 PM Changeset in webkit [276814] by
-
- 1 copy in tags/Safari-611.2.7.0.1
Tag Safari-611.2.7.0.1.
- 3:34 PM Changeset in webkit [276813] by
-
- 2 edits in trunk/Source/WebCore
-Wpessimizing-move warnings in LocaleICU.cpp
https://bugs.webkit.org/show_bug.cgi?id=225205
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-29
Reviewed by Sam Weinig.
- platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::createLabelVector):
(WebCore::createFallbackMonthLabels):
(WebCore::createFallbackAMPMLabels):
- 3:32 PM Changeset in webkit [276812] by
-
- 4 edits in branches/safari-611.2.7.0-branch/Source
Cherry-pick r276742. rdar://problem/77326513
[iOS] Web content process occasionally crashes under VisibleSelection::adjustPositionForEnd
https://bugs.webkit.org/show_bug.cgi?id=225072
rdar://77159489
Reviewed by Darin Adler.
Source/WebCore:
Remove a helper method that was added in r276688, which we no longer need.
- dom/Position.h: (WebCore::Position::isInTreeScope const): Deleted.
Source/WebKit:
The fix for this crash that I landed in r276688 was based on a misunderstanding that accessing
treeScope()
would trigger a null pointer deref ifisInTreeScope()isfalse. This is not the case, since thetreeScope
of aNodeis a separate notion from whether thatNodeis connected to said tree scope.
Since this crash is really due to dereferencing a null container node in the case where
selectionStartor
selectionEndare null, a better fix is to just check the nullity of the container node.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::rangeForPointInRootViewCoordinates):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:32 PM Changeset in webkit [276811] by
-
- 5 edits2 adds in branches/safari-611.2.7.0-branch
Cherry-pick r276688. rdar://problem/77326513
[iOS] Web content process occasionally crashes under VisibleSelection::adjustPositionForEnd
https://bugs.webkit.org/show_bug.cgi?id=225072
rdar://77159489
Reviewed by Darin Adler.
Source/WebCore:
Add a helper method to check whether or not the given
Positionis in a tree scope. See WebKit/ChangeLog for
more details.
Test: editing/selection/ios/clear-selection-while-moving-selection-handles.html
- dom/Position.h: (WebCore::Position::isInTreeScope const):
Source/WebKit:
Make
rangeForPointInRootViewCoordinatesrobust in the case where the original selection may have become
orphaned or null, by checking that thetargetNodeand existingselectionStartorselectionEndare in a
tree scope before accessingtreeScope().
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::rangeForPointInRootViewCoordinates):
LayoutTests:
Add a layout test that programmatically clears the selection in the middle of changing it by moving selection
handles.
- editing/selection/ios/clear-selection-while-moving-selection-handles-expected.txt: Added.
- editing/selection/ios/clear-selection-while-moving-selection-handles.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:30 PM Changeset in webkit [276810] by
-
- 8 edits in branches/safari-611.2.7.0-branch/Source
Versioning.
WebKit-7611.2.7.0.1
- 3:25 PM Changeset in webkit [276809] by
-
- 1 copy in branches/safari-611.2.7.1-branch
New branch.
- 3:25 PM Changeset in webkit [276808] by
-
- 1 copy in branches/safari-611.2.7.0-branch
New branch.
- 3:18 PM Changeset in webkit [276807] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Revert "Cherry-pick r276618. rdar://problem/77326484"
This reverts commit r276782.
- 3:18 PM Changeset in webkit [276806] by
-
- 5 edits2 deletes in branches/safari-611-branch
Revert "Cherry-pick r276688. rdar://problem/77326513"
This reverts commit r276783.
- 3:18 PM Changeset in webkit [276805] by
-
- 4 edits in branches/safari-611-branch/Source
Revert "Cherry-pick r276742. rdar://problem/77326513"
This reverts commit r276784.
- 3:09 PM Changeset in webkit [276804] by
-
- 8 edits in trunk/Source/WebCore
[WebIDL] Remove [Reflect] support for constants
https://bugs.webkit.org/show_bug.cgi?id=225119
Reviewed by Sam Weinig.
While reflection of content attributes [1] is a well-known concept, using [Reflect] for
constants doesn't make much sense (as there is no HTML attribute involved) and introduces
conflicting semantics for its value: C++ enum identifier vs. HTML attribute name.
[ImplementedAs] extended attribute is a perfect fit for customizing C++ identifier;
this change expands it to constants. Using ERROR as enum identifier still breaks
Windows build due to #define conflict.
No new tests, no behavior change.
[1] https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#reflecting-content-attributes-in-idl-attributes
- bindings/scripts/CodeGenerator.pm:
(GenerateCompileTimeCheckForEnumsIfNeeded):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/*: Updated.
- html/HTMLTrackElement.idl:
- 2:56 PM Changeset in webkit [276803] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r275431): [iOS] fast/events/touch/ios/mouse-events-dispatch-with-touch.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=225208
<rdar://problem/77042369>
Reviewed by Devin Rousso.
- page/Quirks.cpp:
(WebCore::Quirks::simulatedMouseEventTypeForTarget const):
Remove the
!needsQuirks()check added in r275431 to restore the
original test behavior.
Note that the test overrides
MouseEventsSimulationEnabled, which
forcesQuirks::shouldDispatchSimulatedMouseEventsto return true
regardless of!needsQuirks(). Furthermore,NeedsSiteSpecificQuirks
defaults to false in WebCore.
This change is safe, since
shouldDispatchSimulatedMouseEventsstill
checks!needsQuirks()whenMouseEventsSimulationEnabledis false.
- 2:07 PM Changeset in webkit [276802] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: media/modern-media-controls/media-controller/ios/media-controller-ios-do-not-hide-controls-when-tapping-button.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=225163
<rdar://problem/77041676>
Reviewed by Devin Rousso.
- media/modern-media-controls/media-controller/ios/media-controller-ios-do-not-hide-controls-when-tapping-button.html:
Increase the width of the <video> element to ensure that the skip back
button is visible. The button is no longer visible at smaller widths,
and is unable to be tapped, causing the test to timeout.
- 1:21 PM Changeset in webkit [276801] by
-
- 1 copy in tags/Safari-612.1.12
Tag Safari-612.1.12.
- 1:21 PM Changeset in webkit [276800] by
-
- 1 delete in tags/Safari-612.1.12
Delete tag.
- 1:21 PM Changeset in webkit [276799] by
-
- 4 edits2 adds in trunk
[GPUP] Two message loops between WebContent process and GPU process to enable/select audio/video tracks
https://bugs.webkit.org/show_bug.cgi?id=225193
Reviewed by Eric Carlson.
Source/WebKit:
The current implementation has two message loops between Web process
and GPU process related to enable/select audio/video tracks.
For audio, the message loop is:
Web Process -> GPU process: RemoteMediaPlayerProxy::audioTrackSetEnabled
GPU Process -> Web Process: MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged
The message loop will lead to the following function call loop:
AudioTrackPrivateRemote::updateConfiguration()
AudioTrackPrivateRemote::setEnabled()
RemoteMediaPlayerProxy::audioTrackSetEnabled()
RemoteAudioTrackProxy::setEnabled()
AudioTrackPrivateAVFObjC::setEnabled()
AudioTrackPrivate::setEnabled()
RemoteAudioTrackProxy::enabledChanged()
RemoteAudioTrackProxy::configurationChanged()
MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged()
again, AudioTrackPrivateRemote::updateConfiguration(), and repeat ...
The loop for video tracks is similar.
The loop is bad but normally does not impact a media player's functionality.
However, if a page disables and enables an audio track of a media element with HLS stream
in one run loop, the loop will disable and enable the track repeatedly, as a result,
CoreMedia's HLS player will disable/enable audio segments and send/cancel download
requests repeatedly. Eventually the player won't play audio.
This patch fixes these two message loops.
Test: media/media-video-audio-track.html
- WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:
(WebKit::AudioTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:
(WebKit::VideoTrackPrivateRemote::updateConfiguration):
LayoutTests:
- media/media-video-audio-track-expected.txt: Added.
- media/media-video-audio-track.html: Added.
- 1:15 PM Changeset in webkit [276798] by
-
- 1 copy in tags/Safari-612.1.12
Tag Safari-612.1.12.
- 1:14 PM Changeset in webkit [276797] by
-
- 3 edits in trunk/Source/WebKit
Make URLSchemeTask destruction more straightforward
https://bugs.webkit.org/show_bug.cgi?id=225195
<rdar://77310818>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-29
Reviewed by Chris Dumez.
There's a seemingly-new crash in the lambda of WebURLSchemeHandlerCocoa::platformTaskCompleted
That labmda doesn't need to exist. We should do our object destruction like the rest of our objects.
- UIProcess/API/Cocoa/WKURLSchemeTask.mm:
(-[WKURLSchemeTaskImpl dealloc]):
- UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:
(WebKit::WebURLSchemeHandlerCocoa::platformTaskCompleted):
- 1:00 PM Changeset in webkit [276796] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix crashloop after r276744
<rdar://problem/77333886>
- dom/Document.cpp:
(WebCore::Document::determineSampledPageTopColor):
Don't attempt to get the value from theOptional<Lab<float>>unless we know for sure that
it's valid. This amounts to always making sure we eithercontinue(orreturnif that
snapshot is not an outlier) instead of only doing it if the snapshot is an outlier.
- 12:17 PM Changeset in webkit [276795] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r276167 - [PlayStation][OpenSSL] Remove warnings.
https://bugs.webkit.org/show_bug.cgi?id=224630
Reviewed by Don Olmstead.
There're two kinds of warnings in curl and openssl layer in our platform.
a) Unused param
b) 'WORDSIZE' is not defined.
warning: 'WORDSIZE' is not defined, evaluates to 0 [-Wundef]
No new tests because it's only for compilation issue.
- crypto/algorithms/CryptoAlgorithmAES_GCM.cpp:
(WebCore::CryptoAlgorithmAES_GCM::encrypt):
(WebCore::CryptoAlgorithmAES_GCM::decrypt):
- crypto/openssl/CryptoKeyECOpenSSL.cpp:
(WebCore::CryptoKeyEC::platformGeneratePair):
(WebCore::CryptoKeyEC::platformImportRaw):
(WebCore::CryptoKeyEC::platformImportJWKPublic):
(WebCore::CryptoKeyEC::platformImportJWKPrivate):
(WebCore::CryptoKeyEC::platformImportSpki):
(WebCore::CryptoKeyEC::platformImportPkcs8):
- crypto/openssl/CryptoKeyRSAOpenSSL.cpp:
(WebCore::CryptoKeyRSA::create):
(WebCore::CryptoKeyRSA::generatePair):
(WebCore::CryptoKeyRSA::importSpki):
(WebCore::CryptoKeyRSA::importPkcs8):
- 12:16 PM Changeset in webkit [276794] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r276192 - Use WebKit macro to detect 64bit in RenderLayerBacking.h
https://bugs.webkit.org/show_bug.cgi?id=224707
Reviewed by Yusuke Suzuki.
There's no definition of WORDSIZE in some environment. Also there's WebKit macro for that.
warning: 'WORDSIZE' is not defined, evaluates to 0 [-Wundef]
#if WORDSIZE == 64 && PLATFORM(COCOA)
No test because it's compiler behavior.
- rendering/RenderLayerBacking.h:
- 12:16 PM Changeset in webkit [276793] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r274417 - [GLIB] Be more selective about bublewrapping libdirs
https://bugs.webkit.org/show_bug.cgi?id=221709
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-03-15
Reviewed by Carlos Garcia Campos.
On 32-bit systems, bubblewrap lib32 instead of lib64. This unbreaks
sandbox on some distributions that have lib32 (which glibc defaults
its ld cache lookups to) but configure default libdir to lib rather
than lib32.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bubblewrapSpawn):
- 12:16 PM Changeset in webkit [276792] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r276695 - [WPE][GTK] More correct fixes for stack size issues on musl libc
https://bugs.webkit.org/show_bug.cgi?id=225099
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-04-28
Reviewed by Adrian Perez de Castro.
Partial revert https://bugs.webkit.org/show_bug.cgi?id=210068
Source/JavaScriptCore:
After fixing the thread stack issues in WTF properly, we can revert
the JSC options changes, which are actually harmful since they result
in JSC being unstable. Previously, softReservedZoneSize was causing a
crash when set to 128K because of the main thread stack bounds, and
this is now fixed. We can keep the maxPerThreadStackUsage at 5M as
well; there is no fundamental difference from how things are done on
glibc anymore.
- runtime/OptionsList.h:
Source/WTF:
While the changes in r236306 stopped JSC from crashing outright,
they are not correct, since they also make it rather unstable.
To counter this, increase stack size for threads on Linux with
non-glibc/bionic libcs to 1 megabyte, which is a robust enough
value that should always be sufficient.
While at it, the previous approach to musl thread stack size was
breaking use of DEFAULT_THREAD_STACK_SIZE_IN_KB (if defined) as
well as not properly taking care of the unused parameter. Move
the code to a more appropriate place, which solves these problems.
All this is however not enough, since there is still the main thread;
using pthread_attr_getstack on a main thread is not reliable since main
thread stacks are allowed to grow, and we expect the bounds to always
be constant. On glibc, this already behaved right, but e.g. on musl
(and possibly other C libraries) this is not necessarily the case - at
the point of the check, it was returning 128k (since that's the initial
size reserved by the kernel). Therefore, do the same thing as on Darwin
and use process resource limits to get the boundary on Linux as well.
This results in JavaScriptCore behaving correctly on musl libc and
allows us to drop the options special-casing that was in place.
- wtf/StackBounds.cpp:
(WTF::StackBounds::currentThreadStackBoundsInternal):
- wtf/Threading.cpp:
(WTF::stackSize):
- 12:16 PM Changeset in webkit [276791] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r276492 - Do not set synchronous scrolling for layers without relevant scrolling scopes
https://bugs.webkit.org/show_bug.cgi?id=221383
Reviewed by Simon Fraser.
Fixed backgrounds could force the layer compositor to set synchronous scrolling because they're slow
to repaint. However that cannot be done if the layer's boxScrollingScope hasn't been previously updated
in RenderLayer::updateLayerPosition.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateSynchronousScrollingNodes): Do not call
setSynchronousScrollingReasons() if there is no scrollingScope.
- 12:16 PM Changeset in webkit [276790] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r276426 - REGRESSION(r275790) [GTK][WPE] Scrolling rendering fails after the second page
https://bugs.webkit.org/show_bug.cgi?id=224824
Patch by Alejandro G. Castro <alex@igalia.com> on 2021-04-22
Reviewed by Simon Fraser.
We are making the implementation more similar to the Apple
scrolling coordinator. Now we reimplement willStartRenderingUpdate
to be able to synchronize the state there. That way we can avoid
the timer and just schedule a rendering update when we want to
commit the tree state.
Test: Fixes the timeout of the overflow-scrollable-after-back.html,
added in the regression.
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::ScrollingCoordinatorNicosia):
(WebCore::ScrollingCoordinatorNicosia::pageDestroyed):
(WebCore::ScrollingCoordinatorNicosia::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorNicosia::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorNicosia::willStartRenderingUpdate):
(WebCore::ScrollingCoordinatorNicosia::commitTreeState): Deleted.
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.h:
- 12:16 PM WebKitGTK/2.32.x edited by
- (diff)
- 12:16 PM Changeset in webkit [276789] by
-
- 6 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275790 - scrollingTreeNodeDidScroll() should just trigger a rendering udpate
https://bugs.webkit.org/show_bug.cgi?id=224394
Reviewed by Tim Horton.
After handling wheel events on the scrolling thread,
ThreadedScrollingTree::scrollingTreeNodeDidScroll() appends to a queue of pending updates
and then triggers applyPendingScrollUpdates() on the main thread to process those updates.
However, every rendering update also processes pending scroll updates via
synchronizeStateFromScrollingTree(), so it's simpler if we just trigger a rendering update.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate):
(WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::scheduleTreeStateCommit):
- 12:01 PM Changeset in webkit [276788] by
-
- 5 edits in trunk/Source
Reduce memory footprint for background tabs
https://bugs.webkit.org/show_bug.cgi?id=225007
Reviewed by Chris Dumez.
Source/WebKit:
When a WebContent process contains only non-visible pages (e.g. if it is a background tab),
we should attempt to reduce our memory footprint after some time interval to help relieve
system-wide memory pressure. This is enabled only on Mac because iOS already does something
similar just before WebContent suspends.
One exception to this is that we don't do this proactive slimming for processes that are in
the back/forward cache or in the WebProcess cache. This is because dropping the memory cache
in those types of processes leads to perf regressions in benchmarks that do certain types of
cross-origin navigations. We'll use a separate mechanism for controlling the memory usage of
those processes; our current logic keeps those processes around until we are at the warning
or critical memory pressure level.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::pageDidEnterWindow):
(WebKit::WebProcess::pageWillLeaveWindow):
(WebKit::WebProcess::nonVisibleProcessGraphicsCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessMemoryCleanupTimerFired):
(WebKit::WebProcess::nonVisibleProcessCleanupTimerFired): Deleted.
- WebProcess/WebProcess.h:
Source/WTF:
Add an option to slim background tabs by proactively calling WebCore::releaseMemory on Macs.
- wtf/PlatformEnableCocoa.h:
- 11:59 AM Changeset in webkit [276787] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Reduce logging for uninteresting sandbox violations
https://bugs.webkit.org/show_bug.cgi?id=225197
<rdar://problem/77321299>
Reviewed by Per Arne Vollan.
CFPreferences needs to read from .GlobalPreferences.plist and .GlobalPreferences_m.plist on iOS, just like it
does on macOS. We should unblock these so we stop getting useless telemetry about the violations, and avoid
preference problems on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 10:42 AM Changeset in webkit [276786] by
-
- 4 edits in trunk/Source/JavaScriptCore
Sampling profiler should dump a tier breakdown, and add ability to see time spent in C code with sampleCCode=0, and fix bugs with frames having the wrong jitType if they're inlined
https://bugs.webkit.org/show_bug.cgi?id=225116
Reviewed by Yusuke Suzuki.
This patch makes it so we also dump time spent in each tier when dumping top
bytecodes. This can be helpful info when analyzing benchmarks.
This patch also makes it so we know when we're in C/C++ code when we're not
using the sampleCCode=true option. I found some weird performance pathologies
with that option that cause us to not sample code at all. I was seeing ~50
samples taken for ~7 seconds of code running time. It's worth figuring out
what's going on there eventually. But for now, I've made it so that we
recognize that the top frame is C/C++ when using the collectExtraSamplingProfilerData=1
option.
This patch also fixes a bug where we mis-attribute JITTypes for inline
frames. We'd attribute it to whatever the CodeBlock was compiled as, instead
of using the machine frame's JITType.
- jsc.cpp:
(CommandLine::parseArguments):
- runtime/OptionsList.h:
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::takeSample):
(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::StackFrame::displayName):
(JSC::SamplingProfiler::reportTopBytecodes):
- 10:16 AM Changeset in webkit [276785] by
-
- 2 edits in branches/safari-611-branch/Source/ThirdParty/libwebrtc/Source/third_party/boringssl/src
Apply patch. rdar://problem/76374163
- 10:13 AM Changeset in webkit [276784] by
-
- 4 edits in branches/safari-611-branch/Source
Cherry-pick r276742. rdar://problem/77326513
[iOS] Web content process occasionally crashes under VisibleSelection::adjustPositionForEnd
https://bugs.webkit.org/show_bug.cgi?id=225072
rdar://77159489
Reviewed by Darin Adler.
Source/WebCore:
Remove a helper method that was added in r276688, which we no longer need.
- dom/Position.h: (WebCore::Position::isInTreeScope const): Deleted.
Source/WebKit:
The fix for this crash that I landed in r276688 was based on a misunderstanding that accessing
treeScope()
would trigger a null pointer deref ifisInTreeScope()isfalse. This is not the case, since thetreeScope
of aNodeis a separate notion from whether thatNodeis connected to said tree scope.
Since this crash is really due to dereferencing a null container node in the case where
selectionStartor
selectionEndare null, a better fix is to just check the nullity of the container node.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::rangeForPointInRootViewCoordinates):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:12 AM Changeset in webkit [276783] by
-
- 5 edits2 adds in branches/safari-611-branch
Cherry-pick r276688. rdar://problem/77326513
[iOS] Web content process occasionally crashes under VisibleSelection::adjustPositionForEnd
https://bugs.webkit.org/show_bug.cgi?id=225072
rdar://77159489
Reviewed by Darin Adler.
Source/WebCore:
Add a helper method to check whether or not the given
Positionis in a tree scope. See WebKit/ChangeLog for
more details.
Test: editing/selection/ios/clear-selection-while-moving-selection-handles.html
- dom/Position.h: (WebCore::Position::isInTreeScope const):
Source/WebKit:
Make
rangeForPointInRootViewCoordinatesrobust in the case where the original selection may have become
orphaned or null, by checking that thetargetNodeand existingselectionStartorselectionEndare in a
tree scope before accessingtreeScope().
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::rangeForPointInRootViewCoordinates):
LayoutTests:
Add a layout test that programmatically clears the selection in the middle of changing it by moving selection
handles.
- editing/selection/ios/clear-selection-while-moving-selection-handles-expected.txt: Added.
- editing/selection/ios/clear-selection-while-moving-selection-handles.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:12 AM Changeset in webkit [276782] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r276618. rdar://problem/77326484
Handle warning-level memory notifications more aggressively
https://bugs.webkit.org/show_bug.cgi?id=225008
Reviewed by Chris Dumez.
We've found that in some workloads, the critical-level memory pressure handler releases
significantly more memory than the warning-level memory pressure handler. On Macs, it is
likely that the memory pressure coincides with swapping. So when we get even a warning-level
notification from the OS, we should err on the side of releasing more memory to help relieve
the swapping state. To do this, treat warning level notifications the same as critical level
notifications on Mac if the WebProcess is in the background.
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276618 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:59 AM Changeset in webkit [276781] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.2.7
- 9:39 AM Changeset in webkit [276780] by
-
- 17 edits1 add in trunk
Extend SortedArrayMap further to work on case-folded strings, use in MIMETypeRegistry
https://bugs.webkit.org/show_bug.cgi?id=224968
Reviewed by Sam Weinig.
Source/WebCore:
Using fewer HashSet in MIMETypeRegistry saves code size and reduces memory use.
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::supportedImageMIMETypes): Deleted. Replaced
this function with a constexpr array, eliminating the use of HashSet.
(WebCore::makeFixedVector): Added. Helper function used below for the repeated patttern
of converting a constexpr array into a FixedVector<const char*>.
(WebCore::supportedJavaScriptMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::supportedNonImageMIMETypes): Update since
supportedJavaScriptMIMETypeArray is now an array, not a HashSet.
(WebCore::MIMETypeRegistry::pdfMIMETypes): Rewrote to return a FixedVector<const char*>
instead of a HashSet. The only caller makes an NSArray<NSString *>, so there is no need
to involve a hash table or a WTF::String.
(WebCore::MIMETypeRegistry::unsupportedTextMIMETypes): Ditto.
(WebCore::commonMediaTypes): Deleted, merging into the function below.
(WebCore::commonMimeTypesMap): Moved the commonMediaTypes data in here
and use a constexpr array instead of an initializer_list.
(WebCore::MIMETypeRegistry::isSupportedImageMIMEType): Use SortedArraySet
instead of a HashSet for the core supported images types. Moved the code
that checks this against defaultSupportedImageTypes here.
(WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType): Use SortedArraySet.
(WebCore::MIMETypeRegistry::isUnsupportedTextMIMEType): Ditto.
(WebCore::MIMETypeRegistry::isPDFMIMEType): Ditto.
(WebCore::MIMETypeRegistry::isPostScriptMIMEType): Use equalLettersIgnoringASCIICase.
For some reason this was the single case-sensitive function in this whole class!
(WebCore::MIMETypeRegistry::isSystemPreviewMIMEType): Use SortedArraySet.
(WebCore::MIMETypeRegistry::systemPreviewMIMETypes): Return a FixedVector.
(WebCore::normalizedImageMIMEType): Renamed this from its old name,
MIMETypeRegistry::normalizedMIMEType, to better reflect that it's only used in
one place. Also added comments to clarify that it's CURL-only and suggest it be
removed eventually.
- platform/MIMETypeRegistry.h: Changed supportedImageMIMETypes, pdfMIMETypes,
unsupportedTextMIMETypes, and systemPreviewMIMETypes to return FixedVector instead
of HashSet. Also removed normalizedMIMEType.
- svg/SVGTransformValue.h: Removed unneeded include of HashMap.h.
- testing/TypeConversions.h: Ditto.
Source/WebKit:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _isDisplayingPDF]): Updated since MIMETypeRegistry::pdfMIMETypes
returns a different type.
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry initWithConfiguration:]): Updated since
MIMETypeRegistry::systemPreviewMIMETypes returns a different type.
Source/WebKitLegacy/mac:
- WebView/WebHTMLRepresentation.mm:
(createNSArray): Renamed from newArrayWithStrings so this overloads the createNSArray
function from VectorCocoa.h so we can use the two interchangably and handle both FixedVector
and HashSet with the smae code.
(+[WebHTMLRepresentation supportedMediaMIMETypes]): Updated for name change.
(+[WebHTMLRepresentation supportedNonImageMIMETypes]): Ditto.
(+[WebHTMLRepresentation supportedImageMIMETypes]): Ditto.
(+[WebHTMLRepresentation unsupportedTextMIMETypes]): Ditto.
Source/WTF:
- wtf/ASCIICType.h: Make most functions constexpr.
- wtf/Forward.h: Added FixedVector.
- wtf/SortedArrayMap.h: Added SortedArraySet. Added ComparableCaseFoldingASCIILiteral
and ComparableLettersLiteral, using a template shared with ComparableASCIILiteral.
- wtf/StdLibExtras.h: Added isSortedConstExpr and allOfConstExpr.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added SortedArrayMap.cpp,
and removed references to non-existent FullscreenRemoveNodeBeforeEnter.h and
FloatQuadTests.h.
- TestWebKitAPI/Tests/WTF/SortedArrayMap.cpp: Added.
- 9:26 AM Changeset in webkit [276779] by
-
- 5 edits in trunk/Source
Unreviewed, reverting r276619.
Source/WebKit:
Causes multiple regressions on perf bots, as multiple tests test hot page loads in
WebContent processes that are in the process cache. Dropping the memory cache in those
processes caused multiple benchmarks to regress.
Reverted changeset:
"Reduce memory footprint for background tabs"
https://bugs.webkit.org/show_bug.cgi?id=225007
https://commits.webkit.org/r276619
Source/WTF:
Causes multiple regressions on perf bots.
Reverted changeset:
"Reduce memory footprint for background tabs"
https://bugs.webkit.org/show_bug.cgi?id=225007
https://commits.webkit.org/r276619
- 9:17 AM Changeset in webkit [276778] by
-
- 2 edits in branches/safari-612.1.12-branch/Source/WebKit
Cherry-pick r276671. rdar://problem/77324338
HashTableConstIterator's consistency assertion fails while closing m_webIDBServers in NetworkProcess::didClose since r275846
https://bugs.webkit.org/show_bug.cgi?id=225089
Reviewed by Chris Dumez.
The items of m_webIDBServers were removed while iterating
m_webIDBServers.
Move m_webIDBServers to a temporary HashMap before iterating.
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::didClose):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:09 AM Changeset in webkit [276777] by
-
- 21 edits2 adds in trunk
Add support for CanvasRenderingContext2DSettings
https://bugs.webkit.org/show_bug.cgi?id=225173
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Update test results.
- web-platform-tests/html/canvas/element/context-attributes/getContextAttributes-expected.txt:
- web-platform-tests/html/dom/idlharness.https-expected.txt:
Source/WebCore:
Plumb infrastructure for passing a CanvasRenderingContext2DSettings to CanvasRenderingContext2D.
This change only adds the 'desynchronized' flag, which is only a hint, so ignoring
it is an exceptable implementation.
"When a CanvasRenderingContext2D object's desynchronized is true, then the user
agent may optimize the rendering of the canvas to reduce the latency."
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Add new files.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::createContext2d):
(WebCore::HTMLCanvasElement::getContext2d):
Pipe CanvasRenderingContext2DSettings to CanvasRenderingContext2D.
- html/HTMLCanvasElement.h:
Forward declare ImageBitmapRenderingContextSettings and remove default values
from functions taking a ImageBitmapRenderingContextSettings. There are few
callers and this allows us to remove an include.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::create):
(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
- html/canvas/CanvasRenderingContext2D.h:
Store settings. It is not currently used for anything but returning
itself but will have other state in the future.
- html/canvas/CanvasRenderingContext2D.idl:
Add getContextAttributes() operation from https://html.spec.whatwg.org/multipage/canvas.html#canvasrenderingcontext2d
- html/canvas/CanvasRenderingContext2DSettings.h: Added.
- html/canvas/CanvasRenderingContext2DSettings.idl: Added.
LayoutTests:
Update test results.
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 9:04 AM Changeset in webkit [276776] by
-
- 3 edits12 adds28 deletes in trunk/LayoutTests/imported/w3c
Update WPT tests in html/canvas/element/wide-gamut-canvas
https://bugs.webkit.org/show_bug.cgi?id=225177
Reviewed by Darin Adler.
Update to the latest version of the tests.
- resources/import-expectations.json:
- web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.p3.html: Added.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.srgb.html: Added.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.p3.canvas.html: Added.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toBlob.with.putImageData.html: Added.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.p3.canvas.html: Added.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.toDataURL.with.putImageData.html: Added.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/ImageData-fidelity-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/ImageData-fidelity.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-colorspace-arguments-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-colorspace-arguments.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-createImageBitmap-e_srgb-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-draw-high-bit-depth-images-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-drawImage-e_srgb-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-drawImage-e_srgb.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-drawImage-offscreenCanvas-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-getImageData-e_srgb-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/canvas-getImageData-e_srgb.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/imageData-colorManagedBehavior-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/imageData-colorManagedBehavior.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/imageData-colorSpace-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/imageData-colorSpace.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/imagedata-no-color-settings-crash-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/imagedata-no-color-settings-crash.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/transferFromImageBitmap-expected.txt: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/transferFromImageBitmap.html: Removed.
- web-platform-tests/html/canvas/element/wide-gamut-canvas/w3c-import.log:
- 8:51 AM Changeset in webkit [276775] by
-
- 4 edits38 adds in trunk/LayoutTests
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream
https://bugs.webkit.org/show_bug.cgi?id=225182
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-29
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Resync web-platform-tests/css/css-sizing/aspect-ratio from upstream bde70eda50.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-017-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-017.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-018-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-018.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-019-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-019.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-020-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-020.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-031-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-031.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-032-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-032.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-033-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-033.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-034-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-034.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-018-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-018.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-019-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-019.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-020-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-020.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-021-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-021.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-022-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-022.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-023-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-023.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-024-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-024.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-025-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-025.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-026-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-026.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-027-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-027.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-034-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-034.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
LayoutTests:
Adapt platform test expectations.
- 8:06 AM Changeset in webkit [276774] by
-
- 10 edits in trunk
Improve local storage size estimation for quota limitation
https://bugs.webkit.org/show_bug.cgi?id=225123
<rdar://problem/77248111>
Reviewed by Alex Christensen.
Source/WebCore:
Improve local storage size estimation for quota limitation:
- Rely on String::sizeInBytes() to compute the String size, instead of using String::length() * sizeof(UChar)
- Make estimation consistent between StorageMap & LocalStorageDatabase
- storage/StorageMap.cpp:
(WebCore::StorageMap::setItem):
(WebCore::StorageMap::setItemIgnoringQuota):
(WebCore::StorageMap::removeItem):
(WebCore::StorageMap::clear):
(WebCore::StorageMap::importItems):
(WebCore::StorageMap::Impl::copy const):
- storage/StorageMap.h:
Source/WebKit:
Improve local storage size estimation for quota limitation:
- Rely on String::sizeInBytes() to compute the String size, instead of using String::length() * sizeof(UChar)
- Make estimation consistent between StorageMap & LocalStorageDatabase
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::removeItem):
(WebKit::LocalStorageDatabase::setItem):
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
LayoutTests:
Update tests to use unicode in the Strings so that the file reaches the quota without
changing the test too much. The test was using ASCII and was thus able to store all
the strings without reaching the quota due to our updated String size calculation.
- platform/ios/ios/storage/domstorage/5mb-quota.html:
- storage/domstorage/quota.html:
- 7:27 AM Changeset in webkit [276773] by
-
- 9 edits in trunk
Unreviewed, reverting r276689, r276736, and r276737.
https://bugs.webkit.org/show_bug.cgi?id=225188
Broke platform/ios/ios/storage/domstorage/5mb-quota.html
Reverted changesets:
"Improve local storage size estimation for quota limitation"
https://bugs.webkit.org/show_bug.cgi?id=225123
https://trac.webkit.org/changeset/276689
"REGRESSION(r276689): [ iOS wk2 ]
platform/ios/ios/storage/domstorage/5mb-quota.html is a
constant text failure"
https://bugs.webkit.org/show_bug.cgi?id=225160
https://trac.webkit.org/changeset/276736
"Make sure we invalidate the iterator in StorageMap::clear()"
https://bugs.webkit.org/show_bug.cgi?id=225164
https://trac.webkit.org/changeset/276737
- 7:15 AM Changeset in webkit [276772] by
-
- 4 edits in trunk/Tools
[webkitcorepy] Allow user to specify interpreter used by autoinstall.py to install imported dependencies
https://bugs.webkit.org/show_bug.cgi?id=225172
Patch by Roy Reapor <rreapor@apple.com> on 2021-04-29
Reviewed by Jonathan Bedard.
- Scripts/libraries/webkitcorepy/setup.py: Version bump.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Version bump.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
(Package.install): AUTOINSTALL_PYTHON_EXECUTABLE environment variable can override python interpreter used by this module.
- 7:15 AM Changeset in webkit [276771] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r276309 - [WPE] QML WPEView dynamic loading fails
https://bugs.webkit.org/show_bug.cgi?id=224814
Patch by Marco Felsch <m.felsch@pengutronix.de> on 2021-04-20
Reviewed by Philippe Normand.
The scene graph can be initialized when we receive window handle change
notification and so we will not receive a scenegraph initialization
notification. In such case we need to initzialize it ourself.
No new tests. Testing can be done if the WPEView is moved to a
QML component which gets loaded later on demand.
- UIProcess/API/wpe/qt/WPEQtView.cpp:
(WPEQtView::configureWindow):
- 7:14 AM Changeset in webkit [276770] by
-
- 7 edits in releases/WebKitGTK/webkit-2.32
Merge r276308 - [WPE][Qt] Fix build failure after r270690
https://bugs.webkit.org/show_bug.cgi?id=223070
Patch by Marco Felsch <m.felsch@pengutronix.de> on 2021-04-20
Reviewed by Philippe Normand.
Source/WebKit:
WPE fails to build with
-DENABLE_WPE_QT_API=ONafter adapting the
visibility for linked frameworks done by r270690.
The reason for that is that the visibility is now more strict and we
have to add the WTF dependecy or drop the WTF fast-allocate mechanism.
Adding the WTF dependency is a bit odd since this would staticly link
the WTF lib into a small wrapper lib. Also this lib has nothing to do
with Webkit at all. It is just a QT adaption library.
No new tests, it can be build again.
- UIProcess/API/wpe/qt/WPEQtView.cpp:
(WPEQtView::notifyLoadChangedCallback):
(WPEQtView::notifyLoadFailedCallback):
(WPEQtView::runJavaScript):
- UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:
(WPEQtViewBackend::create):
- UIProcess/API/wpe/qt/WPEQtViewBackend.h:
- UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h:
Drop WTF usage and use system allocator since the lib has nothing to do
with Webkit at all.
Tools:
- Scripts/webkitpy/style/checker.py:
Add exception for WPE QT wrapper library to use system alloc instead
of WTF.
- 7:14 AM Changeset in webkit [276769] by
-
- 6 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r275670 - [WPE] Build fixes for musl C library on Linux
https://bugs.webkit.org/show_bug.cgi?id=210068
Patch by Khem Raj <raj.khem@gmail.com> on 2021-04-08
Reviewed by Carlos Alberto Lopez Perez.
Source/JavaScriptCore:
Use OS(LINUX) to include musl in platform test
for linux and consolidate all linux platfrom
under same test. Use smaller limits for JSC
stack size per thread and reserved zone size.
- runtime/MachineContext.h:
(JSC::MachineContext::stackPointerImpl):
(JSC::MachineContext::framePointerImpl):
(JSC::MachineContext::instructionPointerImpl):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):
- runtime/OptionsList.h:
Source/WTF:
Define 128KB DEFAULT_THREAD_STACK_SIZE_IN_KB for musl
Use OS(LINUX) check to include musl when building for
Linux based platforms.
- wtf/PlatformHave.h:
- wtf/Threading.cpp:
- 6:43 AM Changeset in webkit [276768] by
-
- 9 edits in trunk
Rotation axis parallel to the z axis should not serialize using the "z" keyword for the rotate property
https://bugs.webkit.org/show_bug.cgi?id=225101
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Update the tests per https://github.com/web-platform-tests/wpt/pull/28712 as well as their expectations.
- web-platform-tests/css/css-transforms/animation/rotate-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/rotate-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/animation/rotate-interpolation.html:
- web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid-expected.txt:
- web-platform-tests/css/css-transforms/parsing/rotate-parsing-valid.html:
Source/WebCore:
The CSS spec has changed to drop the "z" keyword or any other axis parallel to the z axis when parsing the
rotate property in https://github.com/w3c/csswg-drafts/pull/6147.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedRotate):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeRotate):
- 6:22 AM Changeset in webkit [276767] by
-
- 3 edits4 adds in trunk
[LFC][IFC] Incorrect middle alignment for inline boxes when line-height is present
https://bugs.webkit.org/show_bug.cgi?id=225166
<rdar://77272112>
Reviewed by Simon Fraser.
Source/WebCore:
Let's use the layout bounds instead of the baseline when computing the inline box's baseline offset from the root inline box's baseline.
The difference here is that the layout bounds (per spec) is adjusted with the line-height value.
These two values (layout bounds's ascent and the inline box's baseline) resolve to the same value as long as the line-height property is not set.
Tests: fast/inline/incorrect-middle-alignment-with-line-height.html
fast/inline/incorrect-middle-baseline-alignment-with-line-height.html
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
LayoutTests:
- fast/inline/incorrect-middle-alignment-with-line-height-expected.html: Added.
- fast/inline/incorrect-middle-alignment-with-line-height.html: Added.
- fast/inline/incorrect-middle-baseline-alignment-with-line-height-expected.html: Added.
- fast/inline/incorrect-middle-baseline-alignment-with-line-height.html: Added.
- 6:14 AM WebKitGTK/2.32.x edited by
- (diff)
- 5:28 AM Changeset in webkit [276766] by
-
- 3 edits in trunk/Tools
[webkitpy] Remove deprecated slave-config-json-path parameter in perftestsrunner.py
https://bugs.webkit.org/show_bug.cgi?id=225106
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._parse_args):
- Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(MainTest.test_parse_deprecated_args): Deleted.
- 4:50 AM Changeset in webkit [276765] by
-
- 2 edits in trunk/Tools
Remove unused slave parameter from run-jsc-benchmarks script
https://bugs.webkit.org/show_bug.cgi?id=225153
Reviewed by Alexey Proskuryakov.
- Scripts/run-jsc-benchmarks:
- 3:36 AM Changeset in webkit [276764] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
[GTK] Bubblewrap sandbox should not break X11 forwarding
https://bugs.webkit.org/show_bug.cgi?id=221990
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-05
Reviewed by Carlos Alberto Lopez Perez.
If $DISPLAY points to a TCP socket, or a Unix socket on a different host, then we cannot
isolate the web process from the network and must grant access to the host network
namespace.
Also, clean up some related code by adding PLATFORM(X11) guards where appropriate and
removing a redundant display type check.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindWayland):
(WebKit::shouldUnshareNetwork):
(WebKit::bubblewrapSpawn):
- 3:36 AM WebKitGTK/2.32.x edited by
- (diff)
- 3:24 AM Changeset in webkit [276763] by
-
- 30 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r275557 - Build fails when video is disabled
https://bugs.webkit.org/show_bug.cgi?id=224198
Patch by Mike Gorse <mgorse@suse.com> on 2021-04-06
Reviewed by Adrian Perez de Castro.
Add #if ENABLE(VIDEO) where needed.
Source/WebCore:
- editing/markup.cpp:
(WebCore::createPageForSanitizingWebContent):
- page/Page.cpp:
- page/Page.h:
- platform/graphics/GraphicsContext.cpp:
- platform/graphics/GraphicsContext.h:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/GraphicsContextImpl.h:
- platform/graphics/cairo/GraphicsContextImplCairo.cpp:
- platform/graphics/cairo/GraphicsContextImplCairo.h:
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/win/GraphicsContextImplDirect2D.cpp:
- platform/graphics/win/GraphicsContextImplDirect2D.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Source/WebKit:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::decodeItem):
- UIProcess/gtk/ClipboardGtk3.cpp:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::committedLoad):
- 3:24 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:45 AM Changeset in webkit [276762] by
-
- 10 edits in trunk/Tools
Make sure webkitpy tests pass on Linux and on more Python versions
https://bugs.webkit.org/show_bug.cgi?id=225157
Reviewed by Jonathan Bedard.
This gets us passing the webkitpy tests, run under pytest, on Linux,
under Python 2.7, 3.6, 3.7, 3.8, 3.9, and alpha 3.10.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py:
Conditionally install setuptools 56 on Python 3, keep setuptools
44.1.1 on Python 2. (44.1.1 is the last release supporting Python 2,
but due to removals doesn't install on Python 3.10.)
- Scripts/webkitpy/browserperfdash/browserperfdash_unittest.py:
(FakeBrowserDriver): Implement a FakeBrowserDriver which does nothing.
(FakeBrowserDriver.init):
(FakeBrowserDriver.prepare_env):
(FakeBrowserDriver.prepare_initial_env):
(FakeBrowserDriver.restore_env):
(FakeBrowserDriver.restore_env_after_all_testing):
(FakeBrowserDriver.close_browsers):
(FakeBrowserDriver.launch_url):
(FakeBrowserDriver.launch_webdriver):
(BrowserPerfDashRunnerTest.test_can_construct_runner_object_minimum_parameters):
Use the FakeBrowserRunner rather than the platform/browser
default. (This fixes this test on Linux when no minibrowser-gtk is
available.)
- Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
(GitTest.setUp): Set user.name/user.email to ensure they're set.
(GitSVNTest._setup_git_checkout): Set user.name/user.email to ensure
they're set.
- Scripts/webkitpy/common/net/credentials.py: Conditionally import
keyring; the rest of the code already supports keyring being
None. (keyring doesn't have any release supporting both Python 2 and
3.10, but updating keyring pulls in new dependencies and is left as
future work.)
- Scripts/webkitpy/common/prettypatch_unittest.py:
(PrettyPatchTest.check_ruby): Also check Ruby version.
(test_pretty_diff_encodings): Explicitly skip; don't just return.
(test_pretty_print_empty_string): Explicitly skip; don't just return.
- Scripts/webkitpy/common/system/logtesting.py:
(TestLogStream.write): Python 3.6's logging appears to put new lines
following a message in a new message, which breaks many tests.
- Scripts/webkitpy/pytest.ini: Broaden ignored warnings.
- Scripts/webkitpy/results/upload_unittest.py:
(UploadTest.normalize): collections -> collections.abc for Py3.10
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager._create_device_with_runtime): Use modern
plistlib API.
(SimulatedDevice.state): Use modern plistlib API.
- 1:39 AM Changeset in webkit [276761] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275149 - REGRESSION(r274527): [GStreamer] media/webaudio-background-playback.html now failing
https://bugs.webkit.org/show_bug.cgi?id=223840
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-28
Reviewed by Chris Dumez.
r274527 actually exposed a bug that was present since r271197. The AudioDestination pipeline
was not stopping properly because webkitGstSetElementStateSynchronously() was returning too
early.
This patch also includes a few improvements in the webaudiosrc element, most notably
regarding its preroll state. The element now stops emitting buffers downstream as soon as
the AudioDestination is scheduled to stop.
- platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcRenderAndPushFrames): Return early as soon as the destination is scheduled to stop.
(webKitWebAudioSrcChangeState): Synchronize preroll state with element state.
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::webkitGstSetElementStateSynchronously): targetState might be lower than current
state, e.g, when stopping a running pipeline, so we can't return early for those cases,
otherwise the pipeline won't stop.
- 1:33 AM Changeset in webkit [276760] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32
Merge r275600 - [GStreamer] Videos start playing muted in epiphany with no unmute icon visible in tab, webkit_web_view_get_is_muted() returns incorrect results
https://bugs.webkit.org/show_bug.cgi?id=223195
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-07
Source/WebCore:
Reviewed by Eric Carlson.
For GStreamer ports the semantics of IsPlayingAudio slightly differ from Apple ports. The
webkit_web_view_is_playing_audio() API is expected to return true if a page is producing
audio even though it might be muted.
The second change affects the private player mute state when the page mute state has been
updated.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaState const):
(WebCore::HTMLMediaElement::pageMutedStateDidChange):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Logging improvements.
(WebCore::MediaPlayerPrivateGStreamer::isMuted const):
(WebCore::MediaPlayerPrivateGStreamer::volume const):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVolumeChange):
(WebCore::MediaPlayerPrivateGStreamer::setMuted):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfMute):
Tools:
Reviewed by Michael Catanzaro.
Adapt is-playing test, after muting the page, webkit_web_view_is_playing_audio() should
still return TRUE.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(IsPlayingAudioWebViewTest::periodicallyCheckIsPlayingForAWhile):
(testWebViewIsPlayingAudio):
- 1:33 AM Changeset in webkit [276759] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32
Merge r275516 - REGRESSION(r274358) [GStreamer] http/tests/images/mp4-partial-load.html is flaky crashing inside GStreamer
https://bugs.webkit.org/show_bug.cgi?id=223636
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Carlos Alberto Lopez Perez.
Source/WebCore:
Ensure the GStreamer messages are always processed synchronously, even when the handler is
called from another thread. Without blocking in the latter case, the select-streams event
might be sent to decodebin too late. It has to be sent as a synchronous reaction to the
stream-collection message.
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
- platform/graphics/gstreamer/ImageDecoderGStreamer.h:
LayoutTests:
- platform/glib/TestExpectations: Update tests expectations.
- platform/gtk/TestExpectations: Ditto.
- 1:26 AM Changeset in webkit [276758] by
-
- 2 edits in trunk/Source/WebKit
Fix build break after r276753
Unreviewed, build fix.
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- 1:09 AM Changeset in webkit [276757] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Unreviewed build fix after r276749
- Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp:
(WebCore::copyBusData): Remove usage of DisableMallocRestrictionsForCurrentThreadScope
guard, which is a type not available in the 2.32 release branch.
- 1:09 AM Changeset in webkit [276756] by
-
- 7 edits in releases/WebKitGTK/webkit-2.32
Merge r275514 - [GStreamer][WebRTC] Audio is not played from an audio element when the srcObject object has unstarted video tracks
https://bugs.webkit.org/show_bug.cgi?id=209163
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Ensure no MediaStream (active) video tracks can be added in a pipeline representing an <audio> element.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::hasFirstSampleReachedSink const):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChanged):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcSetStream):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:
LayoutTests:
- platform/glib/TestExpectations: Unflag now-passing test.
- 1:09 AM Changeset in webkit [276755] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r273644 - [GStreamer][Playbin3] Stream collection handling fixes
https://bugs.webkit.org/show_bug.cgi?id=222322
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-01
Reviewed by Xabier Rodriguez-Calvar.
The track orphaning trying to avoid un-necessary track addition/removals was making the
whole thing inconsistent with the final stream collection. Also stream-collection messages
don't need to be handled from a synchronous GstBus handler, this should be needed for
need-context messages only, so the corresponding code has been refactored.
This patch also includes changes and cleanups for the mediastreamsrc element, needed after
the stream collection handling fixes. Most notably the element now keeps an internal list of
tracks, in addition to observing the MediaStreamPrivate for topology changes. Also it emits
a new stream collection whenever a new source pad has been added.
No new tests, but this patch fixes flakyness of http/tests/media/hls/hls-audio-tracks.html
when the pipeline is driven by playbin3.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::setPipeline):
(WebCore::MediaPlayerPrivateGStreamer::handleStreamCollectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleNeedContextMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(stopObservingTracks):
(webkitMediaStreamSrcDispose):
(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcTrackEnded):
- 1:09 AM Changeset in webkit [276754] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275512 - [GTK][GStreamer] Web Audio - Media element source - Audio is cracking.
https://bugs.webkit.org/show_bug.cgi?id=196293
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
The provider client might request samples faster than the current clock speed, so this sink
should process buffers as fast as possible. The cracks were consequence of the audio sink of
the AudioDestination starving off.
- platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
- 12:45 AM Changeset in webkit [276753] by
-
- 5 edits in trunk/Source
[GPU Process] REGRESSION(r272888): Don't assert the validity of the dataURL mimeType inside GPU Process
https://bugs.webkit.org/show_bug.cgi?id=225175
<rdar://76286963>
Reviewed by Simon Fraser.
Source/WebCore:
- platform/MIMETypeRegistry.h:
Export isSupportedImageMIMETypeForEncoding() so it can be called in WebKit.
- platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::toCFData const):
Do not assert if we are inside the GPU Process.
Source/WebKit:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
Assert the validity of the mimeType before sending it to GPU Process.
- 12:32 AM WebKitGTK/2.32.x edited by
- (diff)
- 12:24 AM Changeset in webkit [276752] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit
Merge r273618 - [WPE][GTK] Bogus Response.{status,ok} for successful fetch() requests to a custom URI scheme handler
https://bugs.webkit.org/show_bug.cgi?id=222471
Reviewed by Carlos Garcia Campos.
No new tests needed.
- UIProcess/API/glib/WebKitURISchemeRequest.cpp:
(webkitURISchemeRequestReadCallback): Mark response as having status "200 OK" when
webkit_uri_scheme_request_finish() gets passed a GInputStream.
- 12:23 AM Changeset in webkit [276751] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32
Merge r275755 - [GStreamer] fast/canvas/canvas-createPattern-video-loading.html is failing since r218170
https://bugs.webkit.org/show_bug.cgi?id=173410
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-09
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
When a flush has been requested by the GL video sink, allocate a new copy of the sample
which has to be released. The copy is necessary so that the video dimensions can still be
fetched and also for canvas rendering. The release is necessary because the sample might
have been allocated by a hardware decoder and memory might have to be reclaimed by a
non-sysmem buffer pool.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamer::paint):
LayoutTests:
- platform/gtk/TestExpectations: Unflag now-passing test.
- 12:23 AM WebKitGTK/2.32.x edited by
- (diff)
- 12:23 AM Changeset in webkit [276750] by
-
- 5 edits in releases/WebKitGTK/webkit-2.32
Merge r275412 - REGRESSION(r268176): [GStreamer] media/video-orientation-canvas.html fails
https://bugs.webkit.org/show_bug.cgi?id=223850
Reviewed by Carlos Alberto Lopez Perez.
Source/WebCore:
The GL pipeline used by the player is now able to handle image rotation tags itself. Manual
handling of the image rotation tags is now performed only when the pipeline is not able to
do it by itself.
- platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:
(webKitGLVideoSinkConstructed):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::getVideoOrientation):
(WebCore::MediaPlayerPrivateGStreamer::updateVideoSizeAndOrientationFromCaps):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
LayoutTests:
- platform/gtk/TestExpectations: Unflag now-passing test.
- 12:15 AM Changeset in webkit [276749] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275510 - [GStreamer][MediaStream] AudioSource triggering critical warnings
https://bugs.webkit.org/show_bug.cgi?id=224180
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-06
Reviewed by Xabier Rodriguez-Calvar.
Keep track of audio channel offsets and store them as metadata in audio buffers. This is
used by downstream elements such as the audio convert elements.
- Modules/webaudio/MediaStreamAudioSourceGStreamer.cpp:
(WebCore::copyBusData):
(WebCore::MediaStreamAudioSource::consumeAudio):
Apr 28, 2021:
- 8:55 PM Changeset in webkit [276748] by
-
- 2 edits in trunk/Source/WebCore
Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082
Unreviewed. Address the review comments by Chris & Darin.
- dom/Document.cpp:
(WebCore::Document::forEachMediaElement):
- 6:53 PM Changeset in webkit [276747] by
-
- 8 edits in trunk/Source/WebCore
Crash under WebCore::AudioNodeOutput::pull(WebCore::AudioBus*, unsigned long)
https://bugs.webkit.org/show_bug.cgi?id=225174
<rdar://77270701>
Unreviewed, revert r274767 as it introduced this crash.
- Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::disable):
(WebCore::AudioNodeInput::enable):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):
- Modules/webaudio/AudioNodeInput.h:
- Modules/webaudio/AudioNodeOutput.cpp:
(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):
- Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::calculateFinalValues):
- Modules/webaudio/AudioSummingJunction.cpp:
(WebCore::AudioSummingJunction::addOutput):
(WebCore::AudioSummingJunction::removeOutput):
(WebCore::AudioSummingJunction::updateRenderingState):
(WebCore::AudioSummingJunction::maximumNumberOfChannels const):
- Modules/webaudio/AudioSummingJunction.h:
(WebCore::AudioSummingJunction::renderingOutput):
(WebCore::AudioSummingJunction::renderingOutput const):
(WebCore::AudioSummingJunction::isConnected const):
(WebCore::AudioSummingJunction::numberOfConnections const):
- Modules/webaudio/WebKitAudioPannerNode.cpp:
(WebCore::WebKitAudioPannerNode::notifyAudioSourcesConnectedToNode):
- 6:36 PM Changeset in webkit [276746] by
-
- 6 edits2 adds in trunk
[iOS] Coalesce adjacent selection geometries when rendering individual selection quads
https://bugs.webkit.org/show_bug.cgi?id=225054
Reviewed by Tim Horton.
Source/WebCore:
Add a heuristic to coalesce adjacent selection geometries when
SelectionRenderingBehavior::UseIndividualQuads
is active. Currently, we pass them directly through to the list of coalesced geometries inside
RenderObject::collectSelectionGeometries, but this can lead to almost perfectly adjacent selection quads
showing a narrow gap in between their selection views.
Instead, we can detect this case where neighboring quads can be united into a single quad without significantly
changing the geometry. Rather than append the new selection geometry in this case, we simply adjust the last
selection geometry's quad so that it encompasses the new selection geometry as well, by extending the top right
and bottom right extent points of the last selection quad to the new selection quad's extent points.
See below for more details.
Test: fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay.html
- html/HTMLElement.h:
WEBCORE_EXPORTa couple of helper methods. - rendering/RenderObject.cpp:
(WebCore::RenderObject::collectSelectionGeometriesInternal):
Avoid sorting selection geometries by bounding rect
logicalLeftin the case where we're not coalescing
bounding rects (and also update the preceding comment accordingly).
(WebCore::coalesceSelectionGeometryWithAdjacentQuadsIfPossible):
Add a new helper to unite neighboring quads if: (1) the top right and bottom right of the current quad are very
close to the top left and bottom left of the next quad (respectively), and (2) the angle of rotation of the
bounding rect of the current quad is very close to that of the next quad.
(WebCore::RenderObject::collectSelectionGeometries):
Use the above helper method to either coalesce or append selection geometries to the final vector of coalesced
geometries.
Source/WebKit:
Make some further minor adjustments to selection behavior in image overlays on iOS. In particular, when using
selection handles to modify the selected range, shift the start and end of the selected range so that they're at
the beginning and end of text runs, respectively.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::insideImageOverlay):
(WebKit::expandForImageOverlay):
(WebKit::rangeForPointInRootViewCoordinates):
LayoutTests:
Add a new layout test to verify that adjacent selection rects rotated by the same amount can be coalesced.
- fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay-expected.txt: Added.
- fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay.html: Added.
- 6:00 PM Changeset in webkit [276745] by
-
- 3 edits2 adds in trunk
[aspect-ratio] Treat border/padding correctly for box-sizing: border-box
https://bugs.webkit.org/show_bug.cgi?id=225015
Patch by Rob Buis <rbuis@igalia.com> on 2021-04-28
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Import WPT test for this.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-035-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-035.html: Added.
Source/WebCore:
When computing logical height in aspect-ratio case, to compute the automatic
minimum size [1] for min-height: auto, the padding was always subtracted,
however it should only be subtracted in the box-sizing: content-box case.
Test: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/block-aspect-ratio-035.html
[1] https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight const):
- 5:51 PM Changeset in webkit [276744] by
-
- 27 edits1 add in trunk
experiment with averaging sampling colors across the top of the page as the scroll area background
https://bugs.webkit.org/show_bug.cgi?id=224987
<rdar://problem/76251889>
Reviewed by Darin Adler.
Source/WebCore:
Tests: SampledPageTopColor.ZeroMaxDifference
SampledPageTopColor.NegativeMaxDifference
SampledPageTopColor.SolidColor
SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference
SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference
SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference
SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference
SampledPageTopColor.DisplayP3
SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor
- dom/Document.h:
(WebCore::Document::sampledPageTopColor const): Added.
- dom/Document.cpp:
(WebCore::Document::enqueuePaintTimingEntryIfNeeded):
(WebCore::colorDifference): Added.
(WebCore::averageColor): Added.
(WebCore::Document::determineSampledPageTopColor): Added.
Wait until the first contentful paint before sampling. Don't sample if that location would
fall into a 3rd-party<iframe>. Currently use 5 snapshots across the top of the page,
allowing for one of either the first or last snapshot to be an outlier, which is not
included in the average of the other snapshots that's used as the final color value. If the
Lab color difference between any two snapshots (unless it's the first or last snapshot as
described above) or across all the (non-outlier) snapshots is too large, bail. Only enabled
if theSampledPageTopColorMaxDifferencesetting is greater than 0.
- page/Page.h:
- page/Page.cpp:
(WebCore::Page::sampledPageTopColor const): Added.
- page/ChromeClient.h:
(WebCore::ChromeClient::didSamplePageTopColor const): Added.
Pass along thesampledPageTopColorto the UIProcess after it's determined or if the above
logic bails (so that theWKWebViewcan adjust_sampledPageTopColortonil).
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
Use thesampledPageTopColorif theUseSampledPageTopColorForScrollAreaBackgroundColor
internal preference is enabled instead of the CSSbackground-colorof the<html>/<body>.
Source/WebKit:
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::didSamplePageTopColor const): Added.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didSamplePageTopColor): Added.
Pass along thesampledPageTopColorto the UIProcess.
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::sampledPageTopColor): Added.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::scrollAreaBackgroundColor const):
(WebKit::WebPageProxy::didSamplePageTopColor): Added.
Use thesampledPageTopColorif theUseSampledPageTopColorForScrollAreaBackgroundColor
internal preference is enabled instead of the CSSbackground-colorof the<html>/<body>.
- UIProcess/PageClient.h:
(WebKit::PageClient::sampledPageTopColorWillChange): Added.
(WebKit::PageClient::sampledPageTopColorDidChange): Added.
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::sampledPageTopColorWillChange): Added.
(WebKit::PageClientImplCocoa::sampledPageTopColorDidChange): Added.
Add ObjC KVO support for-[WKWebView _sampledPageTopColor].
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
(-[WKWebView _sampledPageTopColor]): Added.
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setSampledPageTopColorMaxDifference:]): Added.
(-[WKWebViewConfiguration _sampledPageTopColorMaxDifference]): Added.
Provide SPI to configure theSampledPageTopColorMaxDifferencepreference when
creating theWKWebView. Expose the result as_sampledPageTopColorSPI.
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml:
Add a
SampledPageTopColorMaxDifferencesetting that controls both whether or not to sample
colors from the top of the page (only if value > 0) and the max Lab color difference allowed
across all samples.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add a
UseSampledPageTopColorForScrollAreaBackgroundColorinternal setting that controls
whether the sampled page top color can be used as the overscroll area background color.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: Added.
(-[TestKVOWrapper initWithObservable:keyPath:callback:]):
(-[TestKVOWrapper dealloc]):
(-[TestKVOWrapper observeValueForKeyPath:ofObject:change:context:]):
(createWebViewWithSampledPageTopColorMaxDifference):
(waitForSampledPageTopColorToChangeForHTML):
(createHTMLGradientWithColorStops):
(TEST.SampledPageTopColor.ZeroMaxDifference):
(TEST.SampledPageTopColor.NegativeMaxDifference):
(TEST.SampledPageTopColor.SolidColor):
(TEST.SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference):
(TEST.SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference):
(TEST.SampledPageTopColor.DisplayP3):
(TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 5:45 PM Changeset in webkit [276743] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 EWS ] imported/w3c/web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html is flaky crash
https://bugs.webkit.org/show_bug.cgi?id=225169
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations: Updating expectations to Pass Crash due to a negative impact on EWS.
- 5:25 PM Changeset in webkit [276742] by
-
- 4 edits in trunk/Source
[iOS] Web content process occasionally crashes under VisibleSelection::adjustPositionForEnd
https://bugs.webkit.org/show_bug.cgi?id=225072
rdar://77159489
Reviewed by Darin Adler.
Source/WebCore:
Remove a helper method that was added in r276688, which we no longer need.
- dom/Position.h:
(WebCore::Position::isInTreeScope const): Deleted.
Source/WebKit:
The fix for this crash that I landed in r276688 was based on a misunderstanding that accessing
treeScope()
would trigger a null pointer deref ifisInTreeScope()isfalse. This is not the case, since thetreeScope
of aNodeis a separate notion from whether thatNodeis connected to said tree scope.
Since this crash is really due to dereferencing a null container node in the case where
selectionStartor
selectionEndare null, a better fix is to just check the nullity of the container node.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeForPointInRootViewCoordinates):
- 5:17 PM Changeset in webkit [276741] by
-
- 2 edits in trunk/Source/WTF
Disable App Bound Requests on macOS
https://bugs.webkit.org/show_bug.cgi?id=225155
<rdar://problem/77288787>
App-bound requests is causing potential performance issues on macOS.
We should disable it while we investigate further.
Reviewed by Brent Fulgham.
- wtf/PlatformEnableCocoa.h:
- 4:22 PM Changeset in webkit [276740] by
-
- 4 edits in trunk/Source
Suppress warnings for %{private}s format specifier
https://bugs.webkit.org/show_bug.cgi?id=225137
Reviewed by Alex Christensen.
Add PRIVATE_LOG_STRING macro which is defined depending on if
os_log() is used or rather old printf().
See also: https://bugs.webkit.org/show_bug.cgi?id=207478
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::enableForeignKeys):
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::isEmpty const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertObservedDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
(WebKit::ResourceLoadStatisticsDatabaseStore::populateFromMemoryStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistic):
(WebKit::ResourceLoadStatisticsDatabaseStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensurePrevalentResourcesForDebugMode):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearTopFrameUniqueRedirectsToSinceSameSiteStrictEnforcement):
(WebKit::ResourceLoadStatisticsDatabaseStore::setUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::setPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrevalentResource):
(WebKit::ResourceLoadStatisticsDatabaseStore::setGrandfathered):
(WebKit::ResourceLoadStatisticsDatabaseStore::setIsScheduledForAllButCookieDataRemoval):
(WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentlyUpdatedTimestamp const):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearDatabaseContents):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeDataForDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateLastSeen):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateDataRecordsRemoved):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectSubStatisticsCount):
(WebKit::ResourceLoadStatisticsDatabaseStore::getDomainStringFromDomainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainIDExistsInDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
(WebKit::ResourceLoadStatisticsDatabaseStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAllUnattributedPrivateClickMeasurementAsExpiredForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed):
(WebKit::ResourceLoadStatisticsDatabaseStore::allAttributedPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearExpiredPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
Source/WTF:
- wtf/Assertions.h:
- 4:00 PM Changeset in webkit [276739] by
-
- 3 edits2 adds in trunk
Don't create custom scrollbars for fullscreen placeholders.
https://bugs.webkit.org/show_bug.cgi?id=225141
Source/WebCore:
<rdar://64800098>
Reviewed by Darin Adler.
We can end up calling RenderScrollbar::createCustomScrollbar with
element = nullptrfrom RenderLayerScrollableArea::createScrollbar,
when the renderer is a RenderFullscreenPlaceholder.
We don't need to bother with scrollbars for the placeholder, so check to
make sure we have a valid element before creating custom scollbars.
Test: fullscreen/full-screen-crash-custom-scrollbars.html
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::createScrollbar):
LayoutTests:
Reviewed by Darin Adler.
- fullscreen/full-screen-crash-custom-scrollbars-expected.txt: Added.
- fullscreen/full-screen-crash-custom-scrollbars.html: Added.
- 3:50 PM Changeset in webkit [276738] by
-
- 1 copy in tags/Safari-611.2.6
Tag Safari-611.2.6.
- 3:49 PM Changeset in webkit [276737] by
-
- 2 edits in trunk/Source/WebCore
Make sure we invalidate the iterator in StorageMap::clear()
https://bugs.webkit.org/show_bug.cgi?id=225164
Reviewed by Alex Christensen.
I recently introduced StorageMap::clear() but failed to call invalidateIterator()
like we do in other StorageMap functions that modify the internal HashMap. Since
we cleared the HashMap, we don't want to be keeping a HashMap iterator around.
Looking at the code, I do not think this can cause crashes because the
index >= length()check would fail in StorageMap::key(unsigned). That said, it
is best not to keep a bad iterator around.
- storage/StorageMap.cpp:
(WebCore::StorageMap::clear):
- 3:46 PM Changeset in webkit [276736] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r276689): [ iOS wk2 ] platform/ios/ios/storage/domstorage/5mb-quota.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=225160
<rdar://problem/77279334>
Reviewed by Jonathan Bedard.
Apply the same fix that was applied to storage/domstorage/quota.html in r276689. Use unicode characters
in the local storage strings so that the test still fails when it expects to, despite the new more
accurate string byte size calculation. This was using ASCII characters so it was not really reaching the
5MB quota.
- platform/ios/ios/storage/domstorage/5mb-quota.html:
- 3:31 PM Changeset in webkit [276735] by
-
- 2 edits in trunk/Tools
[webkitpy] Refactor SimulatorDevice
https://bugs.webkit.org/show_bug.cgi?id=225158
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager._get_device_identifier_for_type): Handle partially defined device types.
(SimulatedDevice.is_usable): Place Home Screen services into dictionary.
- 2:59 PM Changeset in webkit [276734] by
-
- 3 edits1 delete in trunk/Source/ThirdParty/ANGLE
Stop building libANGLE.a
https://bugs.webkit.org/show_bug.cgi?id=225162
<rdar://problem/57349384>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-28
Reviewed by Alexey Proskuryakov.
Now that everyone's linking against the dylib, we don't need to build the static library any more.
- ANGLE.xcodeproj/project.pbxproj:
- Configurations/ANGLE-dynamic.xcconfig:
- src/empty.cpp: Removed.
- 2:54 PM Changeset in webkit [276733] by
-
- 9 edits in trunk
When IPC testing API is enabled, GPU process shouldn't kill Web Process
https://bugs.webkit.org/show_bug.cgi?id=225143
<rdar://70692277>
Reviewed by Chris Dumez.
Source/WebKit:
Set Connection::g_ignoreInvalidMessageForTesting on createGPUConnectionToWebProcess
when the IPC testing API is enabled.
Tests: IPCTestingAPI.CanSendSyncMessageToGPUProcess
IPCTestingAPI.CanSendAsyncMessageToGPUProcess
IPCTestingAPI.CanSendInvalidAsyncMessageToGPUProcessWithoutTermination
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didReceiveInvalidMessage): Exit early without
killing the Web process if IPC testing API is enabled.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::createGPUConnectionToWebProcess): Set the aforementioned flag
on the IPC connection.
- Shared/GPUProcessConnectionParameters.h:
(WebKit::GPUProcessConnectionParameters): Added ignoreInvalidMessageForTesting.
(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):
- UIProcess/WebPageProxy.cpp:
(WebKit::m_limitsNavigationsToAppBoundDomains): Cleanup. Use a helper function.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::getGPUProcessConnection): Set the value of
GPUProcessConnectionParameters::ignoreInvalidMessageForTesting based on the value
of WebProcessProxy::m_ignoreInvalidMessageForTesting.
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::ignoreInvalidMessageForTesting const): Added.
Tools:
Added tests for sending IPC messages to GPU process via IPC testing API.
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
(IPCTestingAPI.CanSendInvalidAsyncMessageToUIProcessWithoutTermination): Renamed from
CanSendInvalidAsyncMessageWithoutTermination.
(IPCTestingAPI.CanSendInvalidSyncMessageToUIProcessWithoutTermination): Renamed from
CanSendInvalidMessageWithoutTermination.
(IPCTestingAPI.CanSendSyncMessageToGPUProcess): Added.
(IPCTestingAPI.CanSendAsyncMessageToGPUProcess): Added.
(IPCTestingAPI.CanSendInvalidAsyncMessageToGPUProcessWithoutTermination): Added.
- 1:07 PM Changeset in webkit [276732] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r276658.
https://bugs.webkit.org/show_bug.cgi?id=225161
Introduced perf regression
Reverted changeset:
"Enforce IOKit filtering"
https://bugs.webkit.org/show_bug.cgi?id=223937
https://trac.webkit.org/changeset/276658
- 1:03 PM Changeset in webkit [276731] by
-
- 2 edits in trunk/LayoutTests
[ Win ] 4 http/tests/security/contentSecurityPolicy/ tests are failing
https://bugs.webkit.org/show_bug.cgi?id=225071
<rdar://problem/77172923>
Reviewed by Jonathan Bedard.
- http/tests/resources/redirect.py:
(add_cache_control):
(addCacheControl): Deleted.
- 12:59 PM Changeset in webkit [276730] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r275267) Network process crashes in Data::adoptMap
https://bugs.webkit.org/show_bug.cgi?id=225159
<rdar://77066555>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-28
Reviewed by Geoffrey Garen.
There was a missing check to see if mapping was successful.
- NetworkProcess/cache/NetworkCacheData.cpp:
(WebKit::NetworkCache::Data::mapToFile const):
- 12:35 PM Changeset in webkit [276729] by
-
- 8 edits2 adds in trunk
Fine-tune some more selection behaviors in image overlays
https://bugs.webkit.org/show_bug.cgi?id=225121
Reviewed by Tim Horton.
Source/WebCore:
Make some additional minor refinements to selection behaviors in image overlays.
Test: fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2.html
DragAndDropTests.DragSelectedTextInImageOverlay
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithImageExtractionResult):
Unless
-webkit-user-select: none;is explicitly set, make each of the text containers under each line have
-webkit-user-select: all;, so that text selection snaps to the boundaries of each piece of text.
- page/DragController.cpp:
(WebCore::DragController::startDrag):
Drive-by fix: avoid dragging image overlay text out as rich text.
- page/EventHandler.cpp:
(WebCore::nodeToSelectOnMouseDownForNode):
Make an exception for image overlay text, such that we don't select text upon handling a "mousedown" event, even
though the text has-webkit-user-select: all;. Also, deployRefPtrin a few places while I'm here.
(WebCore::expandSelectionToRespectSelectOnMouseDown):
Drive-by fix: deploy
RefPtrin a few places.
Tools:
Add an API test to verify that selected text inside image overlays is dragged out as plain text only.
- TestWebKitAPI/Tests/WebKit/simple-image-overlay.html:
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
(TEST):
LayoutTests:
Add a new layout test to verify that text selection expands to contain all text underneath selected text
containers.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2-expected.html: Added.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2.html: Added.
- 12:26 PM Changeset in webkit [276728] by
-
- 5 edits in trunk/LayoutTests/imported/w3c
[css-grid] Accurize expected result to 0.5 pixel for some contentSpaceAround tests in abspos
https://bugs.webkit.org/show_bug.cgi?id=225145
Patch by Ziran Sun <Ziran Sun> on 2021-04-28
Reviewed by Manuel Rego Casasnovas.
There is a 0.5 pixel difference on expected data width for some contentSpaceAround tests in grid
among platforms. This change is to sync the change in WPT and update expectation files.
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-001-expected.txt:
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-001.html:
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001-expected.txt:
- web-platform-tests/css/css-grid/abspos/grid-positioned-items-content-alignment-rtl-001.html:
- 12:00 PM Changeset in webkit [276727] by
-
- 8 edits in trunk
Add SPI to query whether a URL would be upgraded to HTTPS
https://bugs.webkit.org/show_bug.cgi?id=225154
<rdar://77269904>
Reviewed by Geoff Garen.
Source/WebCore:
Covered by API tests.
- contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::shouldBeMadeSecure):
- contentextensions/ContentExtensionsBackend.h:
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(+[WKWebView _shouldUpgradeToHTTPS:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
(TEST):
- 11:53 AM Changeset in webkit [276726] by
-
- 2 edits in trunk/Source/WebCore
[clang] Remove implicit cast related warnings
https://bugs.webkit.org/show_bug.cgi?id=225139
Reviewed by Darin Adler.
Added explicit cast to suppress warning.
Behavior is not changed from implicit cast.
No new tests because there's no behavior change.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::removeTrailingLetterSpacing):
- 11:15 AM Changeset in webkit [276725] by
-
- 1 copy in tags/Safari-607.3.13
Tag Safari-607.3.13.
- 11:12 AM Changeset in webkit [276724] by
-
- 8 edits2 adds in branches/safari-607-branch/Source/WebCore
Apply patch. rdar://problem/77237713
- 11:07 AM Changeset in webkit [276723] by
-
- 7 edits in branches/safari-607-branch/Source
Versioning.
WebKit-7607.3.13
- 10:56 AM Changeset in webkit [276722] by
-
- 2 edits in trunk/Tools
[configure-xcode-for-embedded-development] Support Xcode 12.5
https://bugs.webkit.org/show_bug.cgi?id=225127
Reviewed by Stephanie Lewis.
- Scripts/configure-xcode-for-embedded-development: Add definition of
com.apple.package-type.mach-o-executable and com.apple.product-type.tool instead
of copying from the MacOS SDK.
- 10:27 AM Changeset in webkit [276721] by
-
- 7 edits in trunk/Source/WebKit
[iOS] [GPU] The UI process should issue mach sandbox extensions to 'iconservices'
https://bugs.webkit.org/show_bug.cgi?id=225111
<rdar://problem/68366888>
Reviewed by Per Arne Vollan.
In Bug 205443 we did work to extend access to non-web-browsing services to the WebContent process only when
needed. This was lost in the transition to the GPU Process, and should be added back.
This change does the following:
- Adds sandbox extension handles for the iconservices (and related) services to the GPU process creation parameters.
- Updates the GPUProcessProxy to extend iconservices when waranted, and add them to the creation parameter structure.
- Updates the GPUProcess to consume the extensions (when granted).
- Makes a GPU process-specific version of the 'nonBrowserServices' static function for use by GPUProcessProxy. This is needed because fewer services are needed in the GPU process than in the WebContent process.
- Removes unused telemetry from the WebContent process sandbox.
- Switches the GPU process sandbox to deny iconservices (and related) by default, and to consume the extensions instead.
Tested by exisiting TestWebKitAPI tests.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::initializeGPUProcess):
- GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):
- GPUProcess/GPUProcessCreationParameters.h:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::GPUProcessProxy):
- 10:19 AM Changeset in webkit [276720] by
-
- 6 edits in trunk
Remove support for NPAPI plugins in WebView
https://bugs.webkit.org/show_bug.cgi?id=224449
Patch by Alex Christensen <achristensen@webkit.org> on 2021-04-28
Reviewed by Geoffrey Garen.
Source/WebKitLegacy/mac:
In r275912 I turned off all plugin support in WebView after looking into use of NP_Initialize, the entry point for NPAPI plugins.
That was too aggressive, as we found some use of the older WebKit plugin entry point, plugInViewWithArguments, and reverted in r276652.
This cuts out only support for NPAPI plugins for now.
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin):
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
- 10:13 AM Changeset in webkit [276719] by
-
- 46 edits1 add in trunk
Fix exception assertions in light of the TerminationException.
https://bugs.webkit.org/show_bug.cgi?id=225128
rdar://76694909
Reviewed by Robin Morisset.
JSTests:
- stress/suppress-TerminationException-in-JSFunction-prototypeForConstruction.js: Added.
Source/JavaScriptCore:
Some pre-existing functions assertNoException() or releaseAssertNoException().
These assertion may not be valid anymore in light of the TerminationException, and
require some fix up:
- If it makes sense to convert the assertion into an exception check, then do so.
For example, see objectPrototypeToString(), slow_path_create_this().
- If the assertion is at the end of a function just before it returns, or if the remaining code in the function will not be affected by the pending exception, then we can replace the assertion as follows:
assertNoException() => assertNoExceptionExceptTermination()
releaseAssertNoException() => releaseAssertNoExceptionExceptTermination()
For example, see objectPrototypeHasOwnProperty(), JSObject::getOwnNonIndexPropertyNames().
- If the assertion is in a function where perf is not absolutely critical, and the function isn't calling any other functions that will re-enter the VM or potentially get stuck in an infinite loop, then we can use a DeferTermination scope to defer termination.
For example, see Debugger::pauseIfNeeded(), SamplingProfiler::StackFrame::nameFromCallee().
- If the assertion is in an initializer function is only run once and adding exception checks would complicate the code more than it's worth (an engineering judgement), then use a DeferTermination scope.
For example, see ProgramExecutable::initializeGlobalProperties(), setupAdaptiveWatchpoint().
Some leaf (or near-leaf) functions that currently DECLARE_CATCH_SCOPE() may also
fall under this category.
For example, see JSFunction::prototypeForConstruction().
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::addBigIntConstant):
- debugger/Debugger.cpp:
(JSC::Debugger::pauseIfNeeded):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- interpreter/Interpreter.cpp:
(JSC::notifyDebuggerOfUnwinding):
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::debug):
- interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::functionsOnStack):
- jsc.cpp:
(runWithOptions):
- parser/ParserArena.cpp:
(JSC::IdentifierArena::makeBigIntDecimalIdentifier):
- runtime/AbstractModuleRecord.cpp:
(JSC::AbstractModuleRecord::finishCreation):
- runtime/CommonSlowPaths.cpp:
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::sanitizedMessageString):
(JSC::ErrorInstance::sanitizedNameString):
- runtime/ExceptionScope.h:
(JSC::ExceptionScope::assertNoExceptionExceptTermination):
(JSC::ExceptionScope::releaseAssertNoExceptionExceptTermination):
- runtime/JSFunction.cpp:
(JSC::JSFunction::prototypeForConstruction):
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
- runtime/JSGlobalObject.cpp:
(JSC::setupAdaptiveWatchpoint):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::defineOwnProperty):
(JSC::JSGlobalObject::tryInstallSpeciesWatchpoint):
- runtime/JSModuleLoader.cpp:
(JSC::printableModuleKey):
- runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::finishCreation):
- runtime/JSObject.cpp:
(JSC::JSObject::ordinaryToPrimitive const):
(JSC::JSObject::getOwnNonIndexPropertyNames):
- runtime/JSTemplateObjectDescriptor.cpp:
(JSC::JSTemplateObjectDescriptor::createTemplateObject):
- runtime/JSTypedArrayViewPrototype.cpp:
- runtime/ObjectPrototype.cpp:
(JSC::objectPrototypeHasOwnProperty):
(JSC::objectPrototypeToString):
- runtime/ProgramExecutable.cpp:
(JSC::ProgramExecutable::initializeGlobalProperties):
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::StackFrame::nameFromCallee):
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Source/WebCore:
A few changes plus rebasing bindings test results.
- Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::installReplacement):
- bindings/js/JSDOMExceptionHandling.cpp:
(WebCore::propagateExceptionSlowPath):
(WebCore::throwNotSupportedError):
(WebCore::throwInvalidStateError):
(WebCore::throwSecurityError):
(WebCore::throwDOMSyntaxError):
(WebCore::throwDataCloneError):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/js/JSDOMGlobalObjectTask.cpp:
- bindings/js/JSDOMMapLike.cpp:
(WebCore::getBackingMap):
- bindings/js/JSDOMSetLike.cpp:
(WebCore::getBackingSet):
- bindings/js/JSMicrotaskCallback.h:
(WebCore::JSMicrotaskCallback::call):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readTerminal):
- bindings/js/WritableStream.cpp:
(WebCore::WritableStreamInternal::callFunction):
(WebCore::WritableStream::lock):
- bindings/scripts/CodeGeneratorJS.pm:
(GeneratePut):
(GeneratePutByIndex):
(GenerateDefineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifier::put):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
(WebCore::JSTestNamedSetterNoIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingException::put):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):
(WebCore::JSTestNamedSetterThrowingException::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifier::put):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
(WebCore::JSTestNamedSetterWithIdentifier::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetter::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::defineOwnProperty):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::putByIndex):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::defineOwnProperty):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):
- 9:54 AM Changeset in webkit [276718] by
-
- 8 edits in trunk/Source/WebCore
Remove redundant RenderObject::isInFlowRenderFragmentedFlow
https://bugs.webkit.org/show_bug.cgi?id=225152
Reviewed by Antti Koivisto.
Now that RenderObject::isOutOfFlowRenderFragmentedFlow() is gone (r276707), isInFlowRenderFragmentedFlow() is really just a isRenderFragmentedFlow() check.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGaps):
(WebCore::isChildHitTestCandidate):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::updateStylesForColumnChildren):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation const):
- rendering/RenderBox.h:
(WebCore::RenderBox::canHaveOutsideFragmentRange const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly const):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updatePagination):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderObject.h:
(WebCore::RenderObject::isRenderGrid const):
(WebCore::RenderObject::isInFlowRenderFragmentedFlow const): Deleted.
- rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::multiColumnDescendantInserted):
- 9:29 AM Changeset in webkit [276717] by
-
- 6 edits2 adds in trunk
Set audio transceiver nMax to 1
https://bugs.webkit.org/show_bug.cgi?id=225149
<rdar://75956639>
Reviewed by Alex Christensen.
Source/WebCore:
Implement step 8.4 of https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtransceiver and set nMax for audio to 1.
Test: webrtc/audio-addTransceiver.html
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::createTransceiverBackends):
(WebCore::LibWebRTCMediaEndpoint::addTransceiver):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
(WebCore::fromRtpTransceiverInit):
- Modules/mediastream/libwebrtc/LibWebRTCUtils.h:
LayoutTests:
- webrtc/audio-addTransceiver-expected.txt: Added.
- webrtc/audio-addTransceiver.html: Added.
- 8:44 AM Changeset in webkit [276716] by
-
- 4 edits in trunk/LayoutTests
Use will-change: opacity instead of will-change: transform in fixed-inside-sticky-no-stacking-context-2.html
https://bugs.webkit.org/show_bug.cgi?id=224910
Patch by Tim Nguyen <ntim@apple.com> on 2021-04-28
Reviewed by Antti Koivisto.
will-change: transform creates a containing block per-spec, which would affect this test, so we use a property
that can create a stacking context, but not a containing block (will-change: opacity).
- platform/ios-simulator-wk2/TestExpectations:
- scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html:
- scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2-expected.html:
- 8:44 AM Changeset in webkit [276715] by
-
- 37 edits in trunk/Source
Drop ModernUnprefixedWebAudio & AudioWorklet experimental feature flags
https://bugs.webkit.org/show_bug.cgi?id=225130
Reviewed by Eric Carlson.
Drop ModernUnprefixedWebAudio & AudioWorklet experimental feature flags now that
these features have shipped. It also doesn't make sense to disable them given
that the prefixed WebAudio API is no longer exposed and there is no feature flag
to turn the legacy prefixed API back on.
Source/WebCore:
- Modules/webaudio/AnalyserNode.idl:
- Modules/webaudio/AudioBuffer.idl:
- Modules/webaudio/AudioBufferSourceNode.idl:
- Modules/webaudio/AudioContext.idl:
- Modules/webaudio/AudioParamMap.idl:
- Modules/webaudio/AudioProcessingEvent.idl:
- Modules/webaudio/AudioWorklet.idl:
- Modules/webaudio/AudioWorkletNode.idl:
- Modules/webaudio/AudioWorkletNodeOptions.idl:
- Modules/webaudio/BaseAudioContext.idl:
- Modules/webaudio/BiquadFilterNode.idl:
- Modules/webaudio/ChannelMergerNode.idl:
- Modules/webaudio/ChannelSplitterNode.idl:
- Modules/webaudio/ConstantSourceNode.idl:
- Modules/webaudio/ConstantSourceOptions.idl:
- Modules/webaudio/ConvolverNode.idl:
- Modules/webaudio/DelayNode.idl:
- Modules/webaudio/DynamicsCompressorNode.idl:
- Modules/webaudio/GainNode.idl:
- Modules/webaudio/IIRFilterNode.idl:
- Modules/webaudio/MediaElementAudioSourceNode.idl:
- Modules/webaudio/MediaStreamAudioDestinationNode.idl:
- Modules/webaudio/MediaStreamAudioSourceNode.idl:
- Modules/webaudio/OfflineAudioContext.idl:
- Modules/webaudio/OscillatorNode.idl:
- Modules/webaudio/PannerNode.idl:
- Modules/webaudio/PeriodicWave.idl:
- Modules/webaudio/StereoPannerNode.idl:
- Modules/webaudio/WaveShaperNode.idl:
Source/WebKitLegacy/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences modernUnprefixedWebAudioEnabled]): Deleted.
(-[WebPreferences setModernUnprefixedWebAudioEnabled:]): Deleted.
(-[WebPreferences audioWorkletEnabled]): Deleted.
(-[WebPreferences setAudioWorkletEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 8:36 AM Changeset in webkit [276714] by
-
- 4 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: CSS Grid - measure usage of grid overlay options
https://bugs.webkit.org/show_bug.cgi?id=225060
<rdar://75843294>
Reviewed by BJ Burg.
Add telemetry instrumentation to track grid overlay configurations and time spent using them.
- UserInterface/Base/Main.js:
(WI.contentLoaded):
- UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js: Added.
(WI.GridOverlayConfigurationDiagnosticEventRecorder):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.get eventSamplingInterval):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.setup):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.teardown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayShown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleGridOverlayHidden):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype.handleEvent):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._startEventSamplingTimer):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._stopEventSamplingTimer):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._sampleCurrentOverlayConfiguration):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._didObserveUserInteraction):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowFocus):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowBlur):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowKeyDown):
(WI.GridOverlayConfigurationDiagnosticEventRecorder.prototype._handleWindowMouseDown):
- UserInterface/Controllers/OverlayManager.js:
(WI.OverlayManager.prototype.hasVisibleGridOverlays):
- UserInterface/Main.html:
- 8:29 AM WebKitGTK/2.32.x edited by
- (diff)
- 8:29 AM Changeset in webkit [276713] by
-
- 9 edits in releases/WebKitGTK/webkit-2.32/Source
Merge r275871 - [GStreamer] CaptureDevice monitor used from UIProcess
https://bugs.webkit.org/show_bug.cgi?id=222888
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-13
Source/WebCore:
Reviewed by Youenn Fablet .
Move the device observer infrastructure from the WebKit UserMediaProcessManager to the
RealtimeMediaSourceCenter.
- platform/mediastream/CaptureDevice.h:
(WebCore::haveDevicesChanged):
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
(WebCore::RealtimeMediaSourceCenter::Observer::~Observer):
(WebCore::RealtimeMediaSourceCenter::addDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::removeDevicesChangedObserver):
(WebCore::RealtimeMediaSourceCenter::captureDevicesChanged):
(WebCore::RealtimeMediaSourceCenter::triggerDevicesChangedObservers):
(WebCore::RealtimeMediaSourceCenter::setDevicesChangedObserver): Deleted.
- platform/mediastream/RealtimeMediaSourceCenter.h:
(WebCore::RealtimeMediaSourceCenter::Observer::devicesChanged):
Source/WebKit:
Reviewed by Youenn Fablet.
GStreamer ports aim to reduce usage of the GStreamer library in the UIProcess and thus
should not relay capture devicechange monitoring to the UIProcess. For the long term we plan
to migrate media processing to the GPUProcess but for now we have to maintain the media
pipelines in the WebProcess. Initializing GStreamer in multiple processes (including the
UIProcess) has a significant performance impact on embedded platforms, that's why we try to
avoid it as much as possible.
The device monitoring code from the UserMediaProcessManager was partly moved to the
RealtimeMediaSourceCenter so that it can be easily reused by GStreamer ports from the
UserMediaPermissionRequestManager.
- UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::UserMediaProcessManager):
(WebKit::UserMediaProcessManager::updateCaptureDevices):
(WebKit::UserMediaProcessManager::devicesChanged):
(WebKit::UserMediaProcessManager::beginMonitoringCaptureDevices):
- UIProcess/UserMediaProcessManager.h:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::UserMediaPermissionRequestManager):
(WebKit::UserMediaPermissionRequestManager::updateCaptureDevices):
(WebKit::UserMediaPermissionRequestManager::DeviceObserver::devicesChanged):
(WebKit::UserMediaPermissionRequestManager::addDeviceChangeObserver):
- WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
(WebKit::UserMediaPermissionRequestManager::DeviceObserver::DeviceObserver):
- 8:20 AM Changeset in webkit [276712] by
-
- 2 edits in trunk/Source/WebKit
Crash under GPUProcessProxy::getGPUProcessConnection()
https://bugs.webkit.org/show_bug.cgi?id=224017
<rdar://75146104>
Reviewed by Darin Adler.
The crash would happen when replyToPendingMessages() get called in the AuxiliaryProcessProxy
destructor and there would be a pending getGPUProcessConnection() IPC. The lambda in
WebProcessPool::getGPUProcessConnection() would check if a WeakPtr to the WebProcessPool is
valid before callingensureGPUProcess().getGPUProcessConnection(). However, at this point,
the WebProcessPool destructor is still running so the WeakPtr is still valid but
ensureGPUProcess().getGPUProcessConnection()will crash because the GPUProcessProxy
destructor has already run.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
Drop code that was causing the GPUProcessProxy to reply to all its pending IPC messages whenenever
a WebProcessPool gets destroyed. This is incorrect since a GPUProcessProxy may be shared by several
WebProcessPool objects. Note that the AuxiliaryProcessProxy destructor already takes care of
calling replyToPendingMessages().
(WebKit::WebProcessPool::getGPUProcessConnection):
Protect the WebProcessPool is the lambda to prevent the case where this lambda gets called and the
WebProcessPool & GPUProcessProxy are in the middle of destruction.
- 7:33 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:33 AM Changeset in webkit [276711] by
-
- 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275596 - [GStreamer] Only seek to change the rate un updatePlaybackRate() when needed
https://bugs.webkit.org/show_bug.cgi?id=224235
Reviewed by Alicia Boya Garcia.
A seek is used by MediaPlayerPrivateGStreamer to update the playback
rate used in the pipeline. There's a special case when the rate is 0.0.
This actually means "paused" and, when set, the pipeline is changed to
PAUSED and no updatePlaybackRate() call is made because of an early
return (and therefore, no seek). When the rate is restored to a
non-zero value, the pipeline is set again to PLAYING, but a
call to updatePlaybackRate() is done, which implies an unconditional
seek.
It should be possible to do the seek in updatePlaybackRate() only if the
rate changed with respect to the original one, instead of always doing
it. This would avoid unneeded seeks, which are complex operations that
can trigger collateral issues such as the one addressed in
https://bugs.webkit.org/show_bug.cgi?id=223742.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate): Only seek when the playback rate hasn't changed.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Document m_lastPlaybackRate purpose.
- 7:31 AM Changeset in webkit [276710] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275757 - Unreviewed, GStreamer Thunder decryptor build fix after r275599
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt):
- 7:31 AM Changeset in webkit [276709] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275654 - Unreviewed. Fixed build warning.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: Avoid C-linkage warning.
- 7:31 AM WebKitGTK/2.32.x edited by
- (diff)
- 7:31 AM Changeset in webkit [276708] by
-
- 11 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275599 - [EME][GStreamer] Abort decryptor operations immediately and without errors on flush
https://bugs.webkit.org/show_bug.cgi?id=223742
Reviewed by Xabier Rodriguez-Calvar.
A decryptor transformInPlace() operation can cause potentially long waits in
two situations:
- transformInPlace() is waiting to get the cdmProxy.
- The CDMProxy::decrypt() method is internally waiting for a specific key to become available.
If a seek operation is performed during those long waits, the main thread will
be blocked until the seek finishes the conditions those long waits are waiting
for will never be fulfilled (because the operations that complete them happen
in the main thread, which is blocked), the internal wait timeouts will trigger
and the decoder will trigger an unrecoverable error.
The solution for this is to break the waits by issuing the right notifications,
and to detect the flushes performed by the seek, distinguising this special
"abort" case from a regular error, so that the situation is no longer
unrecoverable.
This solution involves changes in several layers. A public
CDMProxy::abortWaitingForKey() method is exposed to allow the decryptor to
awake the inner waitFor() that checks for the key. The cdmProxy wait is also
awaken in case there's no cdmProxy available yet.
In order to distinguish if the awakenings are caused by real errors (no
cdmProxy, no key available) or by a flush operation (caused by the seek), the
decryptor first needs to keep track of the "flushing" state and allow other
objects to know about it. CDMProxy is one of those objects, but due to layer
limitations it can't directly ask about it to the decryptor (it can't "see"
it).
A new CDMProxyDecryptionClient interface is created, and the decryptor will
hold an implementation of it (as CDMProxyDecryptorClientImplementation).
CDMProxy can then know the client isAborting(), and the client will know the
decryptor and will ask about it.
As the pipeline, and thus the decryptor, can be destroyed at any moment,
the client holds a WeakPtr to the decryptor and will only ask if isAborting()
if the pointer is still alive.
- platform/encryptedmedia/CDMProxy.cpp:
(WebCore::CDMProxy::abortWaitingForKey const): Notify waiting threads.
(WebCore::CDMProxy::tryWaitForKeyHandle const): Take a client and ask it if it's aborting.
(WebCore::CDMProxy::getOrWaitForKeyHandle const): Pass the client along.
(WebCore::CDMProxy::getOrWaitForKeyValue const): Ditto.
- platform/encryptedmedia/CDMProxy.h: Declaration and usage of the CDMProxyDecryptionClient interface.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:
(WebCore::CDMProxyClearKey::cencSetDecryptionKey): Pass the client along from the context.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Store client in the cencDecryptContext.
- platform/graphics/gstreamer/eme/CDMProxyThunder.cpp:
(WebCore::CDMProxyThunder::getDecryptionSession const): Pass the client along from the context.
(WebCore::CDMProxyThunder::decrypt): Abort operations aren't an error, so just trigger a warning if there's no session.
- platform/graphics/gstreamer/eme/CDMProxyThunder.h: Store client in DecryptionContext.
- platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(CDMProxyDecryptionClientImplementation::CDMProxyDecryptionClientImplementation): Implementation of the CDMProxyDecryptionClient interface.
(CDMProxyDecryptionClientImplementation::isAborting): Ask if the decryptor is flushing.
(constructed): Initialize the client.
(transformInPlace): Check the flush status after waiting for the CDMProxy and for the decryption performed by the subclasses. Release the lock when not needed.
(isCDMProxyAvailable): Renamed mutex to be more generic.
(attachCDMProxy): Ditto. Also renamed condition for the same reason.
(sinkEventHandler): Manage isFlushing status and awake waits for cdmProxy or for session depending on the lifecycle stage.
(webKitMediaCommonEncryptionDecryptIsFlushing): Expose isFlushing status.
(webKitMediaCommonEncryptionDecryptGetCDMProxyDecryptionClient): Return Weak reference to the client.
(changeState): Renamed condition.
(setContext): Renamed mutex.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: New getters for isFlushing and the client.
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
(decrypt): Ask for client to the superclass and store it in the context.
- 7:21 AM WebKitGTK/2.32.x edited by
- (diff)
- 6:30 AM Changeset in webkit [276707] by
-
- 7 edits in trunk/Source/WebCore
Remove unused RenderObject::isOutOfFlowRenderFragmentedFlow
https://bugs.webkit.org/show_bug.cgi?id=225133
Reviewed by Simon Fraser.
Out-of-flow fragmented flows were originally added for CSS regions (r91760) to provide
an anonymous container for the region content. This is not to be confused with a multi-column box with
"position: absolute/fixed" (such content would still generate an in-flow fragment container).
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeVisibleRectInContainer const):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint const):
- rendering/RenderElement.h:
(WebCore::RenderElement::canContainFixedPositionObjects const):
- rendering/RenderLayer.cpp:
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::hitTestContents const):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
(WebCore::RenderLayer::isRenderFragmentedFlow const):
(WebCore::RenderLayer::isOutOfFlowRenderFragmentedFlow const): Deleted.
- rendering/RenderObject.h:
(WebCore::RenderObject::isInFlowRenderFragmentedFlow const):
(WebCore::RenderObject::isOutOfFlowRenderFragmentedFlow const): Deleted.
- 6:30 AM Changeset in webkit [276706] by
-
- 14 edits2 adds in trunk
Asserting that function or variable is accessed in a certain thread should be simpler and more robust
https://bugs.webkit.org/show_bug.cgi?id=224971
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-28
Reviewed by Darin Adler.
Source/WebKit:
Use ThreadAssertions in RemoteGraphicsContextGL implementations
as an example.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::~RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::stopListeningForIPC):
(WebKit::RemoteGraphicsContextGL::displayWasReconfigured):
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
(WebKit::RemoteGraphicsContextGL::didComposite):
(WebKit::RemoteGraphicsContextGL::forceContextLost):
(WebKit::RemoteGraphicsContextGL::dispatchContextChangedNotification):
(WebKit::RemoteGraphicsContextGL::reshape):
(WebKit::RemoteGraphicsContextGL::prepareForDisplay):
(WebKit::RemoteGraphicsContextGL::synthesizeGLError):
(WebKit::RemoteGraphicsContextGL::getError):
(WebKit::RemoteGraphicsContextGL::ensureExtensionEnabled):
(WebKit::RemoteGraphicsContextGL::notifyMarkContextChanged):
(WebKit::RemoteGraphicsContextGL::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintImageDataToImageBuffer):
(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
Source/WTF:
Adds support for more fine-grained thread assertion than
ASSERT(isMainThread()) / ASSERT(!isMainThread())
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Compiler.h:
Add NO_UNIQUE_ADDRESS which can be used to declare members that are empty in
RELEASE builds. The declaration avoids increasing the size of the enclosing type.
This should be used with ThreadAssertion:
class MyThreadAware {
....
NO_UNIQUE_ADDRESS ThreadAssertion m_ownerThread;
};
- wtf/ThreadAssertions.h: Added.
Add ThreadAssertion class that can be held as a member of a type.
This allows consistent assertions that the code in the type
runs in the expected thread.
Add NamedAssertion& WTF::mainThread.
Add NamedAssertion& WTF::mainRunLoop.
These are only to be used in thread safety analysis phase. These are undefined
symbols, it is an error to reference them.
Adds functions assertIsMainThread() and assertIsMainRunLoop() to replace
patterns of ASSERT(isMainThread()), ASSERT(isMainRunLoop().
In addition to behaving as the direct ASSERT behaves, the functions
enable compile-time thread safety analysis to know that the calling
scope has the assertions. These can be optionally then used in the
function and member signatures to require the assertions.
Tools:
Add simple tests to make sure code in ThreadAssertions.h
compiles.
- Scripts/generate-gpup-webgl:
Use ThreadAssertions in RemoteGraphicsContextGL implementation
as an example.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/ThreadAssertionsTest.cpp: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::WTF_REQUIRES_LOCK):
- 5:25 AM Changeset in webkit [276705] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fixing GTK and WPE build with external holepunch enabled after r269907.
- platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h: update signature of load method.
- 3:42 AM Changeset in webkit [276704] by
-
- 1 edit1 delete in trunk/Tools
Delete unused iExploder
https://bugs.webkit.org/show_bug.cgi?id=225118
Rubber-stamped by Alexey Proskuryakov.
- iExploder: Removed.
- 3:35 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:36 AM Changeset in webkit [276703] by
-
- 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore
Merge r275528 - [GStreamer] At EOS, change position to match duration, not the other way around.
https://bugs.webkit.org/show_bug.cgi?id=224237
Reviewed by Philippe Normand.
The criteria used to check if playback has finished is currentTime >=
duration. Currently MediaPlayerPrivateGStreamer::didEnd() ensures this
in an awkward way: by changing the duration so that it matches
currentTime, rather than the other way around.
This meant a duration change at the end of playback most of the time,
with a slightly different duration each time, since currentTime is
cached periodically.
This patch reworks that function to work more naturally and less racy:
First, only if the stream doesn't have a set duration (e.g. live
stream), we set a duration to currentTime, as defined in the spec.
Second, at EOS we update currentTime to match duration, rather than
the other way around.
This patch doesn't introduce changes in test results.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
- 2:36 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:36 AM Changeset in webkit [276702] by
-
- 4 edits in releases/WebKitGTK/webkit-2.32
Merge r275634 - [GTK] webkit://gpu should print runtime libwpe and wpebackend-fdo versions
https://bugs.webkit.org/show_bug.cgi?id=224298
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-04-07
Reviewed by Adrian Perez de Castro.
.:
- Source/cmake/OptionsGTK.cmake:
Source/WebKit:
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):
- 2:36 AM Changeset in webkit [276701] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.32
Merge r275821 - [MSE][GStreamer] Crash in WebCore::PlaybackPipeline::addSourceBuffer when setting duration and preload is set to none
https://bugs.webkit.org/show_bug.cgi?id=224260
Patch by Philippe Normand <pnormand@igalia.com> on 2021-04-12
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Disable delayed loading for the GStreamer MSE player, we want the MSE source element to be
configured ASAP, otherwise the playback pipeline will fail in various ways (duration
notifications sent too early, crashes in addSourceBuffer, crashes in attachTracks, and so
on).
Test: media/media-source/media-source-no-preload-set-duration-crash.html
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
LayoutTests:
- media/media-source/media-source-no-preload-set-duration-crash-expected.txt: Added.
- media/media-source/media-source-no-preload-set-duration-crash.html: Added.
- 2:32 AM WebKitGTK/2.32.x edited by
- (diff)
- 2:32 AM Changeset in webkit [276700] by
-
- 6 edits1 copy in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore
Merge r275920 - Move cloneUBreakIterator declaration to IntlWorkaround.h
https://bugs.webkit.org/show_bug.cgi?id=224511
Reviewed by Yusuke Suzuki.
Follow up to r275856. There's ultimately no reason IntlWorkaround.cpp needs to be headerless;
this was tied to some confusion about how to successfully include ubrk.h in two different ways.
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/IntlSegmenter.cpp:
- runtime/IntlSegmenter.h:
- runtime/IntlSegments.cpp:
- runtime/IntlWorkaround.cpp:
- runtime/IntlWorkaround.h: Added.
- 2:32 AM Changeset in webkit [276699] by
-
- 6 edits1 add in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore
Merge r275856 - ICU 69 deprecates ubrk_safeClone in favor of ubrk_clone
https://bugs.webkit.org/show_bug.cgi?id=224093
Reviewed by Yusuke Suzuki.
In a shining example of "disappointing library practices", ICU 69 deprecates ubrk_safeClone in favor of
a new *draft* API ubrk_clone, meaning that no function with this functionality is exposed by default.
This patch introduces a function cloneUBreakIterator to abstract over this change; however, since we need to:
- confine the effects of disabling U_HIDE_DRAFT_API to a non-unified implementation file
- still be able to include ubrk.h from IntlSegmenter.h to instantiate ICUDeleter<ubrk_close> (*not*
clone!)
...the new helper function is introduced in a *headerless* implementation file, IntlWorkaround.cpp.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- runtime/IntlSegmenter.cpp:
(JSC::IntlSegmenter::segment const):
- runtime/IntlSegmenter.h:
- runtime/IntlSegments.cpp:
(JSC::IntlSegments::createSegmentIterator):
- runtime/IntlWorkaround.cpp: Added.
(JSC::cloneUBreakIterator):
- 1:51 AM Changeset in webkit [276698] by
-
- 8 edits2 adds in trunk
[selectors] Using a modifier key on an element makes it stop matching :focus-visible
https://bugs.webkit.org/show_bug.cgi?id=225075
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/focus-visible-021-expected.txt: Added.
- web-platform-tests/css/selectors/focus-visible-021.html: Added.
Source/WebCore:
When we used a modifier key on a element that was matching :focus-visible, we stopped matching :focus-visible.
That was wrong, we shouldn't just start matching :focus-visible when a modifier key is used but not the other way around.
This patches fixed that without doing any work if the element is already matching :focus-visible when the user type a key.
Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-021.html
- dom/Element.cpp:
(WebCore::shouldAlwaysHaveFocusVisibleWhenFocused): Helper method for inputs and content editable elements.
(WebCore::Element::setFocus): Use the new helper method.
(WebCore::Element::setHasFocusVisible): Add asserts to avoid setting/unsetting :focus-visible flag wrongly.
- dom/Node.cpp:
(WebCore::Node::isContentEditable const): Just mark as const.
(WebCore::Node::isContentRichlyEditable const): Ditto.
- dom/Node.h: Ditto.
- page/EventHandler.cpp:
(WebCore::EventHandler::internalKeyEvent): Don't do anything regarding :focus-visible flag if the element already matches :focus-visible.
LayoutTests:
- platform/ios/TestExpectations: Skip new test.
- 1:39 AM Changeset in webkit [276697] by
-
- 3 edits2 adds in trunk
Make img elements perform source selection even when not in the document.
https://bugs.webkit.org/show_bug.cgi?id=222801
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/embedded-content/the-img-element/source-media-outside-doc-expected.txt: Added.
- web-platform-tests/html/semantics/embedded-content/the-img-element/source-media-outside-doc.html: Added.
Source/WebCore:
The rules for image source selection in the HTML spec do not prevent
them from running when an <img> is not in the document. So we update
HTMLImageElement to call selectImageSource() when inserted into and
removed from a <picture> without checking whether it's in a document.
Test: imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/source-media-outside-doc.html
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::~HTMLImageElement): Remove useless call to
setPictureElement, since all it does is clear a weak pointer.
(WebCore::HTMLImageElement::insertedIntoAncestor):
(WebCore::HTMLImageElement::removedFromAncestor):
- 1:09 AM Changeset in webkit [276696] by
-
- 3 edits in trunk/Source/WebCore
Use a WeakHashSet for Document::m_mediaElements
https://bugs.webkit.org/show_bug.cgi?id=225082
Patch by Ian Gilbert <iang@apple.com> on 2021-04-28
Reviewed by Ryosuke Niwa.
Refactoring to use weak pointer instead of raw pointer.
No observable change of behavior.
- dom/Document.cpp:
(WebCore::Document::registerMediaElement):
(WebCore::Document::unregisterMediaElement):
(WebCore::Document::forEachMediaElement):
- dom/Document.h:
- 12:36 AM Changeset in webkit [276695] by
-
- 5 edits in trunk/Source
[WPE][GTK] More correct fixes for stack size issues on musl libc
https://bugs.webkit.org/show_bug.cgi?id=225099
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-04-28
Reviewed by Adrian Perez de Castro.
Partial revert https://bugs.webkit.org/show_bug.cgi?id=210068
Source/JavaScriptCore:
After fixing the thread stack issues in WTF properly, we can revert
the JSC options changes, which are actually harmful since they result
in JSC being unstable. Previously, softReservedZoneSize was causing a
crash when set to 128K because of the main thread stack bounds, and
this is now fixed. We can keep the maxPerThreadStackUsage at 5M as
well; there is no fundamental difference from how things are done on
glibc anymore.
- runtime/OptionsList.h:
Source/WTF:
While the changes in r236306 stopped JSC from crashing outright,
they are not correct, since they also make it rather unstable.
To counter this, increase stack size for threads on Linux with
non-glibc/bionic libcs to 1 megabyte, which is a robust enough
value that should always be sufficient.
While at it, the previous approach to musl thread stack size was
breaking use of DEFAULT_THREAD_STACK_SIZE_IN_KB (if defined) as
well as not properly taking care of the unused parameter. Move
the code to a more appropriate place, which solves these problems.
All this is however not enough, since there is still the main thread;
using pthread_attr_getstack on a main thread is not reliable since main
thread stacks are allowed to grow, and we expect the bounds to always
be constant. On glibc, this already behaved right, but e.g. on musl
(and possibly other C libraries) this is not necessarily the case - at
the point of the check, it was returning 128k (since that's the initial
size reserved by the kernel). Therefore, do the same thing as on Darwin
and use process resource limits to get the boundary on Linux as well.
This results in JavaScriptCore behaving correctly on musl libc and
allows us to drop the options special-casing that was in place.
- wtf/StackBounds.cpp:
(WTF::StackBounds::currentThreadStackBoundsInternal):
- wtf/Threading.cpp:
(WTF::stackSize):
- 12:07 AM Changeset in webkit [276694] by
-
- 33 edits in trunk/LayoutTests
Fix some test typos.
https://bugs.webkit.org/show_bug.cgi?id=225040
Reviewed by Ryosuke Niwa.
- http/tests/canvas/color-fonts/ctm-sbix-2.html:
- http/tests/canvas/color-fonts/ctm-sbix-3.html:
- http/tests/canvas/color-fonts/ctm-sbix-4.html:
- http/tests/canvas/color-fonts/ctm-sbix.html:
- http/tests/canvas/color-fonts/fill-color-sbix-2.html:
- http/tests/canvas/color-fonts/fill-color-sbix-3.html:
- http/tests/canvas/color-fonts/fill-color-sbix-4.html:
- http/tests/canvas/color-fonts/fill-color-sbix.html:
- http/tests/canvas/color-fonts/fill-color-shadow-ctm-sbix-expected.html:
- http/tests/canvas/color-fonts/fill-color-shadow-ctm-sbix.html:
- http/tests/canvas/color-fonts/fill-color-shadow-sbix-expected.html:
- http/tests/canvas/color-fonts/fill-color-shadow-sbix.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-4.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix.html:
- http/tests/canvas/color-fonts/linedash-sbix-expected.html:
- http/tests/canvas/color-fonts/linedash-sbix.html:
- http/tests/canvas/color-fonts/stroke-color-sbix-expected.html:
- http/tests/canvas/color-fonts/stroke-color-sbix.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-ctm-sbix-expected.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-ctm-sbix.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-sbix-expected.html:
- http/tests/canvas/color-fonts/stroke-color-shadow-sbix.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-4.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix.html:
- http/tests/canvas/color-fonts/text-sbix-2.html:
- http/tests/canvas/color-fonts/text-sbix-3.html:
- http/tests/canvas/color-fonts/text-sbix-4.html:
- http/tests/canvas/color-fonts/text-sbix.html:
- 12:00 AM Changeset in webkit [276693] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
ANGLE should be compiled with thread-safe statics
https://bugs.webkit.org/show_bug.cgi?id=224854
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-04-28
Reviewed by Kenneth Russell.
Compile ANGLE with normal thread-safe c++ local statics.
No known threading failures. Based on ad-hoc risk vs benefit
evaluation of today and after future merges, it appears
better to err in the side of caution.
- Configurations/Base.xcconfig: