Timeline
Feb 1, 2021:
- 11:54 PM Changeset in webkit [272192] by
-
- 2 edits in trunk/Source/WTF
ConcurrentPtrHashSet::contains() should be const.
https://bugs.webkit.org/show_bug.cgi?id=221241
Reviewed by Yusuke Suzuki.
- wtf/ConcurrentPtrHashSet.h:
- 11:46 PM Changeset in webkit [272191] by
-
- 8 edits in trunk/Source/JavaScriptCore
Sign m_offset in AssemblerLabel
https://bugs.webkit.org/show_bug.cgi?id=221237
Reviewed by Mark Lam.
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::labelForWatchpoint):
(JSC::ARM64Assembler::label):
(JSC::ARM64Assembler::getRelocatedAddress):
(JSC::ARM64Assembler::getDifferenceBetweenLabels):
(JSC::ARM64Assembler::getCallReturnOffset):
(JSC::ARM64Assembler::linkJump):
(JSC::ARM64Assembler::addressOf):
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::labelForWatchpoint):
(JSC::ARMv7Assembler::label):
(JSC::ARMv7Assembler::getRelocatedAddress):
(JSC::ARMv7Assembler::getDifferenceBetweenLabels):
(JSC::ARMv7Assembler::getCallReturnOffset):
(JSC::ARMv7Assembler::linkJump):
(JSC::ARMv7Assembler::linkCall):
(JSC::ARMv7Assembler::linkPointer):
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::Jump::link const):
(JSC::AbstractMacroAssembler::Jump::linkTo const):
- assembler/AssemblerBuffer.h:
(JSC::AssemblerLabel::AssemblerLabel):
(JSC::AssemblerLabel::operator=):
(JSC::AssemblerLabel::isSet const):
(JSC::AssemblerLabel::labelAtOffset const):
(JSC::AssemblerLabel::operator== const):
(JSC::AssemblerLabel::offset const):
(JSC::AssemblerLabel::setOffset):
- assembler/LinkBuffer.h:
(JSC::LinkBuffer::offsetOf):
(JSC::LinkBuffer::applyOffset):
- assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::labelForWatchpoint):
(JSC::MIPSAssembler::label):
(JSC::MIPSAssembler::getRelocatedAddress):
(JSC::MIPSAssembler::getDifferenceBetweenLabels):
(JSC::MIPSAssembler::getCallReturnOffset):
(JSC::MIPSAssembler::linkJump):
(JSC::MIPSAssembler::linkCall):
(JSC::MIPSAssembler::linkPointer):
- assembler/X86Assembler.h:
(JSC::X86Assembler::labelForWatchpoint):
(JSC::X86Assembler::label):
(JSC::X86Assembler::linkJump):
(JSC::X86Assembler::linkCall):
(JSC::X86Assembler::linkPointer):
(JSC::X86Assembler::getCallReturnOffset):
(JSC::X86Assembler::getRelocatedAddress):
(JSC::X86Assembler::getDifferenceBetweenLabels):
- 9:18 PM Changeset in webkit [272190] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION: Fullscreen HTML5 video subtitles/captions are shown twice
https://bugs.webkit.org/show_bug.cgi?id=214634
Reviewed by Eric Carlson.
When we need to hide a text track representation, we can hide it directly. But, when we
need to show(set "hidden" to false) a text track representation, we have to render it first.
Otherwise, the previously rendered content will flash for a short period of time.
Covered by manual test.
- html/shadow/MediaControlTextTrackContainerElement.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationImageIfNeeded):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationIfNeeded):
- 8:47 PM Changeset in webkit [272189] by
-
- 4 edits in trunk/Tools
Update Test262 bot to Big Sur
https://bugs.webkit.org/show_bug.cgi?id=218844
Reviewed by Yusuke Suzuki.
- CISupport/build-webkit-org/config.json:
- CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
- CISupport/build-webkit-org/steps_unittest_old.py:
- 7:23 PM Changeset in webkit [272188] by
-
- 6 edits in trunk/Source
[Cocoa] Disable interstitial events on AVPlayerItem.
https://bugs.webkit.org/show_bug.cgi?id=221215
Reviewed by Eric Carlson.
Source/WebCore:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
- 7:22 PM Changeset in webkit [272187] by
-
- 12 edits2 adds in trunk
[JSC] TypedArray#fill should be implemented in C++
https://bugs.webkit.org/show_bug.cgi?id=221182
Reviewed by Ross Kirsling.
JSTests:
- stress/bigint-typed-array-fill.js: Added.
(shouldBe):
- stress/typed-array-fill.js: Added.
(shouldBe):
Source/JavaScriptCore:
Since TypedArray#fill does not invoke callbacks, implementing it in C++ is better.
This removes several utility functions exposed in JS for TypedArray#fill implementation,
and makes TypedArray#fill simple.
- builtins/BuiltinNames.h:
- builtins/TypedArrayPrototype.js:
(globalPrivate.typedArrayClampArgumentToStartOrEnd): Deleted.
(fill): Deleted.
- bytecode/LinkTimeConstant.h:
- runtime/JSArrayBufferView.cpp:
(JSC::validateTypedArray):
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::genericTypedArrayViewProtoFuncFill):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObjectFunctions.cpp:
- runtime/JSGlobalObjectFunctions.h:
- runtime/JSTypedArrayViewPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSTypedArrayViewPrototype::finishCreation):
- runtime/JSTypedArrayViewPrototype.h:
- 7:11 PM Changeset in webkit [272186] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Gardening crashes common to both glib ports
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 6:55 PM Changeset in webkit [272185] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (iOS 14.2): Can't play html audio with muted attribute
https://bugs.webkit.org/show_bug.cgi?id=219295
<rdar://problem/71863148>
Reviewed by Eric Carlson.
In r266844, we added a power-saving feature that would disable the audio decoder for initially
muted media elements. However, this caused an issue for .mp3 files, where the duration of the
track is computed by the decoder, and not the parser. Since the goal of the power-saving feature
was to reduce the CPU cost for decoding a muted audio track on a <video> element, partially
revert this change by making it apply only to <video> elements and not <audio> ones.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
- 6:49 PM Changeset in webkit [272184] by
-
- 21 edits in trunk
[WebAuthn] Optimize _WKWebAuthenticationPanelDelegate for native API
https://bugs.webkit.org/show_bug.cgi?id=221125
<rdar://problem/71509141>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch mainly does the following few things:
- It connects the new SPI with the existing mock testing infrastructure such that we can mock test it.
- It adds a new mode in AuthenticatorManager to connect it to the new _WKWebAuthenticationPanelDelegate object.
- It adss a new SPI to _WKWebAuthenticationPanelDelegate: -[panel:requestLAContextForUserVerificationWithCompletionHandler:],
and adds a new method within _WKWebAuthenticationAssertionResponse to accept an LAContext from the caller to unlock
the keychain.
- It enables -[_WKWebAuthenticationPanel cancel] to use the new cancel method.
Covered by API tests.
- UIProcess/API/APIWebAuthenticationAssertionResponse.h:
Accepts a LAContext object.
- UIProcess/API/APIWebAuthenticationPanel.cpp:
(API::WebAuthenticationPanel::WebAuthenticationPanel):
(API::WebAuthenticationPanel::handleRequest):
(API::WebAuthenticationPanel::cancel const):
(API::WebAuthenticationPanel::setMockConfiguration):
- UIProcess/API/APIWebAuthenticationPanel.h:
- UIProcess/API/APIWebAuthenticationPanelClient.h:
(API::WebAuthenticationPanelClient::requestLAContextForUserVerification const):
Adds new SPI and mocking.
- UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationAssertionResponse.mm:
(-[_WKWebAuthenticationAssertionResponse setLAContext:]):
Accepts a LAContext object.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(-[_WKWebAuthenticationPanel setMockConfiguration:]):
- UIProcess/API/Cocoa/_WKWebAuthenticationPanelForTesting.h:
Adds new SPI and mocking.
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::handleRequest):
(WebKit::AuthenticatorManager::enableModernWebAuthentication):
(WebKit::AuthenticatorManager::enableNativeSupport):
(WebKit::AuthenticatorManager::authenticatorAdded):
(WebKit::AuthenticatorManager::requestLAContextForUserVerification):
(WebKit::AuthenticatorManager::runPresenter):
(WebKit::AuthenticatorManager::dispatchPanelClientCall const):
- UIProcess/WebAuthentication/AuthenticatorManager.h:
Adds a new mode to power the native API.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:
(WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient):
(WebKit::WebAuthenticationPanelClient::requestLAContextForUserVerification const):
Accepts a LAContext object.
- UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::verifyUser):
Adds new mocking functions.
- UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
Adds the new weak panel.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]):
(-[TestWebAuthenticationPanelDelegate panel:requestLAContextForUserVerificationWithCompletionHandler:]):
(TestWebKitAPI::WebCore::reset):
(TestWebKitAPI::TEST):
- 6:14 PM Changeset in webkit [272183] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION(r270637): Web Inspector: Filtering field no longer shows in Computed panel
https://bugs.webkit.org/show_bug.cgi?id=221001
Reviewed by Devin Rousso.
The filter bar keeps separate filters for the Rules and Computed panes. It is therefor incorrect to hide the
entire filter bar when showing multiple sidebars, instead hide the controls that have a common state between the
two panels (the Classes list).
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
(.multi-sidebar.showing-multiple > .sidebar > .panel.details:not(.style-rules) > .content > .pseudo-classes,):
- 6:10 PM Changeset in webkit [272182] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: add Box Model into Layout panel
https://bugs.webkit.org/show_bug.cgi?id=220987
Reviewed by BJ Burg.
Add Box Model section to the experimental Layout panel.
- UserInterface/Views/LayoutDetailsSidebarPanel.js:
(WI.LayoutDetailsSidebarPanel):
(WI.LayoutDetailsSidebarPanel.prototype.get minimumWidth):
(WI.LayoutDetailsSidebarPanel.prototype.inspect):
(WI.LayoutDetailsSidebarPanel.prototype.initialLayout):
(WI.LayoutDetailsSidebarPanel.prototype.layout):
(WI.LayoutDetailsSidebarPanel.prototype._nodeStylesRefreshed):
(WI.LayoutDetailsSidebarPanel.prototype._nodeStylesNeedsRefreshed):
- 5:03 PM Changeset in webkit [272181] by
-
- 2 edits in trunk/LayoutTests
[BigSur wk1] imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=221146
Unreviewed test gardening.
Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-01
- platform/mac-wk1/TestExpectations:
- 4:14 PM Changeset in webkit [272180] by
-
- 11 edits in trunk/Source/WebCore
Devirtualize InputType::supportsValidation()
https://bugs.webkit.org/show_bug.cgi?id=221216
Reviewed by Yusuke Suzuki.
InputType::supportsValidation() can just check the type. Use an OptionSet<> of exclusions
for clarity.
- html/ButtonInputType.cpp:
(WebCore::ButtonInputType::supportsValidation const): Deleted.
- html/ButtonInputType.h:
- html/HiddenInputType.cpp:
(WebCore::HiddenInputType::supportsValidation const): Deleted.
- html/HiddenInputType.h:
- html/ImageInputType.cpp:
(WebCore::ImageInputType::supportsValidation const): Deleted.
- html/ImageInputType.h:
- html/InputType.cpp:
(WebCore::InputType::supportsValidation const): Deleted.
- html/InputType.h:
(WebCore::InputType::supportsValidation const):
- html/ResetInputType.cpp:
(WebCore::ResetInputType::supportsValidation const): Deleted.
- html/ResetInputType.h:
- 4:09 PM Changeset in webkit [272179] by
-
- 2 edits in trunk/Source/WebKit
[WPE][GTK] flatpak-spawn subsandbox clears environment variables, breaks EphyPermissionsManager
https://bugs.webkit.org/show_bug.cgi?id=219325
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-01
Reviewed by Adrian Perez de Castro.
Manually forward all environment variables from the web process to the UI process.
EphyPermissionsManager is breaking because XDG directories are not set in the web process,
because flatpak-spawn launches subprocesses with the environment of the host system rather
than the environment of the parent process. But also, we really need to forward the entire
environment, because otherwise basic expected features like GST_DEBUG, G_MESSAGES_DEBUG, and
such will be broken.
- UIProcess/Launcher/glib/FlatpakLauncher.cpp:
(WebKit::flatpakSpawn):
- 2:56 PM Changeset in webkit [272178] by
-
- 11 edits in trunk/Source
Allow support for CAAnimationGroup
https://bugs.webkit.org/show_bug.cgi?id=221209
Reviewed by Dean Jackson, Sam Weinig and Simon Fraser.
In order to fix bug 219894, we need to use Core Animation's CAAnimationGroup and its
Source/WebCore:
setAnimations() method. This patch adds a new "Group" type to PlatformCAAnimation and
platform-specific integration for Windows and Cocoa ports.
- platform/graphics/ca/PlatformCAAnimation.cpp:
(WebCore::operator<<):
- platform/graphics/ca/PlatformCAAnimation.h:
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.h:
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::PlatformCAAnimationCocoa::PlatformCAAnimationCocoa):
(WebCore::PlatformCAAnimationCocoa::keyPath const):
(WebCore::PlatformCAAnimationCocoa::setTimingFunction):
(WebCore::PlatformCAAnimationCocoa::isAdditive const):
(WebCore::PlatformCAAnimationCocoa::setAdditive):
(WebCore::PlatformCAAnimationCocoa::valueFunction const):
(WebCore::PlatformCAAnimationCocoa::setValueFunction):
(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::copyFromValueFrom):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::copyToValueFrom):
(WebCore::PlatformCAAnimationCocoa::setValues):
(WebCore::PlatformCAAnimationCocoa::copyValuesFrom):
(WebCore::PlatformCAAnimationCocoa::setKeyTimes):
(WebCore::PlatformCAAnimationCocoa::copyKeyTimesFrom):
(WebCore::PlatformCAAnimationCocoa::setTimingFunctions):
(WebCore::PlatformCAAnimationCocoa::copyTimingFunctionsFrom):
(WebCore::PlatformCAAnimationCocoa::setAnimations):
(WebCore::PlatformCAAnimationCocoa::copyAnimationsFrom):
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::addAnimationForKey):
(WebCore::PlatformCALayerCocoa::animationForKey):
- platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(PlatformCAAnimationWin::PlatformCAAnimationWin):
(PlatformCAAnimationWin::setAnimations):
(PlatformCAAnimationWin::copyAnimationsFrom):
- platform/graphics/ca/win/PlatformCAAnimationWin.h:
Source/WebKit:
setAnimations() method. Add support for the new "Group" PlatformCAAnimation type for
the remote animations.
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::encode const):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::PlatformCAAnimationRemote::copy const):
(WebKit::PlatformCAAnimationRemote::setAnimations):
(WebKit::PlatformCAAnimationRemote::copyAnimationsFrom):
(WebKit::createAnimation):
(WebKit::addAnimationToLayer):
(WebKit::operator<<):
- 2:02 PM Changeset in webkit [272177] by
-
- 8 edits in branches/safari-612.1.2-branch/Source
Versioning.
WebKit-7612.1.2
- 1:53 PM Changeset in webkit [272176] by
-
- 1 copy in branches/safari-612.1.2-branch
New branch.
- 1:42 PM Changeset in webkit [272175] by
-
- 4 edits in trunk/Source/WebKit
Add a cross-platform helper method to generate shareable bitmaps from rendered images
https://bugs.webkit.org/show_bug.cgi?id=221217
Reviewed by Tim Horton.
Pull what is currently iOS-specific logic in
imagePositionInformationout into a private, cross-platform
helper method onWebPage. No change in behavior.
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::imagePositionInformation):
- 1:40 PM Changeset in webkit [272174] by
-
- 9 edits4 adds in trunk
Lazily create m_windowCloseWatchpoints so we don't mistakenly think we have a frame when re-associating a document to a given cached frame
https://bugs.webkit.org/show_bug.cgi?id=221098
<rdar://72894454>
Reviewed by Ryosuke Niwa and Mark Lam.
.:
- ManualTests/dont-create-invalid-watchpoint-when-going-back.html: Added.
- ManualTests/resources/empty-text.txt: Added.
- ManualTests/resources/full_results.json: Added.
- ManualTests/resources/test-results-page.html: Added.
Source/JavaScriptCore:
- bytecode/AccessCase.cpp:
(JSC::AccessCase::commit):
- bytecode/Watchpoint.h:
(JSC::WatchpointSet::isStillValidOnJSThread const):
- runtime/PropertySlot.h:
(JSC::PropertySlot::setWatchpointSet):
Source/WebCore:
There's a scenario when we go back while using the back forward cache, and
we re-associate a cached frame with a document, that we were creating an
already invalidated "frame cleared" watchpoint.
There were a few things we were doing wrong:
- In JSDOMWindowBase's constructor, we thought that we didn't have a frame,
even though we did. It was because we hadn't finished the bookkeeping in
FrameLoader::open(CachedFrameBase& cachedFrame)that associates a document with a
frame. And DOMWindow relies on its document to get its frame.
- When the watchpoint was invalidated, we were still telling the PropertySlot
about it. This was breaking JSC's invariant that these had to be valid
watchpoints.
This patch resolves:
- We now lazily create the watchpoint when we first need it. By that time, we
would've already been associated with a frame in the above example.
- We check if the watchpoint is still valid before telling the PropertySlot
about it, instead of always assuming it's valid.
I wasn't able to get this test to fail in WKTR/DRT, because it seems to be
we're crashing when running some JS code from Safari's injected bundle. I've
added a manual test instead.
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
- bindings/js/JSDOMWindowBase.h:
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
- 1:27 PM Changeset in webkit [272173] by
-
- 2 edits in trunk/Source/WebKit
[PlayStation] Build fix after r272058
https://bugs.webkit.org/show_bug.cgi?id=221141
Unreviewed build fix.
- Platform/unix/SharedMemoryUnix.cpp: Include ArgumentCoders.h on PlayStation
- 1:24 PM Changeset in webkit [272172] by
-
- 6 edits in trunk/Tools
[webkitscmpy] Use shutil to find scm executable paths
https://bugs.webkit.org/show_bug.cgi?id=221220
Reviewed by Jonathan Bedard.
Using /usr/bin/which is not a cross platform way to determine the path to an executable.
In Python 3 shutil gailed a which function which provides the same functionality as the
which executable and works on Windows.
Added the whichcraft library which is a backport of shutil.which to Python 2.7. If
Python 3 is available it just uses shutil directly. The library can be dropped once Python
2.7 support is jettisoned.
- Scripts/libraries/webkitscmpy/setup.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.executable):
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
- 1:18 PM Changeset in webkit [272171] by
-
- 4 edits in trunk
[Curl] Enable FTP protocol only when ENABLE_FTPDIR is on
https://bugs.webkit.org/show_bug.cgi?id=220941
Reviewed by Fujii Hironori.
.:
Turn off ENABLE_FTPDIR for WinCairo. The version of cURL used has FTP support explicitly
disabled.
- Source/cmake/OptionsWin.cmake:
Source/WebCore:
cURL supports a large number of protocols but only HTTP(S) and FILE should be enabled by
default. Make the FTP(S) protocols dependent on whether ENABLE(FTPDIR) is enabled or not.
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::enableAllowedProtocols):
- 12:56 PM Changeset in webkit [272170] by
-
- 64 edits2 copies12 adds in trunk
[JSC] Implement BigInt64Array and BigUint64Array
https://bugs.webkit.org/show_bug.cgi?id=190800
Reviewed by Ross Kirsling.
JSTests:
Through this patch, we encounter two test262 failures and found that these tests have issues.
- stress/bigint-typed-array-array-modes-profile.js: Added.
(foo):
- stress/bigint-typed-array-byte-offset.js: Added.
(foo):
- stress/bigint-typed-array-canonical-numeric-index-string.js: Added.
(makeTest.assert):
(makeTest):
(const.testInvalidIndices.makeTest.set assert):
(const.testInvalidIndices.makeTest):
(const.testValidIndices.makeTest.set assert):
(const.testValidIndices.makeTest):
- stress/bigint-typed-array-constructor-undefined.js: Added.
- stress/bigint-typed-array-get-by-val-profiling.js: Added.
(testArray.testCode):
(testArray):
- stress/bigint-typed-array-lastIndexOf-exception-check.js: Added.
- stress/bigint-typed-array-put-by-val-profiling.js: Added.
(testArray.testCode):
(testArray):
- stress/bigint-typedarray-getownproperty.js: Added.
(assert):
(foo):
- stress/bigint64array-bytelength.js: Added.
(test1):
(test2):
(shouldBe):
- stress/bigint64array-get-by-val.js: Added.
(shouldBe):
(test1):
(test2):
- stress/bigint64array-put-by-val.js: Added.
(shouldBe):
(test11):
(test12):
(test21):
(test22):
- test262/config.yaml:
- test262/expectations.yaml:
Source/JavaScriptCore:
This patch implements BigInt64Array and BigUint64Array.
- In this patch, we do not support BigInt64Array/BigUint64Array + Atomics yet.
- We make canGetIndexQuickly false for BigInt64Array and BigUint64Array. And we use generic path for getting values from BigInt64Array and BigUint64Array. We will optimize it in [1] and [2]. But possibly, this does not have super large impact on performance since getting value from BigInt64Array and BigUint64Array are already costly since we always need to allocate BigInt for results.
- DFG / FTL GetByVal etc. are using Array::Generic for BigInt64Array and BigUint64Array.
- But GetArrayLength, CheckArray, byteLength getter etc. are using Array::BigInt64Array / Array::BigUint64Array for optimization.
- Extend ArrayProfile's ArrayMode for BigInt64Array and BigUint64Array so that ArrayProfile can record BigInt64Array and BigUint64Array information.
- Implement DataView#{setBigInt64,setBigUint64,getBigInt64,getBigUint64}.
- Extend JSC APIs to support BigInt64Array and BigUint64Array.
[1]: https://bugs.webkit.org/show_bug.cgi?id=221181
[2]: https://bugs.webkit.org/show_bug.cgi?id=221183
- API/JSTypedArray.cpp:
(toJSTypedArrayType):
(toTypedArrayType):
(createTypedArray):
- API/JSValueRef.h:
- API/tests/TypedArrayCTest.cpp:
(forEachTypedArrayType):
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/BuiltinNames.h:
- builtins/TypedArrayPrototype.js:
(fill):
(map):
(filter):
- bytecode/ArrayProfile.cpp:
(JSC::dumpArrayModes):
- bytecode/ArrayProfile.h:
- bytecode/ByValInfo.h:
(JSC::jitArrayModeForClassInfo):
(JSC::jitArrayModePermitsPut):
(JSC::typedArrayTypeForJITArrayMode):
- bytecode/LinkTimeConstant.h:
- bytecode/SpeculatedType.cpp:
(JSC::dumpSpeculation):
(JSC::speculationToAbbreviatedString):
(JSC::speculationFromTypedArrayType):
(JSC::typedArrayTypeFromSpeculation):
(JSC::speculationFromString):
- bytecode/SpeculatedType.h:
(JSC::isBigInt64ArraySpeculation):
(JSC::isBigUint64ArraySpeculation):
(JSC::isDirectArgumentsSpeculation):
(JSC::isScopedArgumentsSpeculation):
(JSC::isActionableIntMutableArraySpeculation): Deleted.
(JSC::isActionableFloatMutableArraySpeculation): Deleted.
(JSC::isActionableTypedMutableArraySpeculation): Deleted.
(JSC::isActionableMutableArraySpeculation): Deleted.
(JSC::isActionableArraySpeculation): Deleted.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::fromObserved):
(JSC::DFG::ArrayMode::refine const):
(JSC::DFG::ArrayMode::alreadyChecked const):
(JSC::DFG::arrayTypeToString):
(JSC::DFG::toTypedArrayType):
(JSC::DFG::toArrayType):
(JSC::DFG::permitsBoundsCheckLowering):
- dfg/DFGArrayMode.h:
(JSC::DFG::ArrayMode::supportsSelfLength const):
(JSC::DFG::ArrayMode::arrayModesThatPassFiltering const):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
(JSC::DFG::operationNewTypedArrayWithSizeForType):
(JSC::DFG::operationNewTypedArrayWithOneArgumentForType):
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::subtype):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::privateCompilePutByVal):
- jit/Repatch.cpp:
(JSC::tryCacheArrayGetByVal):
- llint/LowLevelInterpreter.asm:
- runtime/AtomicsObject.cpp:
- runtime/AtomicsObject.h:
- runtime/BigInt64Array.h: Copied from Source/JavaScriptCore/runtime/JSTypedArrayConstructors.cpp.
- runtime/BigUint64Array.h: Copied from Source/JavaScriptCore/runtime/JSTypedArrayConstructors.cpp.
- runtime/JSArrayBufferView.cpp:
(JSC::elementSize):
(JSC::validateTypedArray):
- runtime/JSArrayBufferView.h:
- runtime/JSBigInt.h:
- runtime/JSCell.h:
- runtime/JSDataView.h:
- runtime/JSDataViewPrototype.cpp:
(JSC::getData):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGenericTypedArrayViewConstructor.h:
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::setWithSpecificType):
(JSC::JSGenericTypedArrayView<Adaptor>::set):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSGlobalObjectFunctions.h:
- runtime/JSType.cpp:
(WTF::printInternal):
- runtime/JSType.h:
- runtime/JSTypedArrayConstructors.cpp:
- runtime/JSTypedArrayConstructors.h:
- runtime/JSTypedArrayPrototypes.cpp:
- runtime/JSTypedArrayPrototypes.h:
- runtime/JSTypedArrayViewPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSTypedArrayViewPrototype.h:
- runtime/JSTypedArrays.cpp:
- runtime/JSTypedArrays.h:
- runtime/ToNativeFromValue.h:
(JSC::toNativeFromValue):
(JSC::toNativeFromValueWithoutCoercion):
- runtime/TypedArrayAdaptors.h:
(JSC::IntegralTypedArrayAdaptor::toJSValue):
(JSC::FloatTypedArrayAdaptor::toJSValue):
(JSC::BigIntTypedArrayAdaptor::toJSValue):
(JSC::BigIntTypedArrayAdaptor::toNativeFromInt32):
(JSC::BigIntTypedArrayAdaptor::toNativeFromUint32):
(JSC::BigIntTypedArrayAdaptor::toNativeFromDouble):
(JSC::BigIntTypedArrayAdaptor::convertTo):
(JSC::Uint8ClampedAdaptor::toJSValue):
(JSC::IntegralTypedArrayAdaptor::toDouble): Deleted.
(JSC::FloatTypedArrayAdaptor::toDouble): Deleted.
(JSC::Uint8ClampedAdaptor::toDouble): Deleted.
- runtime/TypedArrayType.cpp:
(JSC::constructorClassInfoForType):
(WTF::printInternal):
- runtime/TypedArrayType.h:
(JSC::isBigIntTypedView):
(JSC::logElementSize):
(JSC::isBigInt):
(JSC::isSigned):
(JSC::contentType):
- runtime/TypedArrays.h:
- runtime/VM.cpp:
- runtime/VM.h:
- 12:56 PM Changeset in webkit [272169] by
-
- 7 edits in trunk/Tools
[webkitcorepy] Support machines without Unix signal handling
https://bugs.webkit.org/show_bug.cgi?id=221150
<rdar://problem/73769605>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/mocks/popen.py:
(PopenBase):
(PopenBase.send_signal): Handle undefined signal variables.
(PopenBase.terminate):
(PopenBase.kill):
- Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:
(Process.handler): Handle undefined signal variable.
(Process.main): Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/timeout.py:
(Timeout): Timeout class should own SIGALRM.
(Timeout.DisableAlarm.enter): Do not disable alarm if alarm is not available.
(Timeout.check): Pass SIGALRM owned by Timeout object.
(Timeout.bind): Do not disable alarm if alarm is not available, use SIGALRM owned by the Timeout object.
(Timeout.bind.handler): Ditto.
(Timeout.sleep): Use SIGALRM owned by the Timeout object.
- 12:51 PM Changeset in webkit [272168] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] "Find the trailing index" logic repeated in InlineContentBreaker::processOverflowingTextContent
https://bugs.webkit.org/show_bug.cgi?id=221204
Reviewed by Antti Koivisto.
Refactor InlineContentBreaker::processOverflowingTextContent as described below
- find the overflowing run first
- test if the overflowing run is breakable and try breaking it. If so, return the trailing content.
- test if any run on the left side is breakable and try breaking it. If so, return the trailing content.
- test if any run on the right side is breakable and try breaking it. If so, return the trailing content.
- this content is not breakable
The "return the trailing content" code checks if we are at an inline box boundary and adjust the tailing index accordingly.
This was implemented for both #2 and #4. This logic now lives in findTrailingRunIndex.
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingTextContent const):
- 12:37 PM Changeset in webkit [272167] by
-
- 2 edits in trunk/Tools
autoinstall.py: Don't use an XML parser to parse HTML
https://bugs.webkit.org/show_bug.cgi?id=221162
Reviewed by Jonathan Bedard.
Very recently autoinstall.py started failing becagse the page returned
by https://pypi.org/simple/fasteners/ now contains a <meta> tag, which
is not parseable as XML without the trailing slash.
Despite what an initial fix in r272041 stated, this is not caused by
invalid HTML: <meta> tags are not required to have an ending slash to
be standards compliant in any version of HTML.
This patch replaces that code to use an HTML parser instead of an XML
parser, making it more robust.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
(SimplyPypiIndexPageParser):
(SimplyPypiIndexPageParser.init):
(SimplyPypiIndexPageParser.handle_starttag):
(SimplyPypiIndexPageParser.handle_data):
(SimplyPypiIndexPageParser.handle_endtag):
(SimplyPypiIndexPageParser.parse):
(Package.archives):
- 12:36 PM Changeset in webkit [272166] by
-
- 5 edits3 adds in trunk
ReadableStream C++ methods should check for exception
https://bugs.webkit.org/show_bug.cgi?id=215376
<rdar://problem/66816192>
Reviewed by Alex Christensen.
Source/WebCore:
Refactor code to catch and handle exceptions in case of ReadableStream methods.
Exceptions can happen in case of worker being abruptly terminated, which can only be tested flakily.
In case of tee, if an exception happens, we return a WTF::nullopt.
Test: streams/readable-stream-tee-worker.html
- Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::clone):
- bindings/js/ReadableStream.cpp:
(WebCore::invokeReadableStreamFunction):
(WebCore::ReadableStream::pipeTo):
(WebCore::ReadableStream::tee):
(WebCore::ReadableStream::lock):
(WebCore::checkReadableStream):
- bindings/js/ReadableStream.h:
LayoutTests:
- streams/readable-stream-tee-worker-expected.txt: Added.
- streams/readable-stream-tee-worker.html: Added.
- streams/readable-stream-tee.js: Added.
(teeRepetitively):
(test):
- 12:30 PM Changeset in webkit [272165] by
-
- 28 edits in trunk
Use user media permission prompt for speech recognition
https://bugs.webkit.org/show_bug.cgi?id=221082
rdar://problem/73372499
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-02-01
Reviewed by Youenn Fablet.
Source/WebCore:
Add frame identifier to SpeechRecognitionRequest as it is needed for checking user media permission.
Updated existing tests for changed behavior.
- Modules/speech/SpeechRecognition.cpp:
(WebCore::SpeechRecognition::startRecognition):
- Modules/speech/SpeechRecognitionConnection.h:
- Modules/speech/SpeechRecognitionRequest.h:
(WebCore::SpeechRecognitionRequest::frameIdentifier const):
- Modules/speech/SpeechRecognitionRequestInfo.h:
(WebCore::SpeechRecognitionRequestInfo::encode const):
(WebCore::SpeechRecognitionRequestInfo::decode):
- page/DummySpeechRecognitionProvider.h:
Source/WebKit:
Make SpeechRecognitionPermissionManager ask UserMediaPermissionRequestManagerProxy for user permission on
microphone.
- UIProcess/SpeechRecognitionPermissionManager.cpp:
(WebKit::SpeechRecognitionPermissionManager::request):
(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/SpeechRecognitionPermissionRequest.h:
(WebKit::SpeechRecognitionPermissionRequest::create):
(WebKit::SpeechRecognitionPermissionRequest::frameIdentifier const):
(WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
- UIProcess/SpeechRecognitionServer.cpp:
(WebKit::SpeechRecognitionServer::start):
(WebKit::SpeechRecognitionServer::requestPermissionForRequest):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/SpeechRecognitionServer.messages.in:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::grantRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::checkUserMediaPermissionForSpeechRecognition):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):
- UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::decisionCompletionHandler):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestSpeechRecognitionPermission):
(WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createSpeechRecognitionServer):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.cpp:
(WebKit::WebSpeechRecognitionConnection::start):
- WebProcess/WebCoreSupport/WebSpeechRecognitionConnection.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(-[SpeechRecognitionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]):
LayoutTests:
- fast/speechrecognition/permission-error.html:
- fast/speechrecognition/start-recognition-in-removed-iframe-expected.txt:
- fast/speechrecognition/start-recognition-in-removed-iframe.html:
- 12:22 PM Changeset in webkit [272164] by
-
- 6 edits1 add in trunk/Source
Add some new data structures to represent image extraction results
https://bugs.webkit.org/show_bug.cgi?id=221214
Reviewed by Sam Weinig.
Source/WebCore:
Introduce
ImageExtractionResult, which will only contain a list ofImageExtractionTextDatastructures for
now; eachImageExtractionTextDatais composed of a piece of text, as well as a normalized quad representing
the location of the text relative to the extracted image.
- platform/ImageExtractionResult.h: Added.
(WebCore::ImageExtractionTextData::encode const):
(WebCore::ImageExtractionTextData::decode):
(WebCore::ImageExtractionResult::isEmpty const):
(WebCore::ImageExtractionResult::encode const):
(WebCore::ImageExtractionResult::decode):
- platform/graphics/FloatQuad.h:
(WebCore::FloatQuad::encode const):
(WebCore::FloatQuad::decode):
Add generic encoding and decoding support for
WebCore::FloatQuad, and remove iOS-specific WebKit2 argument
coder logic for serializingFloatQuad(see WebKit2 changes).
Source/WebKit:
See WebCore ChangeLog for more details.
- Shared/WebCoreArgumentCoders.cpp:
- Shared/WebCoreArgumentCoders.h:
- 12:12 PM Changeset in webkit [272163] by
-
- 5 edits2 adds in branches/safari-611-branch
Cherry-pick r271933. rdar://problem/73838863
REGRESSION (r268947) Some table elements become blank when scroll-bar is toggled
https://bugs.webkit.org/show_bug.cgi?id=221016
<rdar://72881404>
Reviewed by Zalan Bujtas.
Source/WebCore:
FloatingObject aliased the state of layer->isSelfPainting() in its m_shouldPaint,
so when compositing code changed isSelfPaintingLayer() for a layer that is also
a float post-layout, FloatingObject was left in a state where it didn't paint.
Fix by dissociating FloatingObject's shouldPaint from the state of the layer.
Rename shouldPaint() to paintsFloat() for clarity (multiple FloatingObjects in
different block flows can represent the same float, and only one paints the float).
Test: compositing/scrolling/async-overflow-scrolling/self-painting-layer-float.html
- rendering/FloatingObjects.cpp: (WebCore::FloatingObject::FloatingObject): (WebCore::FloatingObject::create): (WebCore::FloatingObject::cloneForNewParent const): (WebCore::FloatingObject::shouldPaint const): (WebCore::operator<<):
- rendering/FloatingObjects.h: (WebCore::FloatingObject::paintsFloat const): (WebCore::FloatingObject::setPaintsFloat): (WebCore::FloatingObject::shouldPaint const): Deleted. (WebCore::FloatingObject::setShouldPaint): Deleted.
- rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::repaintOverhangingFloats): (WebCore::RenderBlockFlow::paintFloats): (WebCore::RenderBlockFlow::insertFloatingObject): (WebCore::RenderBlockFlow::addOverhangingFloats): (WebCore::RenderBlockFlow::hitTestFloats): (WebCore::RenderBlockFlow::adjustForBorderFit const):
LayoutTests:
- compositing/scrolling/async-overflow-scrolling/self-painting-layer-float-expected.html: Added.
- compositing/scrolling/async-overflow-scrolling/self-painting-layer-float.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272162] by
-
- 7 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r271906. rdar://problem/73838863
Make showRenderTree() dump FloatingObjects
https://bugs.webkit.org/show_bug.cgi?id=220991
Reviewed by Zalan Bujtas.
It's useful to see which RenderBlockFlows have floating object sets and which
floating objects they contain, so dump that in render tree dumps.
Other minor logging/initializer cleanup.
- rendering/FloatingObjects.cpp: (WebCore::operator<<): (WebCore::FloatingObjects::FloatingObjects):
- rendering/FloatingObjects.h:
- rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::outputFloatingObjects const):
- rendering/RenderBlockFlow.h:
- rendering/RenderObject.cpp: (WebCore::RenderObject::outputRenderSubTreeAndMark const):
- rendering/RenderView.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271906 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272161] by
-
- 3 edits2 adds in branches/safari-611-branch
Cherry-pick r272059. rdar://problem/73838832
REGRESSION(r262893): feComponentTransfer is not rendered correctly on Retina display
https://bugs.webkit.org/show_bug.cgi?id=220576
Reviewed by Simon Fraser.
Source/WebCore:
convertImageDataToColorSpace() creates a temporary ImageBuffer with the
size of m_premultipliedImageResult. This ImageBuffer has to be scaled
with the filterScale(). But the size of m_premultipliedImageResult is
scaled with the filterScale(). This means, convertImageDataToColorSpace()
applies the filterScale() twice to the temporary ImageBuffer.
The fix is to create the temporary ImageBuffer with the unscaled size of
the input ImageData and scale it with the filterScale().
Test: fast/hidpi/filters-component-transfer.html
- platform/graphics/filters/FilterEffect.cpp: (WebCore::FilterEffect::convertImageDataToColorSpace): (WebCore::FilterEffect::copyPremultipliedResult):
LayoutTests:
- fast/hidpi/filters-component-transfer-expected.html: Added.
- fast/hidpi/filters-component-transfer.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272059 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272160] by
-
- 4 edits2 adds in branches/safari-611-branch
Cherry-pick r272054. rdar://problem/73838900
[css-flexbox] REGRESSION(r266695): content inside a
<button>inside a flex container has a height of0without a declaredmin-height
https://bugs.webkit.org/show_bug.cgi?id=220946
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: css3/flexbox/percentage-descendants-of-skipped-flex-item.html
r252620 added an optimization which saves layouts for flexbox containers' descendants with percentage heights.
That optimization relies on a hash map of percentage height descendants that is filled in with calls to
addPercentHeightDescendant().
FlexibleBoxImpl's like RenderButton might wrap their children in anonymous blocks. Those anonymous blocks are
skipped for percentage height calculations in RenderBox::computePercentageLogicalHeight() and thus
addPercentHeightDescendant() is never called for them. This means that hasPercentageHeightDescendants() would
always wrongly return false for a child of a <button> with a percentage height.
- rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::childHasPercentHeightDescendants const): Renamed from hasPercentHeightDescendants in order not to clash with RenderBlock method. It now also checks whether flex items skipped from percentage height calculations are the containing blocks of any percentage height descendant of the flex container (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): (WebCore::RenderFlexibleBox::hasPercentHeightDescendants const): Deleted.
- rendering/RenderFlexibleBox.h:
LayoutTests:
- css3/flexbox/percentage-descendants-of-skipped-flex-item-expected.html: Added.
- css3/flexbox/percentage-descendants-of-skipped-flex-item.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272159] by
-
- 3 edits in branches/safari-611-branch
Cherry-pick r272043. rdar://problem/73838798
[ Big Sur ] media/media-source/media-source-webm-init-inside-segment.html is failing
https://bugs.webkit.org/show_bug.cgi?id=220552
<rdar://problem/73048070>
Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-01-28
Reviewed by Jer Noble.
Source/WebCore:
No new tests - fixes an existing test.
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::supportedAudioCodecs): Don't make the webm supported codec conditional. This change makes the webm audio support consistent with video support. supportedAudioCodecs is used by the libwebm parser to determine which codec IDs are to be rejected outright. If a codec id that isn't supported is encountered a parsing error will be thrown, which ultimately causes a HTML audio or video error.
If webkit is compiled without opus or vorbis support, in this particular case we do not want
an error to be produced but instead ignore the track.
LayoutTests:
- platform/mac/TestExpectations: unskip test
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@272043 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272158] by
-
- 11 edits3 adds in branches/safari-611-branch
Cherry-pick r271939. rdar://problem/73838846
[Mac] MediaSampleCursor::stepInOrderedMap can hang when stepping to the end of a track that hasn't been fully parsed
https://bugs.webkit.org/show_bug.cgi?id=220555
<rdar://problem/72910000>
Reviewed by Eric Carlson.
Source/WebCore:
Test: http/tests/media/video-canplaythrough-webm.html
- platform/graphics/FloatSize.h: Exported toJSONObject.
Source/WebKit:
When a container has multiple tracks, CoreMedia determines the overall duration by creating
a cursor at a presentation time of +infinity then asking for its timing info, the expectation
being that the cursor will clamp itself to the track duration and report that in
MediaSampleCursor::getSampleTiming.
Previously, this could result in a hang for tracks that had not yet finished parsing, as
MediaSampleCursor was designed to wait for samples outside the playable range. With this
change, MediaSampleCursor no longer waits for samples outside the playable range but
rather reports clamped timing info without waiting for a sample. If CoreMedia asks for
information that requires a sample (e.g., sample location), MediaSampleCursor will respond
withkMTPluginSampleCursorError_LocationNotAvailable. So that CoreMedia can determine
the range of playable samples, this patch implements MediaSampleCursor::getPlayableHorizon.
To simplify this implementation, MediaSampleCursor now assumes that decode time equals
presentation time (for video tracks) or is invalid (for audio tracks). While here, also
added media logging that helped debug this issue.
Test: http/tests/media/video-canplaythrough-webm.html
- Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp: (WebKit::MediaSampleByteRange::MediaSampleByteRange): Asserted our assmpution about the relationship between presentation time and decode time.
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp: (WebKit::assumedDecodeTime): Added to compute decode time from presentation time and a nominal sample. (WebKit::upperBound): Changed to compute the decode key based on assumed decode time. (WebKit::stepIterator): Removed the MediaTime specialization. (WebKit::stepTime): Added to step a MediaTime rather than an iterator. (WebKit::MediaSampleCursor::MediaSampleCursor): Initialized logging. (WebKit::MediaSampleCursor::locateIterator const): Changed to find an iterator based on presentation time and assumed decode time. (WebKit::MediaSampleCursor::locateMediaSample const): Ditto. (WebKit::MediaSampleCursor::locateTiming const): Added to locate timing info even if no sample is available. (WebKit::MediaSampleCursor::stepInOrderedMap): Changed to call getSampleMap, and removed the MediaTime specialization. (WebKit::MediaSampleCursor::stepInPresentationTime): Added to replace the MediaTime specialization of stepInOrderedMap. (WebKit::MediaSampleCursor::getSampleMap const): Added to call MediaTrackReader::waitForSample and return as soon as at least one sample is available. Returns kMTPluginSampleCursorError_NoSamples if the track finishes parsing with no samples. (WebKit::MediaSampleCursor::getMediaSample const): Changed to call getSampleMap. (WebKit::MediaSampleCursor::getTiming const): Added to get timing info. (WebKit::MediaSampleCursor::copyProperty): Added logging. (WebKit::MediaSampleCursor::stepInDecodeOrderAndReportStepsTaken): Changed to call the new version of stepInOrderedMap. (WebKit::MediaSampleCursor::stepInPresentationOrderAndReportStepsTaken): Ditto. (WebKit::MediaSampleCursor::stepByDecodeTime): Changed to call stepInPresentationTime. (WebKit::MediaSampleCursor::stepByPresentationTime): Ditto. (WebKit::MediaSampleCursor::compareInDecodeOrder const): Changed to call getTiming. (WebKit::MediaSampleCursor::getSampleTiming const): Ditto. (WebKit::MediaSampleCursor::getPlayableHorizon const): Implemented by taking the difference between the last sample's end time and the cursor's presentation time. (WebKit::MediaSampleCursor::logChannel const): Added. (WebKit::makeIterator): Deleted. (WebKit::makeTime): Deleted. (WebKit::MediaSampleCursor::createAtDecodedSample): Deleted.
- Shared/mac/MediaFormatReader/MediaSampleCursor.h: (WebKit::MediaSampleCursor::logger const): Configured logging. (WebKit::MediaSampleCursor::logClassName const): Ditto. (WebKit::MediaSampleCursor::logIdentifier const): Ditto.
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp: (WebKit::MediaTrackReader::mediaTypeString const): Ditto. (WebKit::MediaTrackReader::nextSampleCursorLogIdentifier const): Ditto.
- Shared/mac/MediaFormatReader/MediaTrackReader.h:
LayoutTests:
- http/conf/mime.types: Added an entry for video/webm.
- http/tests/media/resources/long-test-vp9-vorbis.webm: Added.
- http/tests/media/video-canplaythrough-webm-expected.txt: Added.
- http/tests/media/video-canplaythrough-webm.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272157] by
-
- 2 edits in branches/safari-611-branch/LayoutTests
Cherry-pick r271736. rdar://problem/73838912
REGRESSION (r271472): [ Mac WK2 ] intersection-observer/target-deleted.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=220637
<rdar://problem/73220571>
Reviewed by Simon Fraser.
- intersection-observer/target-deleted.html: For some reason, on some configurations, this test recently stopped seeing its intersection observer get garbage collected when it expects. The regression point is likely irrelevant, though multiple bots agree.
Doing a full rendering update by using rAF instead of just a setInterval
seems to be enough to get the object to actually be collected promptly.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271736 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272156] by
-
- 2 edits in branches/safari-611-branch/LayoutTests/imported/w3c
Cherry-pick r271611. rdar://problem/73838923
[ BigSur ] imported/w3c/web-platform-tests/fetch/nosniff/parsing-nosniff.window.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=220631
<rdar://problem/73212492>
Reviewed by Alex Christensen.
I reproduced locally the error and saw a -1005 error, 'The network connection was lost'.
When running tests sequentially instead of in parallel, I do not see this anymore.
- web-platform-tests/fetch/nosniff/parsing-nosniff.window.js: (runTests):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:11 PM Changeset in webkit [272155] by
-
- 3 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r271609. rdar://problem/73838888
REGRESSION (r270964): Hovering cursor over Earth animation causes flashing red distortion on GitHub.com
https://bugs.webkit.org/show_bug.cgi?id=220612
<rdar://problem/73175210>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-19
Reviewed by Dean Jackson.
When reading the display buffer for WebKit snapshots, use READ_FRAMEBUFFER on WebGL2 and
FRAMEBUFFER on WebGL1. Fixes the case where WebGL2 contexts would get broken because
taking a snapshot would overwrite the framebuffer attachment.
No new tests, snapshots are not tested at the moment.
- platform/graphics/angle/GraphicsContextGLANGLEUtilities.h: (WebCore::ScopedRestoreReadFramebufferBinding::framebufferTarget const):
- platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm: (WebCore::GraphicsContextGLOpenGL::readCompositedResults):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271609 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:06 PM Changeset in webkit [272154] by
-
- 7 edits in trunk/Source/WebKit
[macOS] Observe color preference changes in the UI process
https://bugs.webkit.org/show_bug.cgi?id=221096
<rdar://problem/73721275>
Reviewed by Brent Fulgham.
As a step towards blocking the distributed notifications daemon in the WebContent process, color preference changes should be observed in the UI process.
The UI process should notify the WebContent process about color preference changes. In order to be able to notify the AppKit observer in the WebContent
process about changes with a local notification, a specific key/value needs to added to the Info.plist of the WebContent process.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::colorPreferencesDidChangeCallback):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
- UIProcess/WebProcessPool.h:
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::colorPreferencesDidChange):
- 11:43 AM Changeset in webkit [272153] by
-
- 2 edits in trunk/LayoutTests
[GPU Process] Layout tests TestExpectation file rewriting
https://bugs.webkit.org/show_bug.cgi?id=221101
Populate TestExpectations from clean state, remove all skipped dirs, add back failing tests.
Patch by Rini Patel <rini_patel@apple.com> on 2021-02-01
Reviewed by Simon Fraser.
- gpu-process/TestExpectations:
- 11:26 AM Changeset in webkit [272152] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Fix editing/execCommand/primitive-value-cleanup-minimal.htm
https://bugs.webkit.org/show_bug.cgi?id=221212
Reviewed by Zalan Bujtas.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::enclosingBorderBoxRectFor const):
To match legacy make RenderInline height return zero when there are no runs.
- 11:25 AM Changeset in webkit [272151] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r271916. rdar://problem/73834276
IPC::Decoder constructor should mark the Decoder as invalid if header decoding fails
https://bugs.webkit.org/show_bug.cgi?id=220990
<rdar://problem/64984186>
Reviewed by Darin Adler.
Mark the decoder as invalid if any of the decode operations fail, not just the first one.
- Platform/IPC/Decoder.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:18 AM Changeset in webkit [272150] by
-
- 2 edits in trunk/LayoutTests
[MacOS] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-automatic-pull.https.html is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=221152
Unreviewed test gardening.
Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-01
- platform/mac/TestExpectations:
- 10:11 AM Changeset in webkit [272149] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Remove write access to some IOKit properties
https://bugs.webkit.org/show_bug.cgi?id=221137
<rdar://problem/73473658>
Reviewed by Brent Fulgham.
Remove write access to some IOKit properties in the WebContent process' sandbox.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:08 AM Changeset in webkit [272148] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add reporting to mach-register sandbox rule
https://bugs.webkit.org/show_bug.cgi?id=221139
<rdar://problem/70350150>
Reviewed by Brent Fulgham.
Add reporting to mach-register rule in the WebContent process' sandbox.
- WebProcess/com.apple.WebProcess.sb.in:
- 9:54 AM Changeset in webkit [272147] by
-
- 1 copy in tags/Safari-612.1.1.1
Tag Safari-612.1.1.1.
- 9:50 AM Changeset in webkit [272146] by
-
- 4 edits in trunk/Source/WebCore
Avoid unnecessary chromatic adaptation when converting between colors with the same white point
https://bugs.webkit.org/show_bug.cgi?id=221193
Reviewed by Simon Fraser.
Delay chromatic adapation, which is implemented as the conversion from a color in the XYZ color
space with one white point to a color in the XYZ color space with another white point, until
it is actually needed, rather than eagerly converting colors that use a D50 white point (just
Lab, LCH and ProPhotoRGB at the moment) to D65 for every conversion.
To do this, we introduce a new template parameter for the XYZA color to explicitly annotate
what white point it has, and further annotate all color types with which XYZ color matches
their defined white point. Then, in the generic color conversion functions, we apply chromatic
adaptation if needed by comparing the input and output white points of the types (at compile
time) and doing the conversion only when necessary.
This allows us to remove the explicit chromatic adapatations in the LinearProPhotoRGB matrix
conversions as well as the Lab conversions.
- platform/graphics/ColorConversion.cpp:
- platform/graphics/ColorConversion.h:
- platform/graphics/ColorTypes.h:
- 9:24 AM Changeset in webkit [272145] by
-
- 8 edits in branches/safari-612.1.1-branch/Source
Versioning.
WebKit-7612.1.1.1
- 9:07 AM Changeset in webkit [272144] by
-
- 2 edits in trunk/Tools
[build.webkit.org] is_test_mode_enabled should default to True
https://bugs.webkit.org/show_bug.cgi?id=221208
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/master_buildbot2.cfg:
- 8:45 AM Changeset in webkit [272143] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Fix editing/execCommand/primitive-value.html
https://bugs.webkit.org/show_bug.cgi?id=221207
Reviewed by Zalan Bujtas.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
This needs to update the layout after node removal as that can invalidate the existing one.
- 7:11 AM Changeset in webkit [272142] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] RenderInline::offsetLeft needs to call ensureLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=221196
Reviewed by Zalan Bujtas.
Use ensureLineBoxes for rare API calls before we implement them fully in LFC integration.
- layout/integration/LayoutIntegrationCoverage.cpp:
- rendering/RenderInline.cpp:
(WebCore::RenderInline::absoluteQuadsForSelection const):
(WebCore::RenderInline::offsetLeft const):
(WebCore::RenderInline::offsetTop const):
(WebCore::RenderInline::nodeAtPoint):
- 5:33 AM Changeset in webkit [272141] by
-
- 2 edits in trunk/Source/WebCore
[CoordGraphics] Avoid painting backing stores for zero-opacity layers
https://bugs.webkit.org/show_bug.cgi?id=184143
Reviewed by Carlos Garcia Campos.
Don't create BackingStores for layers that are invisible: they have their CSS opacity property
to 0 or they have an opacity filter with value 0.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):
- 4:43 AM Changeset in webkit [272140] by
-
- 2 edits in trunk/Source/WTF
clang Linux build cannot link because of builtin_mul_overflow
https://bugs.webkit.org/show_bug.cgi?id=190208
Since r183319, builtin_mul_overflow is used with gcc or clang in WTF/wtf/CheckedArithmetic.h
This leads to a link failure when WebKit is built on Linux with clang and the libgcc runtime,
because of an undefined reference to the mulodi4 symbol.
This is because clang generates code using the mulodi4 symbol for builtin_mul_overflow.
But this symbol is available only in compiler-rt, and not in the libgcc runtime used by most
Linux distributions of clang.
See also this upstream clang bug: https://bugs.llvm.org/show_bug.cgi?id=28629
Patch by Olivier Blin <Olivier Blin> on 2021-02-01
Reviewed by Mark Lam.
- wtf/CheckedArithmetic.h: Do not use builtin_mul_overflow with clang on Linux for ARM
- 3:04 AM Changeset in webkit [272139] by
-
- 24 edits1 add in trunk
[JSC] Add @ in Error.stack if URL exists
https://bugs.webkit.org/show_bug.cgi?id=221184
Reviewed by Keith Miller.
JSTests:
- ChakraCore/test/Error/NativeErrors_v4.baseline-jsc:
- ChakraCore/test/Error/validate_line_column.baseline-jsc:
- ChakraCore/test/StackTrace/FunctionName.js.baseline-jsc:
- ChakraCore/test/fieldopts/fieldhoist6.baseline-jsc:
- ChakraCore/test/fieldopts/fieldhoist6b.baseline-jsc:
- ChakraCore/test/fieldopts/fieldhoist7.baseline-jsc:
- ChakraCore/test/fieldopts/fieldhoist_negzero.baseline-jsc:
- ChakraCore/test/fieldopts/fieldhoist_undefined_global.baseline-jsc:
- ChakraCore/test/fieldopts/fieldhoist_unreachable.baseline-jsc:
- stress/error-stack-at.js: Added.
(shouldBe):
(catch):
(try.eval):
Source/JavaScriptCore:
Append '@' if URL exists even if function name does not exist to make the
format simple for parsing in JS (splitting with '@' to extract URL and function name).
- runtime/StackFrame.cpp:
(JSC::StackFrame::toString const):
Source/WebInspectorUI:
- UserInterface/Models/StackTrace.js:
(WI.StackTrace.isLikelyStackTrace):
Tools:
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(testJSCExceptions):
LayoutTests:
- inspector/model/remote-object/error-expected.txt:
- inspector/unit-tests/globals-unhandled-rejection-in-timer-callback-expected.txt:
- js/dom/line-column-numbers-expected.txt:
- js/dom/script-tests/stack-trace.js:
(catch):
- js/dom/stack-trace-expected.txt:
- js/script-tests/stack-trace.js:
(catch):
- js/stack-trace-expected.txt:
- 2:29 AM Changeset in webkit [272138] by
-
- 3 edits in trunk/Source/WebKit
[SOUP] Add support for data URLs in the network process
https://bugs.webkit.org/show_bug.cgi?id=221127
Reviewed by Adrian Perez de Castro.
In r271879 I removed the support for data URLs in the network process for soup, assuming data URLs were always
loaded from the web process, but that's not the case for downloads. I think we should not go to the network
process for downloads either, but for now it's easier to fix this regression by supporting data URLs in the
network process again. Fixes http/tests/security/anchor-download-allow-data.html.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::createRequest): Return early if it's a data URL.
(WebKit::NetworkDataTaskSoup::clearRequest): Clear the pending data URL result.
(WebKit::NetworkDataTaskSoup::resume): Start a data URL decode task if it's a new data URL request, or complete
the pending one.
(WebKit::NetworkDataTaskSoup::didReadDataURL): Complete the data URL request.
- NetworkProcess/soup/NetworkDataTaskSoup.h:
- 2:28 AM Changeset in webkit [272137] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][EME][Thunder] Add video/x-vp9 as supported for cenc and cbcs
https://bugs.webkit.org/show_bug.cgi?id=221134
Reviewed by Philippe Normand.
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
Added video/x-vp9 in cenc (and therefore cbcs as well).
- 2:22 AM WebKitGTK/2.30.x edited by
- (diff)
- 2:20 AM Changeset in webkit [272136] by
-
- 6 edits in releases/WebKitGTK/webkit-2.30
Merge r270168 - [WPE][GTK] Use Internet Explorer quirk for Google Docs
https://bugs.webkit.org/show_bug.cgi?id=219278
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-11-26
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Since r266584, we've suffered from an annoying unsupported browser warning when using Google
Docs. We don't have many options to avoid it. I'm afraid that Firefox or Chrome quirks are
too risky, since these seem to tempt Google into using web platform features that WebKit
does not support. The safest quirk is the macOS platform quirk, but that doesn't work well
here because it breaks various keyboard shortcuts like Ctrl+A and Ctrl+Z. So an Internet
Explorer quirk is really the last card we have left.
I think this is the safest Google quirk we've ever had, in that it's pretty unlikely that
Google will try to send Internet Explorer anything that doesn't work in WebKit. However, it
will break eventually, whenever Google decides that Internet Explorer is no longer
supported. I guess that date is probably at least five years away, so we can only hope that
Google drops this anticompetitive nonsense before then.
P.S. Let's also switch Google Drive to this new quirk. The unsupported browser warning on
Google Drive seems to be completely independent, but the IE quirk seems safer that the
existing Firefox quirk, so why not?
- platform/UserAgentQuirks.cpp:
(WebCore::isGoogle):
(WebCore::urlRequiresInternetExplorerBrowser):
(WebCore::urlRequiresWindowsPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
- platform/UserAgentQuirks.h:
- platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasInternetExplorerBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasWindowsPlatformQuirk):
(TestWebKitAPI::TEST):
- 2:20 AM Changeset in webkit [272135] by
-
- 8 edits in releases/WebKitGTK/webkit-2.30/Source
Merge r270377 - aarch64 llint does not build with JIT disabled
https://bugs.webkit.org/show_bug.cgi?id=219288
<rdar://problem/71855960>
Source/JavaScriptCore:
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-12-02
Reviewed by Darin Adler.
- assembler/ARM64Assembler.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).
(JSC::ARM64Assembler::replaceWithJump):
(JSC::ARM64Assembler::linkJumpOrCall):
- assembler/AbstractMacroAssembler.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).
(JSC::AbstractMacroAssembler::prepareForAtomicRepatchNearCallConcurrently):
- assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode): Guard JIT-specific code with ENABLE(JIT).
- jit/ExecutableAllocator.cpp: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).
(JSC::initializeJITPageReservation):
- jit/ExecutableAllocator.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).
Source/WTF:
Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS), and make it depend on ENABLE(JIT). We need
it to depend on ENABLE(JIT) to fix the build, but this is awkward to do otherwise, because
USE macros are defined in PlatformUse.h before ENABLE macros in PlatformEnable.h. But it
makes sense, since USE macros should be used for "a particular third-party library or
optional OS service," and jump islands are neither, so ENABLE is more suitable anyway.
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-12-02
Reviewed by Darin Adler.
- wtf/PlatformEnable.h:
- wtf/PlatformUse.h:
- 2:20 AM Changeset in webkit [272134] by
-
- 6 edits in releases/WebKitGTK/webkit-2.30
Merge r271608 - REGRESSION(r271580) [GTK] LTS/Debian build failure due to unsupported g-ir-scanner parameter
https://bugs.webkit.org/show_bug.cgi?id=220730
Reviewed by Philippe Normand.
.:
- Source/cmake/FindGObjectIntrospection.cmake: Expose variable about the
presence of --sources-top-dirs.
Source/JavaScriptCore:
No new behavior. No new tests.
- PlatformGTK.cmake: Expose --sources-top-dirs only if available.
Source/WebKit:
No new behavior. No new tests.
- PlatformGTK.cmake: Expose --sources-top-dirs only if available.
- 2:20 AM Changeset in webkit [272133] by
-
- 4 edits in releases/WebKitGTK/webkit-2.30/Source
Merge r271580 - [GTK] Multilib conflicts in gir files
https://bugs.webkit.org/show_bug.cgi?id=220636
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-01-18
Reviewed by Carlos Garcia Campos.
Source/JavaScriptCore:
- PlatformGTK.cmake:
Source/WebKit:
By passing --sources-top-dirs to g-ir-scanner, we ensure all paths in the generated gir
files are relative to the toplevel builddir. This avoids multilib conflicts when the
builddir contains the target architecture.
- PlatformGTK.cmake:
- 2:20 AM Changeset in webkit [272132] by
-
- 5 edits in releases/WebKitGTK/webkit-2.30
Merge r270496 - [GLib] Leaked RunLoop objects on worker threads
https://bugs.webkit.org/show_bug.cgi?id=219232
<rdar://problem/71772277>
Patch by Zan Dobersek <zdobersek@igalia.com> on 2020-12-07
Reviewed by Geoffrey Garen.
Source/WTF:
During the thread-local RunLoop::Holder destruction, explicitly clear out
the iteration Deque objects on the held RunLoop, destroying any Function
objects that never got to execute on this thread. Generally, this allows
for any RunLoop reference stored in these objects to be released.
Specifically, this would allow for destruction of the RunLoop::Timer
object that's queued up in the JSRunLoopTimer::Manager::PerVMData
destructor but never gets dispatched because the thread (a JS worker) is
shut down before that happens. Destruction of the timer will release the
reference of the RunLoop that's held by the RunLoop::Holder, finally
enabling the RunLoop object itself be destroyed once the RunLoop::Holder
reference is let go.
- wtf/RunLoop.cpp:
(WTF::RunLoop::Holder::~Holder):
(WTF::RunLoop::threadWillExit):
- wtf/RunLoop.h:
Tools:
Add a unit test covering proper RunLoop teardown upon thread destruction
even if RunLoop references are stored in the dispatch queues.
- TestWebKitAPI/Tests/WTF/RunLoop.cpp:
(TestWebKitAPI::TEST):
- 2:19 AM Changeset in webkit [272131] by
-
- 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit
[GTK] WebKitPluginProcess is built but not installed
https://bugs.webkit.org/show_bug.cgi?id=220154
Patch by Jim Mason <jmason@ibinx.com> on 2020-12-27
Reviewed by Carlos Garcia Campos.
- CMakeLists.txt:
- 2:11 AM Changeset in webkit [272130] by
-
- 2 edits in trunk/Source/WebCore
Remove unused SlotAssignment::enqueueSlotChangeEvent()
https://bugs.webkit.org/show_bug.cgi?id=220906
Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2021-02-01
Reviewed by Yusuke Suzuki.
- dom/SlotAssignment.h:
Jan 31, 2021:
- 11:17 PM Changeset in webkit [272129] by
-
- 5 edits in trunk/Source/WebCore
[GStreamer][EME] Add basic cbcs support
https://bugs.webkit.org/show_bug.cgi?id=221133
Reviewed by Philippe Normand.
Add cbcs as supported encryption scheme.
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::capsMediaType):
- platform/graphics/gstreamer/eme/CDMThunder.cpp:
(WebCore::CDMPrivateThunder::supportedInitDataTypes const):
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(transformInPlace):
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
- 4:45 PM Changeset in webkit [272128] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] InlineContentBreaker::processOverflowingTextContent should find breaking positions even after the overflowing run
https://bugs.webkit.org/show_bug.cgi?id=221189
Reviewed by Antti Koivisto.
When the content has multiple (continous)runs, and we find the overflowing one
- first start searching backwards to see if we can find something that's breakable (this is already implemented)
- start searching forward to see if we can find something that's breakable -though in this case it's surely overflowing.
This patch implements #2.
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingTextContent const):
- 12:48 PM Changeset in webkit [272127] by
-
- 4 edits1 add in trunk
Date.parse returns non-integral time value
https://bugs.webkit.org/show_bug.cgi?id=220687
Reviewed by Ross Kirsling.
JSTests:
- complex.yaml:
- complex/date-parse-milliseconds.js: Added.
(shouldBe):
Source/WTF:
Use milliseconds instead of seconds as a base unit to avoid floating point rounding for milliseconds.
- wtf/DateMath.cpp:
(WTF::ymdhmsToMilliseconds):
(WTF::parseES5TimePortion):
(WTF::parseES5DateFromNullTerminatedCharacters):
(WTF::parseDateFromNullTerminatedCharacters):
(WTF::ymdhmsToSeconds): Deleted.
- 12:31 PM Changeset in webkit [272126] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Do not use a max value to indicate infinite available space in InlineContentBreaker::tryBreakingTextRun
https://bugs.webkit.org/show_bug.cgi?id=221188
Reviewed by Antti Koivisto.
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingTextContent const):
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): add fast paths for cases when the available space is zero.
Note that there's a difference between returning nullopt and an empty value.
- layout/inlineformatting/InlineContentBreaker.h:
- 12:24 PM Changeset in webkit [272125] by
-
- 18 edits8 adds in trunk
Add support for color(prophoto-rgb ...) as part of CSS Color 4
https://bugs.webkit.org/show_bug.cgi?id=221116
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add some new WPT tests for color(prophoto-rgb ) that will be upstreamed shortly.
(see https://github.com/web-platform-tests/wpt/pull/27416).
- web-platform-tests/css/css-color/prophoto-rgb-001-expected.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-001.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-002-expected.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-002.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-003-expected.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-003.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-004-expected.html: Added.
- web-platform-tests/css/css-color/prophoto-rgb-004.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-color/prophoto-rgb-001.html
imported/w3c/web-platform-tests/css/css-color/prophoto-rgb-002.html
imported/w3c/web-platform-tests/css/css-color/prophoto-rgb-003.html
imported/w3c/web-platform-tests/css/css-color/prophoto-rgb-004.html
- css/CSSValueKeywords.in:
Add prophoto-rgb keyword.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
Parse color(prophoto-rgb ) using the existing generic rgb type color function
parsing function.
- platform/graphics/ColorConversion.cpp:
(WebCore::convertFromD50WhitePointToD65WhitePoint):
(WebCore::convertFromD65WhitePointToD50WhitePoint):
Move these chromatic adaptation conversions up in the file so they can be reused by
toLinearProPhotoRGB(copnst XYZA&) and toXYZA(const LinearProPhotoRGB).
(WebCore::toLinearProPhotoRGB):
(WebCore::toProPhotoRGB):
(WebCore::toXYZA):
- platform/graphics/ColorConversion.h:
(WebCore::toLinearRec2020):
(WebCore::toProPhotoRGB):
(WebCore::toLinearProPhotoRGB):
(WebCore::callWithColorType):
Add conversion support for ProPhotoRGB, utilizing the ProPhotoRGBTransferFunction
for gamma correction.
- platform/graphics/ColorSerialization.cpp:
(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
- platform/graphics/ColorSerialization.h:
Add serialization support, matching other rgb color() function
types.
- platform/graphics/ColorSpace.cpp:
(WebCore::operator<<):
- platform/graphics/ColorSpace.h:
Add ProPhotoRGB as a new ColorSpace.
- platform/graphics/ColorTransferFunctions.h:
(WebCore::mode>::toGammaEncoded):
(WebCore::mode>::toLinear):
Add transfer function for ProPhotoRGB. Both clamped and unclamped
are implemented, though for now, only the clamped variant is
being used. Also fix small bug in unclamped Rec2020TransferFunction
that I meant to land before where the sign wasn't getting applied
to the whole computation.
- platform/graphics/ColorTypes.h:
Add ProPhotoRGB and LinearProPhotoRGB types. Fix typo in forward
declaration of the XYZA type.
- platform/graphics/cg/ColorSpaceCG.cpp:
(WebCore::proPhotoRGBColorSpaceRef):
- platform/graphics/cg/ColorSpaceCG.h:
(WebCore::cachedCGColorSpace):
Add support for the ProPhotoRGB as a CoreGraphics color space, where
it is known as kCGColorSpaceROMMRGB (ROMM stands for Reference Output
Medium Metric, another name for ProPhoto).
LayoutTests:
Remove now passing prophoto-rgb tests.
- fast/css/parsing-color-function-expected.txt:
- fast/css/parsing-color-function.html:
Add prophoto-rgb as an rgb type so it gets tested with the
others.
- 9:16 AM Changeset in webkit [272124] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] TrailingTextContent should be able to tell if even the first run in the set does not fit
https://bugs.webkit.org/show_bug.cgi?id=221185
Reviewed by Antti Koivisto.
There are 3 distinct cases here that we should be able to encode with the return value of processOverflowingTextContent.
- We did not find any breakable run in the set -> return value is nullopt
- We did find a breakable run but even the first run does not fit at all -> TrailingTextContent::runIndex is nullopt
- We did find a breakable run and we can fit the first run (either fully or partially) -> TrailingTextContent::runIndex is 0.
Make TrailingTextContent::runIndex optional so that we can tell the difference between #2 and #3.
- layout/inlineformatting/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::processOverflowingTextContent const):