Timeline
Aug 3, 2021:
- 10:36 PM Changeset in webkit [280628] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r280568): ASSERTION FAILED: videoFullscreenManager->client() == &_videoFullscreenManagerProxyClient
https://bugs.webkit.org/show_bug.cgi?id=228740
rdar://problem/81464301
Reviewed by Jer Noble.
Fix assertion to reflect that the code can be code in two ways.
This will all go away following bug 228761.
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController setVideoFullscreenManagerClient:]):
- 9:49 PM Changeset in webkit [280627] by
-
- 10 edits in trunk
ReadableStream's pipeTo() and pipeThrough() don't properly check for AbortSignal
https://bugs.webkit.org/show_bug.cgi?id=227693
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/streams/piping/abort.any-expected.txt:
- web-platform-tests/streams/piping/abort.any.worker-expected.txt:
- web-platform-tests/streams/piping/pipe-through.any-expected.txt:
- web-platform-tests/streams/piping/pipe-through.any.worker-expected.txt:
Source/WebCore:
This patch introduces @isAbortSignal global private function to replace
instanceof
checks that a) were false positive forObject.create(AbortSignal.prototype)and
b) observably performed GetPrototypeOf and Symbol.hasInstance lookup / call.
Aligns WebKit with Blink and the spec (https://heycam.github.io/webidl/#implements).
Test: imported/w3c/web-platform-tests/streams/piping/abort.any.js
- Modules/streams/ReadableStream.js:
(pipeThrough):
(pipeTo):
- Modules/streams/ReadableStreamInternals.js:
(readableStreamPipeToWritableStream):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
- bindings/js/WebCoreBuiltinNames.h:
- 6:37 PM Changeset in webkit [280626] by
-
- 6 edits in trunk
Add functions for parsing URL query string
https://bugs.webkit.org/show_bug.cgi?id=228122
Patch by Risul Islam <risul_islam@apple.com> on 2021-08-03
Reviewed by Darin Adler.
Source/WTF:
Added parsing of URL query strings.
- wtf/KeyValuePair.h:
(WTF::operator== const):
- wtf/URL.cpp:
(WTF::URL::differingQueryParameters):
(WTF::lengthOfURLIgnoringQueryAndFragments):
(WTF::URL::isEqualIgnoringQueryAndFragments):
(WTF::URL::removeQueryParameters):
- wtf/URL.h:
Tools:
Added the test functions required for parsing URL query string.
- TestWebKitAPI/Tests/WTF/URL.cpp:
(TestWebKitAPI::TEST_F):
- 6:23 PM Changeset in webkit [280625] by
-
- 2 edits4 deletes in trunk/LayoutTests
[WPE] Remove deprecated color-scheme baselines and expectations
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-attribute-changes-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-empty-content-value-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-first-valid-applies-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-insert-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-no-content-value-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-presentational-hint-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-remove-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-remove-head-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-single-value-in-body-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-single-value-in-head-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/meta/meta-color-scheme-single-value-in-shadow-tree-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/parsing/color-scheme-computed-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/parsing/color-scheme-invalid-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-color-adjust/parsing/color-scheme-valid-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/mediaqueries/prefers-color-scheme-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-empty-content-value-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-first-valid-applies-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-insert-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-no-content-value-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-presentational-hint-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove-head-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-body-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-head-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-single-value-in-shadow-tree-expected.txt: Removed.
- 6:10 PM Changeset in webkit [280624] by
-
- 12 edits1 delete in trunk
Unreviewed, reverting r280531 and r280589.
caused
Reverted changesets:
"[Cocoa] Remove support for AVAssetImageGenerator"
https://bugs.webkit.org/show_bug.cgi?id=228560
https://commits.webkit.org/r280531
"REGRESSION (r280531): multiple modern-media-controls tests
have become flaky timeouts"
https://bugs.webkit.org/show_bug.cgi?id=228714
https://commits.webkit.org/r280589
- 5:02 PM Changeset in webkit [280623] by
-
- 2 edits in trunk/Source/WebCore
Null check self.session after calling _cancel instead of before
https://bugs.webkit.org/show_bug.cgi?id=228757
<rdar://79224868>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-03
Reviewed by Geoffrey Garen.
_cancel already null checks self.session before using it.
It seems to be setting self.session to null after the null check, so move the null check to before we use it.
This should fix an occasional crash during teardown.
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask _restart]):
- 4:40 PM Changeset in webkit [280622] by
-
- 2 edits in trunk/Tools
[webkitpy] Handle case where no existing simulators are defined
https://bugs.webkit.org/show_bug.cgi?id=228758
<rdar://problem/81484040>
Reviewed by Ryan Haddad.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager._disambiguate_device_type): If there are no available devices,
find the newest device identifier which matches the requested type.
- 4:14 PM Changeset in webkit [280621] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Simulator temp files filling up disk (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=228335
<rdar://problem/81171840>
Reviewed by Ryan Haddad.
- CISupport/kill-old-processes:
(main): Use tempdir environment variable, link to underlying bug.
- 3:52 PM Changeset in webkit [280620] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Allow check for nvram "emu" state on internal OS builds
https://bugs.webkit.org/show_bug.cgi?id=228745
<rdar://problem/78363040>
Reviewed by Per Arne Vollan.
Allow access to the 'emu' nvram variable when running on an Apple Internal OS build. This
reduces spurious sandbox violation reports, and improves the performance of test systems.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 3:23 PM Changeset in webkit [280619] by
-
- 4 edits in trunk/Tools
WebKitTestRunner should dump current results in the case of a timeout
https://bugs.webkit.org/show_bug.cgi?id=228706
<rdar://79154019>
Reviewed by Jonathan Bedard.
When WKTR encounters a timeout, it current prints a "PID UNRESPONSIVE" and "FAIL: timed out" message,
but the WebContent process may not actually be unresponsive; it may just be waiting for an event
which hasn't fired, or a condition to become true. In these cases, it would be very helpful to see
the results of the test so far, so as to diagnose what is keeping the test from running to completion.
When, in the WKTR process, TestInvocation's "waitToDumpWatchdogTimer" fires, first try sending a message
to the InjectedBundle, requesting it to "ForceImmediateCompletion". Only if this message fails to be
acted upon will WKTR print the "PID UNRESPONSIVE" message.
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::TestInvocation):
(WTR::TestInvocation::waitToDumpWatchdogTimerFired):
(WTR::TestInvocation::initializeWaitForPostDumpWatchdogTimerIfNeeded):
(WTR::TestInvocation::invalidateWaitForPostDumpWatchdogTimer):
(WTR::TestInvocation::waitForPostDumpWatchdogTimerFired):
(WTR::TestInvocation::done):
- WebKitTestRunner/TestInvocation.h:
- 3:17 PM Changeset in webkit [280618] by
-
- 2 edits in trunk/Tools
[webkitpy] Narrow set of terminated simulator processes
https://bugs.webkit.org/show_bug.cgi?id=228752
<rdar://problem/81479508>
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager.initialize_devices): Only check Simulator.app.
(SimulatedDeviceManager.tear_down): Only kill Simulator.app processes.
(SimulatedDevice._delete): Print error ifsimctl deletefails, but continue.
- 3:11 PM Changeset in webkit [280617] by
-
- 2 edits in trunk/LayoutTests
Re-baseline imported/w3c/web-platform-tests/html/dom/idlharness.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228198.
Unreviewed re-baseline.
- platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 1:54 PM Changeset in webkit [280616] by
-
- 4 edits in branches/safari-612.1-branch/Source
Cherry-pick r280603. rdar://problem/81473647
[Live Text] [iOS] Provide a presenting
UIViewControllerfor machine readable code actions so that they are related to the same view
https://bugs.webkit.org/show_bug.cgi?id=228722
Reviewed by Tim Horton.
Source/WebCore/PAL:
- pal/spi/cocoa/VisionKitCoreSPI.h:
Source/WebKit:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _updateContextMenuForMachineReadableCodeForImageAnalysis:]): Added. (-[WKContentView imageAnalysisGestureDidBegin:]): (-[WKContentView imageAnalysisGestureDidTimeOut:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280603 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:54 PM Changeset in webkit [280615] by
-
- 2 edits in branches/safari-612.1-branch/Source/WebCore
Cherry-pick r280591. rdar://problem/81471312
Update FirstWithDOMWindowReuseRestriction linked-on-or-after check to latest MacOS/iOS betas
https://bugs.webkit.org/show_bug.cgi?id=228736
<rdar://81419036>
Reviewed by Chris Dumez.
- platform/cocoa/VersionChecks.h: Delay enabling new behavior to MacOS 12 and iOS 15 SDK since new behavior is enabled for those OS versions.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280591 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:54 PM Changeset in webkit [280614] by
-
- 2 edits in branches/safari-612.1-branch/Source/WebCore
Cherry-pick r280589. rdar://problem/81471336
REGRESSION (r280531): multiple modern-media-controls tests have become flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=228714
<rdar://problem/81426715>
Reviewed by Eric Carlson.
Update preferredRenderingMode() to reflect what setUpVideoRendering() actually does: use
MediaRenderingToContext whenever possible. This will cause setUpVideoRendering() to be
called from updateStates() to create the context, even if the element has been marked as
!isVisible() by RenderVideo upon removal from the DOM.
Also, in renderingModeChanged(), don't attempt to deduce whether scheduleUpdateStates()
should be called; just call it universally.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::preferredRenderingMode const): (WebCore::MediaPlayerPrivateAVFoundation::renderingModeChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280589 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:54 PM Changeset in webkit [280613] by
-
- 4 edits in branches/safari-612.1-branch/Source/WebCore
Cherry-pick r280587. rdar://problem/81473679
Crash in webgl/1.0.x/conformance/textures/misc/texture-with-flip-y-and-premultiply-alpha.html
https://bugs.webkit.org/show_bug.cgi?id=223920
<rdar://problem/76261913>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-03
Reviewed by Kenneth Russell.
After enabling WEBGL_depth_texture, the getDataFormat would assert for case of
format == RGBA, type == UNSIGNED_SHORT. UNSIGNED_SHORT is intended for
format == DEPTH_COMPONENT.
Instead, return error if the data conversion cannot be done. This is better in all
cases than doing non-expected data conversion in release build and assertion in
debug builds.
Tested by webgl/1.0.x/conformance/textures/misc/texture-with-flip-y-and-premultiply-alpha.html
(disabled for now).
- html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::texImageArrayBufferViewHelper):
- platform/graphics/GraphicsContextGL.cpp: (WebCore::getDataFormat): (WebCore::packPixels): (WebCore::GraphicsContextGL::extractTextureData):
- platform/graphics/GraphicsContextGL.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:37 PM Changeset in webkit [280612] by
-
- 1 copy in branches/safari-612.1-branch
New branch.
- 1:36 PM Changeset in webkit [280611] by
-
- 16 edits in trunk/Source/WebKit
Remove unused processDidTransitionTo{Foreground,Background} IPC
https://bugs.webkit.org/show_bug.cgi?id=228328
Reviewed by Wenson Hsieh.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::processDidTransitionToForeground): Deleted.
(WebKit::GPUProcess::processDidTransitionToBackground): Deleted.
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::processDidTransitionToForeground): Deleted.
(WebKit::NetworkProcess::processDidTransitionToBackground): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground): Deleted.
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground): Deleted.
- NetworkProcess/curl/NetworkProcessCurl.cpp:
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground): Deleted.
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground): Deleted.
- NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground): Deleted.
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground): Deleted.
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::updateProcessAssertion):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::updateProcessAssertion):
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:
(WebKit::WebAuthnProcessProxy::updateProcessAssertion):
- WebAuthnProcess/WebAuthnProcess.cpp:
(WebKit::WebAuthnProcess::processDidTransitionToForeground): Deleted.
(WebKit::WebAuthnProcess::processDidTransitionToBackground): Deleted.
- WebAuthnProcess/WebAuthnProcess.h:
- WebAuthnProcess/WebAuthnProcess.messages.in:
These messages do nothing.
- 1:29 PM Changeset in webkit [280610] by
-
- 2 edits1 delete in trunk/LayoutTests
fast/dom/navigator-iOS-userAgent.html fails on iPad because the platform is not "iPhone" or "iPad"
https://bugs.webkit.org/show_bug.cgi?id=228750
Reviewed by Dean Jackson.
- fast/dom/navigator-iOS-userAgent.html:
- platform/ipad/fast/dom/navigator-iOS-userAgent-expected.txt: Removed.
This test fails on iPad in the default configuration because navigator.platform is MacIntel
due to desktop-class browsing. To maintain previous behavior of the test, revert to mobile mode.
This lets us delete the iPad-specific results.
Also, fix a typo in the variable names.
- 1:26 PM Changeset in webkit [280609] by
-
- 6 edits in trunk/Source/JavaScriptCore
[ARM64] Use link register instead of pinning a register for materializing big load constants
https://bugs.webkit.org/show_bug.cgi?id=228710
Reviewed by Mark Lam.
Previously, we pin a register as a temp for materializing a large constant that cannot fit in
Load/Store imm form. This is not efficient since the register allocator has one less register
to allocate from. To solve this problem, we should switch to using the link register as the temp
on ARM64.
- b3/B3Common.cpp:
(JSC::B3::linkRegister):
(JSC::B3::pinnedExtendedOffsetAddrRegister): Deleted.
- b3/B3Common.h:
- b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::callFrameAddr):
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::Code):
- b3/air/AirLowerStackArgs.cpp:
(JSC::B3::Air::lowerStackArgs):
- 1:04 PM Changeset in webkit [280608] by
-
- 2 edits in trunk/LayoutTests
[ iPad ] fast/dom/collection-iterators.html fails
https://bugs.webkit.org/show_bug.cgi?id=228657
Unreviewed rebaseline.
- platform/ipad/fast/dom/collection-iterators-expected.txt:
Actually land the expected file, not a diff like in r280494.
- 12:27 PM Changeset in webkit [280607] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Garden some passing tests
Unreviewed test gardening.
Covering latest WPE expected to fail but passing tests.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 12:24 PM Changeset in webkit [280606] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Fix sandbox violation in GPU process
https://bugs.webkit.org/show_bug.cgi?id=228743
<rdar://problem/81334849>
Reviewed by Brent Fulgham.
Allow reading "hw.product" in the GPU process' sandbox.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 12:15 PM Changeset in webkit [280605] by
-
- 3 edits in trunk/Source/bmalloc
pas_segmented_vector's iterate functions should handle memory ordering correctly
https://bugs.webkit.org/show_bug.cgi?id=228746
Reviewed by Mark Lam.
Also fixed a missing store-store fence in bitfit_directory's use of a segmented vector.
- libpas/src/libpas/pas_bitfit_directory.c:
(pas_bitfit_directory_get_first_free_view):
- libpas/src/libpas/pas_segmented_vector.h:
- 12:00 PM Changeset in webkit [280604] by
-
- 6 edits in trunk/Tools
[webkitscmpy] Add access to
git config
https://bugs.webkit.org/show_bug.cgi?id=228597
<rdar://problem/81283644>
Reviewed by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.config): Return git configuration as dictionary.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(test_config): Test repository configuration.
(test_global_config): Test global configuration.
- 11:22 AM Changeset in webkit [280603] by
-
- 4 edits in trunk/Source
[Live Text] [iOS] Provide a presenting
UIViewControllerfor machine readable code actions so that they are related to the same view
https://bugs.webkit.org/show_bug.cgi?id=228722
Reviewed by Tim Horton.
Source/WebCore/PAL:
- pal/spi/cocoa/VisionKitCoreSPI.h:
Source/WebKit:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _updateContextMenuForMachineReadableCodeForImageAnalysis:]): Added.
(-[WKContentView imageAnalysisGestureDidBegin:]):
(-[WKContentView imageAnalysisGestureDidTimeOut:]):
- 10:49 AM Changeset in webkit [280602] by
-
- 2 edits in trunk/Tools
[check-github-mirror-integrity] Handle slow Svn query
https://bugs.webkit.org/show_bug.cgi?id=228741
Reviewed by Aakash Jain.
- Scripts/check-github-mirror-integrity: Pull commit from GitHub before Subversion.
- 10:34 AM Changeset in webkit [280601] by
-
- 3 edits2 adds in trunk
Crash while reading WebGL drawing buffer if canvas image buffer allocation fails
https://bugs.webkit.org/show_bug.cgi?id=228737
<rdar://81150042>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-03
Reviewed by Brent Fulgham.
Source/WebCore:
The crash would happen for example when running out of memory during snapshot
or printing. Snapshots and printing forces the WebGL canvas to be "painted
to document", which would then trigger the crash.
Other code-paths that invoke CanvasBase::makeRenderingResultsAvailable,
e.g. toDataURL and drawImage will check for the buffer before, and
as such are not testable in the sense that adding the test would trigger
the bug.
Test: webgl/webgl-oom-paint-document-no-crash.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):
Check for the nullptr from CanvasBase::buffer(). This might happen
when the ImageBuffer was not allocated due to memory constraints.
LayoutTests:
Add a test for failure to paint the WebGL canvas to document.
Trigger the mode by using printing.
Other code-paths that invoke CanvasBase::makeRenderingResultsAvailable,
e.g. toDataURL and drawImage will check for the buffer before, and
as such are not testable in the sense that adding the test would trigger
the bug.
- webgl/webgl-oom-paint-document-no-crash-expected.html: Added.
- webgl/webgl-oom-paint-document-no-crash.html: Added.
- 10:05 AM Changeset in webkit [280600] by
-
- 2 edits in trunk/Source/WTF
RealtimeMediaSource::audioSamplesAvailable is calling malloc as part of locking in audio thread
https://bugs.webkit.org/show_bug.cgi?id=228688
Reviewed by Eric Carlson.
Allow allocations in lockSlow since allocations might happen in rare case and not for each lockSlow call.
- wtf/Lock.cpp:
(WTF::Lock::lockSlow):
(WTF::Lock::unlockSlow):
(WTF::Lock::unlockFairlySlow):
- 9:54 AM Changeset in webkit [280599] by
-
- 3 edits2 adds in trunk
REGRESSION(r279050): Crash under CSSImageValue::createDeprecatedCSSOMWrapper with cursor images
https://bugs.webkit.org/show_bug.cgi?id=228735
Reviewed by Alex Christensen.
Source/WebCore:
CSSCursorImageValue is not a CSSImageValue. This used to work before r279050 because they had
the URL field in the same offset.
Test: fast/css/cursor-image-cssvalue.html
- css/CSSValue.cpp:
(WebCore::CSSValue::createDeprecatedCSSOMWrapper const):
Don't do any special handling for CSSCursorImageValue. They are exposed as generic (deprecated)
CSS values with cssText only.
LayoutTests:
- fast/css/cursor-image-cssvalue-expected.txt: Added.
- fast/css/cursor-image-cssvalue.html: Added.
- 9:51 AM Changeset in webkit [280598] by
-
- 1 copy in tags/Safari-612.1.15.4.15
Tag Safari-612.1.15.4.15.
- 9:50 AM Changeset in webkit [280597] by
-
- 6 edits in branches/safari-612.1.15.4-branch/Source
Speculative build fix. rdar://79147214.
- 9:44 AM Changeset in webkit [280596] by
-
- 3 edits in branches/safari-612.1.15.4-branch/Source/WebInspectorUI
Cherry-pick r280574. rdar://problem/81466166
Web Inspector: [AppleWin] Speculative internal build fix for copying
InspectorBackendCommands.js
https://bugs.webkit.org/show_bug.cgi?id=228716
Reviewed by Maciej Stachowiak.
Speculative fix for AppleWin port internal build by using the correct directory for JSC headers. Also update the
logging message to reflect that the file will by copied later in the build.
- WebInspectorUI.vcxproj/WebInspectorUI.make:
- WebInspectorUI.vcxproj/build-webinspectorui.pl:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:42 AM Changeset in webkit [280595] by
-
- 8 edits in branches/safari-612.1.15.4-branch/Source
Versioning.
WebKit-7612.1.15.4.15
- 9:42 AM Changeset in webkit [280594] by
-
- 5 edits in trunk/Source/WebCore
Use WeakPtr instead of manual raw pointer management in URLSearchParams
https://bugs.webkit.org/show_bug.cgi?id=228723
Patch by Alex Christensen <achristensen@webkit.org> on 2021-08-03
Reviewed by Chris Dumez.
This is less error prone.
- html/DOMURL.cpp:
(WebCore::DOMURL::~DOMURL): Deleted.
- html/DOMURL.h:
- html/URLSearchParams.cpp:
(WebCore::URLSearchParams::URLSearchParams):
- html/URLSearchParams.h:
(WebCore::URLSearchParams::associatedURLDestroyed): Deleted.
- 8:59 AM Changeset in webkit [280593] by
-
- 10 edits in trunk
ReadableStream's pipeTo() and pipeThrough() don't handle options in spec-perfect way
https://bugs.webkit.org/show_bug.cgi?id=227690
<rdar://problem/80482144>
LayoutTests/imported/w3c:
Reviewed by Alexey Shvayka .
- web-platform-tests/streams/piping/general.any-expected.txt:
- web-platform-tests/streams/piping/general.any.worker-expected.txt:
- web-platform-tests/streams/piping/pipe-through.any-expected.txt:
- web-platform-tests/streams/piping/pipe-through.any.js:
(tryPipeThrough):
(test.get assert_equals):
- web-platform-tests/streams/piping/pipe-through.any.worker-expected.txt:
- web-platform-tests/streams/piping/throwing-options.any-expected.txt:
- web-platform-tests/streams/piping/throwing-options.any.worker-expected.txt:
Source/WebCore:
Reviewed by Alexey Shvayka.
Order getters as per spec for pipeTo and pipeThrough.
Handle the case of null dictionaries as if they are undefined
Use getter instead of using 'in' as per WebIDL spec.
If options is undefined, skip calling any getter.
Covered by updated test.
- Modules/streams/ReadableStream.js:
(pipeThrough):
(pipeTo):
- 8:50 AM Changeset in webkit [280592] by
-
- 4 edits6 adds in trunk/LayoutTests
Import css/css-sizing/aspect-ratio tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=228734
Reviewed by Rob Buis.
LayoutTests/imported/w3c:
Import css/css-sizing/aspect-ratio tests from WPT commit f76ae81001.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-021-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/abspos-021.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-027-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-027.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-028-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-028.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
LayoutTests:
- 8:33 AM Changeset in webkit [280591] by
-
- 2 edits in trunk/Source/WebCore
Update FirstWithDOMWindowReuseRestriction linked-on-or-after check to latest MacOS/iOS betas
https://bugs.webkit.org/show_bug.cgi?id=228736
<rdar://81419036>
Reviewed by Chris Dumez.
- platform/cocoa/VersionChecks.h:
Delay enabling new behavior to MacOS 12 and iOS 15 SDK since new behavior is enabled for those OS versions.
- 6:26 AM Changeset in webkit [280590] by
-
- 2 edits in trunk/Tools
[WPE][GTK] SVN_REVISION drifting away if bots don't re-run cmake
https://bugs.webkit.org/show_bug.cgi?id=228290
Reviewed by Michael Catanzaro.
The apply-build-revision-to-files.py script wasn't expanding the BUILD_REVISION beyond the
first run, because it processes files generated by CMake already, and expanding the
BUILD_REVISION once prevents further expansions. So the proposed solution is to always
expand BuildRevision.h.in from that script, and for .pc files, to restore the BUILD_REVISION
template before updating the file.
- glib/apply-build-revision-to-files.py:
(main):
- 6:15 AM Changeset in webkit [280589] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r280531): multiple modern-media-controls tests have become flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=228714
<rdar://problem/81426715>
Reviewed by Eric Carlson.
Update preferredRenderingMode() to reflect what setUpVideoRendering() actually does: use
MediaRenderingToContext whenever possible. This will cause setUpVideoRendering() to be
called from updateStates() to create the context, even if the element has been marked as
!isVisible() by RenderVideo upon removal from the DOM.
Also, in renderingModeChanged(), don't attempt to deduce whether scheduleUpdateStates()
should be called; just call it universally.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::preferredRenderingMode const):
(WebCore::MediaPlayerPrivateAVFoundation::renderingModeChanged):
- 2:10 AM Changeset in webkit [280588] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Add standard logical properties to CSS keyword completion
https://bugs.webkit.org/show_bug.cgi?id=228548
Patch by Sonia Singla <soniasingla.1812@gmail.com> on 2021-08-03
Reviewed by Devin Rousso.
- UserInterface/Models/CSSKeywordCompletions.js:
- 1:35 AM Changeset in webkit [280587] by
-
- 4 edits in trunk/Source/WebCore
Crash in webgl/1.0.x/conformance/textures/misc/texture-with-flip-y-and-premultiply-alpha.html
https://bugs.webkit.org/show_bug.cgi?id=223920
<rdar://problem/76261913>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-08-03
Reviewed by Kenneth Russell.
After enabling WEBGL_depth_texture, the getDataFormat would assert for case of
format == RGBA, type == UNSIGNED_SHORT. UNSIGNED_SHORT is intended for
format == DEPTH_COMPONENT.
Instead, return error if the data conversion cannot be done. This is better in all
cases than doing non-expected data conversion in release build and assertion in
debug builds.
Tested by webgl/1.0.x/conformance/textures/misc/texture-with-flip-y-and-premultiply-alpha.html
(disabled for now).
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texImageArrayBufferViewHelper):
- platform/graphics/GraphicsContextGL.cpp:
(WebCore::getDataFormat):
(WebCore::packPixels):
(WebCore::GraphicsContextGL::extractTextureData):
- platform/graphics/GraphicsContextGL.h:
- 12:38 AM Changeset in webkit [280586] by
-
- 3 edits2 adds in trunk
Check that shadow root is connected in invalidateStyleAfterStyleSheetChange
https://bugs.webkit.org/show_bug.cgi?id=227383
Patch by Rob Buis <rbuis@igalia.com> on 2021-08-03
Reviewed by Antti Koivisto.
Source/WebCore:
Check that shadow root is connected in invalidateStyleAfterStyleSheetChange.
Test: fast/shadow-dom/shadow-tree-removal-crash.html
- style/StyleScope.cpp:
(WebCore::Style::Scope::updateActiveStyleSheets):
LayoutTests:
Add test for this.
- fast/shadow-dom/shadow-tree-removal-crash-expected.txt: Added.
- fast/shadow-dom/shadow-tree-removal-crash.html: Added.
Aug 2, 2021:
- 11:54 PM Changeset in webkit [280585] by
-
- 3 edits in trunk/Source/WebCore
Align implementation of PositionIterator::isCandidate() on Position::isCandidate()
https://bugs.webkit.org/show_bug.cgi?id=228635
Patch by Frédéric Wang <fwang@igalia.com> on 2021-08-02
Reviewed by Darin Adler.
The bug fixed in r280381 was due to the fact that PositionIterator::isCandidate() and
Position::isCandidate() had gone out of sync. To prevent future bugs of this kind, this patch
modifies PositionIterator::isCandidate() so that it is aligned with
PositionIterator::isCandidate() (except when an m_anchorType check is needed) and add code
comments in both functions to ensure the same changes are always applied to them.
- dom/Position.cpp:
(WebCore::Position::isCandidate const): Add a comment to make sure we update PositionIterator
when changing that function. Also use auto for a local variable like in PositionIterator.
- dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate const): Add a comment to make sure we update Position
when changing that function. Rearrange the code to use positionBeforeOrAfterNodeIsCandidate
and early return when the node is a <html> element (these are not behavior changes). For
block flow / grid / flexbox renderers, add a special handling when the anchor node is a root
editable element ; also change the fallback value returned at the end of the function (these
are two behavior changes).
- 9:21 PM Changeset in webkit [280584] by
-
- 10 edits in trunk
Source/WebCore:
[WebAudio] webm; properly trim frames according to the codec delay information
https://bugs.webkit.org/show_bug.cgi?id=228140
rdar://problem/80883882
Reviewed by Eric Carlson.
Add frame-perfect decoding for Opus and Vorbis in WebM container.
Unfortunately, due to a vorbis decoder bug, it is not possible to test that
vorbis decoding returns the right number of frames.
Amend Opus test to ensure the right amount of frames are returned.
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::AudioFileReader::demuxWebMData const):
(WebCore::passthroughInputDataCallback): AudioToolbox internal logging could overflow
if we used packet descriptions with offsets, so we take the most commonly used scenario
where we have a single packet to decode at a time.
(WebCore::AudioFileReader::decodeWebMData const):
- platform/graphics/cocoa/AudioTrackPrivateWebM.cpp:
(WebCore::AudioTrackPrivateWebM::codecDelay const):
(WebCore::AudioTrackPrivateWebM::setDiscardPadding):
(WebCore::AudioTrackPrivateWebM::discardPadding const):
- platform/graphics/cocoa/AudioTrackPrivateWebM.h:
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::OnElementEnd): Fly-by, ensure m_didParseInitializationDataCallback
only ever accessed on client thread.
(WebCore::SourceBufferParserWebM::OnBlockGroupEnd):
- platform/graphics/cocoa/SourceBufferParserWebM.h: Add trimming data callback.
Only mark WEBCORE_EXPORT the methods that need it.
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::setDidParseTrimmingDataCallback):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType const): Make canPlayType(webm/audio; codecs=vorbis)
returns maybe if feature flag set.
LayoutTests:
https://bugs.webkit.org/show_bug.cgi?id=228140
rdar://problem/80883882
Reviewed by Eric Carlson.
https://bugs.webkit.org/show_bug.cgi?id=228140
- webaudio/decode-audio-data-webm-opus-expected.txt:
- webaudio/decode-audio-data-webm-opus.html:
- 9:18 PM Changeset in webkit [280583] by
-
- 8 edits in trunk/Source/JavaScriptCore
Add a new pattern to instruction selector to utilize UMULL supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=228721
Reviewed by Saam Barati.
Unsigned Multiply Long (UMULL) multiplies two 32-bit register values, and writes the
result to the destination register. This instruction is an alias of the UMADDL instruction.
umull xd wn wm
The equivalent pattern is: d = ZExt32(n) * ZExt32(m)
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = Trunc(@0)
Int @2 = ArgumentReg(%x1)
Int @3 = Trunc(@2)
Int @4 = ZExt32(@1)
Int @5 = ZExt32(@3)
Int @6 = Mul(@4, @5)
Void@7 = Return(@6, Terminal)
Old optimized AIR
Move %x0, %x0, @4
Move %x1, %x1, @5
Mul %x0, %x1, %x0, @6
Ret %x0, @7
New optimized AIR
MultiplyZeroExtend %x0, %x1, %x0, @6
Ret %x0, @7
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::multiplyZeroExtend32):
- assembler/testmasm.cpp:
(JSC::testMultiplyZeroExtend32):
- b3/B3LowerToAir.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(testMulArgs32SignExtend):
(testMulArgs32ZeroExtend):
- b3/testb3_3.cpp:
(addArgTests):
- 8:53 PM Changeset in webkit [280582] by
-
- 5 edits3 adds in trunk
[COOP] Cross-Origin-Opener-Policy header parsing fails when report-to parameter is present
https://bugs.webkit.org/show_bug.cgi?id=228719
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now failing a bit later.
- web-platform-tests/html/cross-origin-opener-policy/reporting/navigation-reporting/reporting-redirect-with-same-origin-allow-popups.https-expected.txt:
Source/WebCore:
Cross-Origin-Opener-Policy header parsing fails when report-to parameter is present, because
parseStructuredFieldValue() doesn't handle parameters whose value is double-quoted:
- https://datatracker.ietf.org/doc/html/rfc8941#section-4.2.3.2
- https://datatracker.ietf.org/doc/html/rfc8941#section-4.2.3.1
- https://datatracker.ietf.org/doc/html/rfc8941#section-4.2.5
Test: http/wpt/cross-origin-opener-policy/header-parsing-with-report-to.https.html
- platform/network/HTTPParsers.cpp:
(WebCore::parseStructuredFieldValue):
LayoutTests:
Add layout test coverage.
- http/wpt/cross-origin-opener-policy/header-parsing-with-report-to.https-expected.txt: Added.
- http/wpt/cross-origin-opener-policy/header-parsing-with-report-to.https.html: Added.
- 8:39 PM WebKitGTK/2.32.x edited by
- (diff)
- 8:36 PM Changeset in webkit [280581] by
-
- 5 edits in trunk/Source/WebCore
[css-cleanup] Replace webkit- prefix properties with Standard CSS Properties in Source/
https://bugs.webkit.org/show_bug.cgi?id=228697
Patch by Sonia Singla <soniasingla.1812@gmail.com> on 2021-08-02
Reviewed by Frédéric Wang.
- Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-controls-closed-captions-container h3,):
- Modules/mediacontrols/mediaControlsBase.css:
(video::-webkit-media-controls-closed-captions-container h3,):
(video::-webkit-media-controls-closed-captions-container li.selected::before,):
- css/html.css:
(p):
(blockquote):
(figure):
(hr):
(h1):
(:is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(:is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1):
(h2):
(h3):
(h4):
(h5):
(h6):
(ul, menu, dir):
(ol):
(dd):
(dl):
(ol ul, ul ol, ul ul, ol ol):
(legend):
(fieldset):
- css/mathml.css:
(mi):
(msub > mi:first-child, msubsup > mi:first-child):
(msubsup > mi:first-child + * + *):
- 8:30 PM Changeset in webkit [280580] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Garden some passing tests
Unreviewed test gardening.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 8:11 PM Changeset in webkit [280579] by
-
- 7 edits in trunk/Source/JavaScriptCore
Add new patterns to instruction selector to utilize AND/EOR/ORR-with-shift supported by ARM64
https://bugs.webkit.org/show_bug.cgi?id=228675
Reviewed by Saam Barati.
Bitwise AND (shifted register) performs a bitwise AND of a register value and an optionally-shifted
register value, and writes the result to the destination register.
and wd wn wm ShiftType #amount
The equivalent pattern is: n & (m ShiftType amount)
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = Const32(63)
Int @3 = Shl(@1, $63(@2))
Int @4 = BitAnd(@0, @3)
Void@5 = Return(@4, Terminal)
Old optimized AIR
Lshift %x1, $63, %x1, @3
And %x0, %x1, %x0, @4
Ret %x0, @5
New optimized AIR
AndLeftShift %x0, %x1, $63, %x0, @4
Ret %x0, @5
Bitwise Exclusive OR (shifted register) performs a bitwise Exclusive OR of a register value and an
optionally-shifted register value, and writes the result to the destination register.
eor wd wn wm ShiftType #amount
The equivalent pattern is: n (m ShiftType amount)
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = Const32(63)
Int @3 = Shl(@1, $63(@2))
Int @4 = BitXor(@0, @3)
Void@5 = Return(@4, Terminal)
Old optimized AIR
Lshift %x1, $63, %x1, @3
Xor %x0, %x1, %x0, @4
Ret %x0, @5
New optimized AIR
XorLeftShift %x0, %x1, $63, %x0, @4
Ret %x0, @5
Bitwise OR (shifted register) performs a bitwise (inclusive) OR of a register value and an
optionally-shifted register value, and writes the result to the destination register.
orr wd wn wm ShiftType #amount
The equivalent pattern is: n | (m ShiftType amount)
Given B3 IR:
Int @0 = ArgumentReg(%x0)
Int @1 = ArgumentReg(%x1)
Int @2 = Const32(63)
Int @3 = Shl(@1, $63(@2))
Int @4 = BitOr(@0, @3)
Void@5 = Return(@4, Terminal)
Old optimized AIR
Lshift %x1, $63, %x1, @3
Or %x0, %x1, %x0, @4
Ret %x0, @5
New optimized AIR
OrLeftShift %x0, %x1, $63, %x0, @4
Ret %x0, @5
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::andLeftShift32):
(JSC::MacroAssemblerARM64::andRightShift32):
(JSC::MacroAssemblerARM64::andUnsignedRightShift32):
(JSC::MacroAssemblerARM64::andLeftShift64):
(JSC::MacroAssemblerARM64::andRightShift64):
(JSC::MacroAssemblerARM64::andUnsignedRightShift64):
(JSC::MacroAssemblerARM64::xorLeftShift32):
(JSC::MacroAssemblerARM64::xorRightShift32):
(JSC::MacroAssemblerARM64::xorUnsignedRightShift32):
(JSC::MacroAssemblerARM64::xorLeftShift64):
(JSC::MacroAssemblerARM64::xorRightShift64):
(JSC::MacroAssemblerARM64::xorUnsignedRightShift64):
(JSC::MacroAssemblerARM64::orLeftShift32):
(JSC::MacroAssemblerARM64::orRightShift32):
(JSC::MacroAssemblerARM64::orUnsignedRightShift32):
(JSC::MacroAssemblerARM64::orLeftShift64):
(JSC::MacroAssemblerARM64::orRightShift64):
(JSC::MacroAssemblerARM64::orUnsignedRightShift64):
- assembler/testmasm.cpp:
(JSC::testAndLeftShift32):
(JSC::testAndRightShift32):
(JSC::testAndUnsignedRightShift32):
(JSC::testAndLeftShift64):
(JSC::testAndRightShift64):
(JSC::testAndUnsignedRightShift64):
(JSC::testXorLeftShift32):
(JSC::testXorRightShift32):
(JSC::testXorUnsignedRightShift32):
(JSC::testXorLeftShift64):
(JSC::testXorRightShift64):
(JSC::testXorUnsignedRightShift64):
(JSC::testOrLeftShift32):
(JSC::testOrRightShift32):
(JSC::testOrUnsignedRightShift32):
(JSC::testOrLeftShift64):
(JSC::testOrRightShift64):
(JSC::testOrUnsignedRightShift64):
- b3/B3LowerToAir.cpp:
- b3/air/AirOpcode.opcodes:
- b3/testb3.h:
- b3/testb3_2.cpp:
(testAndLeftShift32):
(testAndRightShift32):
(testAndUnsignedRightShift32):
(testAndLeftShift64):
(testAndRightShift64):
(testAndUnsignedRightShift64):
(testXorLeftShift32):
(testXorRightShift32):
(testXorUnsignedRightShift32):
(testXorLeftShift64):
(testXorRightShift64):
(testXorUnsignedRightShift64):
(testOrLeftShift32):
(testOrRightShift32):
(testOrUnsignedRightShift32):
(testOrLeftShift64):
(testOrRightShift64):
(testOrUnsignedRightShift64):
(addBitTests):
- 6:45 PM Changeset in webkit [280578] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Use loadPair / storePair in YarrJIT
https://bugs.webkit.org/show_bug.cgi?id=228687
Reviewed by Mark Lam.
Use loadPair / storePair if possible in YarrJIT. Currently, we are not
deploying Spooler in YarrJIT, but we should do that in the future too.
In this patch, we also add appropriate fallback code in loadPair / storePair:
the offset of these functions are small enough so that we should consider
overflowing case. If it overflows, we use two loads or stores.
This patch also adds loadPair32 and storePair32 to all macro assembler so that
we can call it without CPU(ARM64). Internally, two loads or stores are combined.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::loadPair32):
(JSC::MacroAssemblerARM64::loadPair64):
(JSC::MacroAssemblerARM64::loadPair64WithNonTemporalAccess):
(JSC::MacroAssemblerARM64::storePair32):
(JSC::MacroAssemblerARM64::storePair64):
(JSC::MacroAssemblerARM64::storePair64WithNonTemporalAccess):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::storePair32):
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::loadPair32):
(JSC::MacroAssemblerMIPS::storePair32):
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::loadPair32):
(JSC::MacroAssemblerX86Common::storePair32):
- assembler/testmasm.cpp:
(JSC::testLoadStorePair32):
(JSC::testLoadStorePair64Int64):
- yarr/YarrJIT.cpp:
- 6:11 PM Changeset in webkit [280577] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix accidental narrowing
https://bugs.webkit.org/show_bug.cgi?id=228613
Note that this narrowing does not matter semantically since we mask this value with 0x7f.
- yarr/YarrJIT.h:
(JSC::Yarr::BoyerMooreBitmap::addCharacters):
- 6:05 PM Changeset in webkit [280576] by
-
- 4 edits in trunk
[GPUP] RemoteAudioSession::setPreferredBufferSize() does not change its preferredBufferSize
https://bugs.webkit.org/show_bug.cgi?id=228720
Reviewed by Jer Noble.
Source/WebKit:
RemoteAudioSessionshould update itspreferredBufferSizein
setPreferredBufferSize(). Otherwise, thepreferredBufferSize
will become inconsistent with the value in the GPU process.
No new tests. Fix API test failures.
- WebProcess/GPU/media/RemoteAudioSession.cpp:
(WebKit::RemoteAudioSession::setPreferredBufferSize):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:
(TEST_F):
- 5:55 PM Changeset in webkit [280575] by
-
- 2 edits in trunk/Source/WebKit
[App Privacy Report] Domains are deleted for ephemeral website data stores
https://bugs.webkit.org/show_bug.cgi?id=228708
<rdar://problem/81282432>
Reviewed by Alex Christensen.
No new tests. Since this data is not stored in WebKit, we have no
way to test when it gets deleted or not. I tested manually and requested
an automated test at the correct networking layer.
Only clear Privacy Report data if the website data store is
persistent. Safari calls the SPI to remove website data for ephemeral
data stores in some cases that are unrelated to a user clearing
website data or history and thus should not clear App Privacy Report
data. Additionally, it is unexpected that clearing an ephemeral data
store would clear disk data, as website data is only stored in memory
in this case.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::removeNetworkWebsiteData):
- 5:55 PM Changeset in webkit [280574] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: [AppleWin] Speculative internal build fix for copying
InspectorBackendCommands.js
https://bugs.webkit.org/show_bug.cgi?id=228716
Reviewed by Maciej Stachowiak.
Speculative fix for AppleWin port internal build by using the correct directory for JSC headers. Also update the
logging message to reflect that the file will by copied later in the build.
- WebInspectorUI.vcxproj/WebInspectorUI.make:
- WebInspectorUI.vcxproj/build-webinspectorui.pl:
- 5:49 PM Changeset in webkit [280573] by
-
- 4 edits2 adds in trunk
[WebAudio] Add webm/vorbis container support
https://bugs.webkit.org/show_bug.cgi?id=228139
rdar://80883073
Reviewed by Jer Noble.
Source/WebKit:
Access to the com.apple.audio.AudioComponentRegistrar is denied by the sandbox which
prevents registering the Vorbis Audio Component. So we instantiate the decoder right before
setting up the sandbox.
This is a workaround for rdar://81137953.
Test: webaudio/decode-audio-data-webm-vorbis.html
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::initializeSandbox):
LayoutTests:
- platform/mac/TestExpectations:
- webaudio/decode-audio-data-webm-vorbis-expected.txt: Added.
- webaudio/decode-audio-data-webm-vorbis.html: Added.
- 5:24 PM Changeset in webkit [280572] by
-
- 1 copy in tags/Safari-612.1.26.0.1
Tag Safari-612.1.26.0.1.
- 5:19 PM Changeset in webkit [280571] by
-
- 1 copy in tags/Safari-612.1.26.1.1
Tag Safari-612.1.26.1.1.
- 4:43 PM Changeset in webkit [280570] by
-
- 4 edits3 adds in trunk
[JSC] Yarr BoyerMoore search should support character-class
https://bugs.webkit.org/show_bug.cgi?id=228613
Reviewed by Saam Barati.
JSTests:
- stress/regexp-bm-search-character-non-fixed-size.js: Added.
(shouldBe):
- stress/regexp-bm-search-many-candidate-zero-length.js: Added.
(shouldBe):
(regexp.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.0.1.2.3.4.5.6.7.8.9.t.v.n.r):
- stress/regexp-bm-search-non-fixed-size.js: Added.
(shouldBe):
Source/JavaScriptCore:
This patch adds character-class support for BoyerMoore lookahead search in Yarr.
Currently, we only support fixed-sized character-class. We can extend it for repeat cases in the future.
To apply this character-class thing to jQuery's RegExp, we also allow non-fixed-sized disjunction.
For example, /aaaa.*|bbbb/'s disjunction is not fixed-sized. But still we can use (aaaa|bbbb) prefix since
this part is fixed-sized and we know minimum-size of this disjunction is 4.
Plus, instead of giving up BoyerMoore search when we found non-supported terms, we shorten BoyerMoore search
length not to include this term so that we can still have a chance to leverage BoyerMoore search. In the case
of /aaaa|bbbb|ccc(d|e|f)/, we previously gave up since it finds(d|e|f). But now, instead we shorten the length
from 4 to 3, and construct search pattern withaaa|bbb|ccc.
This patch improves jquery-todomvc-regexp by 20%.
ToT Patched
jquery-todomvc-regexp 545.3561+-0.6968 451.6117+-0.4613 definitely 1.2076x faster
This improves Speedometer2/jQuery-TodoMVC by 2%.
----------------------------------------------------------------------------------------------------------------------------------
| subtest | ms | ms | b / a | pValue (significance using False Discovery Rate) |
----------------------------------------------------------------------------------------------------------------------------------
| Elm-TodoMVC |123.470833 |123.550000 |1.000641 | 0.841600 |
| VueJS-TodoMVC |26.883333 |26.950000 |1.002480 | 0.846732 |
| EmberJS-TodoMVC |127.708333 |127.754167 |1.000359 | 0.934206 |
| BackboneJS-TodoMVC |50.545833 |50.445833 |0.998022 | 0.679610 |
| Preact-TodoMVC |20.879167 |20.791667 |0.995809 | 0.796541 |
| AngularJS-TodoMVC |137.479167 |137.275000 |0.998515 | 0.729817 |
| Vanilla-ES2015-TodoMVC |69.079167 |68.912500 |0.997587 | 0.524325 |
| Inferno-TodoMVC |65.604167 |66.120833 |1.007876 | 0.145549 |
| Flight-TodoMVC |77.029167 |76.708333 |0.995835 | 0.518562 |
| Angular2-TypeScript-TodoMVC |40.516667 |40.812500 |1.007302 | 0.513386 |
| VanillaJS-TodoMVC |54.762500 |54.895833 |1.002435 | 0.647381 |
| jQuery-TodoMVC |255.950000 |250.425000 |0.978414 | 0.000000 (significant) |
| EmberJS-Debug-TodoMVC |341.745833 |342.804167 |1.003097 | 0.219937 |
| React-TodoMVC |88.854167 |88.700000 |0.998265 | 0.568405 |
| React-Redux-TodoMVC |151.266667 |150.804167 |0.996942 | 0.256403 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |65.783333 |65.645833 |0.997910 | 0.437464 |
----------------------------------------------------------------------------------------------------------------------------------
a mean = 246.52898
b mean = 246.85128
pValue = 0.3927330278
(Bigger means are better.)
1.001 times better
Results ARE NOT significant
- yarr/YarrJIT.cpp:
(JSC::Yarr::BoyerMooreInfo::shortenLength):
(JSC::Yarr::BoyerMooreInfo::setAll):
(JSC::Yarr::BoyerMooreInfo::addCharacters):
(JSC::Yarr::BoyerMooreInfo::addRanges):
- yarr/YarrJIT.h:
(JSC::Yarr::BoyerMooreBitmap::add):
(JSC::Yarr::BoyerMooreBitmap::addCharacters):
(JSC::Yarr::BoyerMooreBitmap::addRanges):
(JSC::Yarr::BoyerMooreBitmap::setAll):
(JSC::Yarr::BoyerMooreBitmap::isAllSet const):
- 4:39 PM Changeset in webkit [280569] by
-
- 2 edits in trunk/Source/JavaScriptCore
[PlayStation] Make C files in testapi compile with a C standard rather than C++ one
https://bugs.webkit.org/show_bug.cgi?id=228701
Reviewed by Ross Kirsling.
- shell/PlatformPlayStation.cmake: Set standard for C files in testapi
- 4:19 PM Changeset in webkit [280568] by
-
- 2 edits in trunk/Source/WebKit
Crash in -[WKFullScreenWindowController windowDidExitFullScreen:]
https://bugs.webkit.org/show_bug.cgi?id=228694
rdar://79569881
Reviewed by Jer Noble.
It appears that [WKFullScreenWindowController finishedEnterFullScreenAnimation] can
cause the retain count to be decreased (this is the only explanation that makes any
sense considering the crash and when the regression started following bug 227243).
No test, can't reproduce.
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController setVideoFullscreenManagerClient:]): Add utility method
to remove duplicated code.
(-[WKFullScreenWindowController didExitPictureInPicture]):
(-[WKFullScreenWindowController windowDidEnterFullScreen:]):
(-[WKFullScreenWindowController windowDidFailToExitFullScreen:]):
(-[WKFullScreenWindowController windowDidExitFullScreen:]):
(-[WKFullScreenWindowController _manager]): fly-by make style consistent with other
similar methods.
- 4:01 PM Changeset in webkit [280567] by
-
- 2 edits in trunk/Source/WebKit
Add log when experimental network loader is used
https://bugs.webkit.org/show_bug.cgi?id=227932
Reviewed by Chris Dumez.
We are seeing some reports of serious loading issues in bugs related to rdar://80330028
and we think they are because of problems related to the experimental network loader, which can be
enabled in experimental features but is not ready for use on the internet yet.
Add a log so we can determine for sure that is what is going on in those cases.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- 3:54 PM Changeset in webkit [280566] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: sorting of transfer size for failed requests is causing the ordering to change every layout
https://bugs.webkit.org/show_bug.cgi?id=228712
Reviewed by Devin Rousso.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._generateSortComparator):
Don't change the item order when both values are NaN.
- 3:37 PM Changeset in webkit [280565] by
-
- 4 edits in trunk/Source
[Win] ASSERTION FAILED: evt->type() == eventNames().keydownEvent evt->type() == eventNames().keypressEvent in WebView::interpretKeyEvent since r280492 https://bugs.webkit.org/show_bug.cgi?id=228690
Reviewed by Brent Fulgham.
Source/WebKit:
- WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::handleEditingKeyboardEvent): Return early unless the event is keydown or keypress.
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::handleEditingKeyboardEvent): Return early unless the event is keydown or keypress.
- 3:23 PM Changeset in webkit [280564] by
-
- 2 edits in trunk/Source/WebCore
Assertion is not acquired in network process when opening a SQLite database
https://bugs.webkit.org/show_bug.cgi?id=228705
Reviewed by Chris Dumez.
Opening database may require database file lock.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):
- 3:21 PM Changeset in webkit [280563] by
-
- 2 edits in trunk/LayoutTests
[ iOS iPad ] editing/inserting/insert-paragraph-separator-with-html-elements-crash.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228718.
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 3:04 PM Changeset in webkit [280562] by
-
- 4 edits in trunk
Don't change invalid baseURLs from loadData or loadHTMLString to about:blank
https://bugs.webkit.org/show_bug.cgi?id=228717
<rdar://79909343>
Reviewed by Chris Dumez.
Source/WebKit:
r278737 fixed a compatibility bug from r272469 but introduced a crash when the base URL does not successfully parse.
r279450 fixed that crash but introduced a new behavior change that changes the URL to about:blank. This didn't seem
to change anything because window.location is about:blank with and without the change, but WKWebView.URL did change,
which broke at least one app. This undoes the functionality change from r279450 and keeps the crash fix, which are
both covered by API tests. I also manually verified this fixes the app in the radar.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadData):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:
(TEST):
- 2:55 PM Changeset in webkit [280561] by
-
- 5 edits1 delete in trunk/LayoutTests
[GLIB] Gardening some failures and removing deprecated baseline.
Unreviewed test gardening.
Also unified skips for tests loading pdf as img.src.
- platform/glib/TestExpectations:
- platform/gtk-wayland/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/dom/events/Event-timestamp-high-resolution-expected.txt: Removed.
- 2:53 PM Changeset in webkit [280560] by
-
- 2 edits in trunk/Tools
[results.webkit.org] Fix incorrect conditional check
https://bugs.webkit.org/show_bug.cgi?id=228666
Patch by Kevin Neal <kevin_neal@apple.com> on 2021-08-02
Reviewed by Jonathan Bedard.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
- 2:46 PM Changeset in webkit [280559] by
-
- 8 edits2 adds in trunk
Add CheckedRef
https://bugs.webkit.org/show_bug.cgi?id=227164
Reviewed by Geoffrey Garen.
Source/WTF:
Like r278344, this patch introduces a new type of smart pointer, CheckedRef,
which lets each object keep track of pointers pointing to the object.
As with CheckedPtr, the purpose of the internal counter for CheckedRef is
to release assert that there is no outstanding pointer at the time of destruction
instead of keeping the object alive when there is one.
This patch also removes makeCheckedPtr in favor of using CheckedPtr with
template argument deduction in C++17.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/CheckedPtr.h:
(WTF::CheckedPtr::CheckedPtr): Added variants which take CheckedRef as arguments.
(WTF::makeCheckedPtr): Deleted.
(WTF::CanMakeCheckedPtr): Moved to CheckedRef.h
- wtf/CheckedRef.h: Added.
(WTF::CheckedRef::~CheckedRef): Added.
(WTF::CheckedRef::CheckedRef): Added.
(WTF::CheckedRef::isHashTableDeletedValue const): Added.
(WTF::CheckedRef::isHashTableEmptyValue const): Added.
(WTF::CheckedRef::hashTableEmptyValue): Added.
(WTF::CheckedRef::ptrAllowingHashTableEmptyValue const): Added.
(WTF::CheckedRef::ptrAllowingHashTableEmptyValue): Added.
(WTF::CheckedRef::ptr const): Added.
(WTF::CheckedRef::ptr): Added.
(WTF::CheckedRef::get const): Added.
(WTF::CheckedRef::get): Added.
(WTF::CheckedRef::operator-> const): Added.
(WTF::CheckedRef::operator->): Added.
(WTF::CheckedRef::operator const T& const): Added.
(WTF::CheckedRef::operator T&): Added.
(WTF::CheckedRef::operator! const): Added.
(WTF::CheckedRef::operator=): Added.
(WTF::CheckedRef::releasePtr): Added. Returns m_ptr without calling decrementPtrCount.
This is equivalent of leakPtr in Ref but we don't call this that since CheckedRef or
CheckedPtr is generally not used to manage the object lifetime.
(WTF::CheckedRef::poison): Added.
(WTF::CheckedRef::unpoison): Added.
(WTF::is): Added.
(WTF::CheckedRefHashTraits): Added.
(WTF::CheckedRefHashTraits::emptyValue): Added.
(WTF::CheckedRefHashTraits::constructEmptyValue): Added.
(WTF::CheckedRefHashTraits::isEmptyValue): Added.
(WTF::CheckedRefHashTraits::peek): Added.
(WTF::CheckedRefHashTraits::take): Added.
(WTF::CanMakeCheckedPtr): Moved from CheckedPtr.h
- wtf/Forward.h:
Tools:
Added some unit tests for CheckedRef and updated the unit tests
for CheckedPtr per the removal of makeCheckedPtr.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/CheckedPtr.cpp:
(WTF_CheckedPtr.CheckedRef): Added
- TestWebKitAPI/Tests/WTF/CheckedRef.cpp: Added.
(TestWebKitAPI..CheckedObject): Added.
(TestWebKitAPI..DerivedCheckedObject): Added.
(WTF_CheckedRef.Basic): Added.
(WTF_CheckedRef.DerivedClass): Added.
(WTF_CheckedRef.HashSet): Added.
- 2:39 PM Changeset in webkit [280558] by
-
- 8 edits in trunk/Source
[Live Text] SPI for machine readable codes is only available on iOS
https://bugs.webkit.org/show_bug.cgi?id=228711
Reviewed by Tim Horton.
Source/WebCore/PAL:
- pal/spi/cocoa/VisionKitCoreSPI.h:
Source/WebKit:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _setUpImageAnalysis]):
(-[WKContentView _tearDownImageAnalysis]):
(-[WKContentView imageAnalysisGestureDidBegin:]):
(-[WKContentView imageAnalysisGestureDidTimeOut:]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):
Source/WTF:
- wtf/PlatformEnableCocoa.h:
- wtf/PlatformHave.h:
- 2:20 PM Changeset in webkit [280557] by
-
- 1 delete in trunk/JSTests/test262/test/built-ins/Temporal/now
Remove stale 'now' subdirectory in JSTests/test262/test/built-ins/Temporal, as we ended up with both 'now' and 'Now', breaking checkout on case insensitive file systems
- 2:09 PM Changeset in webkit [280556] by
-
- 15 edits in trunk/Source/WebKit
Attribute nw connections to the page bundle identifier
https://bugs.webkit.org/show_bug.cgi?id=228649
Reviewed by Eric Carlson.
Send page identifier from WebProcess to NetworkProcess when creating a WebRTC socket.
Use page identifier to get the attributed bundle identifier.
For that purpose, we need to hop to main thread to get it, then go back to rtc thread to create it.
We do so by using callOnMainRunLoopAndWait when NetworkRTCProvider does not have the information for the provided page identifier.
We then make use of nw_parameters_set_source_application_by_bundle_id to set the bundle identifier on TCP and UDP connections.
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::attributedBundleIdentifierFromPageIdentifier const):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::addWebPageNetworkParameters):
(WebKit::NetworkSessionCocoa::removeWebPageNetworkParameters):
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::attributedBundleIdentifierFromPageIdentifier):
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.h:
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::create):
(WebKit::NetworkRTCUDPSocketCocoa::createUDPSocket):
(WebKit::NetworkRTCUDPSocketCocoa::NetworkRTCUDPSocketCocoa):
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):
- Platform/spi/Cocoa/NWParametersSPI.h:
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::RTCSocketFactory::RTCSocketFactory):
(WebKit::RTCSocketFactory::CreateUdpSocket):
(WebKit::RTCSocketFactory::CreateClientTcpSocket):
(WebKit::LibWebRTCProvider::createSocketFactory):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
- 2:07 PM Changeset in webkit [280555] by
-
- 2 edits in trunk/LayoutTests
[ MacOS wk2 ] compositing/video/video-object-fit.html is a flaky timeout on EWS.
https://bugs.webkit.org/show_bug.cgi?id=228713
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 1:45 PM Changeset in webkit [280554] by
-
- 3 edits2 adds in branches/safari-612.1.26.1-branch
Cherry-pick r280551. rdar://problem/81427001
Calling unobserve on ResizeObserver should not clear existing observations in active targets
https://bugs.webkit.org/show_bug.cgi?id=228693
Reviewed by Chris Dumez.
Source/WebCore:
The bug was caused by ResizeObserver::removeObservation removing it from the active targets.
Note that there is nothing in the specification which alludes to this behavior,
and the new behavior is consistent with Firefox and the way IntersectionObserver works:
https://drafts.csswg.org/resize-observer/#dom-resizeobserver-unobserve
To keep elements alive while they're in the active targets but not in the observation targets,
this patch also makes each element of the active observation as opaque roots of ResizeObserver
in ResizeObserver::isReachableFromOpaqueRoots.
Test: resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html
- page/ResizeObserver.cpp: (WebCore::ResizeObserver::deliverObservations): (WebCore::ResizeObserver::isReachableFromOpaqueRoots const): (WebCore::ResizeObserver::removeObservation):
LayoutTests:
Added a regression test.
- resize-observer/resize-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
- resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280551 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:45 PM Changeset in webkit [280553] by
-
- 3 edits2 adds in branches/safari-612.1.26.1-branch
Cherry-pick r280549. rdar://problem/81427001
Source/WebCore:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element
has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679
Reviewed by Chris Dumez.
The bug was caused by the elements of the pending entries not being considered as opaque roots
of the intersection observer. If the intersection observer is no longer observing those elements,
the JS wrapper of the intersection observer may be collected erroneously.
This patch addresses this issue by explicitly treating the elements of pending entries as
opaque roots of the intersection observer in IntersectionObserver::isReachableFromOpaqueRoots.
Test: intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html
- page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):
LayoutTests:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679
Reviewed by Chris Dumez.
Added a regression test.
- intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
- intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280549 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:40 PM Changeset in webkit [280552] by
-
- 8 edits in branches/safari-612.1.26.1-branch/Source
Versioning.
WebKit-7612.1.26.1.1
- 1:03 PM Changeset in webkit [280551] by
-
- 3 edits2 adds in trunk
Calling unobserve on ResizeObserver should not clear existing observations in active targets
https://bugs.webkit.org/show_bug.cgi?id=228693
Reviewed by Chris Dumez.
Source/WebCore:
The bug was caused by ResizeObserver::removeObservation removing it from the active targets.
Note that there is nothing in the specification which alludes to this behavior,
and the new behavior is consistent with Firefox and the way IntersectionObserver works:
https://drafts.csswg.org/resize-observer/#dom-resizeobserver-unobserve
To keep elements alive while they're in the active targets but not in the observation targets,
this patch also makes each element of the active observation as opaque roots of ResizeObserver
in ResizeObserver::isReachableFromOpaqueRoots.
Test: resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html
- page/ResizeObserver.cpp:
(WebCore::ResizeObserver::deliverObservations):
(WebCore::ResizeObserver::isReachableFromOpaqueRoots const):
(WebCore::ResizeObserver::removeObservation):
LayoutTests:
Added a regression test.
- resize-observer/resize-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
- resize-observer/resize-observer-keeps-element-of-queued-entry-alive.html: Added.
- 12:54 PM Changeset in webkit [280550] by
-
- 4 edits in trunk/Tools
Add basestring compatibility for Python3 in webkitcorepy.
https://bugs.webkit.org/show_bug.cgi?id=228707
Reviewed by Jonathan Bedard.
- Scripts/libraries/webkitcorepy/setup.py: Bumped version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/string_utils.py: Added
basestring compatibility for Python3.
- 12:14 PM Changeset in webkit [280549] by
-
- 3 edits2 adds in trunk
Source/WebCore:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element
has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679
Reviewed by Chris Dumez.
The bug was caused by the elements of the pending entries not being considered as opaque roots
of the intersection observer. If the intersection observer is no longer observing those elements,
the JS wrapper of the intersection observer may be collected erroneously.
This patch addresses this issue by explicitly treating the elements of pending entries as
opaque roots of the intersection observer in IntersectionObserver::isReachableFromOpaqueRoots.
Test: intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):
LayoutTests:
REGRESSION(r279800): IntersectionObserver may never get a delivery of an observation if the element has been unobserved and is disconnected
https://bugs.webkit.org/show_bug.cgi?id=228679
Reviewed by Chris Dumez.
Added a regression test.
- intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive-expected.txt: Added.
- intersection-observer/intersection-observer-keeps-element-of-queued-entry-alive.html: Added.
- 11:56 AM Changeset in webkit [280548] by
-
- 4 edits2 adds in trunk
[Live Text] Use iBeam cursor when hovering over selectable text inside image links
https://bugs.webkit.org/show_bug.cgi?id=228700
rdar://81210248
Reviewed by Tim Horton.
Source/WebCore:
Make a couple of small adjustments to allow the cursor to change to an I-beam when hovering over selectable Live
Text inside images in links, but only in the case where the computed cursor type is Auto. Currently, this always
results in a Hand cursor type because of the link ancestor, despite the injected Live Text being selectable.
Test: fast/images/text-recognition/mac/cursor-types-for-recognized-text.html
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithTextRecognitionResult):
Drive-by fix an adjacent bug, wherein we try to check whether the image element has
user-select: none;before
the style has been resolved, which results in injecting selectable Live Text even when the page has explicitly
disabled text selection on the image element. Instead, move this code to right after we update layout after
ensuring the UA shadow DOM structure for Live Text, so that the bool flag is meaningful.
- page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor):
LayoutTests:
Add a layout test that hovers over Live Text in several different image elements, and checks their respective
cursor types.
- fast/images/text-recognition/mac/cursor-types-for-recognized-text-expected.txt: Added.
- fast/images/text-recognition/mac/cursor-types-for-recognized-text.html: Added.
- 11:46 AM Changeset in webkit [280547] by
-
- 24 edits in trunk
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/blobs.html is a flaky failure since implementing BlobChannel
https://bugs.webkit.org/show_bug.cgi?id=228168
<rdar://problem/80922502>
Reviewed by Alex Christensen.
Source/WebCore:
The test was flaky because it is trying to send a Blob via BroadcastChannel.postMessage()
without keeping the blob alive. When GC triggers, the Blob would go away and trying to
decode the Blob upon receiving would fail.
To address the issue, I introduced a Blob::Handle class that wraps the Blob's internal URL
and keeps the Blob data alive as long as as someone is holding such handle. Previously,
the Blob destructor would unregister the internal URL and the Blob data would go away.
I then updated SerializedScriptValue to hold on to Blob::Handle objects instead of Blob
URLs. This guarantees that when using postMessage() to send a message to a worker, the
Blob data will stay alive until we dispatch the message event on the worker side and try
and deserialized the SerializedScriptValue.
For BroadcastChannel.postMessage() though, we end up going via the network process and
the SerializedScriptValue ends up getting serialized/deserialized over IPC. I added a
CompletionHandler to BroadcastChannelRegistry::postMessage() which only gets called
once the message event has successfully been dispatched. I use this completion handler
to make sure the SerializedScriptValue's Blob URLs stay valid until the the message has
been dispatched by holding on to the Blob::Handles.
No new tests, unskipped existing test.
- Modules/indexeddb/IDBValue.cpp:
(WebCore::IDBValue::IDBValue):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::write):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::blobURLs const):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
- bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::hasBlobURLs const):
(WebCore::SerializedScriptValue::blobHandles const):
(WebCore::SerializedScriptValue::SerializedScriptValue):
- dom/BroadcastChannel.cpp:
(WebCore::BroadcastChannel::postMessage):
(WebCore::BroadcastChannel::dispatchMessageTo):
- dom/BroadcastChannel.h:
- dom/BroadcastChannelRegistry.h:
- fileapi/Blob.cpp:
(WebCore::BlobInternalURL::create):
(WebCore::BlobInternalURL::~BlobInternalURL):
(WebCore::BlobInternalURL::url const):
(WebCore::BlobInternalURL::BlobInternalURL):
(WebCore::Blob::Blob):
(WebCore::Blob::~Blob):
(WebCore::Blob::url const):
(WebCore::Blob::slice const):
(WebCore::Blob::size const):
(WebCore::Blob::handle const):
(WebCore::Blob::Handle::Handle):
(WebCore::Blob::Handle::url const):
- fileapi/Blob.h:
- loader/EmptyClients.cpp:
Source/WebKit:
- NetworkProcess/NetworkBroadcastChannelRegistry.cpp:
(WebKit::NetworkBroadcastChannelRegistry::postMessage):
- NetworkProcess/NetworkBroadcastChannelRegistry.h:
- NetworkProcess/NetworkBroadcastChannelRegistry.messages.in:
- Platform/IPC/HandleMessage.h:
(IPC::handleMessageAsyncWantsConnection):
handleMessageAsyncWantsConnection() had gotten out of sync with handleMessageAsync(). This was causing IPC decoding
failures when using both "Async" and "WantsConnection" for the IPC message.
- WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp:
(WebKit::WebBroadcastChannelRegistry::postMessage):
(WebKit::WebBroadcastChannelRegistry::postMessageToRemote):
- WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:
- WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.messages.in:
Source/WebKitLegacy:
- WebCoreSupport/WebBroadcastChannelRegistry.cpp:
(WebBroadcastChannelRegistry::postMessage):
- WebCoreSupport/WebBroadcastChannelRegistry.h:
LayoutTests:
Unskip test that is no longer flaky.
- platform/ios-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 11:41 AM Changeset in webkit [280546] by
-
- 5 edits10 deletes in trunk/JSTests
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=228709
Reviewed by Mark Lam.
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Error/prototype/constructor/S15.11.4.1_A1_T1.js: Removed.
- test262/test/built-ins/Error/prototype/message/15.11.4.3-1.js: Removed.
- test262/test/built-ins/Error/prototype/message/S15.11.4.3_A1.js: Removed.
- test262/test/built-ins/Error/prototype/message/S15.11.4.3_A2.js: Removed.
- test262/test/built-ins/Error/prototype/name/15.11.4.2-1.js: Removed.
- test262/test/built-ins/Error/prototype/name/S15.11.4.2_A1.js: Removed.
- test262/test/built-ins/Error/prototype/name/S15.11.4.2_A2.js: Removed.
- test262/test/built-ins/Error/prototype/toString/S15.11.4.4_A1.js: Removed.
- test262/test/built-ins/TypedArray/prototype/findLast/return-abrupt-from-this-out-of-bounds.js:
- test262/test/built-ins/TypedArray/prototype/findLastIndex/return-abrupt-from-this-out-of-bounds.js:
- test262/test/harness/sta-error.js: Removed.
- test262/test/harness/sta-override-error.js: Removed.
- test262/test262-Revision.txt:
- 11:39 AM Changeset in webkit [280545] by
-
- 2 edits in trunk/Source/WTF
Enable WebRTCPlatformUDPSocketsEnabled experimental feature by default
https://bugs.webkit.org/show_bug.cgi?id=228689
<rdar://problem/81383711>
Reviewed by Eric Carlson.
Enable WebRTCPlatformUDPSocketsEnabled experimental feature by default, WebRTC proxying being off by default for now.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 10:46 AM Changeset in webkit [280544] by
-
- 5 edits in trunk/Source
[JSC] Yarr should use Bitmap instead of ByteVector for BoyerMoore search
https://bugs.webkit.org/show_bug.cgi?id=228676
Reviewed by Saam Barati.
Source/JavaScriptCore:
We observed that using Bitmap instead of ByteVector does not pose performance
issue. It was neutral in jquery-todomvc-regexp.js. In that case, we should use
Bitmap since it is 8x smaller.
We also search reusable Bitmap from Vector since comparing 128bit Bitmap is
super fast so we do not need to bother about linear search here (# of Bitmap
is currently up to 4).
To make code simplified, we add regT2 to ARMv7 and MIPS backend of YarrJIT.
ToT Patched
jquery-todomvc-regexp 555.9566+-0.8856 555.0737+-0.9717
- yarr/YarrJIT.cpp:
(JSC::Yarr::BoyerMooreInfo::index const): Deleted.
(JSC::Yarr::BoyerMooreInfo::setIndex): Deleted.
- yarr/YarrJIT.h:
(JSC::Yarr::YarrCodeBlock::set8BitCode):
(JSC::Yarr::YarrCodeBlock::set16BitCode):
(JSC::Yarr::YarrCodeBlock::set8BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::set16BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::tryReuseBoyerMooreBitmap const):
(JSC::Yarr::BoyerMooreByteVector::BoyerMooreByteVector): Deleted.
(JSC::Yarr::YarrCodeBlock::tryReuseBoyerMooreByteVector const): Deleted.
Source/WTF:
- wtf/Bitmap.h:
- 10:44 AM Changeset in webkit [280543] by
-
- 8 edits2 adds in trunk
REGRESSION (Safari 15): Unable to repaint canvases with software filters when GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=228682
rdar://79699997
Reviewed by Simon Fraser.
Source/WebCore:
In the case where GPU process is enabled for canvas rendering but is not enabled for DOM rendering, canvas
elements with software CSS filters fail to repaint as the canvas' backing image buffer changes. In this
particular scenario, we first paint the canvas' remotely-backed image buffer into the filter's input buffer,
which is backed by an unaccelerated graphics context. The filter is then applied, producing an output image
buffer which we then paint into the page. The bug occurs during the initial step of painting the contents of the
canvas' remote image buffer into the filter's input context, which involves creating a CGImageRef from the
ImageBufferCGBackend::draw.
When asking for a CGImageRef from the canvas' image buffer (which is backed by an IOSurface that's drawn into in
the GPU process), QuartzCore caches the resulting CGImageRef corresponding to the IOSurface handle in the web
process. Subsequently, when we try to repaint the canvas, we'll end up using this same initial cached CGImageRef
because the graphics context of the IOSurface handle in the web process hasn't been drawn into (because all the
actual draw calls are made in the GPU process). As such, regardless of the current state of the canvas' image
buffer, the input to the filter will always be the initial native image created from the canvas' image buffer.
We avoid this problem when GPU process is disabled because the calls to update the canvas' 2D context in the
web process will clear out the cached CGImageRef in QuartzCore. Additionally, we avoid this problem when drawing
into accelerated contexts because QuartzCore will draw the cached CGImageRef using a codepath that reads back
the up-to-date contents from the IOSurface. However, in the QuartzCore's unaccelerated (ripc) image drawing
codepath, we copy the contents of the cached image right away, causing us to end up with stale image data that
does not reflect the current state of the IOSurface.
To work around this in Safari 15 (in both Monterey as well as downlevel versions of macOS), we deploy a similar
technique as we'd previously used in r201334 to invalidate QuartzCore's cached image, but only:
- If the seed value of the backing IOSurface has changed since the last time we've drawn the image buffer, and
- The destination context we're painting the image buffer into is unaccelerated.
Test: css3/filters/canvas-with-filter-after-repaint.html
- platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::draw):
(WebCore::ImageBufferCGBackend::drawPattern):
Call into
prepareToDrawIntoContext(see below).
- platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::prepareToDrawIntoContext):
- platform/graphics/cg/ImageBufferCGBackend.h:
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::prepareToDrawIntoContext):
Add a new subclassable method on ImageBufferCGBackend that's invoked before drawing the contents of the image
buffer into a given destination GraphicsContext. We use this opportunity in ImageBufferIOSurfaceBackend to
notice if the IOSurface seed count has updated since we've last drawn the image buffer, and intentionally emit a
no-op drawing command (i.e. filling an empty rect) in the graphics context to invalidate QuartzCore's cached
CGImageRef. Note that we only deploy this workaround when drawing into unaccelerated contexts (see above for
more details).
(WebCore::ImageBufferIOSurfaceBackend::invalidateCachedNativeImage const):
Pull the no-op drawing command out into a separate helper method, with a comment describing why this exists.
(WebCore::ImageBufferIOSurfaceBackend::drawConsuming):
(WebCore::ImageBufferIOSurfaceBackend::copyCGImageForEncoding const):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::seed const):
Add a helper method to grab the seed value of an IOSurface.
LayoutTests:
- css3/filters/canvas-with-filter-after-repaint-expected.html: Added.
- css3/filters/canvas-with-filter-after-repaint.html: Added.
- 10:29 AM Changeset in webkit [280542] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Remove unneeded sandbox extension member
https://bugs.webkit.org/show_bug.cgi?id=228584
Reviewed by Darin Adler.
Remove unneeded sandbox extension handle member, since this extension is never revoked.
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::switchFromStaticFontRegistryToUserFontRegistry):
- 10:28 AM Changeset in webkit [280541] by
-
- 7 edits in trunk
HTMLElement.innerText setter should convert new lines to <br>
https://bugs.webkit.org/show_bug.cgi?id=228605
<rdar://problem/81333038>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are now passing. Those tests were already passing in Chrome and Firefox.
- web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/innertext-setter-expected.txt:
- web-platform-tests/html/dom/elements/the-innertext-idl-attribute/setter-expected.txt:
- web-platform-tests/innerText/setter-expected.txt:
Source/WebCore:
HTMLElement.innerText setter should convert new lines to <br>:
- https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute:dom-innertext-3
- https://html.spec.whatwg.org/multipage/dom.html#rendered-text-fragment
Our innerText setter had some logic that was specific to render styles that isn't part of
the specification. It was causing us to not replace the new lines with <br> in some
web-observable cases. I dropped this logic to align with Blink and Gecko.
No new tests, rebaselined existing tests.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::setInnerText):
- 10:09 AM Changeset in webkit [280540] by
-
- 8 edits in branches/safari-612.1.26.0-branch/Source
Versioning.
WebKit-7612.1.26.0.1
- 10:05 AM Changeset in webkit [280539] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] imported/w3c/web-platform-tests/mathml/relations/html5-tree/dynamic-childlist-002.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228704.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 9:52 AM Changeset in webkit [280538] by
-
- 1 copy in branches/safari-612.1.26.11-branch
New branch.
- 9:52 AM Changeset in webkit [280537] by
-
- 1 copy in branches/safari-612.1.26.2-branch
New branch.
- 9:52 AM Changeset in webkit [280536] by
-
- 1 copy in branches/safari-612.1.26.1-branch
New branch.
- 9:51 AM Changeset in webkit [280535] by
-
- 1 copy in branches/safari-612.1.26.0-branch
New branch.
- 9:38 AM Changeset in webkit [280534] by
-
- 6 edits in trunk/Source/WebCore
[Modern Media Controls] Address additional feedback on LayoutTraits refactor
https://bugs.webkit.org/show_bug.cgi?id=227489
<rdar://problem/80215569>
Reviewed by Devin Rousso.
Splitting up larger change to land pieces incrementally.
Part 1:
- Replaces eval() based lexical lookup with an explicit
window.layoutTraitsClassesregistry map.
- Modules/modern-media-controls/controls/ios-layout-traits.js:
- Modules/modern-media-controls/controls/layout-traits.js:
- Modules/modern-media-controls/controls/macos-layout-traits.js:
- Modules/modern-media-controls/controls/watchos-layout-traits.js:
- Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype.get layoutTraits):
- 9:08 AM Changeset in webkit [280533] by
-
- 2 edits in trunk/LayoutTests
[ iPad ] fast/canvas/canvas-color-space-display-p3.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=228663
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 8:58 AM Changeset in webkit [280532] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228672
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:39 AM Changeset in webkit [280531] by
-
- 12 edits1 add in trunk
[Cocoa] Remove support for AVAssetImageGenerator
https://bugs.webkit.org/show_bug.cgi?id=228560
LayoutTests/imported/w3c:
Reviewed by Eric Carlson.
The 2x2-green.mp4 file fails to decode as its natural size is too small for the system decoder to handle. Replace with
a media file of more reasonable size.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html:
- web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base.html:
- web-platform-tests/media/16x16-green.mp4: Added.
Source/WebCore:
Reviewed by Eric Carlson.
AVAssetImageGenerator is used when there is not yet an available image from
AVPlayerItemVideoOutput. However, AVAssetImageGenerator is a synchronous API call; if data
for the current time is not available, the generator will cause a request for that data to
be issued, and if the main thread is blocked in a synchronous call to the generator, that
request can never be completed, causing a deadlock.
Instead, always block moving to a readyState >= HAVE_CURRENT_DATA until either the
AVPlayerLayer or the AVPlayerItemVideoOutput report having an available frame. This
prevents clients from attempting to paint until a frame is available, and ensures that we
will always have an available frame for painting, removing the need for the synchronous
generator call.
To ensure the readyState is updated when AVPlayerItemVideoOutput has an available image,
register with the output at creation time for a notification as soon as an image is
available. And in the existing delegate object, send a message back to the
MediaPlayerPrivateAVFoundationObjC when that occurs.
No tests needed; this should reduce flakiness of existing tests and cause no regression in
behavior.
Note, changes from last attempt:
AVPlayerLayer will fail to move to the -readyForDisplay state if it's not attached to a
layer tree, so when we remove the HTMLMediaElement from the DOM, we must send MediaPlayer a
acceleratedRenderingStateChanged() notification. This will cause the
MediaPlayerPrivateAVFoundationObjC to throw away its AVPlayerLayer, and will not block
moving to HAVE_CURRENT_DATA waiting for the layer to become readyForDisplay.
When we throw away (or create) the AVPlayerLayer, we must conditionally call updateStates
() to recalculate the readyState; but because updateStates() may try to create or destroy
an AVPlayerLayer, we must do this on a task to avoid re-entrancy. Adopt these changes
inside MediaPlayerPrivateAVFoundationCF as well.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pauseAfterDetachedTask):
(WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering):
(WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering):
(WebCore::MediaPlayerPrivateAVFoundation::renderingModeChanged):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleUpdateStates):
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(-[WebCoreAVFPullDelegate setParent:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Deleted.
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationCF::destroyVideoLayer):
Source/WebKit:
<rdar://problem/81336280>
Reviewed by Eric Carlson.
Drive-by fix: Passing the wrong value down to the GPU process when the acceleratedRenderingStateChanged().
We should be passing the results of MediaPlayer::renderingCanBeAccelerated() which comes down from HTMLMediaElement,
not MediaPlayer::supportsAcceleratedRendering(), which comes up from the GPU process.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
- 8:38 AM Changeset in webkit [280530] by
-
- 4 edits2 adds in trunk
REGRESSION (r273072): Images do not layout correctly on walmart.com/grocery
https://bugs.webkit.org/show_bug.cgi?id=228656
<rdar://80418083>
Reviewed by Sergio Villar Senin.
Source/WebCore:
Take the min/max values into account when computing the definite size (https://drafts.csswg.org/css-sizing-3/#definite)
for the flex child.
Test: fast/flexbox/flex-with-min-max-height.html
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeCrossSizeForChildUsingContainerCrossSize const):
LayoutTests:
- fast/flexbox/flex-with-min-max-height-expected.html: Added.
- fast/flexbox/flex-with-min-max-height.html: Added.
- 7:43 AM Changeset in webkit [280529] by
-
- 7 edits in trunk
Fix for [WebAccessibilityObjectWrapper lineRectsAndText] to properly handle replacement nodes and SVG text.
https://bugs.webkit.org/show_bug.cgi?id=228336
<rdar://problem/81172124>
Reviewed by Chris Fleizach and Darin Adler.
Source/WebCore:
Test: LayoutTests/accessibility/ios-simulator/element-line-rects-and-text.html
- Renamed stringsForSimpleRange to better reflect the fact that this
method can return strings and AXObjects.
- Handles the case where contentForSimpleRange returns AXObjects
corresponding to replacement objects. This fixes the cases of images and
SVG text.
- Fixed the problem with soft linebreaks where the start of the next
line was skipping the first character in the line.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper contentForSimpleRange:attributed:]):
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
(-[WebAccessibilityObjectWrapper lineRectsAndText]):
(-[WebAccessibilityObjectWrapper stringsForSimpleRange:attributed:]):
Renamed to contentForSimpleRange since it is returns an array of strings
and AXObjects.
LayoutTests:
- Expanded this test to cover the case of an image element and SVG text.
- Added the test case of a paragraph with soft linebreaks.
- accessibility/ios-simulator/element-line-rects-and-text-expected.txt:
- accessibility/ios-simulator/element-line-rects-and-text.html:
- 7:30 AM Changeset in webkit [280528] by
-
- 2 edits in trunk/Tools
[GLIB] Make CORS allowlist test wait for promise resolution
https://bugs.webkit.org/show_bug.cgi?id=228695
Reviewed by Michael Catanzaro.
r278456 introduced a CORS allow list test that tries to fetch a
resource using the fetch() function, which returns a promise. This is
working on GTK but in WPE the test fails as the promise is not yet
resolved by the time the test variable is checked.
This commit changes the test to actually report the promise failure
through catch() and wait for its resolution before checking the values.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewCORSAllowlist):
- 1:54 AM Changeset in webkit [280527] by
-
- 8 edits in trunk
[css-scroll-snap] Consider all snap areas at a given snap offset when snapping
https://bugs.webkit.org/show_bug.cgi?id=228141
LayoutTests/imported/w3c:
Reviewed by Frédéric Wang.
- web-platform-tests/css/css-scroll-snap/overflowing-snap-areas-expected.txt:
- web-platform-tests/css/css-scroll-snap/overflowing-snap-areas.html:
Source/WebCore:
Reviewed by Frédéric Wang.
When deciding whether to snap to snap areas that overflow the snap port, don't
just consider the first snap area at a given snap offset. Instead, keep information
about all snap areas in the ScrolSnapOffsetInfo. In order to avoid iterating over
arrays of hundreds of rectangles, also record whether any of them are larger than
the viewport. This will avoid extra work on the most common usecase of large sets
of snap areas (gridded table layouts).
This change is tested by extending an existing WPT test.
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::rangeForAxis): Added this helper.
(WebCore::searchForPotentialSnapPoints): When deciding if a particular snap area
overflows the snap port, look at all available snap areas instead of just the
first one.
(WebCore::updateSnapOffsetsForScrollableArea): Instead of only recording the first
snap area, record all of them in the list of snap area rectangles.
(WebCore::convertOffsetInfo): Convert the list of snap ares.
- page/scrolling/ScrollSnapOffsetsInfo.h:
(WebCore::operator==): Added this operator which is necessary now that snapAreaIndices
is a vector.
Source/WebKit:
Reviewed by Frédéric Wang.
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<SnapOffset<float>>::encode): Serialize new members.
(ArgumentCoder<SnapOffset<float>>::decode): Deserialize new members.
Aug 1, 2021:
- 11:59 PM Changeset in webkit [280526] by
-
- 3 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 9:56 PM Changeset in webkit [280525] by
-
- 6 edits in trunk/Source/WebCore
Migrate GlyphOverflow to LayoutUnits instead of ints
https://bugs.webkit.org/show_bug.cgi?id=133040
Patch by Rob Buis <rbuis@igalia.com> on 2021-08-01
Reviewed by Darin Adler.
Migrate GlyphOverflow to LayoutUnits instead of ints. This
is another step in the direction of subpixel layout/rendering.
- platform/graphics/FontCascade.h:
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::addTextBoxVisualOverflow):
- rendering/LegacyRootInlineBox.cpp:
(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
- rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths):
- style/InlineTextBoxStyle.cpp:
(WebCore::extendIntToFloat):
- 7:46 PM Changeset in webkit [280524] by
-
- 2 edits in trunk/Tools
[Win][DumpRenderTree] Clean up IndexedDB files between tests
https://bugs.webkit.org/show_bug.cgi?id=228692
Reviewed by Ryosuke Niwa.
storage/indexeddb/getdatabases.html was failing because it counted
up the remaining databases of previous tests.
Mac DRT removes IndexedDB after the testing (Bug 192796, r240358).
Win DRT also should do it.
- DumpRenderTree/win/DumpRenderTree.cpp:
(runTest): Call TestRunner::clearAllDatabases after the testing.
- 9:02 AM Changeset in webkit [280523] by
-
- 12 edits in trunk/Source
Introduce an experimental feature to toggle WebRTC socket proxying
https://bugs.webkit.org/show_bug.cgi?id=228681
Reviewed by Eric Carlson.
Source/WebKit:
Decide whether to disable proxying based on experimental feature in WebProcess.
Send the disable relay value from WebProcess to NetworkProcess for TCP sockets.
Manually tested.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createClientTCPSocket):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.h:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
(WebKit::NetworkRTCTCPSocketCocoa::createClientTCPSocket):
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::RTCSocketFactory::CreateClientTcpSocket):
(WebKit::LibWebRTCProvider::createSocketFactory):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 7:10 AM Changeset in webkit [280522] by
-
- 2 edits in trunk/Tools
Add myself (Alexander Mikhaylenko) to contributors.json as a committer
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
Jul 31, 2021:
- 3:48 PM Changeset in webkit [280521] by
-
- 2 edits in trunk/Source/WebCore
ListAttributeTargetObserver is needlessly created even when there is no list attribute
https://bugs.webkit.org/show_bug.cgi?id=228541
Reviewed by Yusuke Suzuki.
No new tests because no behavior change.
This is possibly a small improvement (~0.5%) on Speedometer subtests that do innerHTML, but not statistically significant.
Ported from a Chromium change by Adithya Srinivasan
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::resetListAttributeTargetObserver): check if there's a list attribute before making an observer.
- 1:47 PM Changeset in webkit [280520] by
-
- 4 edits in trunk/Source
[JSC] Move JIT_UNICODE_EXPRESSIONS to ENABLE(YARR_JIT_UNICODE_EXPRESSIONS) in PlatformEnable.h
https://bugs.webkit.org/show_bug.cgi?id=228669
Reviewed by Alexey Shvayka.
Source/JavaScriptCore:
Move JIT_UNICODE_EXPRESSIONS to PlatformEnable.h to align to the other YarrJIT flags.
This makes it easy to read that this is enabled on ARM64 and X86_64.
- yarr/YarrJIT.cpp:
Source/WTF:
- wtf/PlatformEnable.h:
- 1:43 PM Changeset in webkit [280519] by
-
- 6 edits in trunk/Source/JavaScriptCore
[JSC] Clean up Yarr by using
static constexpr
https://bugs.webkit.org/show_bug.cgi?id=228678
Reviewed by Alexey Shvayka.
Modernize Yarr code by using static constexpr.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::TrustedImm32::TrustedImm32):
- yarr/YarrCanonicalizeUCS2.cpp:
- yarr/YarrCanonicalizeUCS2.js:
(set characters.hex.set string_appeared_here):
- yarr/YarrErrorCode.cpp:
(JSC::Yarr::errorMessage):
- yarr/YarrJIT.cpp:
- 10:37 AM Changeset in webkit [280518] by
-
- 11 edits in trunk/Source
Improve LocalSampleBufferDisplayLayer logging
https://bugs.webkit.org/show_bug.cgi?id=228582
Reviewed by Eric Carlson.
Source/WebCore:
Add logging to correlate a LocalSampleBufferDisplayLayer to its HTMLMediaElement and its MediaStreamTrack.
Introduce setLogIdentifer for that purpose.
No observable change of behavior.
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::onIrregularFrameRateNotification):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
Source/WebKit:
Send through IPC the log identifier to the GPU display layer.
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
(WebKit::RemoteSampleBufferDisplayLayer::setLogIdentifier):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
(WebKit::SampleBufferDisplayLayer::setLogIdentifier):
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
- 9:53 AM Changeset in webkit [280517] by
-
- 3 edits in trunk/Source/WebCore
AVVideoCaptureSource should not start/stop the camera if trying to apply the same size/frame rate configuration
https://bugs.webkit.org/show_bug.cgi?id=228634
<rdar://81174160>
Reviewed by Eric Carlson.
In some configurations, pages want to set a frame rate of 30, but the actual frame rate set will be 29.9999.
In that case, our heuristic to not recalibrate the camera fails.
To prevent this, we add checks in AVVideoCaptureSource to validate whether the new presets are the same as the already applied ones.
Manually tested.
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):
- 9:52 AM Changeset in webkit [280516] by
-
- 2 edits in trunk/Source/WebKit
RemoteAudioMediaStreamTrackRendererInternalUnit should handle changes of requested sampleCount
https://bugs.webkit.org/show_bug.cgi?id=228631
<rdar://80690191>
Reviewed by Eric Carlson.
The requested number of samples might change in case the output device changes.
When changing device, we might have a generated buffer of 4096 while 1024 samples are requested.
For each 1024 sample chunk, we will request a buffer of 4096, which cannot be provided by WebProcess.
To prevent this case, we keep track of a requested sample count overshoot so that next time the render callback is called,
we might not request to generate another chunk.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render):
- 8:43 AM Changeset in webkit [280515] by
-
- 4 edits2 adds in trunk
REGRESSION(r279564): [GTK] Mouse wheel scrolling scrolls too little (take two)
https://bugs.webkit.org/show_bug.cgi?id=228572
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Test: platform/gtk/fast/scrolling/scroll-wheel-repeated-events.html
When scrolling by a delta with ScrollAnimationSmooth, base the target point
on the current scroll target instead of on the current position. We also
pass the point to updatePerAxisData instead of the delta in order to make
it more explicit what the desired behavior is for this method.
- platform/ScrollAnimationSmooth.h: Update argument name.
- platform/ScrollAnimationSmooth.cpp:
(WebCore::ScrollAnimationSmooth::scroll): Base the delta on the target position and
pass that as the argument to updatePerAxisData. When scrolling to a point, simply
pass that to updatePerAxisData.
(WebCore::ScrollAnimationSmooth::updatePerAxisData): Accept a point instead of a
delta, which makes it more obvious how to use this function and allows it to
be used the same way by both version of ScrollAnimationSmooth::scroll.
LayoutTests:
- platform/gtk/fast/scrolling/scroll-wheel-repeated-events-expected.txt: Added.
- platform/gtk/fast/scrolling/scroll-wheel-repeated-events.html: Added.
- 2:43 AM Changeset in webkit [280514] by
-
- 4773 edits322 adds in trunk/JSTests
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=228627
Reviewed by Ross Kirsling.
- test262/config.yaml:
- test262/expectations.yaml:
- 1:29 AM Changeset in webkit [280513] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed. Remove the build warning below since r280493.
warning: variable ‘block’ set but not used [-Wunused-but-set-variable]
- b3/B3CanonicalizePrePostIncrements.cpp:
(JSC::B3::canonicalizePrePostIncrements):
- 1:06 AM Changeset in webkit [280512] by
-
- 1 edit9 moves in trunk/LayoutTests
Move DOM-unrelated tests out of fast/regex/dom
https://bugs.webkit.org/show_bug.cgi?id=228661
Reviewed by Saam Barati.
By moving to fast/regex/, we can run them from JSC tests too.
- fast/regex/lastIndex-expected.txt: Renamed from LayoutTests/fast/regex/dom/lastIndex-expected.txt.
- fast/regex/lastIndex.html: Renamed from LayoutTests/fast/regex/dom/lastIndex.html.
- fast/regex/non-pattern-characters-expected.txt: Renamed from LayoutTests/fast/regex/dom/non-pattern-characters-expected.txt.
- fast/regex/non-pattern-characters.html: Renamed from LayoutTests/fast/regex/dom/non-pattern-characters.html.
- fast/regex/script-tests/lastIndex.js: Renamed from LayoutTests/fast/regex/dom/script-tests/lastIndex.js.
- fast/regex/script-tests/non-pattern-characters.js: Renamed from LayoutTests/fast/regex/dom/script-tests/non-pattern-characters.js.
- fast/regex/script-tests/unicodeCaseInsensitive.js: Renamed from LayoutTests/fast/regex/dom/script-tests/unicodeCaseInsensitive.js.
- fast/regex/unicodeCaseInsensitive-expected.txt: Renamed from LayoutTests/fast/regex/dom/unicodeCaseInsensitive-expected.txt.
- fast/regex/unicodeCaseInsensitive.html: Renamed from LayoutTests/fast/regex/dom/unicodeCaseInsensitive.html.
- 12:52 AM Changeset in webkit [280511] by
-
- 7 edits1 delete in trunk
Unreviewed, reverting r280488.
https://bugs.webkit.org/show_bug.cgi?id=228677
media/modern-media-controls/ tests are failing or timed-out
Reverted changeset:
"[Cocoa] Remove support for AVAssetImageGenerator"
https://bugs.webkit.org/show_bug.cgi?id=228560
https://commits.webkit.org/r280488
Jul 30, 2021:
- 11:41 PM Changeset in webkit [280510] by
-
- 4 edits3 adds2 deletes in trunk/LayoutTests
[ macOS wk2 ARM 64 ] storage/indexeddb/IDBObject-leak.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223453
<rdar://problem/75580609>
Reviewed by Youenn Fablet.
As JavaScriptCore uses conservative GC, transaction may be still be alive after one gc call, so we should invoke
gc multiple times.
Also, this patch renames IDBObject-leak.html to database-transaction-cycle.html to better indicate what it is
testing.
- TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/wk2/TestExpectations:
- storage/indexeddb/IDBObject-leak-expected.txt: Removed.
- storage/indexeddb/IDBObject-leak.html: Removed.
- storage/indexeddb/database-transaction-cycle-expected.txt: Added.
- storage/indexeddb/database-transaction-cycle.html: Added.
- storage/indexeddb/resources/database-transaction-cycle-iframe.html: Added.
- 11:07 PM Changeset in webkit [280509] by
-
- 20 edits2 adds in trunk
[css-overflow] Implement clip value for overflow
https://bugs.webkit.org/show_bug.cgi?id=198230
Patch by Rob Buis <rbuis@igalia.com> on 2021-07-30
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-overflow/overflow-clip-hit-testing-expected.txt: Added.
- web-platform-tests/css/css-overflow/overflow-clip-scroll-size-expected.txt: Added.
- web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
- web-platform-tests/css/css-overflow/parsing/overflow-valid-expected.txt:
Source/WebCore:
Implement overflow: clip. Parsing is like the other
overflow values but special logic is added to handle
the case where only one of overflow-x/overflow-y uses
'clip' [1]. Also adjusts code that computes layout and
visual overflow to take overflow: clip into account.
This matches Chrome and Firefox.
[1] https://drafts.csswg.org/css-overflow/#propdef-overflow-x
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Overflow const):
- css/CSSProperties.json:
- css/parser/CSSParserContext.cpp:
(WebCore::operator==):
(WebCore::add):
- css/parser/CSSParserContext.h:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
- page/FrameView.cpp: handle scrollbars
on viewport element same as overflow: hidden.
(WebCore::FrameView::applyOverflowToViewport):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::updateFromStyle):
(WebCore::RenderBox::scrollWidth const): overflow clip
forbids all scrolling.
(WebCore::RenderBox::scrollHeight const): Ditto.
(WebCore::RenderBox::setScrollLeft): Ditto.
(WebCore::RenderBox::setScrollTop): Ditto.
(WebCore::RenderBox::setScrollPosition): Ditto.
(WebCore::RenderBox::requiresLayerWithScrollableArea const): do
not create layer with scrollable area for overflow: clip.
(WebCore::RenderBox::canBeProgramaticallyScrolled const): overflow clip
forbids all scrolling.
(WebCore::RenderBox::scrollPosition const): overflow clip
forbids all scrolling.
(WebCore::RenderBox::overflowClipRect const): only clip the rect horizontally
for overflow-x: clip and only vertically for overflow-y: clip.
(WebCore::RenderBox::createsNewFormattingContext const): do
not create formatting context for overflow: clip.
(WebCore::RenderBox::addOverflowFromChild):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::layoutOverflowRectForPropagation const):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingScrollableContainerForSnapping const):
- rendering/RenderObject.h: Add helper method that excludes overflow-x/y: clip.
(WebCore::RenderObject::hasPotentiallyScrollableOverflow const):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
- style/StyleAdjuster.cpp: Add special logic is to handle the case where only
one of overflow-x/overflow-y uses 'clip'.
(WebCore::Style::Adjuster::adjust const):
Source/WTF:
Add preference for overflow: clip support.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
- 9:46 PM Changeset in webkit [280508] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] branchTest8 should not emit tst for Zero/NonZero cases
https://bugs.webkit.org/show_bug.cgi?id=228674
Reviewed by Mark Lam.
Previously, branchTest8(NonZero, BaseIndex) emits
tstinstruction
unnecessarily. This is because the mask is truncated into 8bit, which
makes branchTest32 (which is internally used in branchTest8) emits tst.
We observed many unnecessary tst in YarrJIT.
This patch removes this unnecessary truncation since Zero/NonZero does
not care high bits of mask in branchTest8. This is ok because the
ResultCondition version of mask8OnCondition() is always used to generate
a mask that is only used against a value that is loaded with
MacroAssemblerHelpers::load8OnCondition(). For Zero/NonZero conditions,
load8OnCondition() will always zero fill the upper bytes. The 0 filled
upper bytes will not affect the result of a branch on zero or branch on
not zero.
Before:
0x10a8068b0: ldrb w16, [x7, x6]
0x10a8068b4: tst w16, #0xff
0x10a8068b8: b.ne 0x10a8068cc
After:
0x1070068b0: ldrb w16, [x7, x6]
0x1070068b4: cbnz w16, 0x1070068c8
- assembler/MacroAssemblerHelpers.h:
(JSC::MacroAssemblerHelpers::mask8OnCondition):
- 6:40 PM Changeset in webkit [280507] by
-
- 6 edits1 add in trunk
Improve OSR entry into Wasm loops with arguments
https://bugs.webkit.org/show_bug.cgi?id=228595
Reviewed by Yusuke Suzuki.
JSTests:
Just a straightforward test that counts to 1M in a loop, to exercise both OSR entry and a loop with an argument at the same time.
100k iterations was not enough to reliably complete an OSR entry.
- wasm/stress/osr-entry-with-loop-arguments.js: Added.
(async test):
Source/JavaScriptCore:
This patch has two parts:
- improve the Wasm OSR code to fully support loop arguments (just some plumbing to make sure that the right values are propagated)
- improve the B3 validator to fix a hole I noticed while writing the first part: we were not detecting code that introduce Upsilons in the wrong blocks. Naturally, this caused hard to debug issues, as B3 has no well-defined semantics for a Phi that is reached before the corresponding Upsilon(s).
- b3/B3Validate.cpp:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addLoop):
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::addLoop):
- 6:36 PM Changeset in webkit [280506] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Rename Temporal.now to Temporal.Now
https://bugs.webkit.org/show_bug.cgi?id=228658
Patch by Philip Chimento <pchimento@igalia.com> on 2021-07-30
Reviewed by Yusuke Suzuki.
See https://github.com/tc39/proposal-temporal/pull/1645. In the July
2021 meeting TC39 achieved consensus to rename Temporal.now to
Temporal.Now since it is a namespace.
- runtime/TemporalNow.cpp: Change Now[@@toStringTag] accordingly.
- runtime/TemporalObject.cpp: Rename now property to Now.
- 6:33 PM Changeset in webkit [280505] by
-
- 5 edits in trunk
putInlineFastReplacingStaticPropertyIfNeeded should handle custom values
https://bugs.webkit.org/show_bug.cgi?id=227963
Reviewed by Alexey Shvayka.
JSTests:
- stress/reflect-set-custom-value.js:
Source/JavaScriptCore:
Follow up after r280463: as it turns out, putInlineFastReplacingStaticPropertyIfNeeded also needs to handle
custom values, similar to how definePropertyOnReceiverSlow was updated. This function will be called when the
target property of the receiver is a custom value and isn't reified. The previous test case was expanded to
test both the reified and non-reified cases.
- runtime/JSObject.cpp:
(JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):
- tools/JSDollarVM.cpp:
- 5:07 PM Changeset in webkit [280504] by
-
- 96 edits3 copies1 add in trunk
Add initial support for 'Cross-Origin-Opener-Policy' HTTP header
https://bugs.webkit.org/show_bug.cgi?id=192193
<rdar://problem/42013525>
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that most tests are passing.
- web-platform-tests/IndexedDB/serialize-sharedarraybuffer-throws.https-expected.txt:
- web-platform-tests/html/cross-origin-embedder-policy/cross-origin-isolated-permission.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/blob-popup.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coep-blob-popup.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coep-redirect.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coep.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coop-coep-sandbox.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox-navigate.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coop-csp-sandbox.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coop-navigated-history-popup.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coop-navigated-popup.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/header-parsing.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-origin-unsafe-allow-outgoing-with-same-site.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-cross-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-unsafe-allow-outgoing-with-same-site.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-cross-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/historical/popup-same-site-with-same-site.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin-allow-popups.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-allow-popups-to-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/javascript-url.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/navigate-to-aboutblank.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/no-https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw-from-coop.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-coop-by-sw.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-redirect-cache.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-redirect-same-origin-allow-popups.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-cross-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-allow-popups-with-same-site.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-cross-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-same-origin-with-same-site.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-cross-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-unsafe-none-with-same-site.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-cross-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-origin.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-unspecified-with-same-site.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/popup-with-structured-header.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/resource-popup.https-expected.txt:
- web-platform-tests/html/cross-origin-opener-policy/resources/resource-popup.html:
- web-platform-tests/html/dom/idlharness.worker-expected.txt:
Source/WebCore:
Add initial support for 'Cross-Origin-Opener-Policy' HTTP header:
Support is complete enough to pass most WPT tests with the exception of:
- The ones involving blob. Support for Blob does not seem trivial so I will address separately (https://github.com/whatwg/html/issues/5198).
- The ones that requires reporting COOP enforcement as this is not supported yet. This is a fairly large task so I'll handle separately.
- The ones that involve Cross-Origin-Embedder-Policy (COEP) and this is not yet supported.
I tried to stay as close as possible to the HTML specification as possible in terms
of structuring and naming. I also have code comments to link to the relevant HTML
spec sections.
Note that as it stands, we do not currently swap process based on COOP header. We
merely do isolation of the new browsing context at JS level for now. At some point,
we'll want to actually process-swap, once we support COEP and we want to re-enable
some Web APIs such as SharedArrayBuffer.
No new tests, covered by web-plaform-tests/html/cross-origin-opener-policy.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- dom/Document.cpp:
(WebCore::Document::initSecurityContext):
(WebCore::Document::shouldForceNoOpenerBasedOnCOOP const):
(WebCore::Document::crossOriginOpenerPolicy const):
(WebCore::Document::setCrossOriginOpenerPolicy):
- dom/Document.h:
(WebCore::Document::isSameOriginAsTopDocument const):
- dom/SecurityContext.cpp:
(WebCore::SecurityContext::enforceSandboxFlags):
- dom/SecurityContext.h:
(WebCore::SecurityContext::creationSandboxFlags const):
- inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openURLExternally):
- loader/CrossOriginEmbedderPolicy.cpp: Copied from Source/WebCore/page/AbstractFrame.cpp.
(WebCore::obtainCrossOriginEmbedderPolicy):
- loader/CrossOriginEmbedderPolicy.h: Copied from Source/WebCore/page/AbstractFrame.cpp.
- loader/CrossOriginOpenerPolicy.cpp: Added.
(WebCore::obtainCrossOriginOpenerPolicy):
- loader/CrossOriginOpenerPolicy.h: Copied from Source/WebCore/page/AbstractFrame.h.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
(WebCore::checkIfCOOPValuesRequireBrowsingContextGroupSwitch):
(WebCore::computeResponseOriginAndCOOP):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::enforceResponseCrossOriginOpenerPolicy):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::maybeLoadEmpty):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::crossOriginOpenerPolicy const):
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
(WebCore::FrameLoader::setOpener):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::createWindow):
(WebCore::FrameLoader::switchBrowsingContextsGroup):
- loader/FrameLoader.h:
- loader/NavigationAction.cpp:
- loader/NavigationAction.h:
(WebCore::NavigationAction::Requester::securityOrigin const):
(WebCore::NavigationAction::Requester::topOrigin const):
(WebCore::NavigationAction::Requester::crossOriginOpenerPolicy const):
- page/AbstractFrame.cpp:
(WebCore::AbstractFrame::resetWindowProxy):
- page/AbstractFrame.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::crossOriginIsolated const):
(WebCore::DOMWindow::createWindow):
- page/DOMWindow.h:
- page/Frame.cpp:
(WebCore::Frame::resetScript):
- page/Frame.h:
- page/Page.h:
(WebCore::Page::setOpenedByDOMWithOpener):
- page/WindowOrWorkerGlobalScope.idl:
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext):
- platform/network/HTTPHeaderNames.in:
- platform/network/HTTPParsers.cpp:
(WebCore::parseStructuredFieldValue):
- platform/network/HTTPParsers.h:
- platform/network/ResourceResponseBase.cpp:
(WebCore::isSafeRedirectionResponseHeader):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::crossOriginIsolated const):
- workers/WorkerGlobalScope.h:
Source/WTF:
Add experimental feature flag for 'Cross-Origin-Opener-Policy' HTTP header
support.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
Update test expectations.
- TestExpectations:
- 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/TestExpectations:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac/TestExpectations:
- 4:57 PM Changeset in webkit [280503] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/navigation-redirect-main-frame.https.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=228670
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 4:08 PM Changeset in webkit [280502] by
-
- 28 edits in trunk
Unreviewed, reverting r280482.
Will take a more conservative approach
Reverted changeset:
"HTMLElement.innerText setter should convert new lines to
<br>"
https://bugs.webkit.org/show_bug.cgi?id=228605
https://commits.webkit.org/r280482
- 4:04 PM Changeset in webkit [280501] by
-
- 2 edits in trunk/Source/WebCore
Add spacebar functionality for macOS smooth scrolling
https://bugs.webkit.org/show_bug.cgi?id=228155
Patch by Dana Estra <destra@apple.com> on 2021-07-30
Reviewed by Tim Horton.
Fixed bug that was causing spacebar events to return false from beginKeyboardScrollGesture.
Manually tested on webpage.
- platform/KeyboardScrollingAnimator.cpp:
(WebCore::KeyboardScrollingAnimator::beginKeyboardScrollGesture):
- 3:38 PM Changeset in webkit [280500] by
-
- 5 edits in trunk
REGRESSION (r274460?): Infinite recursion on fullscreen/full-screen-remove-ancestor.html in WTR::InjectedBundlePage::closeFullScreen
https://bugs.webkit.org/show_bug.cgi?id=224085
rdar://75576840
Reviewed by Eric Carlson.
Source/WebKit:
WebFullScreenManager::close() is used to cleanup a transient error when exiting or
attempting to exit fullscreen; it then calls InjectedBundleXXX::closeFullScreen().
It is possible for the injected bundle's closeFullScreen() to attempt to exit full
screen mode again.
Rather than making the bundle responsible for doing the right thing, we add a
workaround in the fullscreen manager to ensure no recursion is happening.
Covered by existing test.
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::close):
- WebProcess/FullScreen/WebFullScreenManager.h: Make close() method private
LayoutTests:
- platform/mac-wk2/TestExpectations: re-enable test.
- 3:29 PM Changeset in webkit [280499] by
-
- 2 edits in trunk/LayoutTests
[ iPad ] fast/canvas/canvas-color-space-display-p3.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=228663
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 3:03 PM Changeset in webkit [280498] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed follow-up to r280491 to address review feedback from Darin Adler.
Use URL::isBlankURL() instead of a case-sensitive match for aboutBlankURL().
- dom/Document.cpp:
(WebCore::Document::updateBaseURL):
- 2:35 PM Changeset in webkit [280497] by
-
- 2 edits in trunk/LayoutTests
[ iOS Debug ] fast/events/tabindex-focus-blur-all.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=228659
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 2:16 PM Changeset in webkit [280496] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix wrong access width
https://bugs.webkit.org/show_bug.cgi?id=228301
rdar://81341472
- yarr/YarrJIT.cpp:
- 1:58 PM Changeset in webkit [280495] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r275641): [ iPad Debug ] accessibility/ios-simulator/scroll-in-overflow-div.html is asserting.
https://bugs.webkit.org/show_bug.cgi?id=228622
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 1:46 PM Changeset in webkit [280494] by
-
- 1 edit1 add in trunk/LayoutTests
[ iPad ] Rebaselining fast/dom/collection-iterators.html.
https://bugs.webkit.org/show_bug.cgi?id=228657
Unreviewed test gardening.
- platform/ipad/fast/dom/collection-iterators-expected.txt: Added.
- 1:44 PM Changeset in webkit [280493] by
-
- 16 edits1 copy1 add in trunk/Source/JavaScriptCore
Add Pre/Post-Indexed Address Mode to Air for ARM64
https://bugs.webkit.org/show_bug.cgi?id=228047
Reviewed by Phil Pizlo.
Pre-indexed addressing means that the address is the sum of the value in the 64-bit base register
and an offset, and the address is then written back to the base register. And post-indexed
addressing means that the address is the value in the 64-bit base register, and the sum of the
address and the offset is then written back to the base register. They are relatively common for
loops to iterate over an array by increasing/decreasing a pointer into the array at each iteration.
With such an addressing mode, the instruction selector can merge the increment and access the array.
#####################################
## Pre-Index Address Mode For Load ##
#####################################
LDR Wt, [Xn, #imm]!
In B3 Reduction Strength, since we have this reduction rule:
Turn this: Load(Add(address, offset1), offset = offset2)
Into this: Load(address, offset = offset1 + offset2)
Then, the equivalent pattern is:
address = Add(base, offset)
...
memory = Load(base, offset)
First, we convert it to the canonical form:
address = Add(base, offset)
newMemory = Load(base, offset) move the memory to just after the address
...
memory = Identity(newMemory)
Next, lower to Air:
Move %base, %address
Move (%address, prefix(offset)), %newMemory
######################################
## Post-Index Address Mode For Load ##
######################################
LDR Wt, [Xn], #imm
Then, the equivalent pattern is:
memory = Load(base, 0)
...
address = Add(base, offset)
First, we convert it to the canonical form:
newOffset = Constant
newAddress = Add(base, offset)
memory = Load(base, 0) move the offset and address to just before the memory
...
offset = Identity(newOffset)
address = Identity(newAddress)
Next, lower to Air:
Move %base, %newAddress
Move (%newAddress, postfix(offset)), %memory
#############################
## Pattern Match Algorithm ##
#############################
To detect the pattern for prefix/postfix increment address is tricky due to the structure in B3 IR. The
algorithm used in this patch is to collect the first valid values (add/load), then search for any
paired value (load/add) to match all of them. In worst case, the runtime complexity is O(n2)
when n is the number of all values.
After collecting two sets of candidates, we match the prefix incremental address first since it seems
more beneficial to the compiler (shown in the next section). And then, go for the postfix one.
##############################################
## Test for Pre/Post-Increment Address Mode ##
##############################################
Given Loop with Pre-Increment:
int64_t ldr_pre(int64_t *p) {
int64_t res = 0;
while (res < 10)
res += *++p;
return res;
}
B3 IR:
BB#0: ; frequency = 1.000000
Int64 b@0 = Const64(0)
Int64 b@2 = ArgumentReg(%x0)
Void b@20 = Upsilon($0(b@0), 18, WritesLocalState)
Void b@21 = Upsilon(b@2, 19, WritesLocalState)
Void b@4 = Jump(Terminal)
Successors: #1
BB#1: ; frequency = 1.000000
Predecessors: #0, #2
Int64 b@18 = Phi(ReadsLocalState)
Int64 b@19 = Phi(ReadsLocalState)
Int64 b@7 = Const64(10)
Int32 b@8 = AboveEqual(b@18, $10(b@7))
Void b@9 = Branch(b@8, Terminal)
Successors: Then:#3, Else:#2
BB#2: ; frequency = 1.000000
Predecessors: #1
Int64 b@10 = Const64(8)
Int64 b@11 = Add(b@19, $8(b@10))
Int64 b@13 = Load(b@11, ControlDependent|Reads:Top)
Int64 b@14 = Add(b@18, b@13)
Void b@22 = Upsilon(b@14, 18, WritesLocalState)
Void b@23 = Upsilon(b@11, 19, WritesLocalState)
Void b@16 = Jump(Terminal)
Successors: #1
BB#3: ; frequency = 1.000000
Predecessors: #1
Void b@17 = Return(b@18, Terminal)
Variables:
Int64 var0
Int64 var1
W/O Pre-Increment Address Mode:
...
BB#2: ; frequency = 1.000000
Predecessors: #1
Move $8, %x3, $8(b@12)
Add64 $8, %x0, %x1, b@11
Move (%x0,%x3), %x0, b@13
Add64 %x0, %x2, %x2, b@14
Move %x1, %x0, b@23
Jump b@16
Successors: #1
...
W/ Pre-Increment Address Mode:
...
BB#2: ; frequency = 1.000000
Predecessors: #1
MoveWithIncrement64 (%x0,Pre($8)), %x2, b@13
Add64 %x2, %x1, %x1, b@14
Jump b@16
Successors: #1
...
Given Loop with Post-Increment:
int64_t ldr_pre(int64_t *p) {
int64_t res = 0;
while (res < 10)
res += *p++;
return res;
}
B3 IR:
BB#0: ; frequency = 1.000000
Int64 b@0 = Const64(0)
Int64 b@2 = ArgumentReg(%x0)
Void b@20 = Upsilon($0(b@0), 18, WritesLocalState)
Void b@21 = Upsilon(b@2, 19, WritesLocalState)
Void b@4 = Jump(Terminal)
Successors: #1
BB#1: ; frequency = 1.000000
Predecessors: #0, #2
Int64 b@18 = Phi(ReadsLocalState)
Int64 b@19 = Phi(ReadsLocalState)
Int64 b@7 = Const64(10)
Int32 b@8 = AboveEqual(b@18, $10(b@7))
Void b@9 = Branch(b@8, Terminal)
Successors: Then:#3, Else:#2
BB#2: ; frequency = 1.000000
Predecessors: #1
Int64 b@10 = Load(b@19, ControlDependent|Reads:Top)
Int64 b@11 = Add(b@18, b@10)
Int64 b@12 = Const64(8)
Int64 b@13 = Add(b@19, $8(b@12))
Void b@22 = Upsilon(b@11, 18, WritesLocalState)
Void b@23 = Upsilon(b@13, 19, WritesLocalState)
Void b@16 = Jump(Terminal)
Successors: #1
BB#3: ; frequency = 1.000000
Predecessors: #1
Void b@17 = Return(b@18, Terminal)
Variables:
Int64 var0
Int64 var1
W/O Post-Increment Address Mode:
...
BB#2: ; frequency = 1.000000
Predecessors: #1
Move (%x0), %x2, b@10
Add64 %x2, %x1, %x1, b@11
Add64 $8, %x0, %x0, b@13
Jump b@16
Successors: #1
...
W/ Post-Increment Address Mode:
...
BB#2: ; frequency = 1.000000
Predecessors: #1
MoveWithIncrement64 (%x0,Post($8)), %x2, b@10
Add64 %x2, %x1, %x1, b@11
Jump b@16
Successors: #1
...
- Sources.txt:
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::PreIndexAddress::PreIndexAddress):
(JSC::AbstractMacroAssembler::PostIndexAddress::PostIndexAddress):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store32):
- assembler/testmasm.cpp:
(JSC::testStorePrePostIndex32):
(JSC::testStorePrePostIndex64):
(JSC::testLoadPrePostIndex32):
(JSC::testLoadPrePostIndex64):
- b3/B3CanonicalizePrePostIncrements.cpp: Added.
(JSC::B3::canonicalizePrePostIncrements):
- b3/B3CanonicalizePrePostIncrements.h: Copied from Source/JavaScriptCore/b3/B3ValueKeyInlines.h.
- b3/B3Generate.cpp:
(JSC::B3::generateToAir):
- b3/B3LowerToAir.cpp:
- b3/B3ValueKey.h:
- b3/B3ValueKeyInlines.h:
(JSC::B3::ValueKey::ValueKey):
- b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::jsHash const):
(JSC::B3::Air::Arg::dump const):
(WTF::printInternal):
- b3/air/AirArg.h:
(JSC::B3::Air::Arg::preIndex):
(JSC::B3::Air::Arg::postIndex):
(JSC::B3::Air::Arg::isPreIndex const):
(JSC::B3::Air::Arg::isPostIndex const):
(JSC::B3::Air::Arg::isMemory const):
(JSC::B3::Air::Arg::base const):
(JSC::B3::Air::Arg::offset const):
(JSC::B3::Air::Arg::isGP const):
(JSC::B3::Air::Arg::isFP const):
(JSC::B3::Air::Arg::isValidPreIndexForm):
(JSC::B3::Air::Arg::isValidPostIndexForm):
(JSC::B3::Air::Arg::isValidForm const):
(JSC::B3::Air::Arg::forEachTmpFast):
(JSC::B3::Air::Arg::forEachTmp):
(JSC::B3::Air::Arg::asPreIndexAddress const):
(JSC::B3::Air::Arg::asPostIndexAddress const):
- b3/air/AirOpcode.opcodes:
- b3/air/opcode_generator.rb:
- b3/testb3.h:
- b3/testb3_3.cpp:
(testLoadPreIndex32):
(testLoadPreIndex64):
(testLoadPostIndex32):
(testLoadPostIndex64):
(addShrTests):
- jit/ExecutableAllocator.cpp:
(JSC::jitWriteThunkGenerator):
- 1:26 PM Changeset in webkit [280492] by
-
- 10 edits2 adds in trunk/Source/WebCore
Add key-driven smooth scrolling to macOS
https://bugs.webkit.org/show_bug.cgi?id=228009
Patch by Dana Estra <destra@apple.com> on 2021-07-30
Reviewed by Tim Horton.
Cause keyboard scroll event to trigger start of smooth scroll animation, using same physics implementation as iOS smooth scrolling.
No tests yet.
- WebCore.xcodeproj/project.pbxproj:
- dom/Node.cpp:
(WebCore::Node::defaultEventHandler):
- page/EventHandler.cpp:
(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::scrollDistance):
(WebCore::EventHandler::stopKeyboardScrolling):
(WebCore::EventHandler::startKeyboardScrolling):
- platform/KeyboardScrollingAnimator.cpp: Added.
- platform/KeyboardScrollingAnimator.h: Added.
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::startAnimationCallback):
- platform/ScrollAnimator.h:
- platform/ScrollController.cpp:
(WebCore::ScrollController::animationCallback):
(WebCore::ScrollController::startOrStopAnimationCallbacks):
(WebCore::ScrollController::beginKeyboardScrolling):
(WebCore::ScrollController::stopKeyboardScrolling):
(WebCore::ScrollController::setIsAnimatingKeyboardScrolling):
(WebCore::ScrollController::updateKeyboardScrollingAnimatingState):
- platform/ScrollController.h:
(WebCore::ScrollControllerClient::updateKeyboardScrollPosition):
- 1:25 PM Changeset in webkit [280491] by
-
- 15 edits5 moves in trunk
Document's fallback base URL should be deduced from its creator when URL is about:blank
https://bugs.webkit.org/show_bug.cgi?id=228624
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
Rebaseline WPT test now that one more check is passing.
- web-platform-tests/html/infrastructure/urls/terminology-0/document-base-url-expected.txt:
Source/WebCore:
Document's fallback base URL should be deduced from its creator when URL is about:blank:
Chrome and Firefox match the specification here.
Tests: http/tests/dom/iframe-no-src-local-origin-allow.html
http/tests/dom/iframe-no-src-set-location.html
- dom/Document.cpp:
(WebCore::Document::updateBaseURL):
LayoutTests:
Update existing tests to reflect behavior change. I have verified that those tests were failing in Firefox & Chrome and
are now passing in those browsers.
- http/tests/dom/iframe-no-src-local-origin-allow-expected.txt: Renamed from LayoutTests/fast/frames/iframe-no-src-local-origin-allow-expected.txt.
- http/tests/dom/iframe-no-src-local-origin-allow.html: Renamed from LayoutTests/fast/frames/iframe-no-src-local-origin-allow.html.
- http/tests/dom/iframe-no-src-set-location-expected.txt: Renamed from LayoutTests/fast/frames/iframe-no-src-set-location-expected.txt.
- http/tests/dom/iframe-no-src-set-location.html: Renamed from LayoutTests/fast/frames/iframe-no-src-set-location.html.
- http/tests/dom/resources/iframe-no-src-set-location-pass.html: Renamed from LayoutTests/fast/frames/resources/iframe-no-src-set-location-pass.html.
- http/tests/security/aboutBlank/security-context-expected.txt:
- http/tests/security/aboutBlank/security-context-grandchildren-expected.txt:
- http/tests/security/aboutBlank/security-context-grandchildren-lexical-expected.txt:
- http/tests/security/aboutBlank/security-context-grandchildren-write-lexical-expected.txt:
- http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical-expected.txt:
- http/tests/security/aboutBlank/security-context-window-open-expected.txt:
- http/tests/security/aboutBlank/security-context-with-base-tag-expected.txt:
- http/tests/security/aboutBlank/security-context-write-expected.txt:
- http/tests/security/aboutBlank/security-context-writeln-expected.txt:
- 12:49 PM Changeset in webkit [280490] by
-
- 2 edits in trunk/Source/WebKit
Accessibility code logs to stderr in many layout test runs
https://bugs.webkit.org/show_bug.cgi?id=228653
Reviewed by Wenson Hsieh.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::accessibilityPreferencesDidChange):
r279342 accidentally landed a WTFLogAlways in a common codepath. Remove it.
- 11:56 AM Changeset in webkit [280489] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r280460): 42 JSC test failures on Debug arm64 with ASSERTION FAILED: !m_needExceptionCheck
https://bugs.webkit.org/show_bug.cgi?id=228652
Unreviewed unchecked exception fix.
Release scope before calling RegExpGlobalData::getBackref().
- runtime/RegExpConstructor.cpp:
(JSC::JSC_DEFINE_CUSTOM_GETTER):
- 11:49 AM Changeset in webkit [280488] by
-
- 7 edits1 add in trunk
[Cocoa] Remove support for AVAssetImageGenerator
https://bugs.webkit.org/show_bug.cgi?id=228560
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
The 2x2-green.mp4 file fails to decode as its natural size is too small for the system decoder to handle. Replace with
a media file of more reasonable size.
- web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html:
- web-platform-tests/html/semantics/embedded-content/media-elements/video_loop_base.html:
- web-platform-tests/media/16x16-green.mp4: Added.
Source/WebCore:
AVAssetImageGenerator is used when there is not yet an available image from AVPlayerItemVideoOutput.
However, AVAssetImageGenerator is a synchronous API call; if data for the current time is not available,
the generator will cause a request for that data to be issued, and if the main thread is blocked in a
synchronous call to the generator, that request can never be completed, causing a deadlock.
Instead, always block moving to a readyState >= HAVE_CURRENT_DATA until either the AVPlayerLayer or
the AVPlayerItemVideoOutput report having an available frame. This prevents clients from attempting
to paint until a frame is available, and ensures that we will always have an available frame for
painting, removing the need for the synchronous generator call.
To ensure the readyState is updated when AVPlayerItemVideoOutput has an available image, register
with the output at creation time for a notification as soon as an image is available. And in the existing
delegate object, send a message back to the MediaPlayerPrivateAVFoundationObjC when that occurs.
No tests needed; this should reduce flakiness of existing tests and cause no regression in behavior.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(-[WebCoreAVFPullDelegate setParent:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Deleted.
- 11:25 AM Changeset in webkit [280487] by
-
- 1 copy in tags/Safari-612.1.26
Tag Safari-612.1.26.
- 11:13 AM Changeset in webkit [280486] by
-
- 2 edits in branches/safari-612.1.26-branch/Source/WebKit
Cherry-pick r280433. rdar://problem/81334141
The bundle path of downlevel Safari is wrong
https://bugs.webkit.org/show_bug.cgi?id=228339
Reviewed by Tim Horton.
Use the same approach as
isSystemWebKitto check whether the WebKit bundle
is from the staged framework.
- Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm: (WebKit::isFeatureFlagEnabled):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:13 AM Changeset in webkit [280485] by
-
- 2 edits in branches/safari-612.1.26-branch/Source/WebKit
Cherry-pick r280424. rdar://problem/81334136
[macOS Catalina] Some feature preferences have wrong default values
https://bugs.webkit.org/show_bug.cgi?id=228564
Reviewed by Tim Horton.
When
HAVE(SYSTEM_FEATURE_FLAGS)is false, we still need to enable
some features by default.
This patch makes sure the following features are enabled by default
on macOS (consistent with the properties in WebKit-macos.plist):
- async_frame_and_overflow_scrolling
- gpu_process_canvas_rendering
- gpu_process_media
- gpu_process_webrtc
- incremental_pdf
- vp9_decoder
- webm_format_reader
- webm_parser
- Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultUseGPUProcessForCanvasRenderingEnabled): (WebKit::defaultUseGPUProcessForDOMRenderingEnabled): (WebKit::defaultUseGPUProcessForMediaEnabled): (WebKit::defaultCaptureAudioInGPUProcessEnabled): (WebKit::defaultCaptureVideoInGPUProcessEnabled): (WebKit::defaultWebRTCCodecsInGPUProcess): (WebKit::defaultIncrementalPDFEnabled): (WebKit::defaultWebMFormatReaderEnabled):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@280424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:08 AM Changeset in webkit [280484] by
-
- 3 edits in trunk/Source/WebKit
softlink nw_parameters_allow_sharing_port_with_listener
https://bugs.webkit.org/show_bug.cgi?id=228636
Reviewed by Eric Carlson.
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::createNWConnection):
This helps compiling/running WebKit on older OSes.
Also make use of nw_endpoint_create_host_with_numeric_port to remove the need for string to int conversion.
- Platform/spi/Cocoa/NWParametersSPI.h:
- 10:46 AM Changeset in webkit [280483] by
-
- 4 edits in trunk/Tools
[git-webkit] Forward errors from log and blame
https://bugs.webkit.org/show_bug.cgi?id=228621
<rdar://problem/81297642>
Rubber-stamped by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:
(FilteredCommand.main): If the exit code is non-zero, print all errors.
- 10:46 AM Changeset in webkit [280482] by
-
- 28 edits in trunk
HTMLElement.innerText setter should convert new lines to <br>
https://bugs.webkit.org/show_bug.cgi?id=228605
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaselined WPT tests that are now passing. Note that those were failing in WebKit but passing in Firefox
and Chrome.
- web-platform-tests/html/dom/elements/the-innertext-and-outertext-properties/innertext-setter-expected.txt:
- web-platform-tests/html/dom/elements/the-innertext-idl-attribute/setter-expected.txt:
- web-platform-tests/innerText/setter-expected.txt:
Source/WebCore:
HTMLElement.innerText setter should convert new lines to <br>:
- https://html.spec.whatwg.org/multipage/dom.html#the-innertext-idl-attribute:dom-innertext-3
- https://html.spec.whatwg.org/multipage/dom.html#rendered-text-fragment
Our innerText setter had some logic that was specific to form elements and specific render
styles that wasn't part of the specification. It was causing us to not replace the new lines
with <br> in some cases. I dropped this logic to align with Blink and Gecko, as those are
passing the same WPT tests.
No new tests, rebaselined existing tests.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::setInnerText):
LayoutTests:
Rebaseline a few tests that changed output.
- editing/pasteboard/smart-paste-paragraph-003-expected.txt:
- platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt:
- platform/mac/fast/forms/basic-textareas-quirks-expected.txt:
- platform/mac/fast/forms/textarea-scroll-height-expected.txt:
- platform/mac/fast/forms/textarea-scrollbar-expected.txt:
- platform/mac/fast/forms/textarea-scrolled-type-expected.txt:
- platform/mac/fast/forms/textarea-width-expected.txt:
- platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
- platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
- platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
- 10:30 AM Changeset in webkit [280481] by
-
- 8 edits in trunk/Source/WebKit
Attribute nw connections to the source application
https://bugs.webkit.org/show_bug.cgi?id=228641
<rdar://81039713>
Reviewed by Alex Christensen.
Add source application token for every nw connection/listener, like done for WebSocket or NSURLSession tasks.
This will allow the nw layer to do custom processing based on the application doing the loads.
Introduce an audit_token_t getter on NetworkProcess.
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::sourceApplicationAuditData const):
(WebKit::NetworkProcess::sourceApplicationAuditToken const):
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::NetworkRTCProvider):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
(WebKit::NetworkRTCProvider::sourceApplicationAuditToken const):
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
(WebKit::NetworkRTCTCPSocketCocoa::NetworkRTCTCPSocketCocoa):
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
(WebKit::NetworkRTCUDPSocketCocoaConnections::NetworkRTCUDPSocketCocoaConnections):
(WebKit::NetworkRTCUDPSocketCocoaConnections::configureParameters):
- Platform/spi/Cocoa/NWParametersSPI.h:
- 10:02 AM Changeset in webkit [280480] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=201481
<rdar://problem/55046055>
Reviewed by Youenn Fablet.
The test always passes now according to recent results, but it is shown as failed as TEXT because of the
expectation.
- platform/mac/TestExpectations:
- 9:41 AM Changeset in webkit [280479] by
-
- 13 edits in trunk
Clicking an HTMLLinkElement should not trigger a navigation
https://bugs.webkit.org/show_bug.cgi?id=228618
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline WPT test now that more checks are passing.
- web-platform-tests/html/infrastructure/urls/resolving-urls/query-encoding/navigation.sub-expected.txt:
Source/WebCore:
Clicking an HTMLLinkElement should not trigger a navigation because HTMLLinkElement has no activation
behavior as per the HTML specification:
Firefox and Chrome follow the specification here.
No new tests, updated/rebaselined existing tests.
- html/HTMLLinkElement.cpp:
- html/HTMLLinkElement.h:
LayoutTests:
Update existing tests to reflect behavior change. I verified that the tests were failing
in both Firefox and Chrome prior to me updating them.
- fast/dom/html-link-element-activation-behavior-on-element-click-expected.txt:
- fast/dom/html-link-element-activation-behavior-on-element-click.html:
- fast/dom/html-link-element-activation-behavior-on-mouse-click-expected.txt:
- fast/dom/html-link-element-activation-behavior-on-mouse-click.html:
- fast/dom/resources/html-link-element-activation-behavior-on-element-click-step1.html:
- fast/dom/resources/html-link-element-activation-behavior-on-mouse-click-step1.html:
- fast/dom/resources/html-link-element-activation-behavior-target.html:
- 9:35 AM Changeset in webkit [280478] by
-
- 4 edits in trunk/Tools
[git-webkit] Not all platforms support more -F
https://bugs.webkit.org/show_bug.cgi?id=228619
<rdar://problem/81296290>
Reviewed by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:
(FilteredCommand.pager): Only pass -F to more on Darwin.
- 9:21 AM Changeset in webkit [280477] by
-
- 7 edits in trunk
[Media Controls] Add an option for having no scrubber on the time control and parameterize margin
https://bugs.webkit.org/show_bug.cgi?id=228633
rdar://81314458
Reviewed by Tim Horton.
Source/WebCore:
Add support for a scrubber bar that does not have a knob (or, to be clear, an
invisible knob). While here, move the constant for the margin into a custom
CSS property so it can be easily overridden.
- Modules/modern-media-controls/controls/media-controls.css:
(*): Add --scrubber-margin custom property.
- Modules/modern-media-controls/controls/slider.css:
(.slider > .custom-slider > .knob.none): Add style for a "none" knob.
- Modules/modern-media-controls/controls/slider.js:
(Slider.prototype.commit): Support "none".
- Modules/modern-media-controls/controls/time-control.js: Get the margin from
the new custom property.
(TimeControl.prototype.get minimumWidth):
(TimeControl.prototype.get idealMinimumWidth):
(TimeControl.prototype.layout):
(TimeControl.prototype._performIdealLayout):
LayoutTests:
Make sure the TimeControls element is in the document so its computed style
can be read.
- media/modern-media-controls/time-control/time-control.html:
- 8:47 AM Changeset in webkit [280476] by
-
- 6 edits in trunk
postMessage() should throw if any duplicate transferable is found in transferList
https://bugs.webkit.org/show_bug.cgi?id=228608
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT test now that more checks are passing.
- web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt:
Source/WebCore:
postMessage() should throw if any duplicate transferable is found in transferList:
- https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializewithtransfer (Step 2.3)
No new tests, rebaselined existing test.
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
- 8:25 AM Changeset in webkit [280475] by
-
- 2 edits in trunk/LayoutTests
[ BigSur Release wk2 arm64] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-unsafe-none-to-same-origin.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228644.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 8:02 AM Changeset in webkit [280474] by
-
- 3 edits in trunk/LayoutTests
Updated test expectations for imported/w3c/web-platform-tests/html/cross-origin-opener-policy/header-parsing.https.html.
https://bugs.webkit.org/show_bug.cgi?id=228197.
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 7:52 AM Changeset in webkit [280473] by
-
- 2 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/html/cross-origin-opener-policy/iframe-popup-same-origin-to-unsafe-none.https.html is a flaky failure .
https://bugs.webkit.org/show_bug.cgi?id=228642.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 7:00 AM Changeset in webkit [280472] by
-
- 2 edits in trunk/LayoutTests
[Mac Debug] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228640.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:09 AM Changeset in webkit [280471] by
-
- 4 edits in trunk
[AspectRatio] Fix replaced-element-034.html
https://bugs.webkit.org/show_bug.cgi?id=228223
Patch by Rob Buis <rbuis@igalia.com> on 2021-07-30
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
Fix replaced-element-034.html by making hasReplacedLogicalHeight
return false for *-content when aspect-ratio is provided and relying
on computeReplacedLogicalHeight to take aspect-ratio into account.
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::hasReplacedLogicalHeight const):
LayoutTests:
- 1:41 AM Changeset in webkit [280470] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Use UCPURegister argument to remove zero extension in JIT code
https://bugs.webkit.org/show_bug.cgi?id=228625
Reviewed by Robin Morisset.
Yarr JIT code emits zeroExtend32ToWord for some arguments, but this is not necessary if
argument is defined as UCPURegister. In that case, caller guarantees that top 32bits are
cleared.
- yarr/YarrJIT.cpp:
- yarr/YarrJIT.h:
- 1:29 AM Changeset in webkit [280469] by
-
- 2 edits in trunk
[CMake] Fix fallback methods in the libgcrypt find module
https://bugs.webkit.org/show_bug.cgi?id=228581
Reviewed by Carlos Alberto Lopez Perez.
- Source/cmake/FindLibGcrypt.cmake: Make sure to use the libgcrypt-config script as
first fallback if libgcrypt.pc is not present, and fix the regexp used as last fallback
that checks the version from the gcrypt.h header as last fallback to only include digits
and periods.