Timeline
Nov 13, 2021:
- 11:37 PM Changeset in webkit [285787] by
-
- 12 edits4 adds in trunk
Run a ScrollAnimationMomentum for the momentum phase of a scroll
https://bugs.webkit.org/show_bug.cgi?id=232897
Reviewed by Tim Horton.
Source/WebCore:
Run an animation for the momentum phase of a scroll, rather than scrolling in response
to wheel events, because it produces a smoother result with fewer dropped frames.
We re-use ScrollAnimationMomentum which is already used for scroll snap, but have to
allow it to yield unclamped coordinates, since using it for momentum can result in
rubber-banding.
When we get the momentum "began" event, we start the ScrollAnimationMomentum
using initial velocity computed from WheelEventDeltaFilter. ScrollingEffectsController then
ignores the reset of the momentum "changed" events.
We have to stop this animation when we receive a "begin" or "mayBegin" event, since
this indicates that the user has put fingers down on the trackpad.
Rename m_dragEndedScrollingVelocity to m_scrollingVelocityForScrollSnap for clarity
(at some point we should merge this with m_scrollingVelocityForMomentumAnimation).
Tests: fast/scrolling/mac/momentum-animator-in-overflow.html
fast/scrolling/mac/momentum-animator.html
- page/WheelEventDeltaFilter.cpp:
(WebCore::WheelEventDeltaFilter::shouldApplyFilteringForEvent):
- page/WheelEventDeltaFilter.h:
- platform/PlatformWheelEvent.cpp:
(WebCore::operator<<):
- platform/ScrollAnimationMomentum.cpp:
(WebCore::ScrollAnimationMomentum::startAnimatedScrollWithInitialVelocity):
(WebCore::ScrollAnimationMomentum::stop):
(WebCore::ScrollAnimationMomentum::serviceAnimation):
- platform/ScrollAnimationMomentum.h:
- platform/ScrollingEffectsController.cpp:
(WebCore::ScrollingEffectsController::ScrollingEffectsController):
(WebCore::ScrollingEffectsController::stopAnimatedNonRubberbandingScroll):
(WebCore::ScrollingEffectsController::startMomentumScrollWithInitialVelocity):
- platform/ScrollingEffectsController.h:
(WebCore::ScrollingEffectsController::momentumScrollingAnimatorEnabled const):
- platform/mac/ScrollingEffectsController.mm:
(WebCore::phaseToString):
(WebCore::ScrollingEffectsController::handleWheelEvent):
(WebCore::ScrollingEffectsController::startRubberBandAnimation):
(WebCore::ScrollingEffectsController::startRubberBandAnimationIfNecessary):
(WebCore::ScrollingEffectsController::processWheelEventForScrollSnap):
Source/WTF:
Set the MomentumScrollingAnimatorEnabled internal setting to off by default
while we bring up tests.
- Scripts/Preferences/WebPreferencesInternal.yaml:
LayoutTests:
Some tests that enable the momentum animator.
- fast/scrolling/mac/momentum-animator-expected.txt: Added.
- fast/scrolling/mac/momentum-animator-in-overflow-expected.txt: Added.
- fast/scrolling/mac/momentum-animator-in-overflow.html: Added.
- fast/scrolling/mac/momentum-animator.html: Added.
- 9:05 PM Changeset in webkit [285786] by
-
- 8 edits1 copy in trunk/Source/WebCore
Clean up IOKit SPI headers
https://bugs.webkit.org/show_bug.cgi?id=233093
Reviewed by Simon Fraser.
Source/WebCore:
- platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
- platform/gamepad/mac/HIDGamepadProvider.h:
- platform/gamepad/mac/HIDGamepadProvider.mm:
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cg/CoreGraphicsSPI.h:
- pal/spi/cocoa/IOKitSPI.h:
- pal/spi/ios/IOKitSPIIOS.h: Added.
- pal/spi/mac/IOKitSPIMac.h:
IOKit vends a much different set of public API on iOS vs. macOS,
so we have separate SPI headers to reduce the confusion.
Unfortunately, the SPI header for iOS was not explicitly named as such,
and started being used in some macOS code. For a while, this didn't lead
to any trouble because the aforementioned macOS code didn't ALSO have
the public SDK headers included, but a future patch from Simon will
use IOKitSPI.h in a place where the macOS IOKit public headers are included,
and thus we must make the split more explicit.
Rename IOKitSPI.h to IOKitSPIIOS.h; make IOKitSPI choose the right one.
Add some SPI defintions to IOKitSPIMac.h that were missing (which the
dependent code was getting via the iOS header on macOS).
- 4:19 PM Changeset in webkit [285785] by
-
- 4 edits in trunk
REGRESSION (r285618): [mac-wk1] ASSERTION FAILED: cgContext == [currentContext CGContext]
https://bugs.webkit.org/show_bug.cgi?id=233008
rdar://85311948
Reviewed by Wenson Hsieh.
Source/WebCore:
The assertion fails when loading the expected html page because one of
the elements has a CSS filter named "(#noop)" but the filter "noop" is
not defined.
The reason for the assertion to fail is we switch the PaintInfo to the
context of the CSSFilter::sourceImage() and we do not restore it back.
In fact CSSFilter::buildFilterFunctions() should fail since the filter
has only a reference filter and this reference filter does not exit. The
bug is CSSFilter::buildFilterFunctions() does not fail in this case.
Before r285618, CSSFilter::buildFilterFunctions() was not adding
SourceGraphic to m_functions. It was added as the input of the first
FilterEffect. This was fine since we were applying the lastEffect which
goes backward till it reaches the SourceGraphic.
But the plan is to apply the FilterFunctions from the first to the last
without having to go backward, so we need to add the SourceGraphic to
m_functions explicitly. The bug happens when no FilterFunction is built
successfully and we return 'true' because m_functions is not empty. It
has the SourceGraphic.
The fix is to add the SourceGraphic only when there is at least another
FilterFunction will be added to m_functions.
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::buildFilterFunctions):
LayoutTests:
Unskip the test http/tests/css/filters-on-iframes-transform.html which
was skipped in r285656.
- platform/mac-wk1/TestExpectations:
- 3:28 PM Changeset in webkit [285784] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Inline box end's padding/border/margin should be taken into account when computing horizontal position for bidi content
https://bugs.webkit.org/show_bug.cgi?id=233083
Reviewed by Antti Koivisto.
Let's decouple the "display box rect" and the "content right in visual order" computation.
There are runs (e.g. inline box end) that don't need to call displayBoxRect() but they
still affect the "content right in visual order" (<span style="border-right: 10px solid green">).
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent): add the additional lineRun.isInlineBoxEnd() case.
- 3:21 PM Changeset in webkit [285783] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Add support for optional bidi character coverage checking
https://bugs.webkit.org/show_bug.cgi?id=233049
Reviewed by Antti Koivisto.
This is in preparation for enabling bidi for IFC.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForFontAndText):
(WebCore::LayoutIntegration::canUseForRenderInlineChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- 3:04 PM Changeset in webkit [285782] by
-
- 4 edits in trunk/Source/WebCore
[LFC][Integration] Bring showRenderTree for IFC integration back
https://bugs.webkit.org/show_bug.cgi?id=233000
Reviewed by Antti Koivisto.
Currently showRenderTree comes back blank for IFC content.
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::showInlineContent):
- layout/integration/LayoutIntegrationBoxTree.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::outputLineTree const):
- 3:04 PM Changeset in webkit [285781] by
-
- 9 edits in trunk
Implement UIScriptController.sendEventStream() for DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=233090
Reviewed by Wenson Hsieh.
Tools:
Implement UIScriptControllerMac::sendEventStream(), sharing some event dispatching code from
EventSendingController.
- DumpRenderTree/mac/EventSendingController.h:
- DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]):
(-[EventSendingController sendScrollEventAt:deltaX:deltaY:units:wheelPhase:momentumPhase:timestamp:]):
- DumpRenderTree/mac/UIScriptControllerMac.h:
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::gesturePhaseFromString):
(WTR::momentumPhaseFromString):
(WTR::eventSenderFromView):
(WTR::UIScriptControllerMac::sendEventStream):
LayoutTests:
Convert one test that runs in WK1 to use sendEventStream().
- fast/scrolling/overflow-scroll-past-max.html:
- resources/ui-helper.js:
- 1:59 PM Changeset in webkit [285780] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Inline box end (opaque to bidi) should get the bidi level from its adjacent content
https://bugs.webkit.org/show_bug.cgi?id=233082
Reviewed by Antti Koivisto.
While the inline box start item (<span>) gets the bidi level from the next (adjacent) content, inline box end (</span>)
should get it from the previous content (these are opaque inline items).
e.g <span>bidi content</span>
both the inline box start and the inline box end items get their bidi level from the "bidi content" inline text item.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
- 1:58 PM Changeset in webkit [285779] by
-
- 7 edits in trunk/Tools
Unreviewed, reverting r285772.
Ownership issues in some XCode installs
Reverted changeset:
"[webkitpy] Symlink daemons into simulator runtime root"
https://bugs.webkit.org/show_bug.cgi?id=233080
https://commits.webkit.org/r285772
- 1:57 PM Changeset in webkit [285778] by
-
- 16 edits in trunk/LayoutTests
AX: Make 7 more layout tests async so that they pass in --release --accessibility-isolated-tree mode
https://bugs.webkit.org/show_bug.cgi?id=233085
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-13
Reviewed by Chris Fleizach.
This patch makes 7 more tests async so that they pass in --release
--accessibility-isolated-tree mode. This patch also adds some helper
functions to accessibility-helper.js.
- accessibility/ancestor-computation.html:
Move
waitForElementto accessibility-helpers.js and rename to
waitForElementById.
- accessibility/color-well-expected.txt:
- accessibility/color-well.html:
- accessibility/mac/scrollbars.html:
- accessibility/placeholder-expected.txt:
- accessibility/placeholder.html:
- accessibility/progressbar-expected.txt:
- accessibility/progressbar.html:
- accessibility/range-alter-by-percent-expected.txt:
- accessibility/range-alter-by-percent.html:
- accessibility/range-alter-by-step-expected.txt:
- accessibility/range-alter-by-step.html:
- accessibility/spinbutton-value-expected.txt:
- accessibility/spinbutton-value.html:
Make tests async so they pass in isolated tree mode.
Minor updates to expectations:
- Some variables renamed for better readability
- Sometimes there is one more or one less newline after the test rewrites
- resources/accessibility-helper.js:
(async waitForElementById): Added. Originally defined in
accessibility/ancestor-computation.html.
(async waitForExpression): Added.
- 10:49 AM Changeset in webkit [285777] by
-
- 2 edits in trunk
[WebGPU] Add WebGPU.xcodeproj to WebKit.xcworkspace
https://bugs.webkit.org/show_bug.cgi?id=233078
Reviewed by Dean Jackson.
Mechanical change. When building WebGPU becomes required,
people using this workspace will need it.
- WebKit.xcworkspace/contents.xcworkspacedata:
- 10:38 AM Changeset in webkit [285776] by
-
- 9 edits in trunk
AX: Make accessibility/mac/header.html test async to fix it for isolated tree mode
https://bugs.webkit.org/show_bug.cgi?id=233017
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-13
Reviewed by Andres Gonzalez.
Tools:
This patch implements the
domIdentifierattribute for DumpRenderTree
elements. When making this test async, I wanted to use this attribute,
hence the implementation in this patch.
- DumpRenderTree/AccessibilityUIElement.cpp:
(domIdentifierCallback): Added.
(AccessibilityUIElement::getJSClass):
Add "domIdentifer" entry tostaticValues[].
- DumpRenderTree/AccessibilityUIElement.h:
Add AccessibilityUIElement::domIdentifier const definition.
- DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::domIdentifier const): Added.
- DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::domIdentifier const): Added.
- DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(AccessibilityUIElement::domIdentifier const):Added.
LayoutTests:
This test needs to be made async, as we need to wait for
accessibilityController.focusedElement to be synced with the DOM
focused element before running our expectations. This fixes the
test in isolated tree mode.
- accessibility/mac/header-expected.txt:
Remove extra newline at end of the file.
- accessibility/mac/header.html:
Make test async.
- 8:44 AM Changeset in webkit [285775] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Remove logging of used syscalls
https://bugs.webkit.org/show_bug.cgi?id=232839
<rdar://problem/85168823>
Reviewed by Brent Fulgham.
Based on telemetry, remove logging of used unix syscalls in the GPU process on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 8:13 AM Changeset in webkit [285774] by
-
- 3 edits in trunk/Source/WebKit
[macOS][GPUP] Add telemetry for syscalls
https://bugs.webkit.org/show_bug.cgi?id=232888
<rdar://problem/85207011>
Reviewed by Brent Fulgham.
Add more telemetry for syscalls in the GPU process' sandbox on macOS. Also add entitlement for the GPU
process to use message filtering.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- Scripts/process-entitlements.sh:
- 8:09 AM Changeset in webkit [285773] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Add system call logging
https://bugs.webkit.org/show_bug.cgi?id=233079
<rdar://problem/85362041>
Reviewed by Brent Fulgham.
Add telemetry for system calls in the GPU process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
Nov 12, 2021:
- 8:45 PM Changeset in webkit [285772] by
-
- 7 edits in trunk/Tools
[webkitpy] Symlink daemons into simulator runtime root
https://bugs.webkit.org/show_bug.cgi?id=233080
<rdar://problem/85362551>
Reviewed by Brady Eidson.
- Scripts/webkitpy/api_tests/manager.py:
(Manager._initialize_devices): Symlink daemons in the WebKit.framework into
simulator runtime root.
- Scripts/webkitpy/common/system/filesystem.py:
(FileSystem.symlink):
- Scripts/webkitpy/common/system/filesystem_mock.py:
(MockFileSystem.symlink):
- Scripts/webkitpy/port/darwin.py:
(DarwinPort.path_to_daemons):
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager.Runtime.init): Add root.
(SimulatedDeviceManager._create_device_with_runtime): Pass runtime.
(SimulatedDevice.init): Link to runtime.
- Scripts/webkitpy/xcode/simulated_device_unittest.py:
Canonical link: https://commits.webkit.org/244216@main
- 7:22 PM Changeset in webkit [285771] by
-
- 3 edits in trunk/Source/WebCore
webView._isBeingInspected does not work with Service Worker pages
https://bugs.webkit.org/show_bug.cgi?id=233062
rdar://problem/85354982
Reviewed by Devin Rousso.
- inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::connectFrontend): Call updateServiceWorkerPageFrontendCount().
(WebCore::WorkerInspectorController::disconnectFrontend): Ditto.
(WebCore::WorkerInspectorController::updateServiceWorkerPageFrontendCount): Added.
- inspector/WorkerInspectorController.h: Added updateServiceWorkerPageFrontendCount().
- 6:26 PM Changeset in webkit [285770] by
-
- 15 edits in trunk
Make sort-Xcode-project-file idempotent
https://bugs.webkit.org/show_bug.cgi?id=233077
Reviewed by Wenson Hsieh.
Source/bmalloc:
- libpas/libpas.xcodeproj/project.pbxproj: Sorted.
Source/JavaScriptCore:
- JavaScriptCore.xcodeproj/project.pbxproj: Sorted.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj: Sorted.
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj: Sorted.
Source/WebKitLegacy:
- WebKitLegacy.xcodeproj/project.pbxproj: Sorted.
Tools:
- Scripts/sort-Xcode-project-file:
(sortChildrenByFileName): Fix the "directories first" rule to work in a straightforward
way that is symmetric, and make the rest of the rules fall through when two files are
equal for the same reason. Also remove almost all names from the special list of filenames
to treat as files even though they have no extension. For example, "jsc" is a directory
in WebCore and it's not needed to sort products correctly in JavaScriptCore. And
"minidom" is both a product and a directory.
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Sorted.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Ditto.
- 6:12 PM Changeset in webkit [285769] by
-
- 3 edits2 adds in trunk
REGRESSION(r285481): Infinite recursion with cyclic filter reference
https://bugs.webkit.org/show_bug.cgi?id=232972
rdar://85264240
Reviewed by Wenson Hsieh.
Source/WebCore:
Before r285481, we were creating the ImageBuffer of the referenced SVGElement
for the FEImage through RenderSVGResourceFilter::postApplyResource(). Now
we create this ImageBuffer through RenderSVGResourceFilter::applyResource().
The difference is at the end of RenderSVGResourceFilter::applyResource()
we add an entry to m_rendererFilterDataMap. This entry was preventing
trying to rebuild the SVGFilter for the same renderer if there is a
cyclic reference.
The fix is to add the entry in m_rendererFilterDataMap before creating the
SVGFilter. If an error happens, this entry will be removed before returning.
Test: svg/filters/feImage-cyclic-reference.svg
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
LayoutTests:
- svg/filters/feImage-cyclic-reference-expected.txt: Added.
- svg/filters/feImage-cyclic-reference.svg: Added.
- 5:23 PM Changeset in webkit [285768] by
-
- 1 copy in tags/Safari-612.3.6.1.1
Tag Safari-612.3.6.1.1.
- 5:22 PM Changeset in webkit [285767] by
-
- 1 delete in tags/Safari-612.3.6.1.1
Delete tag.
- 5:18 PM Changeset in webkit [285766] by
-
- 1 edit in branches/safari-612.3.6.1-branch/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h
Unreviewed build fix. rdar://problem/83159358
error: out-of-line definition of 'isolatedSession' does not match any declaration in 'WebKit::SessionSet'
- 5:16 PM Changeset in webkit [285765] by
-
- 9 edits in trunk/Tools
[git-webkit] Checkout pull-requests
https://bugs.webkit.org/show_bug.cgi?id=233042
<rdar://problem/85343364>
Reviewed by Dewei Zhu.
In GitHub, pull-requests are somewhat difficult to checkout because they're
attached to a specific user's mirror of WebKit. Automate this process.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git): Add username:branch regex.
(Git.checkout): Allow checking out of branches by username:branch.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git.init): Add
git checkout -B.
(Git.checkout):-Bwill force checkout a branch, even if one already exists.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:
(GitHub): Embed error message in 404 response.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/checkout.py:
(Checkout.main): Allow direct checkout of pull-request instead of relying
exclusively on branches.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/clean.py:
(Clean.main): Add newline.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
(TestCheckout.test_no_pr_github):
(TestCheckout.test_no_pr_bitbucket):
(TestCheckout.test_pr_github):
(TestCheckout.test_pr_bitbucket):
Canonical link: https://commits.webkit.org/244211@main
- 5:16 PM Changeset in webkit [285764] by
-
- 4 edits2 adds in trunk
Null check m_spanElement
https://bugs.webkit.org/show_bug.cgi?id=230894
Patch by Rob Buis <rbuis@igalia.com> on 2021-11-12
Reviewed by Wenson Hsieh.
Source/WebCore:
Null check m_spanElement in ReplaceNodeWithSpanCommand::doUnapply, since
it may not be created by ReplaceNodeWithSpanCommand::doApply.
Test: editing/execCommand/default-paragraph-separator-crash.html
- editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::ReplaceNodeWithSpanCommand::doUnapply):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
LayoutTests:
- editing/execCommand/default-paragraph-separator-crash-expected.txt: Added.
- editing/execCommand/default-paragraph-separator-crash.html: Added.
- 4:55 PM Changeset in webkit [285763] by
-
- 3 edits in trunk/Source/WebKit
_WKWebAuthenticationPanel should expose a way to encode CTAP commands
https://bugs.webkit.org/show_bug.cgi?id=232977
<rdar://85279329>
Patch by Garrett Davidson <davidson.garrettm@gmail.com> on 2021-11-12
Reviewed by David Kilzer.
Expose the existing CTAP command encoding through _WKWebAuthenticationPanel.
Covered by existing tests.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(coreUserVerificationAvailability):
(+[_WKWebAuthenticationPanel getClientDataJSONForAuthenticationType:challenge:origin:])
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataJSON:options:userVerificationAvailability:]):
(+[_WKWebAuthenticationPanel encodeGetAssertionCommandWithClientDataJSON:options:userVerificationAvailability:]):
- 4:11 PM Changeset in webkit [285762] by
-
- 1 copy in tags/Safari-612.3.6.2.1
Tag Safari-612.3.6.2.1.
- 4:08 PM Changeset in webkit [285761] by
-
- 1 copy in tags/Safari-612.3.6.0.1
Tag Safari-612.3.6.0.1.
- 4:08 PM Changeset in webkit [285760] by
-
- 72 edits94 adds2 deletes in trunk/JSTests
[JSC] update test262
https://bugs.webkit.org/show_bug.cgi?id=233058
For picking up changes to the ShadowRealms test set.
Patch by Joseph Griego <jgriego@igalia.com> on 2021-11-12
Reviewed by Yusuke Suzuki.
- test262/expectations.yaml:
- test262/harness/arrayContains.js: Removed.
- test262/harness/async-gc.js:
- test262/latest-changes-summary.txt:
- test262/test/built-ins/Array/prototype/every/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/filter/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/find/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/findIndex/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/findLast/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/findLastIndex/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/forEach/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/map/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/reduce/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/reduceRight/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/Array/prototype/some/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-auto.js:
(catch):
- test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-auto.js:
(catch):
- test262/test/built-ins/FinalizationRegistry/gc-has-one-chance-to-call-cleanupCallback.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/callback-not-callable-throws.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-reference.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/custom-this.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/holdings-multiple-values.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/length.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/name.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/prop-desc.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/reentrancy.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined-with-gc.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js:
- test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-not-object-throws.js:
- test262/test/built-ins/FinalizationRegistry/prototype/unregister/unregister-cleaned-up-cell.js:
- test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-2.js:
- test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
- test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
- test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
- test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-proto-from-caller-realm.js:
- test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-from-caller-realm.js: Added.
(realm.Reflect.construct):
- test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-on-non-primitive-arguments.js: Added.
(Symbol.toPrimitive):
(toString):
(valueOf):
(apply):
- test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-on-non-primitive-returns.js: Added.
(r.evaluate):
- test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-functions-accepts-callable-objects.js:
- test262/test/built-ins/SharedArrayBuffer/prototype/prop-desc.js: Added.
- test262/test/built-ins/Temporal/Duration/compare/calendar-fields-iterable.js:
- test262/test/built-ins/Temporal/Duration/compare/relativeto-string-zoneddatetime-wrong-offset.js: Added.
- test262/test/built-ins/Temporal/Duration/compare/relativeto-sub-minute-offset.js: Added.
- test262/test/built-ins/Temporal/Duration/prototype/add/calendar-fields-iterable.js:
- test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-no-time-units.js: Added.
(const.result.instance.add.new.Temporal.Duration):
- test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-string-zoneddatetime-wrong-offset.js: Added.
(instance.add.new.Temporal.Duration):
- test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-sub-minute-offset.js: Added.
(const.result.instance.add.new.Temporal.Duration):
(instance.add.new.Temporal.Duration):
- test262/test/built-ins/Temporal/Duration/prototype/round/calendar-fields-iterable.js:
- test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-string-zoneddatetime-wrong-offset.js: Added.
- test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-sub-minute-offset.js: Added.
- test262/test/built-ins/Temporal/Duration/prototype/subtract/calendar-fields-iterable.js:
- test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-no-time-units.js: Added.
(const.result.instance.subtract.new.Temporal.Duration):
- test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-string-zoneddatetime-wrong-offset.js: Added.
(instance.subtract.new.Temporal.Duration):
- test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-sub-minute-offset.js: Added.
(const.result.instance.subtract.new.Temporal.Duration):
(instance.subtract.new.Temporal.Duration):
- test262/test/built-ins/Temporal/Duration/prototype/total/calendar-fields-iterable.js:
- test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-string-zoneddatetime-wrong-offset.js: Added.
- test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-sub-minute-offset.js: Added.
- test262/test/built-ins/Temporal/Instant/prototype/toString/timezone-offset.js: Added.
(test):
- test262/test/built-ins/Temporal/Instant/prototype/toString/timezone-string-datetime.js:
- test262/test/built-ins/Temporal/Instant/prototype/toString/timezone.js:
- test262/test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js:
- test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/PlainTime/from/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/basic.js: Added.
(test):
- test262/test/built-ins/Temporal/ZonedDateTime/from/zoneddatetime-sub-minute-offset.js: Added.
(string_appeared_here.forEach):
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/sub-minute-offset.js: Added.
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/offset.js: Added.
(test):
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/offset/basic.js: Added.
(test):
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/sub-minute-offset.js: Added.
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/balance-negative-time-units.js:
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/offset.js: Added.
(test):
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/balance-negative-time-units.js:
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/offset.js: Added.
(test):
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/sub-minute-offset.js: Added.
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/offset-property-sub-minute.js: Added.
(string_appeared_here.forEach):
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/receiver-offset-broken.js: Added.
(ObservedCalendar):
(ObservedCalendar.prototype.toString):
(ObservedCalendar.prototype.mergeFields):
(ObservedCalendar.prototype.resetCalls):
- test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js: Added.
- test262/test/built-ins/Temporal/getOwnPropertyNames.js:
- test262/test/built-ins/TypedArray/prototype/every/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/filter/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/find/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/findIndex/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/findLast/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/findLastIndex/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/forEach/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/map/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/reduce/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/TypedArray/prototype/some/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
- test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js:
- test262/test/harness/arrayContains.js: Removed.
- test262/test/harness/testTypedArray.js:
- test262/test/intl402/Collator/prototype/resolvedOptions/order.js:
- test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-dayPeriod.js:
- test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-fractionalSecondDigits.js:
- test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-style.js:
- test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order.js:
- test262/test/intl402/ListFormat/prototype/resolvedOptions/order.js:
- test262/test/intl402/NumberFormat/constructor-options-roundingMode-invalid.js: Added.
(brokenToString.toString):
- test262/test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-mode.js: Added.
(get roundingMode):
- test262/test/intl402/NumberFormat/constructor-signDisplay-negative.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-ceil.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-expand.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-floor.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-ceil.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-even.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-expand.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-floor.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-trunc.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-trunc.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-de-DE.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-en-US.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-ja-JP.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-ko-KR.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-zh-TW.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-de-DE.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-en-US.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-ja-JP.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-ko-KR.js: Added.
- test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-zh-TW.js: Added.
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-de-DE.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-en-US.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-ja-JP.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-ko-KR.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-zh-TW.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-de-DE.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-en-US.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-ja-JP.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-ko-KR.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-zh-TW.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
- test262/test/intl402/NumberFormat/prototype/resolvedOptions/order.js:
- test262/test/intl402/NumberFormat/prototype/resolvedOptions/roundingMode.js: Added.
- test262/test/intl402/PluralRules/prototype/resolvedOptions/order.js:
- test262/test/intl402/RelativeTimeFormat/prototype/resolvedOptions/order.js:
- test262/test/intl402/Segmenter/prototype/resolvedOptions/order.js:
- test262/test/language/block-scope/syntax/for-in/acquire-properties-from-array.js:
- test262/test/language/block-scope/syntax/for-in/acquire-properties-from-object.js:
- test262/test/language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-async-function-await-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-async-function-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-async-gen-await-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-block-import-then-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-do-while-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-else-import-then-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-function-import-then-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-if-braceless-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-if-import-then-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/nested-while-import-then-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-script-code-host-resolves-module-code.js:
- test262/test/language/expressions/dynamic-import/usage/top-level-import-then-eval-script-code-host-resolves-module-code.js:
- test262/test262-Revision.txt:
- 4:07 PM Changeset in webkit [285759] by
-
- 1 copy in tags/Safari-612.3.6.1.1
Tag Safari-612.3.6.1.1.
- 4:01 PM Changeset in webkit [285758] by
-
- 2 edits in trunk/JSTests
Unskip typeProfiler/getter-richards.js on armv7
https://bugs.webkit.org/show_bug.cgi?id=233050
Unreviewed gardening.
Our arm bots are now fast enough to run this, it does still timeout on
some of our test mips devices though.
- typeProfiler/getter-richards.js:
- 3:56 PM Changeset in webkit [285757] by
-
- 1 copy in tags/Safari-613.1.7.4
Tag Safari-613.1.7.4.
- 3:54 PM Changeset in webkit [285756] by
-
- 3 edits in branches/safari-612.3.6.1-branch/Source/WebKit
Revert r285690. rdar://problem/83381842
- 3:54 PM Changeset in webkit [285755] by
-
- 2 edits in branches/safari-612.3.6.1-branch/Source/WebCore
Revert r285691. rdar://problem/83381842
- 3:54 PM Changeset in webkit [285754] by
-
- 3 edits in branches/safari-612.3.6.1-branch/Source/WebCore
Revert r285680. rdar://problem/85004449
- 3:54 PM Changeset in webkit [285753] by
-
- 3 edits in branches/safari-612.3.6.0-branch/Source/WebKit
Revert r285683. rdar://problem/83381842
- 3:54 PM Changeset in webkit [285752] by
-
- 2 edits in branches/safari-612.3.6.0-branch/Source/WebCore
Revert r285684. rdar://problem/83381842
- 3:54 PM Changeset in webkit [285751] by
-
- 3 edits in branches/safari-612.3.6.0-branch/Source/WebCore
Revert r285682. rdar://problem/85004449
- 3:48 PM Changeset in webkit [285750] by
-
- 2 edits in branches/safari-613.1.7-branch/Source/WebCore/PAL
Cherry-pick r285744. rdar://problem/85341122
Stop statically declaring various UIFoundation constants in NSAttributedStringSPI.h
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122
Reviewed by Tim Horton.
Replace these static NSString definitions with soft-linked constants instead.
- pal/spi/cocoa/NSAttributedStringSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285744 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:47 PM Changeset in webkit [285749] by
-
- 8 edits in branches/safari-613.1.7-branch/Source
Versioning.
WebKit-7613.1.7.4
- 3:45 PM Changeset in webkit [285748] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Allow access to syscalls
https://bugs.webkit.org/show_bug.cgi?id=232825
<rdar://problem/85164522>
Reviewed by Brent Fulgham.
Based on telemetry, add access to unix syscalls in the GPU process on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 3:17 PM Changeset in webkit [285747] by
-
- 4 edits2 adds in trunk
Crash when accessing reason property of a newly created AbortSignal
https://bugs.webkit.org/show_bug.cgi?id=233066
<rdar://problem/85249306>
Reviewed by Geoffrey Garen.
Source/WebCore:
Make sure AbortSignal.reason get initialized to jsUndefined() by default
and not a default-constructed JSValue.
Test: fast/dom/AbortSignal-reason-crash.html
- dom/AbortSignal.cpp:
(WebCore::AbortSignal::AbortSignal):
- dom/AbortSignal.h:
LayoutTests:
Add layout test coverage.
- fast/dom/AbortSignal-reason-crash-expected.txt: Added.
- fast/dom/AbortSignal-reason-crash.html: Added.
- 3:11 PM Changeset in webkit [285746] by
-
- 6 edits1 add in trunk
Set default general storage directory to websiteDataDirectory
https://bugs.webkit.org/show_bug.cgi?id=232985
Reviewed by Geoffrey Garen.
Source/WebKit:
New API test: FileSystemAccess.MigrateToNewStorageDirectory
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::defaultGeneralStorageDirectory):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
- TestWebKitAPI/Tests/WebKitCocoa/file-system-access.salt: Added.
- 3:00 PM Changeset in webkit [285745] by
-
- 19 edits in trunk
Unreviewed, reverting r285583.
Seems to have caused many layout tests to become flaky
failures
Reverted changeset:
"[css-contain] Support contain:paint"
https://bugs.webkit.org/show_bug.cgi?id=224742
https://commits.webkit.org/r285583
- 2:47 PM Changeset in webkit [285744] by
-
- 2 edits in trunk/Source/WebCore/PAL
Stop statically declaring various UIFoundation constants in NSAttributedStringSPI.h
https://bugs.webkit.org/show_bug.cgi?id=233064
rdar://85341122
Reviewed by Tim Horton.
Replace these static NSString definitions with soft-linked constants instead.
- pal/spi/cocoa/NSAttributedStringSPI.h:
- 2:32 PM Changeset in webkit [285743] by
-
- 2 edits in trunk/LayoutTests
Regression(r285639) fast/dom/Geolocation/cached-position-iframe.html is frequently crashing on Mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=233043
<rdar://problem/85343956>
Unreviewed, unskip the test now that Alexey reverted r285639.
- platform/mac-wk1/TestExpectations:
- 2:20 PM Changeset in webkit [285742] by
-
- 3 edits in trunk/Source/WebKit
Remove non-completionHandler version of -[WKWebView _loadServiceWorker:]
https://bugs.webkit.org/show_bug.cgi?id=233069
rdar://problem/85355540
Reviewed by Chris Dumez.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _loadServiceWorker:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h: Removed _loadServiceWorker:.
- 2:14 PM Changeset in webkit [285741] by
-
- 12 edits in trunk
Promote WKPreferences._fullScreenEnabled to API
https://bugs.webkit.org/show_bug.cgi?id=230784
<rdar://83255308>
Reviewed by Jer Noble.
Source/WebKit:
- UIProcess/API/Cocoa/WKPreferences.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences isElementFullscreenEnabled]):
(-[WKPreferences setElementFullscreenEnabled:]):
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView fullscreenState]):
- UIProcess/Cocoa/FullscreenClient.h:
- UIProcess/Cocoa/FullscreenClient.mm:
(WebKit::FullscreenClient::willEnterFullscreen):
(WebKit::FullscreenClient::didEnterFullscreen):
(WebKit::FullscreenClient::willExitFullscreen):
(WebKit::FullscreenClient::didExitFullscreen):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
- UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::willExitFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):
- UIProcess/WebFullScreenManagerProxy.h:
(WebKit::WebFullScreenManagerProxy::fullscreenState const):
Tools:
- MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate defaultConfiguration]):
- 2:11 PM Changeset in webkit [285740] by
-
- 11 edits in trunk
Implement custom element definition's *disable shadow* flag
https://bugs.webkit.org/show_bug.cgi?id=233023
Patch by Alexey Shvayka <ashvayka@apple.com> on 2021-11-12
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing or failing later on.
- web-platform-tests/custom-elements/CustomElementRegistry-expected.txt:
- web-platform-tests/custom-elements/upgrading-expected.txt:
- web-platform-tests/shadow-dom/Element-interface-attachShadow-custom-element-expected.txt:
Source/WebCore:
This change implements *disable shadow* flag that precludes attachShadow() [1]
as well as upgrading an element with already attached shadow root [2].
Aligns WebKit with Blink and Gecko.
Preserves the fast path for non-custom elements.
[1] https://dom.spec.whatwg.org/#ref-for-concept-custom-element-definition-disable-shadow
[2] https://html.spec.whatwg.org/multipage/custom-elements.html#upgrades:concept-custom-element-definition-disable-shadow
Tests: imported/w3c/web-platform-tests/custom-elements/CustomElementRegistry.html
imported/w3c/web-platform-tests/custom-elements/upgrading.html
imported/w3c/web-platform-tests/shadow-dom/Element-interface-attachShadow-custom-element.html
- bindings/js/JSCustomElementInterface.cpp:
(WebCore::JSCustomElementInterface::JSCustomElementInterface):
(WebCore::JSCustomElementInterface::upgradeElement):
- bindings/js/JSCustomElementInterface.h:
(WebCore::JSCustomElementInterface::disableShadow):
(WebCore::JSCustomElementInterface::isShadowDisabled const):
- bindings/js/JSCustomElementRegistryCustom.cpp:
(WebCore::JSCustomElementRegistry::define):
- dom/CustomElementRegistry.cpp:
(WebCore::CustomElementRegistry::addElementDefinition):
- dom/CustomElementRegistry.h:
(WebCore::CustomElementRegistry::isShadowDisabled const):
- dom/Element.cpp:
(WebCore::canAttachAuthorShadowRoot):
- 1:23 PM Changeset in webkit [285739] by
-
- 6 edits in trunk
Demote WKWebpagePreferences.captivePortalModeEnabled API to SPI
https://bugs.webkit.org/show_bug.cgi?id=233059
Reviewed by Geoffrey Garen.
Source/WebKit:
Demote WKWebpagePreferences.captivePortalModeEnabled API to SPI until we reach
agreement on a suitable API name.
- UIProcess/API/Cocoa/WKWebpagePreferences.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences _setCaptivePortalModeEnabled:]):
(-[WKWebpagePreferences _captivePortalModeEnabled]):
(-[WKWebpagePreferences setCaptivePortalModeEnabled:]): Deleted.
(-[WKWebpagePreferences captivePortalModeEnabled]): Deleted.
- UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
Tools:
Update API test accordingly.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 1:22 PM Changeset in webkit [285738] by
-
- 44 edits9 deletes in trunk
Unreviewed, reverting r285639.
https://bugs.webkit.org/show_bug.cgi?id=233065
Causes Geolocation test crashes
Reverted changeset:
"JSCallbackData should use lexical global object for errors
and lifecycle"
https://bugs.webkit.org/show_bug.cgi?id=232387
https://commits.webkit.org/r285639
- 12:38 PM Changeset in webkit [285737] by
-
- 3 edits1 copy1 add1 delete in trunk/Source/WebKit
Rename ProcessLauncherMac.mm to ProcessLauncherCocoa.mm
https://bugs.webkit.org/show_bug.cgi?id=233045
<rdar://problem/85347107>
Reviewed by Brent Fulgham.
Follow-up to r285729 to rename to ProcessLauncherCocoa.mm instead of ProcessLauncherDarwin.mm
given that the implementation is using NSBundle.
- SourcesCocoa.txt:
- UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm: Renamed from Source/WebKit/UIProcess/Launcher/darwin/ProcessLauncherDarwin.mm.
(WebKit::serviceName):
(WebKit::shouldLeakBoost):
(WebKit::systemDirectoryPath):
(WebKit::ProcessLauncher::launchProcess):
(WebKit::ProcessLauncher::terminateProcess):
(WebKit::ProcessLauncher::platformInvalidate):
(WebKit::ProcessLauncher::terminateXPCConnection):
(WebKit::terminateWithReason):
- WebKit.xcodeproj/project.pbxproj:
- 12:15 PM Changeset in webkit [285736] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r285698): Build correction after refactoring id handling
https://bugs.webkit.org/show_bug.cgi?id=233052
<rdar://problem/85347865>
Reviewed by Chris Dumez.
Build fix after r285698. The new 'toNSData' method needs its namespace included.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::toASCDescriptor):
(WebKit::configureRegistrationRequestContext):
(WebKit::configurationAssertionRequestContext):
(WebKit::toNSData): Deleted.
- 12:09 PM Changeset in webkit [285735] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Block access to mach register
https://bugs.webkit.org/show_bug.cgi?id=232259
<rdar://problem/84624488>
Reviewed by Brent Fulgham.
Based on telemetry, block access to mach register in the GPU process on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 11:50 AM Changeset in webkit [285734] by
-
- 6 edits in trunk
[WinCairo] Add Little-CMS support
https://bugs.webkit.org/show_bug.cgi?id=233024
Reviewed by Michael Catanzaro.
.:
Search for LCMS2 and if its present turn it on for WinCairo.
- Source/cmake/OptionsWinCairo.cmake:
Source/WebCore:
Centralize addition of LCMS2::LCMS2 to the root CMakeLists in WebCore.
- CMakeLists.txt:
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- 11:13 AM Changeset in webkit [285733] by
-
- 8 edits in trunk/Tools
[git-webkit] Open closed pull-request when running pr
https://bugs.webkit.org/show_bug.cgi?id=232765
<rdar://problem/85084318>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/bitbucket.py:
(BitBucket.request): Ensure displayId is set when updating PR.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:
(GitHub.request): Make sure that new pull-requests are open.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.main): Open closed pull-requests.
- Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.PRGenerator.update): Only set head if user specifies head.
- Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
Canonical link: https://commits.webkit.org/244192@main
- 11:02 AM Changeset in webkit [285732] by
-
- 3 edits2 adds in trunk
Null check host in SlotAssignment::assignSlots
https://bugs.webkit.org/show_bug.cgi?id=230899
Patch by Rob Buis <rbuis@igalia.com> on 2021-11-12
Reviewed by Darin Adler.
Source/WebCore:
Null check host in SlotAssignment::assignSlots.
Tests: fast/shadow-dom/shadow-root-gc-crash.html
- dom/SlotAssignment.cpp:
(WebCore::SlotAssignment::assignSlots):
LayoutTests:
- fast/shadow-dom/shadow-root-gc-crash-expected.txt: Added.
- fast/shadow-dom/shadow-root-gc-crash.html: Added.
- 10:29 AM Changeset in webkit [285731] by
-
- 11 edits in trunk
Disable MathML when in Captive Portal Mode
https://bugs.webkit.org/show_bug.cgi?id=233013
<rdar://84567129>
Reviewed by Brent Fulgham.
Source/WebCore:
Add runtime feature flag for MathML and update implementation in WebCore to only support
MathML when the flag is on.
- bindings/js/WebCoreBuiltinNames.h:
- dom/Document.cpp:
(WebCore::Document::createElement):
- mathml/MathMLElement.idl:
- mathml/MathMLMathElement.idl:
Source/WebKit:
Turn off MathML support when in Captive Portal Mode.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Source/WTF:
Add runtime feature flag for MathML.
- Scripts/Preferences/WebPreferences.yaml:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 10:15 AM Changeset in webkit [285730] by
-
- 454 edits in trunk/Source
Refactor allocateCell() and tryAllocateCell() to take VM& instead of Heap&.
https://bugs.webkit.org/show_bug.cgi?id=233028
rdar://85329680
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
allocateCell() and tryAllocateCell() can fetch Heap& from VM& themselves. This
allows us to make all the client code more terse, and also makes it easier to
redirect the underlying heap to allocate from later for global GC work.
Additionally, this will help make the global GC patch less of a mega patch and
easier to review later.
- API/JSAPIGlobalObject.h:
- API/JSAPIValueWrapper.h:
- API/JSCallbackConstructor.h:
- API/JSCallbackFunction.cpp:
(JSC::JSCallbackFunction::create):
- API/JSCallbackObject.cpp:
(JSC::JSCallbackObject<JSGlobalObject>::create):
- API/JSCallbackObject.h:
- API/ObjCCallbackFunction.mm:
(JSC::ObjCCallbackFunction::create):
- API/glib/JSAPIWrapperGlobalObject.cpp:
(JSC::JSCallbackObject<JSAPIWrapperGlobalObject>::create):
- API/glib/JSCCallbackFunction.cpp:
(JSC::JSCCallbackFunction::create):
- bytecode/EvalCodeBlock.h:
- bytecode/ExecutableToCodeBlockEdge.cpp:
(JSC::ExecutableToCodeBlockEdge::create):
- bytecode/FunctionCodeBlock.h:
- bytecode/ModuleProgramCodeBlock.h:
- bytecode/ProgramCodeBlock.h:
- bytecode/UnlinkedEvalCodeBlock.h:
- bytecode/UnlinkedFunctionCodeBlock.h:
- bytecode/UnlinkedFunctionExecutable.h:
- bytecode/UnlinkedModuleProgramCodeBlock.h:
- bytecode/UnlinkedProgramCodeBlock.h:
- debugger/DebuggerScope.cpp:
(JSC::DebuggerScope::create):
- inspector/JSInjectedScriptHost.h:
- inspector/JSInjectedScriptHostPrototype.h:
- inspector/JSJavaScriptCallFrame.h:
- inspector/JSJavaScriptCallFramePrototype.h:
- jsc.cpp:
(JSCMemoryFootprint::create):
(JSFileDescriptor::create):
- runtime/AggregateErrorConstructor.h:
- runtime/AggregateErrorPrototype.h:
- runtime/ArrayConstructor.h:
- runtime/ArrayIteratorPrototype.h:
- runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::create):
- runtime/AsyncFromSyncIteratorPrototype.cpp:
(JSC::AsyncFromSyncIteratorPrototype::create):
- runtime/AsyncFunctionConstructor.h:
- runtime/AsyncFunctionPrototype.h:
- runtime/AsyncGeneratorFunctionConstructor.h:
- runtime/AsyncGeneratorFunctionPrototype.h:
- runtime/AsyncGeneratorPrototype.h:
- runtime/AsyncIteratorPrototype.h:
- runtime/AtomicsObject.cpp:
(JSC::AtomicsObject::create):
- runtime/BigIntConstructor.h:
- runtime/BigIntObject.cpp:
(JSC::BigIntObject::create):
- runtime/BigIntPrototype.h:
- runtime/BooleanConstructor.h:
- runtime/BooleanObject.h:
(JSC::BooleanObject::create):
- runtime/BooleanPrototype.h:
- runtime/BrandedStructure.cpp:
(JSC::BrandedStructure::create):
- runtime/CachedTypes.cpp:
(JSC::CachedProgramCodeBlock::decode const):
(JSC::CachedModuleCodeBlock::decode const):
(JSC::CachedEvalCodeBlock::decode const):
(JSC::CachedFunctionCodeBlock::decode const):
(JSC::CachedFunctionExecutable::decode const):
- runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::createEmpty):
- runtime/ConsoleObject.h:
- runtime/CustomGetterSetter.h:
(JSC::CustomGetterSetter::create):
- runtime/DOMAttributeGetterSetter.h:
- runtime/DateConstructor.h:
- runtime/DateInstance.h:
- runtime/DatePrototype.h:
- runtime/DirectArguments.cpp:
(JSC::DirectArguments::createUninitialized):
- runtime/DirectEvalExecutable.cpp:
(JSC::DirectEvalExecutable::create):
- runtime/ErrorConstructor.h:
- runtime/ErrorInstance.h:
(JSC::ErrorInstance::create):
- runtime/ErrorPrototype.h:
- runtime/Exception.cpp:
(JSC::Exception::create):
- runtime/FinalizationRegistryConstructor.h:
- runtime/FinalizationRegistryPrototype.h:
- runtime/FunctionConstructor.h:
- runtime/FunctionExecutable.h:
- runtime/FunctionPrototype.h:
- runtime/FunctionRareData.cpp:
(JSC::FunctionRareData::create):
- runtime/GeneratorFunctionConstructor.h:
- runtime/GeneratorFunctionPrototype.h:
- runtime/GeneratorPrototype.h:
- runtime/GetterSetter.h:
- runtime/HashMapImpl.h:
- runtime/IndirectEvalExecutable.cpp:
(JSC::IndirectEvalExecutable::createImpl):
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::createFunctionThatMasqueradesAsUndefined):
- runtime/IntlCollator.cpp:
(JSC::IntlCollator::create):
- runtime/IntlCollatorConstructor.cpp:
(JSC::IntlCollatorConstructor::create):
- runtime/IntlCollatorPrototype.cpp:
(JSC::IntlCollatorPrototype::create):
- runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::create):
- runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::IntlDateTimeFormatConstructor::create):
- runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototype::create):
- runtime/IntlDisplayNames.cpp:
(JSC::IntlDisplayNames::create):
- runtime/IntlDisplayNamesConstructor.cpp:
(JSC::IntlDisplayNamesConstructor::create):
- runtime/IntlDisplayNamesPrototype.cpp:
(JSC::IntlDisplayNamesPrototype::create):
- runtime/IntlListFormat.cpp:
(JSC::IntlListFormat::create):
- runtime/IntlListFormatConstructor.cpp:
(JSC::IntlListFormatConstructor::create):
- runtime/IntlListFormatPrototype.cpp:
(JSC::IntlListFormatPrototype::create):
- runtime/IntlLocale.cpp:
(JSC::IntlLocale::create):
- runtime/IntlLocaleConstructor.cpp:
(JSC::IntlLocaleConstructor::create):
- runtime/IntlLocalePrototype.cpp:
(JSC::IntlLocalePrototype::create):
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::create):
- runtime/IntlNumberFormatConstructor.cpp:
(JSC::IntlNumberFormatConstructor::create):
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototype::create):
- runtime/IntlObject.cpp:
(JSC::IntlObject::create):
- runtime/IntlPluralRules.cpp:
(JSC::IntlPluralRules::create):
- runtime/IntlPluralRulesConstructor.cpp:
(JSC::IntlPluralRulesConstructor::create):
- runtime/IntlPluralRulesPrototype.cpp:
(JSC::IntlPluralRulesPrototype::create):
- runtime/IntlRelativeTimeFormat.cpp:
(JSC::IntlRelativeTimeFormat::create):
- runtime/IntlRelativeTimeFormatConstructor.cpp:
(JSC::IntlRelativeTimeFormatConstructor::create):
- runtime/IntlRelativeTimeFormatPrototype.cpp:
(JSC::IntlRelativeTimeFormatPrototype::create):
- runtime/IntlSegmentIterator.cpp:
(JSC::IntlSegmentIterator::create):
- runtime/IntlSegmentIteratorPrototype.cpp:
(JSC::IntlSegmentIteratorPrototype::create):
- runtime/IntlSegmenter.cpp:
(JSC::IntlSegmenter::create):
- runtime/IntlSegmenterConstructor.cpp:
(JSC::IntlSegmenterConstructor::create):
- runtime/IntlSegmenterPrototype.cpp:
(JSC::IntlSegmenterPrototype::create):
- runtime/IntlSegments.cpp:
(JSC::IntlSegments::create):
- runtime/IntlSegmentsPrototype.cpp:
(JSC::IntlSegmentsPrototype::create):
- runtime/IteratorPrototype.h:
- runtime/JSArray.h:
(JSC::JSArray::createWithButterfly):
- runtime/JSArrayBuffer.cpp:
(JSC::JSArrayBuffer::create):
- runtime/JSArrayBufferConstructor.h:
- runtime/JSArrayBufferPrototype.cpp:
(JSC::JSArrayBufferPrototype::create):
- runtime/JSArrayIterator.cpp:
(JSC::JSArrayIterator::create):
(JSC::JSArrayIterator::createWithInitialValues):
- runtime/JSAsyncFunction.cpp:
(JSC::JSAsyncFunction::createImpl):
- runtime/JSAsyncGenerator.cpp:
(JSC::JSAsyncGenerator::create):
- runtime/JSAsyncGeneratorFunction.cpp:
(JSC::JSAsyncGeneratorFunction::createImpl):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::createWithLength):
- runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::create):
- runtime/JSCallee.h:
(JSC::JSCallee::create):
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::allocateCell):
(JSC::tryAllocateCell):
- runtime/JSCustomGetterFunction.cpp:
(JSC::JSCustomGetterFunction::create):
- runtime/JSCustomSetterFunction.cpp:
(JSC::JSCustomSetterFunction::create):
- runtime/JSDataView.cpp:
(JSC::JSDataView::create):
- runtime/JSDataViewPrototype.cpp:
(JSC::JSDataViewPrototype::create):
- runtime/JSFinalizationRegistry.cpp:
(JSC::JSFinalizationRegistry::create):
- runtime/JSFunction.cpp:
(JSC::JSFunction::create):
- runtime/JSFunction.h:
(JSC::JSFunction::createImpl):
- runtime/JSGenerator.cpp:
(JSC::JSGenerator::create):
- runtime/JSGeneratorFunction.cpp:
(JSC::JSGeneratorFunction::createImpl):
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::create):
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createWithFastVector):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
- runtime/JSGenericTypedArrayViewPrototypeInlines.h:
(JSC::JSGenericTypedArrayViewPrototype<ViewClass>::create):
- runtime/JSGlobalLexicalEnvironment.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::create):
(JSC::JSGlobalObject::createWithCustomMethodTable):
- runtime/JSImmutableButterfly.h:
(JSC::JSImmutableButterfly::tryCreate):
- runtime/JSInternalPromise.cpp:
(JSC::JSInternalPromise::create):
- runtime/JSInternalPromiseConstructor.cpp:
(JSC::JSInternalPromiseConstructor::create):
- runtime/JSInternalPromisePrototype.cpp:
(JSC::JSInternalPromisePrototype::create):
- runtime/JSLexicalEnvironment.h:
(JSC::JSLexicalEnvironment::create):
- runtime/JSMap.cpp:
(JSC::JSMap::clone):
- runtime/JSMap.h:
- runtime/JSMapIterator.cpp:
(JSC::JSMapIterator::createWithInitialValues):
- runtime/JSMapIterator.h:
- runtime/JSModuleEnvironment.cpp:
(JSC::JSModuleEnvironment::create):
- runtime/JSModuleLoader.h:
- runtime/JSModuleNamespaceObject.h:
- runtime/JSModuleRecord.cpp:
(JSC::JSModuleRecord::create):
- runtime/JSNativeStdFunction.cpp:
(JSC::JSNativeStdFunction::create):
- runtime/JSONObject.h:
- runtime/JSObject.h:
(JSC::JSFinalObject::createWithButterfly):
- runtime/JSPromise.cpp:
(JSC::JSPromise::create):
- runtime/JSPromiseConstructor.cpp:
(JSC::JSPromiseConstructor::create):
- runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::create):
- runtime/JSPropertyNameEnumerator.cpp:
(JSC::JSPropertyNameEnumerator::create):
- runtime/JSProxy.h:
(JSC::JSProxy::create):
- runtime/JSScriptFetchParameters.h:
- runtime/JSScriptFetcher.h:
- runtime/JSSet.cpp:
(JSC::JSSet::clone):
- runtime/JSSet.h:
- runtime/JSSetIterator.cpp:
(JSC::JSSetIterator::createWithInitialValues):
- runtime/JSSetIterator.h:
- runtime/JSSourceCode.h:
- runtime/JSString.cpp:
(JSC::JSString::createEmptyString):
(JSC::StringObject::create):
- runtime/JSString.h:
(JSC::JSString::create):
(JSC::JSString::createHasOtherOwner):
- runtime/JSStringIterator.h:
- runtime/JSTemplateObjectDescriptor.cpp:
(JSC::JSTemplateObjectDescriptor::create):
- runtime/JSTypedArrayViewConstructor.h:
- runtime/JSTypedArrayViewPrototype.cpp:
(JSC::JSTypedArrayViewPrototype::create):
- runtime/JSWeakMap.h:
- runtime/JSWeakObjectRef.h:
- runtime/JSWeakSet.h:
- runtime/JSWithScope.cpp:
(JSC::JSWithScope::create):
- runtime/MapConstructor.h:
- runtime/MapIteratorPrototype.h:
- runtime/MapPrototype.h:
- runtime/MathObject.h:
- runtime/ModuleProgramExecutable.cpp:
(JSC::ModuleProgramExecutable::create):
- runtime/NativeErrorConstructor.h:
- runtime/NativeErrorPrototype.h:
- runtime/NativeExecutable.cpp:
(JSC::NativeExecutable::create):
- runtime/NullGetterFunction.h:
- runtime/NullSetterFunction.h:
- runtime/NumberConstructor.h:
- runtime/NumberObject.h:
(JSC::NumberObject::create):
- runtime/NumberPrototype.h:
- runtime/ObjectConstructor.h:
- runtime/ObjectPrototype.cpp:
(JSC::ObjectPrototype::create):
- runtime/ProgramExecutable.h:
- runtime/PropertyTable.cpp:
(JSC::PropertyTable::create):
(JSC::PropertyTable::clone):
- runtime/ProxyConstructor.cpp:
(JSC::ProxyConstructor::create):
- runtime/ProxyObject.h:
- runtime/ProxyRevoke.cpp:
(JSC::ProxyRevoke::create):
- runtime/ReflectObject.h:
- runtime/RegExp.cpp:
(JSC::RegExp::createWithoutCaching):
- runtime/RegExpConstructor.h:
- runtime/RegExpObject.h:
- runtime/RegExpPrototype.h:
- runtime/RegExpStringIteratorPrototype.h:
- runtime/ScopedArguments.cpp:
(JSC::ScopedArguments::createUninitialized):
- runtime/ScopedArgumentsTable.cpp:
(JSC::ScopedArgumentsTable::create):
(JSC::ScopedArgumentsTable::tryCreate):
- runtime/SetConstructor.h:
- runtime/SetIteratorPrototype.h:
- runtime/SetPrototype.h:
- runtime/ShadowRealmConstructor.h:
- runtime/ShadowRealmObject.cpp:
(JSC::ShadowRealmObject::create):
- runtime/ShadowRealmPrototype.h:
- runtime/SparseArrayValueMap.cpp:
(JSC::SparseArrayValueMap::create):
- runtime/StrictEvalActivation.h:
- runtime/StringConstructor.h:
- runtime/StringIteratorPrototype.h:
- runtime/StringObject.h:
(JSC::StringObject::create):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::create):
- runtime/StructureChain.cpp:
(JSC::StructureChain::create):
- runtime/StructureInlines.h:
(JSC::Structure::create):
(JSC::Structure::createStructure):
- runtime/StructureRareData.cpp:
(JSC::StructureRareData::create):
- runtime/Symbol.cpp:
(JSC::SymbolObject::create):
(JSC::Symbol::create):
(JSC::Symbol::createWithDescription):
- runtime/SymbolConstructor.h:
- runtime/SymbolObject.h:
- runtime/SymbolPrototype.h:
- runtime/SymbolTable.h:
- runtime/TemporalCalendar.cpp:
(JSC::TemporalCalendar::create):
- runtime/TemporalCalendarConstructor.cpp:
(JSC::TemporalCalendarConstructor::create):
- runtime/TemporalCalendarPrototype.cpp:
(JSC::TemporalCalendarPrototype::create):
- runtime/TemporalDuration.cpp:
(JSC::TemporalDuration::create):
- runtime/TemporalDurationConstructor.cpp:
(JSC::TemporalDurationConstructor::create):
- runtime/TemporalDurationPrototype.cpp:
(JSC::TemporalDurationPrototype::create):
- runtime/TemporalInstant.cpp:
(JSC::TemporalInstant::create):
- runtime/TemporalInstantConstructor.cpp:
(JSC::TemporalInstantConstructor::create):
- runtime/TemporalInstantPrototype.cpp:
(JSC::TemporalInstantPrototype::create):
- runtime/TemporalNow.cpp:
(JSC::TemporalNow::create):
- runtime/TemporalObject.cpp:
(JSC::TemporalObject::create):
- runtime/TemporalPlainTime.cpp:
(JSC::TemporalPlainTime::create):
- runtime/TemporalPlainTimeConstructor.cpp:
(JSC::TemporalPlainTimeConstructor::create):
- runtime/TemporalPlainTimePrototype.cpp:
(JSC::TemporalPlainTimePrototype::create):
- runtime/TemporalTimeZone.cpp:
(JSC::TemporalTimeZone::createFromID):
(JSC::TemporalTimeZone::createFromUTCOffset):
- runtime/TemporalTimeZoneConstructor.cpp:
(JSC::TemporalTimeZoneConstructor::create):
- runtime/TemporalTimeZonePrototype.cpp:
(JSC::TemporalTimeZonePrototype::create):
- runtime/WeakMapConstructor.h:
- runtime/WeakMapPrototype.h:
- runtime/WeakObjectRefConstructor.h:
- runtime/WeakObjectRefPrototype.h:
- runtime/WeakSetConstructor.h:
- runtime/WeakSetPrototype.h:
- testRegExp.cpp:
- tools/JSDollarVM.cpp:
- tools/JSDollarVM.h:
- wasm/js/JSToWasmICCallee.cpp:
(JSC::JSToWasmICCallee::create):
- wasm/js/JSWebAssembly.cpp:
(JSC::JSWebAssembly::create):
- wasm/js/JSWebAssemblyCodeBlock.cpp:
(JSC::JSWebAssemblyCodeBlock::create):
- wasm/js/JSWebAssemblyException.h:
- wasm/js/JSWebAssemblyGlobal.cpp:
(JSC::JSWebAssemblyGlobal::tryCreate):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::tryCreate):
- wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::tryCreate):
- wasm/js/JSWebAssemblyModule.cpp:
(JSC::JSWebAssemblyModule::createStub):
- wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::tryCreate):
- wasm/js/JSWebAssemblyTag.cpp:
(JSC::JSWebAssemblyTag::create):
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::WebAssemblyCompileErrorConstructor::create):
- wasm/js/WebAssemblyCompileErrorPrototype.cpp:
(JSC::WebAssemblyCompileErrorPrototype::create):
- wasm/js/WebAssemblyExceptionConstructor.cpp:
(JSC::WebAssemblyExceptionConstructor::create):
- wasm/js/WebAssemblyExceptionPrototype.cpp:
(JSC::WebAssemblyExceptionPrototype::create):
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::create):
- wasm/js/WebAssemblyGlobalConstructor.cpp:
(JSC::WebAssemblyGlobalConstructor::create):
- wasm/js/WebAssemblyGlobalPrototype.cpp:
(JSC::WebAssemblyGlobalPrototype::create):
- wasm/js/WebAssemblyInstanceConstructor.cpp:
(JSC::WebAssemblyInstanceConstructor::create):
- wasm/js/WebAssemblyInstancePrototype.cpp:
(JSC::WebAssemblyInstancePrototype::create):
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
(JSC::WebAssemblyLinkErrorConstructor::create):
- wasm/js/WebAssemblyLinkErrorPrototype.cpp:
(JSC::WebAssemblyLinkErrorPrototype::create):
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::WebAssemblyMemoryConstructor::create):
- wasm/js/WebAssemblyMemoryPrototype.cpp:
(JSC::WebAssemblyMemoryPrototype::create):
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::WebAssemblyModuleConstructor::create):
- wasm/js/WebAssemblyModulePrototype.cpp:
(JSC::WebAssemblyModulePrototype::create):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::create):
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
(JSC::WebAssemblyRuntimeErrorConstructor::create):
- wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
(JSC::WebAssemblyRuntimeErrorPrototype::create):
- wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::WebAssemblyTableConstructor::create):
- wasm/js/WebAssemblyTablePrototype.cpp:
(JSC::WebAssemblyTablePrototype::create):
- wasm/js/WebAssemblyTagConstructor.cpp:
(JSC::WebAssemblyTagConstructor::create):
- wasm/js/WebAssemblyTagPrototype.cpp:
(JSC::WebAssemblyTagPrototype::create):
- wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::create):
Source/WebCore:
- bindings/js/JSDOMAsyncIterator.h:
- bindings/js/JSDOMBuiltinConstructor.h:
(WebCore::JSDOMBuiltinConstructor<JSClass>::create):
- bindings/js/JSDOMConstructor.h:
(WebCore::JSDOMConstructor<JSClass>::create):
- bindings/js/JSDOMConstructorNotCallable.h:
(WebCore::JSDOMConstructorNotCallable<JSClass>::create):
- bindings/js/JSDOMConstructorNotConstructable.h:
(WebCore::JSDOMConstructorNotConstructable<JSClass>::create):
- bindings/js/JSDOMIterator.h:
- bindings/js/JSDOMLegacyFactoryFunction.h:
(WebCore::JSDOMLegacyFactoryFunction<JSClass>::create):
- bindings/js/JSDOMWindowProperties.h:
- bindings/js/JSFileSystemDirectoryHandleIterator.h:
- bindings/js/JSIDBSerializationGlobalObject.cpp:
(WebCore::JSIDBSerializationGlobalObject::create):
- bindings/js/JSWindowProxy.cpp:
(WebCore::JSWindowProxy::create):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateIterableDefinition):
(GeneratePrototypeDeclaration):
- bindings/scripts/test/JS/JSDOMWindow.h:
(WebCore::JSDOMWindow::create):
- bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.h:
(WebCore::JSDedicatedWorkerGlobalScope::create):
- bindings/scripts/test/JS/JSExposedStar.cpp:
(WebCore::JSExposedStarDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSExposedStar.h:
(WebCore::JSExposedStar::create):
- bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:
- bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h:
(WebCore::JSExposedToWorkerAndWindow::create):
- bindings/scripts/test/JS/JSPaintWorkletGlobalScope.h:
(WebCore::JSPaintWorkletGlobalScope::create):
- bindings/scripts/test/JS/JSServiceWorkerGlobalScope.h:
(WebCore::JSServiceWorkerGlobalScope::create):
- bindings/scripts/test/JS/JSSharedWorkerGlobalScope.h:
(WebCore::JSSharedWorkerGlobalScope::create):
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::JSTestCEReactionsDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestCEReactions.h:
(WebCore::JSTestCEReactions::create):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::JSTestCEReactionsStringifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
(WebCore::JSTestCEReactionsStringifier::create):
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::JSTestCallTracerDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestCallTracer.h:
(WebCore::JSTestCallTracer::create):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructorDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
(WebCore::JSTestClassWithJSBuiltinConstructor::create):
- bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:
(WebCore::JSTestConditionalIncludesDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestConditionalIncludes.h:
(WebCore::JSTestConditionalIncludes::create):
- bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:
(WebCore::JSTestConditionallyReadWriteDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestConditionallyReadWrite.h:
(WebCore::JSTestConditionallyReadWrite::create):
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::JSTestDOMJITDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDOMJIT.h:
(WebCore::JSTestDOMJIT::create):
- bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:
(WebCore::JSTestDefaultToJSONDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDefaultToJSON.h:
(WebCore::JSTestDefaultToJSON::create):
- bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:
(WebCore::JSTestDefaultToJSONFilteredByExposedDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h:
(WebCore::JSTestDefaultToJSONFilteredByExposed::create):
- bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:
(WebCore::JSTestDefaultToJSONIndirectInheritanceDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.h:
(WebCore::JSTestDefaultToJSONIndirectInheritance::create):
- bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:
(WebCore::JSTestDefaultToJSONInheritDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDefaultToJSONInherit.h:
(WebCore::JSTestDefaultToJSONInherit::create):
- bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:
(WebCore::JSTestDefaultToJSONInheritFinalDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.h:
(WebCore::JSTestDefaultToJSONInheritFinal::create):
- bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:
(WebCore::JSTestDelegateToSharedSyntheticAttributeDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.h:
(WebCore::JSTestDelegateToSharedSyntheticAttribute::create):
- bindings/scripts/test/JS/JSTestDomainSecurity.cpp:
(WebCore::JSTestDomainSecurityDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestDomainSecurity.h:
(WebCore::JSTestDomainSecurity::create):
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::JSTestEnabledBySettingDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestEnabledBySetting.h:
(WebCore::JSTestEnabledBySetting::create):
- bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
(WebCore::JSTestEnabledForContextDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestEnabledForContext.h:
(WebCore::JSTestEnabledForContext::create):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
- bindings/scripts/test/JS/JSTestEventConstructor.h:
(WebCore::JSTestEventConstructor::create):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::JSTestEventTarget::create):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestException.h:
(WebCore::JSTestException::create):
- bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:
(WebCore::JSTestGenerateAddOpaqueRootDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.h:
(WebCore::JSTestGenerateAddOpaqueRoot::create):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachableDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
(WebCore::JSTestGenerateIsReachable::create):
- bindings/scripts/test/JS/JSTestGlobalObject.h:
(WebCore::JSTestGlobalObject::create):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
(WebCore::JSTestIndexedSetterNoIdentifier::create):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::JSTestIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
(WebCore::JSTestIndexedSetterThrowingException::create):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
(WebCore::JSTestIndexedSetterWithIdentifier::create):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceDOMConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::JSTestInterfaceLeadingUnderscoreDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
(WebCore::JSTestInterfaceLeadingUnderscore::create):
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::JSTestIterableDOMConstructor::prototypeForStructure):
(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
- bindings/scripts/test/JS/JSTestIterable.h:
(WebCore::JSTestIterable::create):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::JSTestJSBuiltinConstructorDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
(WebCore::JSTestJSBuiltinConstructor::create):
- bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:
(WebCore::JSTestLegacyFactoryFunctionDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h:
(WebCore::JSTestLegacyFactoryFunction::create):
- bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:
(WebCore::JSTestLegacyNoInterfaceObjectPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h:
(WebCore::JSTestLegacyNoInterfaceObject::create):
- bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h:
(WebCore::JSTestLegacyOverrideBuiltIns::create):
- bindings/scripts/test/JS/JSTestMapLike.cpp:
(WebCore::JSTestMapLikeDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestMapLike.h:
(WebCore::JSTestMapLike::create):
- bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:
(WebCore::JSTestMapLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h:
(WebCore::JSTestMapLikeWithOverriddenOperations::create):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
(WebCore::JSTestNamedAndIndexedSetterThrowingException::create):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::JSTestNamedDeleterNoIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
(WebCore::JSTestNamedDeleterNoIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::JSTestNamedDeleterThrowingExceptionDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
(WebCore::JSTestNamedDeleterThrowingException::create):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::JSTestNamedDeleterWithIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
(WebCore::JSTestNamedDeleterWithIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::JSTestNamedDeleterWithIndexedGetterDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
(WebCore::JSTestNamedDeleterWithIndexedGetter::create):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::JSTestNamedGetterCallWithDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:
(WebCore::JSTestNamedGetterCallWith::create):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::JSTestNamedGetterNoIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:
(WebCore::JSTestNamedGetterNoIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::JSTestNamedGetterWithIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:
(WebCore::JSTestNamedGetterWithIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
(WebCore::JSTestNamedSetterNoIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingExceptionDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
(WebCore::JSTestNamedSetterThrowingException::create):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
(WebCore::JSTestNamedSetterWithIdentifier::create):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
(WebCore::JSTestNamedSetterWithIndexedGetter::create):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::create):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::create):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::create):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::create):
- bindings/scripts/test/JS/JSTestNamespaceObject.h:
(WebCore::JSTestNamespaceObject::create):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodePrototypeFunction_entriesCaller):
- bindings/scripts/test/JS/JSTestNode.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjDOMConstructor::construct):
- bindings/scripts/test/JS/JSTestObj.h:
(WebCore::JSTestObj::create):
- bindings/scripts/test/JS/JSTestOperationConditional.cpp:
(WebCore::JSTestOperationConditionalDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestOperationConditional.h:
(WebCore::JSTestOperationConditional::create):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
(WebCore::JSTestOverloadedConstructors::create):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
(WebCore::JSTestOverloadedConstructorsWithSequence::create):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterfaceDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestPluginInterface.h:
(WebCore::JSTestPluginInterface::create):
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h:
(WebCore::JSTestPromiseRejectionEvent::create):
- bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:
(WebCore::JSTestReadOnlyMapLikeDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestReadOnlyMapLike.h:
(WebCore::JSTestReadOnlyMapLike::create):
- bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:
(WebCore::JSTestReadOnlySetLikeDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestReadOnlySetLike.h:
(WebCore::JSTestReadOnlySetLike::create):
- bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:
(WebCore::JSTestReportExtraMemoryCostDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h:
(WebCore::JSTestReportExtraMemoryCost::create):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
(WebCore::JSTestSerializedScriptValueInterface::create):
- bindings/scripts/test/JS/JSTestSetLike.cpp:
(WebCore::JSTestSetLikeDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestSetLike.h:
(WebCore::JSTestSetLike::create):
- bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:
(WebCore::JSTestSetLikeWithOverriddenOperationsDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h:
(WebCore::JSTestSetLikeWithOverriddenOperations::create):
- bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::JSTestStringifierDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestStringifier.h:
(WebCore::JSTestStringifier::create):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::JSTestStringifierAnonymousOperationDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:
(WebCore::JSTestStringifierAnonymousOperation::create):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::JSTestStringifierNamedOperationDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:
(WebCore::JSTestStringifierNamedOperation::create):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::JSTestStringifierOperationImplementedAsDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:
(WebCore::JSTestStringifierOperationImplementedAs::create):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::JSTestStringifierOperationNamedToStringDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:
(WebCore::JSTestStringifierOperationNamedToString::create):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::JSTestStringifierReadOnlyAttributeDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:
(WebCore::JSTestStringifierReadOnlyAttribute::create):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::JSTestStringifierReadWriteAttributeDOMConstructor::prototypeForStructure):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:
(WebCore::JSTestStringifierReadWriteAttribute::create):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsDOMConstructor::construct):
- bindings/scripts/test/JS/JSTestTypedefs.h:
(WebCore::JSTestTypedefs::create):
- bindings/scripts/test/JS/JSWorkerGlobalScope.h:
(WebCore::JSWorkerGlobalScope::create):
- bindings/scripts/test/JS/JSWorkletGlobalScope.h:
(WebCore::JSWorkletGlobalScope::create):
- bridge/objc/ObjCRuntimeObject.h:
- bridge/objc/objc_instance.mm:
(JSC::Bindings::ObjcInstance::getMethod):
- bridge/objc/objc_runtime.h:
- bridge/runtime_array.h:
- bridge/runtime_method.h:
- bridge/runtime_object.h:
- 9:52 AM Changeset in webkit [285729] by
-
- 3 edits1 copy1 add1 delete in trunk/Source/WebKit
Rename ProcessLauncherMac.mm to ProcessLauncherDarwin.mm
https://bugs.webkit.org/show_bug.cgi?id=233045
Reviewed by Brent Fulgham.
Rename ProcessLauncherMac.mm to ProcessLauncherDarwin.mm since this implementation is used by both macOS and iOS.
I chose the Darwin naming (as opposed to the Cocoa one) because the implementation only relies on libXPC and mach.
- SourcesCocoa.txt:
- UIProcess/Launcher/darwin/ProcessLauncherDarwin.mm: Renamed from Source/WebKit/UIProcess/Launcher/mac/ProcessLauncherMac.mm.
(WebKit::serviceName):
(WebKit::shouldLeakBoost):
(WebKit::systemDirectoryPath):
(WebKit::ProcessLauncher::launchProcess):
(WebKit::ProcessLauncher::terminateProcess):
(WebKit::ProcessLauncher::platformInvalidate):
(WebKit::ProcessLauncher::terminateXPCConnection):
(WebKit::terminateWithReason):
- WebKit.xcodeproj/project.pbxproj:
- 9:40 AM Changeset in webkit [285728] by
-
- 3 edits2 adds in trunk
[Web Animations] Accelerated animations with a single keyframe don't account for prior forward-filling animations
https://bugs.webkit.org/show_bug.cgi?id=233041
<rdar://problem/85236241>
Reviewed by Dean Jackson.
Source/WebCore:
Test: webanimations/accelerated-animation-after-forward-filling-animation.html
When starting an accelerated animation, we would fill any implicit keyframes based on the unanimated style.
We now also apply all animations below this animation in the target's effect stack such that a previous
forward-filling animation is accounted for.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
LayoutTests:
Add a new test that runs a forward-filling animation for
transform, waits for its completion,
then runs anothertransformanimation with an implicit initial keyframe, ensuring that the
result of the first forward-filling animation is accounted for when computing the initial
keyframe.
This test would fail prior to this patch.
- webanimations/accelerated-animation-after-forward-filling-animation-expected.html: Added.
- webanimations/accelerated-animation-after-forward-filling-animation.html: Added.
- 9:37 AM Changeset in webkit [285727] by
-
- 2 edits in trunk/LayoutTests
Web Inspector: Mark inspector/page/setShowPaintRects.html as flakey in test expectations for Mac
https://bugs.webkit.org/show_bug.cgi?id=233048
Unreviewed test gardening.
- platform/mac/TestExpectations: Add expectation for inspector/page/setShowPaintRects.html while the flakey
failure is investigated.
- 8:53 AM Changeset in webkit [285726] by
-
- 5 edits in trunk/Source
Unreviewed, partial revert of r285565 to resolve a PLT5 regression.
<rdar://85269156>
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::isolatedSession):
(WebKit::SessionSet::isolatedSession):
(WebKit::NetworkSessionCocoa::hasIsolatedSession const):
(WebKit::NetworkSessionCocoa::clearIsolatedSessions):
(WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet):
Source/WTF:
- wtf/PlatformHave.h:
- 8:52 AM Changeset in webkit [285725] by
-
- 2 edits in trunk/Source/WebCore
Move subtree update logic in ImageOverlay::updateWithTextRecognitionResult() into a separate helper
https://bugs.webkit.org/show_bug.cgi?id=233010
Reviewed by Aditya Keerthi.
Split
updateWithTextRecognitionResult()into two phases: the first of which updates the UA shadow DOM to
reflect the given text recognition results, and a second phase that updates inline styles for each of the image
overlay elements by mapping normalized OCR quads onto rotated bounding rects in client coordinates. This will
make it easier to add support for representingTextRecognitionBlockDataas image overlay content in the next
patch.
- dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::imageOverlayLineClass):
(WebCore::ImageOverlay::imageOverlayTextClass):
(WebCore::ImageOverlay::updateSubtree):
Now that this is all namespaced inside
ImageOverlay, we can also simplify some of these names. Instead of
TextRecognitionLineElements and TextRecognitionElements, we can just call them LineElements and Elements.
(WebCore::ImageOverlay::updateWithTextRecognitionResult):
- 8:39 AM Changeset in webkit [285724] by
-
- 11 edits in trunk/Source
Some C++ source files use #pragma once
https://bugs.webkit.org/show_bug.cgi?id=233040
Source/WebCore:
Reviewed by Chris Dumez.
Remove spurious usage of "#pragma once" in implementation files.
No new tests needed.
- Modules/WebGPU/GPUBuffer.cpp:
- Modules/WebGPU/GPUCommandEncoder.cpp:
- Modules/WebGPU/GPUComputePassEncoder.cpp:
- Modules/WebGPU/GPUQuerySet.cpp:
- Modules/WebGPU/GPUQueue.cpp:
- Modules/WebGPU/GPURenderBundleEncoder.cpp:
- Modules/WebGPU/GPURenderPassEncoder.cpp:
- page/PerformanceNavigationTiming.cpp:
Source/WebKit:
Remove spurious usage of "#pragma once" in implementation files.
Reviewed by Chris Dumez.
- WebProcess/WebCoreSupport/WebCaptionPreferencesDelegate.cpp:
- 8:38 AM Changeset in webkit [285723] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Remove sandbox write access to files
https://bugs.webkit.org/show_bug.cgi?id=232247
<rdar://problem/84620023>
Reviewed by Brent Fulgham.
Based on telemetry, remove sandbox write access to files in the GPU process on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 8:32 AM Changeset in webkit [285722] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPU] Remove access to IOKit classes
https://bugs.webkit.org/show_bug.cgi?id=232344
<rdar://problem/84684751>
Reviewed by Darin Adler.
Based on telemetry, remove access to unused IOKit classes in the GPU process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 8:31 AM Changeset in webkit [285721] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Add syscalls to sandbox
https://bugs.webkit.org/show_bug.cgi?id=232210
<rdar://problem/84584844>
Reviewed by Brent Fulgham.
Based on telemetry, add syscalls to the GPU process' sandbox on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 8:18 AM Changeset in webkit [285720] by
-
- 8 edits in trunk
WebKit is unable to recover if a WebProcess gets terminated while it is launching
https://bugs.webkit.org/show_bug.cgi?id=233001
<rdar://85302938>
Reviewed by Brent Fulgham.
Source/WebKit:
While investigating <rdar://83941760>, I found that the WebAuthn Process would get
jetsammed, which would cause us to call WebProcessPool::terminateAllWebContentProcesses().
I also noticed that if one of these WebProcesses was still launching at the time
of the termination, then the WebProcessProxy / WebPageProxy would keep thinking the
WebProcess is still launching and would never attempt to relaunch it. This would result
in a blank and unresponsive WKWebView which wouldn't be able to do any loads.
The issue was due to ProcessLauncher::terminateProcess() calling invalidate(), which
it would not only terminate the XPC connection, it would also null out m_client. As a
result, we wouldn't notify the client that the process failed to launch. To address
the issue, I move the XPC connection termination logic out of invalidate() and into
its own terminateXPCConnection() function. I then called terminateXPCConnection()
instead of invalidate() inside ProcessLauncher::terminateProcess().
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _terminateAllWebContentProcesses]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::invalidate):
- UIProcess/Launcher/ProcessLauncher.h:
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::terminateProcess):
(WebKit::ProcessLauncher::platformInvalidate):
(WebKit::ProcessLauncher::terminateXPCConnection):
Tools:
Add API test coverage, this test was timing out before the fix.
- TestWebKitAPI/Tests/WebKitCocoa/WebProcessTerminate.mm:
(TEST):
- 7:59 AM Changeset in webkit [285719] by
-
- 2 edits in trunk/LayoutTests
fast/dom/Geolocation/cached-position-iframe.html is frequently crashing on Mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=233043
Unreviewed, skip test to make EWS happy while the issue is being investigated.
- platform/mac-wk1/TestExpectations:
- 7:44 AM Changeset in webkit [285718] by
-
- 2 edits in trunk/Source/WebCore
[GLib] Developer build with release logs disabled fails
https://bugs.webkit.org/show_bug.cgi?id=232931
Patch by Philippe Normand <pnormand@igalia.com> on 2021-11-12
Reviewed by Adrian Perez de Castro.
- platform/audio/PlatformMediaSession.cpp: Remove ifdef around convertEnumerationToString
functions, required by Internals.
- 6:57 AM Changeset in webkit [285717] by
-
- 4 edits in trunk
Disable getUserMedia() when in Captive Portal Mode
https://bugs.webkit.org/show_bug.cgi?id=233021
Reviewed by Brent Fulgham.
Source/WebKit:
Disable getUserMedia() when in Captive Portal Mode.
No new tests, covered by updated API test.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 6:40 AM Changeset in webkit [285716] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add inline box margin-start support for visual ordering (bidi)
https://bugs.webkit.org/show_bug.cgi?id=233022
Reviewed by Antti Koivisto.
Line run geometry is margin box based (only applicable for inline level boxes), while
the displayRect() returns border box based geometry (again, only relevant for inline level boxes).
When computing the border box based left position using the distanceFromLogicalPreviousRun (line run based)
we have to offset it with the margin value.
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent):
- 6:25 AM Changeset in webkit [285715] by
-
- 4 edits in trunk/Source
Non-unified build fixes, early November 2021 edition, bis x2
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- jit/JITWorklist.cpp: Add missing DeferGCInlines.h header.
Source/WebCore:
- platform/gamepad/GamepadConstants.h: Use wtf/Forward.h instead of manually
forward-declaring the WTF::String type in the file.
- 4:48 AM Changeset in webkit [285714] by
-
- 3 edits in trunk/Source/WebCore
Re-use isCSSWideKeyword in CSSCustomPropertyValue::createWithID
https://bugs.webkit.org/show_bug.cgi?id=233035
Reviewed by Antti Koivisto.
- css/CSSCustomPropertyValue.cpp:
(WebCore::CSSCustomPropertyValue::createWithID):
- css/CSSCustomPropertyValue.h:
- 4:28 AM Changeset in webkit [285713] by
-
- 3 edits2 adds in trunk
Stack overflow with revert and revert-layer
https://bugs.webkit.org/show_bug.cgi?id=233033
rdar://85336439
Reviewed by Antoine Quint.
Source/WebCore:
Test: fast/css/revert-layer-stack-overflow.html
We end up using a rollback cascade made for revert-layer to do revert and that leads to eternal recursion.
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::ensureRollbackCascadeForRevert):
(WebCore::Style::Builder::ensureRollbackCascadeForRevertLayer):
Key the rollback cascade map with the reverted values instead of the original ones since the same
original keys produce different rollbacks depending on whether it is made for revert or revert-layer.
LayoutTests:
- fast/css/revert-layer-stack-overflow-expected.txt: Added.
- fast/css/revert-layer-stack-overflow.html: Added.
- 3:43 AM Changeset in webkit [285712] by
-
- 2 edits in trunk/JSTests
[JSC][32bit] Unskip JSTests/microbenchmarks/redefine-property-accessor-dictionary.js
https://bugs.webkit.org/show_bug.cgi?id=233034
Unreviewed gardening.
This is skipped for memoryLimited *and* mips|arm systems, but a)
seems to run fine on both setups and b) is almost identical to the
other tests/benchmarks that landed in the same patch, that do not
have that limitation. Optimistically remove the skip and let's see
if it sticks.
Patch by Xan Lopez <Xan Lopez> on 2021-11-12
- microbenchmarks/redefine-property-accessor-dictionary.js:
- 2:54 AM Changeset in webkit [285711] by
-
- 5 edits1 copy1 move1 add in trunk/Source/WebInspectorUI
Web Inspector: Extract reusable logic from ResourceQueryController, ResourceQueryResult and ResourceQueryMatch
https://bugs.webkit.org/show_bug.cgi?id=231604
<rdar://problem/84160281>
Reviewed by Devin Rousso.
Extract reusable logic from
ResourceQueryControllerinto a genericQueryController
to enable subclassing for other specialized use cases.
- UserInterface/Controllers/QueryController.js: Added.
(WI.QueryController.prototype.executeQuery):
(WI.QueryController.prototype.findQueryMatches.pushMatch):
(WI.QueryController.prototype.findQueryMatches.matchNextSpecialCharacter):
(WI.QueryController.prototype.findQueryMatches.backtrack):
(WI.QueryController.prototype.findQueryMatches):
(WI.QueryController):
Keep only the reusable matching logic in
QueryController.
Subclasses likeResourceQueryControllerare responsible for agregating
the data to be queried, customization for special characters and sorting results.
- UserInterface/Controllers/ResourceQueryController.js:
(WI.ResourceQueryController.prototype.executeQuery):
(WI.ResourceQueryController.prototype._findQueryMatches.pushMatch): Deleted.
(WI.ResourceQueryController.prototype._findQueryMatches.matchNextSpecialCharacter): Deleted.
(WI.ResourceQueryController.prototype._findQueryMatches.backtrack): Deleted.
(WI.ResourceQueryController.prototype._findQueryMatches): Deleted.
- UserInterface/Main.html:
- UserInterface/Models/QueryMatch.js: Renamed from Source/WebInspectorUI/UserInterface/Models/ResourceQueryMatch.js.
ResourceQueryMatchdoesn't contain any resource-specific logic. It can be generalized toQueryMatch.
- UserInterface/Models/QueryResult.js: Copied from Source/WebInspectorUI/UserInterface/Models/ResourceQueryResult.js.
(WI.QueryResult):
(WI.QueryResult.prototype.get value):
(WI.QueryResult.prototype.get rank):
(WI.QueryResult.prototype.get matchingTextRanges):
(WI.QueryResult.prototype._calculateRank.getMultiplier):
(WI.QueryResult.prototype._calculateRank):
(WI.QueryResult.prototype._createMatchingTextRanges):
A generic
QueryResultcan be extracted fromResourceQueryResultcontaining
the reusable logic for ranking results and identifing matching text ranges.
- UserInterface/Models/ResourceQueryResult.js:
(WI.ResourceQueryResult):
(WI.ResourceQueryResult.prototype.get resource):
(WI.ResourceQueryResult.prototype.test_createMatchesMask):
(WI.ResourceQueryResult.prototype.get rank): Deleted.
(WI.ResourceQueryResult.prototype.get matchingTextRanges): Deleted.
(WI.ResourceQueryResult.prototype._calculateRank.getMultiplier): Deleted.
(WI.ResourceQueryResult.prototype._calculateRank): Deleted.
(WI.ResourceQueryResult.prototype._createMatchingTextRanges): Deleted.
ResourceQueryResultextendsQueryResultwith resource-specifc members:
- the
cookieproperty which holds the optional line and column info used when jumping to matched files - the
resourceproperty which maps to the genericQueryResult.value; this is used in tests and when sorting inResourceQueryController
- UserInterface/Test.html:
- 2:50 AM Changeset in webkit [285710] by
-
- 3 edits2 adds in trunk
REGRESSION(r285624) Using revert keyword with a css variable hits assert
https://bugs.webkit.org/show_bug.cgi?id=233031
rdar://85332271
Reviewed by Tim Horton.
Source/WebCore:
Test: fast/selectors/variable-revert-crash.html
- style/StyleBuilderState.h:
Default initialization set the variable to a value that is not in the enumeration.
LayoutTests:
- fast/selectors/variable-revert-crash-expected.txt: Added.
- fast/selectors/variable-revert-crash.html: Added.
- 2:17 AM Changeset in webkit [285709] by
-
- 20 edits in trunk
[css-flexbox] Add flex-basis: content support
https://bugs.webkit.org/show_bug.cgi?id=221479
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt: Replaced FAIL
by PASS expectations.
- web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt: Ditto.
- web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt: Ditto.
Source/WebCore:
Add support for the content keyword as a valid value for the flex-basis property.
It indicates an automated size based on the contents of the flex item. It's typically
equivalent to the max-content size but it has some adjustments for aspect ratios,
orthogonal flows and intrinsic sizing constraints.
Apart from adding the parsing support, it required very little adjustments in the
flexbox code after the refactoring in r284359.
This makes WebKit pass all of the flex-basis:content tests in WPT. We're talking
about 6 tests testing the feature and 6 subtests related to parsing.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle Content in switch.
(WebCore::CSSPrimitiveValue::init): Initialization for content CSS value.
- css/CSSProperties.json:
- css/LengthFunctions.cpp: Replaced LengthOrAuto by LengthSizing.
(WebCore::valueForLength): Handle Content in switch.
(WebCore::floatValueForLength): Ditto.
- css/LengthFunctions.h:
(WebCore::minimumValueForLength): Ditto.
- css/calc/CSSCalcValue.cpp:
(WebCore::createCSS): Ditto.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFlexBasis): Consume CSSValueContent.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.
- platform/Length.cpp:
(WebCore::operator<<): Added printing support for content.
- platform/Length.h:
(WebCore::Length::initialize): Added enum for content.
(WebCore::Length::isContent const): New method.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const): Handle content in switch.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite): Treat content as indefinite lenght.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Compute flex-basis using max-content
if flex-basis:content is specified.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLengthSizing): Handle content in switch.
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Length>::encode): Handle content in switch.
(IPC::ArgumentCoder<Length>::decode): Ditto.
LayoutTests:
- TestExpectations: Unskipped all the flexbox-flex-basis-content tests that work fine now.
- 12:59 AM Changeset in webkit [285708] by
-
- 13 edits3 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232957
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-12
- platform/glib/TestExpectations:
- platform/glib/http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/form-controls/resets-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
- platform/gtk/TestExpectations:
- platform/gtk/fast/css/pseudo-first-line-border-width-expected.txt: Added.
- platform/gtk/fast/selectors/018b-expected.txt:
- platform/gtk/fast/text/capitalize-boundaries-expected.txt:
- platform/gtk/fast/text/whitespace/020-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
Nov 11, 2021:
- 8:54 PM Changeset in webkit [285707] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Remove access to mach services in sandbox
https://bugs.webkit.org/show_bug.cgi?id=232208
<rdar://problem/84584565>
Reviewed by Darin Adler.
Remove access to mach services in the GPU process on macOS based on telemetry
and similar changes previously made in the WebContent process' sandbox.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 8:20 PM Changeset in webkit [285706] by
-
- 2 edits in branches/safari-613.1.8-branch/Source/WebKit
Cherry-pick r285688. rdar://problem/85307256
[macOS] Add required methods to IOKit message filter
https://bugs.webkit.org/show_bug.cgi?id=233012
<rdar://85307256>
Reviewed by Brent Fulgham.
Add required methods to IOKit message filter on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:20 PM Changeset in webkit [285705] by
-
- 7 edits in branches/safari-613.1.8-branch
Cherry-pick r285669. rdar://problem/84158655
REGRESSION: (r283871) [ macOS wk2 Release ] 2 css/cssom-view/scroll-behavior-main-frame tests are failing
https://bugs.webkit.org/show_bug.cgi?id=231600
Reviewed by Simon Fraser.
Source/WebCore:
Fix for issue where a scroll animation is not properly cancelled by a second scroll request.
This occurs when the first scroll animation has not been fully started by the time the second
request has been received by the scrolling thread (first animation still in
m_nodesWithPendingScrollAnimations). For the scenario where the second scroll request is animated,
we change ThreadedScrollingTree::scrollingTreeNodeRequestsScroll to use set (add is ignored if
key exists in the hash map which caused the second request to be ignored). For the scenario
where the second scroll request is not animated, we clear the pending request for that
scrolling node (if one exists).
- page/scrolling/ScrollingTree.h: (WebCore::ScrollingTree::removePendingScrollAnimationForNode):
- page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::handleScrollPositionRequest):
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::scrollingTreeNodeRequestsScroll): (WebCore::ThreadedScrollingTree::removePendingScrollAnimationForNode):
- page/scrolling/ThreadedScrollingTree.h:
LayoutTests:
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:20 PM Changeset in webkit [285704] by
-
- 7 edits2 adds in branches/safari-613.1.8-branch
Cherry-pick r285620. rdar://problem/84558377
REGRESSION(r283863):
<attachment>with a longactiondo not render correctly
https://bugs.webkit.org/show_bug.cgi?id=232645
<rdar://problem/84558377>
Reviewed by Myles C. Maxfield.
Source/WebCore:
Unlike the
DisplayListconcept in WebCore, when usingCGContextDelegateRef(which is
whatDrawGlyphsRecorderuses on Cocoa platforms) the callbacks for each action are only
told about the current state of all-the-things at the time of that action, not each of the
corresponding API-level calls that resulted in that final state (e.g. whereDisplayList
would see separatescaleandrotatecalls,CGContextDelegateRefwould only be able to
get the final calculated CTM). In order forDrawGlyphsRecorderto (re)generate WebCore
calls, it needs to have information about the starting state of theCGContextbefore any
actions are performed so it can at least derive some diff/idea of what happened.
This is further complicated by the fact that when drawing text CG separates the state of
all-the-things into two: the CTM and the text matrix. WebKit does not have this separation,
however, so it needs to combine the two into a single CTM, but only when dealing with text.
A new path (
drawNativeText) was added in r283863 that allowsDrawGlyphsRecorderto be
used directly with native text-related objects (e.g.CTLineRef) instead of objects/data
derived in WebCore. A result of this on Cocoa platforms is that now a singledrawNativeText
can result in multiplerecordDrawGlyphsinvocations if theCTLineRefcontains multiple
"groupings" of glyphs to draw (e.g. if a line is truncated with a "..." in the middle then
the three groups will be the remaining text before, the "..." and the remaining text after).
AFAICT before this new path it was never the case that the text matrix had a translate, only
rotate/skew/etc., meaning that whenDrawGlyphsRecorderneeded to convert from the CG's
computed glyph positions back into WebCore's glyph advances it could use the text matrix
since there would be no translation. With this new path, however, if adrawNativeTextcall
results in multiplerecordDrawGlyphsthen there will be a translation in the text matrix
to account for that. As such, we end up double counting the text matrix: once when we
(re)generate the CTM to give to WebCore and _again_ when we (re)compute the WebCore advances.
Since we've already counted the text matrix once, we don't need to do it again. Also, by
this point we've already modified WebCore's CTM, so we only really need to account for the
difference from the original position when we first calleddrawNativeText. As such, we
just need invert what was used to generate CG positions from WebCore advances.
Note that in the name of expediently fixing a regression, this change only considers
horizontal text as<attachment>are never drawn vertically. Fixing vertical text will be
done in a followup <https://webkit.org/b/232917>.
Test: fast/attachment/attachment-truncated-action.html
- platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp: (WebCore::DrawGlyphsRecorder::recordDrawGlyphs):
- platform/graphics/FontCascade.h:
- platform/graphics/coretext/FontCascadeCoreText.cpp:
(WebCore::fillVectorWithHorizontalGlyphPositions):
(WebCore::fillVectorWithVerticalGlyphPositions):
Add a comment indicating the related nature of these functions with
DrawGlyphsRecorder::recordDrawGlyphs. Drive-by:fillVectorWithHorizontalGlyphPositionsis only called by this class, so don't export it.
LayoutTests:
- fast/attachment/attachment-truncated-action.html: Added.
- fast/attachment/attachment-truncated-action-expected-mismatch.html: Added.
- TestExpectations:
- platform/ios/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285620 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:19 PM Changeset in webkit [285703] by
-
- 1881 edits692 adds48 deletes in branches/safari-613.1.8-branch
Cherry-pick r285577. rdar://problem/85196125
Update libwebrtc to M96
https://bugs.webkit.org/show_bug.cgi?id=232873
LayoutTests/imported/w3c:
Reviewed by Alex Christensen.
- web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-mandatory-getStats.https-expected.txt:
- web-platform-tests/webrtc/RTCRtpTransceiver.https-expected.txt:
- web-platform-tests/webrtc/protocol/dtls-setup.https-expected.txt:
Source/ThirdParty/libwebrtc:
Reviewed by Alex Christensen.
Updated libwebrtc code according M96 upstream branch.
- CMakeLists.txt:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
- Source/webrtc: resynced.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Reviewed by Alex Christensen.
Update WebCore code according updated libwebrtc API, in particular moving from deprecated CreateDataChannel to CreateDataChannelOrError.
Covered by existing tests.
- Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::createDataChannel):
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: (WebCore::BasicPacketSocketFactory::BasicPacketSocketFactory):
- platform/mediastream/AudioMediaStreamTrackRenderer.cpp: (WebCore::AudioMediaStreamTrackRenderer::create):
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.cpp: (WebCore::createH264Format): (WebCore::supportedH264Formats):
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp:
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.cpp:
- testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::CreateDataChannelOrError): (WebCore::MockLibWebRTCPeerConnection::CreateDataChannel): Deleted.
- testing/MockLibWebRTCPeerConnection.h:
Source/WebKit:
Reviewed by Alex Christensen.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp: (WebKit::NetworkRTCProvider::NetworkRTCProvider):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285577 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:11 PM Changeset in webkit [285702] by
-
- 3 edits in branches/safari-613.1.8-branch/LayoutTests
Cherry-pick r285554. rdar://problem/83770133
Unreviewed test gardening, skip failing test.
https://bugs.webkit.org/show_bug.cgi?id=231084
rdar://problem/83770133
Bug 230210 caused a progression on how we would detect stall during playback.
This exposed an issue with the existing test where it could fail differently
if a temporary stall occurred.
This test can't pass as we do not support change of resolution mid-stream
in plain mp4 playback (see bug 232916)
Patch by Jean-Yves Avenard <jyavenard@gmail.com> on 2021-11-09
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285554 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:55 PM Changeset in webkit [285701] by
-
- 8 edits in branches/safari-613.1.8-branch/Source
Versioning.
WebKit-7613.1.8.1
- 6:18 PM Changeset in webkit [285700] by
-
- 1 copy in tags/Safari-613.1.7.3
Tag Safari-613.1.7.3.
- 5:57 PM Changeset in webkit [285699] by
-
- 8 edits in branches/safari-613.1.7-branch/Source
Versioning.
WebKit-7613.1.7.3
- 5:42 PM Changeset in webkit [285698] by
-
- 22 edits in trunk
[WebAuthn] Stop serializing BufferSource and Vector<uint8_t> duplicates of identifiers
https://bugs.webkit.org/show_bug.cgi?id=233011
<rdar://problem/85313807>
Reviewed by Chris Dumez.
The original WebAuthn logic converted WebCore::BufferSource objects to Vector<uint8_t>
during serialization, which created a weird design where some code dealt with BufferSource
objects, and other with Vectors, and lots of converting to and from these types. It also caused
WebAuthn data structures to have two places where this information might live, with the
UIProcess using one representation, and the WebContent process using another.
This patch revises the code as follows:
- The identifiers are always stored as BufferSource, and the same member is used in UIProcess and WebContent process when accessing this information.
- We now serialize BufferSource directly.
Tested by existing WebAuthn test cases (API and Layout tests)
Source/WebCore:
- Modules/webauthn/PublicKeyCredentialCreationOptions.h:
(WebCore::PublicKeyCredentialCreationOptions::encode const):
(WebCore::PublicKeyCredentialCreationOptions::decode):
- Modules/webauthn/PublicKeyCredentialDescriptor.h:
(WebCore::PublicKeyCredentialDescriptor::encode const):
(WebCore::PublicKeyCredentialDescriptor::decode):
- Modules/webauthn/PublicKeyCredentialRequestOptions.h:
(WebCore::PublicKeyCredentialRequestOptions::decode):
- Modules/webauthn/cbor/CBORValue.cpp:
(cbor::CBORValue::CBORValue):
- Modules/webauthn/cbor/CBORValue.h:
- Modules/webauthn/fido/DeviceRequestConverter.cpp:
(fido::convertUserEntityToCBOR):
(fido::convertDescriptorToCBOR):
- Modules/webauthn/fido/U2fCommandConstructor.cpp:
(fido::WebCore::constructU2fSignCommand):
(fido::convertToU2fCheckOnlySignCommand):
(fido::convertToU2fSignCommand):
- Modules/webauthn/fido/U2fCommandConstructor.h:
- Modules/webauthn/fido/U2fResponseConverter.cpp:
(fido::readU2fSignResponse):
- Modules/webauthn/fido/U2fResponseConverter.h:
- bindings/js/BufferSource.h:
(WebCore::BufferSource::encode const):
(WebCore::BufferSource::decode):
(WebCore::toBufferSource):
Source/WebKit:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(publicKeyCredentialUserEntity):
(publicKeyCredentialDescriptors):
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::produceHashSet):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::toASCDescriptor):
(WebKit::configureRegistrationRequestContext):
(WebKit::configurationAssertionRequestContext):
- UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:
(WebKit::U2fAuthenticator::issueSignCommand):
(WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived):
Tools:
- TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:
(TestWebKitAPI::getTestCredentialRawIdBytes):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/U2fCommandConstructorTest.cpp:
(TestWebKitAPI::constructMakeCredentialRequest):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 5:37 PM Changeset in webkit [285697] by
-
- 1 copy in tags/Safari-613.1.7.2
Tag Safari-613.1.7.2.
- 5:35 PM Changeset in webkit [285696] by
-
- 2 edits in branches/safari-613.1.7-branch/Source/WebKit
Cherry-pick r285688. rdar://problem/85307256
[macOS] Add required methods to IOKit message filter
https://bugs.webkit.org/show_bug.cgi?id=233012
<rdar://85307256>
Reviewed by Brent Fulgham.
Add required methods to IOKit message filter on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:32 PM Changeset in webkit [285695] by
-
- 8 edits in branches/safari-613.1.7-branch/Source
Versioning.
WebKit-7613.1.7.2
- 5:20 PM Changeset in webkit [285694] by
-
- 6 edits in trunk/Source
Misc compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=232989
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-11
Reviewed by Darin Adler.
Source/WebCore:
- contentextensions/ContentExtensionActions.cpp:
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::parse):
- platform/graphics/transforms/ScaleTransformOperation.cpp:
(WebCore::blendScaleComponent):
- style/CascadeLevel.h:
(WebCore::Style::operator--):
Source/WebKit:
- UIProcess/WebPageProxy.cpp:
- 5:10 PM Changeset in webkit [285693] by
-
- 9 edits in branches/safari-612.3.6.1-branch
Cherry-pick r285565. rdar://problem/83159358
[macOS] Enable NSURLSession partitioning based on first-party domain at CFNetwork level
https://bugs.webkit.org/show_bug.cgi?id=230750
<rdar://problem/83159358>
Reviewed by Alex Christensen.
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (overrideAttributionContext): Deleted. Stop disabling CFNetwork NSURLSession partitioning based on first-party domain on macOS.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::sessionWrapperForTask): (WebKit::NetworkSessionCocoa::hasIsolatedSession const): (WebKit::NetworkSessionCocoa::clearIsolatedSessions): (WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet): Disable ITP session partitioning of certain prevalent domains on platforms where CFNetwork already does full partitioning of all domains (now that it is enabled on macOS 12+ and iOS15+).
Source/WTF:
Add HAVE(CFNETWORK_SESSION_PARTITIONING_BASED_ON_FIRST_PARTY_DOMAIN) build time flag that is true
on newer Apple OSes where CFNetwork does NSURLSession partitioning based on first-party domain for
us.
- wtf/PlatformHave.h:
LayoutTests:
Skip a few ITP session partitioning tests on newer OSes now that session partitioning
happens for all first-party domains at CFNetwork level on these OSes.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285565 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:09 PM Changeset in webkit [285692] by
-
- 2 edits in branches/safari-612.3.6.1-branch/Source/WebKit
Cherry-pick r285550. rdar://problem/85075538
REGRESSION (Safari 15): AudioContext.currentTime speeds up (and audio won't play) when Bluetooth speaker connected
https://bugs.webkit.org/show_bug.cgi?id=232728
<rdar://problem/85075538>
Reviewed by Jer Noble.
This was a regression from us moving WebAudio to the GPUProcess in Safari 15. The issue occurred because the
WebProcess (writer) would get further and further ahead of the GPUProcess (reader) after a hardware sample
rate change.
When rendering on https://mdn.github.io/webaudio-examples/audiocontext-states/ with a hardware sample rate of
96Khz, RemoteAudioDestination::render() would get called with a numberOfFrame=128. Each time
RemoteAudioDestination::render() was called, it would signal the IPC semaphore, causing the WebProcess to
produce one WebAudio rendering quantum (128 frames). This would match perfectly and there would be no issues.
However, if during playback, the hardware sample rate changes (which can happen when connecting to bluetooth
speakers), CoreAudio would start calling RemoteAudioDestination::render() with a different numberOfFrame.
For example, when switching the hardware sample rate to 44.1Khz, numberOfFrames would be 278. Every time it
is called, render() would signal the semaphore 3 times, causing the WebProcess to produce 3 WebAudio rendering
quantums (3 * 128 = 384 frames). So each time render() is called, the WebProcess would generate384 - 278 = 105
frames too many, causing it to get further and further ahead of the GPUProcess. One symptom would be that
AudioContext.currentTime would progress too fast. Also, eventually, our RingBuffer between the 2 process would
fill up and lead to rendering issues.
To address the issue, I updated RemoteAudioDestination::render() to keep track of how many extra samples it
requested from the WebProcess previously. This avoids signalling the IPC semaphore too many times and the
WebProcess can no longer get too far ahead of the GPUProcess. The logic matches what was already done in
RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render().
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:09 PM Changeset in webkit [285691] by
-
- 2 edits in branches/safari-612.3.6.1-branch/Source/WebCore
Cherry-pick r285531. rdar://problem/83381842
Fix macCatalyst build after r285509
https://bugs.webkit.org/show_bug.cgi?id=232863
Unreviewed.
- Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285531 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:09 PM Changeset in webkit [285690] by
-
- 3 edits in branches/safari-612.3.6.1-branch/Source/WebKit
Cherry-pick r285509. rdar://problem/83381842
Fix wrong frame count of CARingBuffer in SpeechRecognitionRemoteRealtimeMediaSource
https://bugs.webkit.org/show_bug.cgi?id=232863
<rdar://83381842>
Reviewed by Youenn Fablet.
SpeechRecognitionRealtimeMediaSourceManager::Source uses shared ring buffer to pass audio data to
SpeechRecognitionRemoteRealtimeMediaSource. We used to ask CARingBuffer in
SpeechRecognitionRealtimeMediaSourceManager::Source to allocate with m_numberOfFrames and send m_numberOfFrames
to SpeechRecognitionRemoteRealtimeMediaSource (so SpeechRecognitionRemoteRealtimeMediaSource can create a
corresponding CARingBuffer). This is wrong because CARingBuffer::allocate() rounds up frameCount to power of
two, which means m_numberOfFrames may be not the number used. We should get the actual frameCount in the
setStorage callback of SharedRingBufferStorage, and pass that value to SpeechRecognitionRemoteRealtimeMediaSource.
Manually tested.
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp: (WebKit::SpeechRecognitionRemoteRealtimeMediaSource::setStorage):
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: (WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::Source): (WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285509 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:43 PM Changeset in webkit [285689] by
-
- 7 edits in branches/safari-612.3.6.0-branch/Source
Apply patch. rdar://problem/83673859
- 4:00 PM Changeset in webkit [285688] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add required methods to IOKit message filter
https://bugs.webkit.org/show_bug.cgi?id=233012
<rdar://85307256>
Reviewed by Brent Fulgham.
Add required methods to IOKit message filter on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 3:58 PM Changeset in webkit [285687] by
-
- 51 edits in trunk/Source
Add VM::writeBarrier() and VM::mutatorFence().
https://bugs.webkit.org/show_bug.cgi?id=233019
rdar://85318693
Reviewed by Saam Barati.
Source/JavaScriptCore:
These are ALWAYS_INLINE functions that will forward the call to the Heap versions.
Adding these allows us to make all the client code more terse, and also makes it
easier to redirect the underlying writeBarrier implementation later for global GC
work. Additionally, this will help make the global GC patch less of a mega patch
and easier to review later.
Also remove unused Heap::writeBarrierWithoutFence().
This is a refactoring patch. There is no behavior change.
- bytecode/LLIntCallLinkInfo.h:
(JSC::LLIntCallLinkInfo::link):
- bytecode/ObjectPropertyCondition.h:
(JSC::ObjectPropertyCondition::presence):
(JSC::ObjectPropertyCondition::absence):
(JSC::ObjectPropertyCondition::absenceOfSetEffect):
(JSC::ObjectPropertyCondition::equivalence):
(JSC::ObjectPropertyCondition::hasStaticProperty):
(JSC::ObjectPropertyCondition::hasPrototype):
- bytecode/PropertyCondition.h:
(JSC::PropertyCondition::absence):
(JSC::PropertyCondition::absenceOfSetEffect):
(JSC::PropertyCondition::equivalence):
(JSC::PropertyCondition::hasPrototype):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::considerCaching):
- bytecode/UnlinkedCodeBlockGenerator.cpp:
(JSC::UnlinkedCodeBlockGenerator::finalize):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::decodeCachedCodeBlocks):
- dfg/DFGJITFinalizer.cpp:
(JSC::DFG::JITFinalizer::finalize):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::finalize):
- ftl/FTLJITFinalizer.cpp:
(JSC::FTL::JITFinalizer::finalize):
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::writeBarrierWithoutFence): Deleted.
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::performLLIntGetByID):
(JSC::LLInt::llint_write_barrier_slow):
- runtime/ArrayPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/AuxiliaryBarrierInlines.h:
(JSC::AuxiliaryBarrier<T>::AuxiliaryBarrier):
(JSC::AuxiliaryBarrier<T>::set):
- runtime/CommonSlowPaths.cpp:
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::finishCreation):
- runtime/InferredValue.h:
(JSC::InferredValue<JSCellType>::InferredValueWatchpointSet::notifyWriteSlow):
(JSC::InferredValue<JSCellType>::notifyWriteSlow):
- runtime/JSArray.cpp:
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
- runtime/JSArrayInlines.h:
(JSC::JSArray::pushInline):
- runtime/JSCellInlines.h:
(JSC::JSCell::finishCreation):
(JSC::JSCell::setStructure):
- runtime/JSFinalizationRegistry.cpp:
(JSC::JSFinalizationRegistry::registerTarget):
- runtime/JSFunction.cpp:
(JSC::JSFunction::allocateRareData):
(JSC::JSFunction::allocateAndInitializeRareData):
- runtime/JSObject.cpp:
(JSC::JSObject::putByIndex):
- runtime/JSObject.h:
(JSC::JSObject::trySetIndexQuickly):
(JSC::JSObject::setIndexQuickly):
- runtime/JSWeakObjectRef.h:
- runtime/LazyPropertyInlines.h:
(JSC::ElementType>::setMayBeNull):
- runtime/ObjectInitializationScope.cpp:
(JSC::ObjectInitializationScope::~ObjectInitializationScope):
- runtime/ObjectInitializationScope.h:
(JSC::ObjectInitializationScope::~ObjectInitializationScope):
- runtime/RegExpCachedResult.cpp:
(JSC::RegExpCachedResult::lastResult):
- runtime/RegExpCachedResult.h:
(JSC::RegExpCachedResult::record):
- runtime/RegExpObject.h:
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::installCode):
- runtime/Structure.cpp:
(JSC::Structure::flattenDictionaryStructure):
- runtime/StructureChain.cpp:
(JSC::StructureChain::finishCreation):
- runtime/StructureRareDataInlines.h:
(JSC::StructureRareData::setCachedPropertyNameEnumerator):
- runtime/VM.h:
(JSC::VM::writeBarrier):
(JSC::VM::writeBarrierSlowPath):
(JSC::VM::mutatorFence):
- runtime/WriteBarrierInlines.h:
(JSC::Traits>::setEarlyValue):
(JSC::RawValueTraits<Unknown>>::set):
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- wasm/js/JSWebAssemblyInstance.h:
Source/WebCore:
- bindings/js/JSDOMGuardedObject.cpp:
(WebCore::DOMGuardedObject::DOMGuardedObject):
- bindings/js/JSEventListener.h:
(WebCore::JSEventListener::ensureJSFunction const):
- bindings/js/JSValueInWrappedObject.h:
(WebCore::cachedPropertyValue):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeSetterBodyDefinition):
(GenerateWriteBarriersForArguments):
- bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:
(WebCore::setJSTestDefaultToJSON_eventHandlerAttributeSetter):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObj_onfooSetter):
(WebCore::setJSTestObj_onwebkitfooSetter):
(WebCore::jsTestObjPrototypeFunction_addEventListenerBody):
(WebCore::jsTestObjPrototypeFunction_removeEventListenerBody):
- worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
- 3:50 PM Changeset in webkit [285686] by
-
- 2 edits in trunk/Source/WebCore
AX: Add missing AXID variant to AXPropertyValueVariant
https://bugs.webkit.org/show_bug.cgi?id=233004
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-11
Reviewed by Chris Fleizach.
In AXIsolatedObject::setObjectProperty, we set property values to be
AXIDs. However, there is no AXID variant in AXPropertyValueVariant,
so none of these property lookups ever returned values.
This patch adds AXID as a variant to AXPropertyValueVariant, fixing
~15 text-only failures.
- accessibility/isolatedtree/AXIsolatedTree.h:
Add AXID as a variant to AXPropertyValueVariant.
- 3:48 PM Changeset in webkit [285685] by
-
- 2 edits in branches/safari-612.3.6.0-branch/Source/WebKit
Cherry-pick r285550. rdar://problem/85075538
REGRESSION (Safari 15): AudioContext.currentTime speeds up (and audio won't play) when Bluetooth speaker connected
https://bugs.webkit.org/show_bug.cgi?id=232728
<rdar://problem/85075538>
Reviewed by Jer Noble.
This was a regression from us moving WebAudio to the GPUProcess in Safari 15. The issue occurred because the
WebProcess (writer) would get further and further ahead of the GPUProcess (reader) after a hardware sample
rate change.
When rendering on https://mdn.github.io/webaudio-examples/audiocontext-states/ with a hardware sample rate of
96Khz, RemoteAudioDestination::render() would get called with a numberOfFrame=128. Each time
RemoteAudioDestination::render() was called, it would signal the IPC semaphore, causing the WebProcess to
produce one WebAudio rendering quantum (128 frames). This would match perfectly and there would be no issues.
However, if during playback, the hardware sample rate changes (which can happen when connecting to bluetooth
speakers), CoreAudio would start calling RemoteAudioDestination::render() with a different numberOfFrame.
For example, when switching the hardware sample rate to 44.1Khz, numberOfFrames would be 278. Every time it
is called, render() would signal the semaphore 3 times, causing the WebProcess to produce 3 WebAudio rendering
quantums (3 * 128 = 384 frames). So each time render() is called, the WebProcess would generate384 - 278 = 105
frames too many, causing it to get further and further ahead of the GPUProcess. One symptom would be that
AudioContext.currentTime would progress too fast. Also, eventually, our RingBuffer between the 2 process would
fill up and lead to rendering issues.
To address the issue, I updated RemoteAudioDestination::render() to keep track of how many extra samples it
requested from the WebProcess previously. This avoids signalling the IPC semaphore too many times and the
WebProcess can no longer get too far ahead of the GPUProcess. The logic matches what was already done in
RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render().
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [285684] by
-
- 2 edits in branches/safari-612.3.6.0-branch/Source/WebCore
Cherry-pick r285531. rdar://problem/83381842
Fix macCatalyst build after r285509
https://bugs.webkit.org/show_bug.cgi?id=232863
Unreviewed.
- Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285531 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [285683] by
-
- 3 edits in branches/safari-612.3.6.0-branch/Source/WebKit
Cherry-pick r285509. rdar://problem/83381842
Fix wrong frame count of CARingBuffer in SpeechRecognitionRemoteRealtimeMediaSource
https://bugs.webkit.org/show_bug.cgi?id=232863
<rdar://83381842>
Reviewed by Youenn Fablet.
SpeechRecognitionRealtimeMediaSourceManager::Source uses shared ring buffer to pass audio data to
SpeechRecognitionRemoteRealtimeMediaSource. We used to ask CARingBuffer in
SpeechRecognitionRealtimeMediaSourceManager::Source to allocate with m_numberOfFrames and send m_numberOfFrames
to SpeechRecognitionRemoteRealtimeMediaSource (so SpeechRecognitionRemoteRealtimeMediaSource can create a
corresponding CARingBuffer). This is wrong because CARingBuffer::allocate() rounds up frameCount to power of
two, which means m_numberOfFrames may be not the number used. We should get the actual frameCount in the
setStorage callback of SharedRingBufferStorage, and pass that value to SpeechRecognitionRemoteRealtimeMediaSource.
Manually tested.
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp: (WebKit::SpeechRecognitionRemoteRealtimeMediaSource::setStorage):
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp: (WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::Source): (WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285509 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [285682] by
-
- 3 edits in branches/safari-612.3.6.0-branch/Source/WebCore
Cherry-pick r285330. rdar://problem/85004449
Nested run loops under MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange can cause hang when timeout fires
https://bugs.webkit.org/show_bug.cgi?id=232695
<rdar://problem/85004449>
Reviewed by Jer Noble.
It's possible for MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
to be called re-entrantly, if the RunLoop::run call ends up processing
an event that also wants to synchronously update the media image. This
can cause a hang:
- Enter the outer waitForVideoOutputMediaDataWillChange call.
- Set up the outer timeout timer.
- Call RunLoop::run.
3.1. Enter the inner waitForVideoOutputMediaDataWillChange call.
3.2. Set up the inner timeout timer.
3.3. Call RunLoop::run.
3.3.1. Wait for new RunLoop events, and none arrive.
3.3.2. The outer timeout timer fires, calling RunLoop::stop.
3.4. Return from waitForVideoOutputMediaDataWillChange, cancelling
the inner timeout timer.
3.5. Wait for more events on the run loop, forever.
To avoid this, we can set up a single timeout timer, and track the
nesting level of our RunLoop::run calls. The innermost RunLoop::run call
will finish either by the timer firing (which calls RunLoop::stop) or by
the video data updating (which also calls RunLoop::stop, under
outputMediaDataWillChange). Either way, once the innermost
RunLoop::run call is finished, we know we can stop processing all of
the ancestor RunLoop:run calls.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange): (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [285681] by
-
- 3 edits1 add in branches/safari-612.3.6.0-branch
Cherry-pick r283300. rdar://problem/85259264
DFG strength reduction on % operator should handle an INT_MIN divisor.
https://bugs.webkit.org/show_bug.cgi?id=230391
<rdar://problem/83229740>
Reviewed by Robin Morisset.
JSTests:
- stress/dfg-strength-reduction-on-mod-should-handle-INT_MIN.js: Added.
Source/JavaScriptCore:
- dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:41 PM Changeset in webkit [285680] by
-
- 3 edits in branches/safari-612.3.6.1-branch/Source/WebCore
Cherry-pick r285330. rdar://problem/85004449
Nested run loops under MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange can cause hang when timeout fires
https://bugs.webkit.org/show_bug.cgi?id=232695
<rdar://problem/85004449>
Reviewed by Jer Noble.
It's possible for MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
to be called re-entrantly, if the RunLoop::run call ends up processing
an event that also wants to synchronously update the media image. This
can cause a hang:
- Enter the outer waitForVideoOutputMediaDataWillChange call.
- Set up the outer timeout timer.
- Call RunLoop::run.
3.1. Enter the inner waitForVideoOutputMediaDataWillChange call.
3.2. Set up the inner timeout timer.
3.3. Call RunLoop::run.
3.3.1. Wait for new RunLoop events, and none arrive.
3.3.2. The outer timeout timer fires, calling RunLoop::stop.
3.4. Return from waitForVideoOutputMediaDataWillChange, cancelling
the inner timeout timer.
3.5. Wait for more events on the run loop, forever.
To avoid this, we can set up a single timeout timer, and track the
nesting level of our RunLoop::run calls. The innermost RunLoop::run call
will finish either by the timer firing (which calls RunLoop::stop) or by
the video data updating (which also calls RunLoop::stop, under
outputMediaDataWillChange). Either way, once the innermost
RunLoop::run call is finished, we know we can stop processing all of
the ancestor RunLoop:run calls.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange): (WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:41 PM Changeset in webkit [285679] by
-
- 3 edits3 adds in branches/safari-612.3.6.1-branch
Cherry-pick r284434. rdar://problem/77969801
WebM with invalid size should fail to load with error
https://bugs.webkit.org/show_bug.cgi?id=231886
rdar://77969801
Reviewed by Jer Noble.
Source/WebCore:
libwebm for some elements are using a std::string or a std::vector<uint8_t>
to store their content. Those have infallible memory allocators.
We limit the size we allow the parser to use to some reasonable values.
Test: media/media-webm-invalid-check.html
- platform/graphics/cocoa/SourceBufferParserWebM.cpp: (WebCore::SourceBufferParserWebM::OnElementBegin):
LayoutTests:
- media/content/invalid-size.webm: Added.
- media/media-webm-invalid-check-expected.txt: Added.
- media/media-webm-invalid-check.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:41 PM Changeset in webkit [285678] by
-
- 3 edits1 add in branches/safari-612.3.6.1-branch
Cherry-pick r283300. rdar://problem/85259264
DFG strength reduction on % operator should handle an INT_MIN divisor.
https://bugs.webkit.org/show_bug.cgi?id=230391
<rdar://problem/83229740>
Reviewed by Robin Morisset.
JSTests:
- stress/dfg-strength-reduction-on-mod-should-handle-INT_MIN.js: Added.
Source/JavaScriptCore:
- dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [285677] by
-
- 2 edits in trunk/Tools
Fix for crash in LayoutTests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=233014
Reviewed by Chris Fleizach.
This fixes the following tests in isolated tree mode:
accessibility/image-link-inline-cont.html [ Crash ]
accessibility/image-link.html [ Crash ]
accessibility/internal-link-anchors2.html [ Crash ]
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::allAttributes):
Need to retain the pointer returned by
AccessibilityUIElement::descriptionOfValue.
- 3:36 PM Changeset in webkit [285676] by
-
- 8 edits in branches/safari-612.3.6.0-branch/Source
Versioning.
WebKit-7612.3.6.0.1
- 3:29 PM Changeset in webkit [285675] by
-
- 17 edits in branches/safari-612.3.6.2-branch/Source
Cherry-pick r285648. rdar://problem/85171163
Log memory usage metadata when WebContent crosses critical or warning level memory thresholds
https://bugs.webkit.org/show_bug.cgi?id=232976
Reviewed by Darin Adler.
Source/WebCore:
WebCore::logMemoryStatistics was changed to:
- Emit VM tag names as public strings to the log. There isn't anything privacy sensitive about our 256 fixed VM tags, and emitting them to the logs as as private string (as we were doing before) made those log lines useless.
- Use WebCore::memoryUsageStatistics to gather memory metadata, since other WebCore callsites were already using that and it reduces code duplication.
- Only log JS object type counts on internal OS builds. Previously we also logged those counts on public OS builds, but that was useless since all the class names were redacted in the log.
- page/MemoryRelease.cpp: (WebCore::logMemoryStatistics): (WebCore::logMemoryStatisticsReasonDescription): (WebCore::pageCount): Deleted. (WebCore::logMemoryStatisticsAtTimeOfDeath): Deleted.
- page/MemoryRelease.h:
- page/PerformanceLogging.cpp: (WebCore::PerformanceLogging::memoryUsageStatistics): (WebCore::PerformanceLogging::didReachPointOfInterest):
- page/PerformanceLogging.h:
- page/cocoa/PerformanceLoggingCocoa.mm: (WebCore::PerformanceLogging::getPlatformMemoryUsageStatistics):
Source/WebKit:
Added callbacks to log memory usage metadata the first time a process hits these milestones:
- exceeded inactive memory limit while active (on Mac)
- exceeded warning process limit threshold (on other non-Mac Apple platforms)
- exceeded critical process limit threshold (on other non-Mac Apple platforms)
The reason for this is we receive a large number of out of memory reports with very little
info in the logs. We want to log more metadata about memory usage (similar to what we do on
Mac inWebCore::logMemoryStatisticsAtTimeOfDeath) to help us debug those reports.
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
- WebProcess/WebProcess.h:
Source/WTF:
Fixed several issues with memory usage tracking:
- pagesPerVMTag now properly accounts for swapped-out pages in its footprint calculation, as footprint(1) already does.
- displayNamePerVMTag now includes all of the most common VM tags associated with WebKit.
- MemoryPressureHandler now knows the specific type of pressure event that occurred. This allows it to differentiate between the entire system being at a warning pressure level vs. just this process hitting its warning memory level limit.
- wtf/MemoryPressureHandler.cpp: (WTF::MemoryPressureHandler::setMemoryPressureStatus): (WTF::MemoryPressureHandler::memoryPressureStatusChanged): (WTF::MemoryPressureHandler::setUnderMemoryPressure): Deleted.
- wtf/MemoryPressureHandler.h: (WTF::MemoryPressureHandler::setMemoryPressureStatusChangedCallback): (WTF::MemoryPressureHandler::isUnderMemoryPressure const):
- wtf/ResourceUsage.h:
- wtf/cocoa/MemoryPressureHandlerCocoa.mm: (WTF::MemoryPressureHandler::install):
- wtf/cocoa/ResourceUsageCocoa.cpp: (WTF::displayNameForVMTag): (WTF::pagesPerVMTag):
- wtf/unix/MemoryPressureHandlerUnix.cpp: (WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
- wtf/win/MemoryPressureHandlerWin.cpp: (WTF::MemoryPressureHandler::windowsMeasurementTimerFired):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:27 PM Changeset in webkit [285674] by
-
- 8 edits in branches/safari-612.3.6.2-branch/Source
Versioning.
WebKit-7612.3.6.2.1
- 3:14 PM Changeset in webkit [285673] by
-
- 8 edits in branches/safari-612.3.6.1-branch/Source
Versioning.
WebKit-7612.3.6.1.1
- 3:08 PM Changeset in webkit [285672] by
-
- 3 edits in trunk/Tools
REGRESSION: 26 InAppBrowserPrivacy API failures on iOS
https://bugs.webkit.org/show_bug.cgi?id=233016
<rdar://problem/85315536>
Reviewed by Brent Fulgham.
In r285594, I have the browser entitlement to TestWebKit API to make my new API test work
on iOS. However, it turns out that 26 InAppBrowserPrivacy API tests rely on the browser
entitlement not being present. I am therefore reverting this part of my change.
- TestWebKitAPI/Configurations/TestWebKitAPI-iOS.entitlements:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 2:46 PM Changeset in webkit [285671] by
-
- 3 edits in trunk/Tools
Fix for thread deadlocks during layout tests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=232999
<rdar://problem/85300861>
Reviewed by Chris Fleizach.
In isolated tree mode, AccessibilityUIElement calls into the AX API are
dispatched to a secondary, mocked thread created by the
AccessibilityController to simulate AT requests off of the main thread.
The main thread, in which all AccessibilityUIElement methods are run,
is blocked to wait for the results from the AX thread, to then continue
execution of JS layout tests.
The deadlocks arise when the AX API call cannot be fulfilled on the
secondary thread and needs to be dispatched to the main thread that is
now blocked. The main thread is waitng for the AccessibilityController's
secondary mocked thread, and that thread is waitng for the main thread
to compute results for the AX API request.
This patch introduces a workaround by spinning the main thread run loop
right after the API calls are dispatched to the AX thread.
- WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::executeOnAXThreadAndWait):
(WTR::AccessibilityController::spinMainRunLoop const):
- WebKitTestRunner/InjectedBundle/AccessibilityController.h:
- 2:43 PM Changeset in webkit [285670] by
-
- 3 edits in trunk/Source/WebCore
[Live Text] Augment TextRecognitionResult with a new type of text recognition data
https://bugs.webkit.org/show_bug.cgi?id=233009
Reviewed by Devin Rousso.
Add the new type, along with encoding/decoding support. No change in behavior.
- platform/TextRecognitionResult.h:
(WebCore::TextRecognitionBlockData::TextRecognitionBlockData):
(WebCore::TextRecognitionBlockData::encode const):
(WebCore::TextRecognitionBlockData::decode):
(WebCore::TextRecognitionResult::isEmpty const):
(WebCore::TextRecognitionResult::encode const):
(WebCore::TextRecognitionResult::decode):
- testing/Internals.cpp:
(WebCore::Internals::installImageOverlay):
- 2:41 PM Changeset in webkit [285669] by
-
- 7 edits in trunk
REGRESSION: (r283871) [ macOS wk2 Release ] 2 css/cssom-view/scroll-behavior-main-frame tests are failing
https://bugs.webkit.org/show_bug.cgi?id=231600
Reviewed by Simon Fraser.
Source/WebCore:
Fix for issue where a scroll animation is not properly cancelled by a second scroll request.
This occurs when the first scroll animation has not been fully started by the time the second
request has been received by the scrolling thread (first animation still in
m_nodesWithPendingScrollAnimations). For the scenario where the second scroll request is animated,
we change ThreadedScrollingTree::scrollingTreeNodeRequestsScroll to use set (add is ignored if
key exists in the hash map which caused the second request to be ignored). For the scenario
where the second scroll request is not animated, we clear the pending request for that
scrolling node (if one exists).
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::removePendingScrollAnimationForNode):
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::handleScrollPositionRequest):
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scrollingTreeNodeRequestsScroll):
(WebCore::ThreadedScrollingTree::removePendingScrollAnimationForNode):
- page/scrolling/ThreadedScrollingTree.h:
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 2:40 PM Changeset in webkit [285668] by
-
- 1 copy in branches/safari-612.3.6.3-branch
New branch.
- 2:38 PM Changeset in webkit [285667] by
-
- 1 delete in branches/safari-612.3.2-branch
Remove branch.
- 2:38 PM Changeset in webkit [285666] by
-
- 1 delete in branches/safari-612.3.1-branch
Remove branch.
- 2:38 PM Changeset in webkit [285665] by
-
- 1 delete in branches/safari-612.3.0-branch
Remove branch.
- 2:37 PM Changeset in webkit [285664] by
-
- 1 copy in branches/safari-612.3.6.2-branch
New branch.
- 2:36 PM Changeset in webkit [285663] by
-
- 1 copy in branches/safari-612.3.6.1-branch
New branch.
- 2:36 PM Changeset in webkit [285662] by
-
- 1 copy in branches/safari-612.3.6.0-branch
New branch.
- 2:35 PM Changeset in webkit [285661] by
-
- 1 copy in branches/safari-612.3.2-branch
New branch.
- 2:35 PM Changeset in webkit [285660] by
-
- 1 copy in branches/safari-612.3.1-branch
New branch.
- 2:35 PM Changeset in webkit [285659] by
-
- 1 copy in branches/safari-612.3.0-branch
New branch.
- 2:34 PM Changeset in webkit [285658] by
-
- 1 copy in tags/Safari-612.3.6
Tag Safari-612.3.6.
- 2:00 PM Changeset in webkit [285657] by
-
- 2 edits in trunk/Source/JavaScriptCore
Disable JIT runs of the ExecutionTimeLimitTest when !ENABLE(JIT).
https://bugs.webkit.org/show_bug.cgi?id=233003
Reviewed by Yusuke Suzuki.
- API/tests/ExecutionTimeLimitTest.cpp:
(testExecutionTimeLimit):
- 1:52 PM Changeset in webkit [285656] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r285618): [mac-wk1] ASSERTION FAILED: cgContext == [currentContext CGContext]
https://bugs.webkit.org/show_bug.cgi?id=233008
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations: Skip test for now.
- 1:52 PM Changeset in webkit [285655] by
-
- 26 edits2 adds in trunk/Source
Move image overlay code out of HTMLElement and into a separate helper file
https://bugs.webkit.org/show_bug.cgi?id=232974
Reviewed by Antti Koivisto.
Source/WebCore:
Move code for updating, querying, and removing image overlays out of HTMLElement.cpp and HTMLElement.h and into
separate helper files instead (ImageOverlay.h and ImageOverlay.cpp). Future patches in this area will extend the
functionality of these overlays, so this will help avoid code bloat inside HTMLElement when doing so.
No change in behavior.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/ImageOverlay.cpp: Added.
(WebCore::ImageOverlay::imageOverlayElementIdentifier):
(WebCore::ImageOverlay::imageOverlayDataDetectorClassName):
(WebCore::ImageOverlay::hasOverlay):
(WebCore::ImageOverlay::imageOverlayHost):
(WebCore::ImageOverlay::isDataDetectorResult):
(WebCore::ImageOverlay::isInsideOverlay):
(WebCore::ImageOverlay::isOverlayText):
(WebCore::ImageOverlay::removeOverlaySoonIfNeeded):
(WebCore::ImageOverlay::containerRect):
(WebCore::ImageOverlay::updateWithTextRecognitionResult):
- dom/ImageOverlay.h: Added.
Additionally wrap the new image overlay helper functions in the
ImageOverlaynamespace. This also allows us to
shorten some of the function names, since they're already under the namespace, so duplicating "ImageOverlay" in
the function name itself is unnecessary.
- editing/Editor.cpp:
(WebCore::Editor::performCutOrCopy):
(WebCore::scanForTelephoneNumbers):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::contains const):
- editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::shouldExtendSelectionToTargetNode):
(WebCore::HTMLElement::selectionRenderingBehavior):
(WebCore::imageOverlayElementIdentifier): Deleted.
(WebCore::imageOverlayDataDetectorClassName): Deleted.
(WebCore::HTMLElement::hasImageOverlay const): Deleted.
(WebCore::imageOverlayHost): Deleted.
(WebCore::HTMLElement::isImageOverlayDataDetectorResult const): Deleted.
(WebCore::HTMLElement::isInsideImageOverlay): Deleted.
(WebCore::HTMLElement::isImageOverlayText): Deleted.
(WebCore::HTMLElement::removeImageOverlaySoonIfNeeded): Deleted.
(WebCore::HTMLElement::containerRectForTextRecognition): Deleted.
(WebCore::HTMLElement::updateWithTextRecognitionResult): Deleted.
- html/HTMLElement.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::playInternal):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
- page/DragController.cpp:
(WebCore::DragController::draggableElement const):
(WebCore::DragController::startDrag):
- page/EventHandler.cpp:
(WebCore::nodeToSelectOnMouseDownForNode):
(WebCore::EventHandler::canMouseDownStartSelect):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::hitTestResultAtPoint const):
(WebCore::EventHandler::selectCursor):
- page/ImageOverlayController.cpp:
(WebCore::ImageOverlayController::selectionQuadsDidChange):
- page/Page.cpp:
(WebCore::Page::updateElementsWithTextRecognitionResults):
- page/mac/ImageOverlayControllerMac.mm:
(WebCore::ImageOverlayController::updateDataDetectorHighlights):
(WebCore::ImageOverlayController::elementUnderMouseDidChange):
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::nodeForImageData const):
(WebCore::HitTestResult::addNodeToListBasedTestResultCommon):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
- testing/Internals.cpp:
(WebCore::Internals::installImageOverlay):
Source/WebKit:
See WebCore/ChangeLog for more details.
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange):
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState const):
(WebKit::WebPage::findDataDetectionResultElementInImageOverlay):
(WebKit::WebPage::requestTextRecognition):
(WebKit::WebPage::updateWithTextRecognitionResult):
- WebProcess/WebPage/ios/FindControllerIOS.mm:
(WebKit::findTextIndicatorOptions):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::insideImageOverlay):
(WebKit::rangeForPointInRootViewCoordinates):
(WebKit::hostVideoElementIgnoringImageOverlay):
(WebKit::elementPositionInformation):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
- 1:29 PM Changeset in webkit [285654] by
-
- 39 edits in trunk/Source
Non-unified build fixes, early November 2021 edition, bis
https://bugs.webkit.org/show_bug.cgi?id=232998
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- interpreter/Interpreter.cpp: Add missing JSWebAssemblyInstance.h header.
- jit/JITInlineCacheGenerator.cpp: Remove unneeded JIT.h, as it is already included
transitively by JITInlines.h instead.
- llint/LLIntExceptions.cpp: Replace inclusion of WasmContext.h with WasmContextInlines.h
- wasm/WasmStreamingCompiler.cpp: Add missing JSBigInt.h header.
- wasm/js/JSWebAssemblyException.cpp: Add missing AuxiliaryBarrierInlines.h, JSBigInt.h,
JSCJSValueInlines.h and JSCellInlines.h
- wasm/js/JSWebAssemblyException.h: Add missing JSObject.h header.
- wasm/js/JSWebAssemblyTag.cpp: Add missing JSCellInlines.h, JSObjectInlines.h, and
StructureInlines.h headers.
- wasm/js/JSWebAssemblyTag.h: Add missing JSObject.h header.
- wasm/js/WebAssemblyExceptionConstructor.cpp: Add missing JSWebAssemblyTag.h header.
- wasm/js/WebAssemblyExceptionPrototype.cpp: Add missing headers JSWebAssemblyException.h
and JSWebAssemblyTag.h
- wasm/js/WebAssemblyTagPrototype.cpp: Add missing headers JSCellInlines.h,
JSObjectInlines.h, JSWebAssemblyTag.h, and StructureInlines.h
Source/WebCore:
No new tests needed.
- Modules/WebGPU/GPUColorWrite.h: Remove unneeded inclusion of wtf/RefCounted.h.
- Modules/WebGPU/GPUOutOfMemoryError.h: Replace inclusion of header wtf/Ref.h with
wtf/RefPtr.h.
- Modules/WebGPU/GPURenderPassEncoder.cpp: Add missing headers GPUBindGroup,h,
GPUQuerySet.h, GPURenderBundle.h, and GPURenderPipeline.h
- Modules/WebGPU/GPUSupportedLimits.h: Remove unneeded inclusions of headers which are
picked transitively from WebGPUSupportedLimits.h
- Modules/mediastream/RTCDataChannel.cpp: Add missing header
RTCDataChannelRemoteHandlerConnection.h
- Modules/webaudio/AudioBuffer.h: Add missing JavaScriptCore/GenericTypedArrayView.h header.
- bindings/js/ScriptModuleLoader.cpp: Add missing DocumentInlines.h header.
- contentextensions/ContentExtensionActions.cpp: Add missing wtf/URL.h header.
- dom/FragmentDirectiveParser.cpp: Add missing wtf/Deque.h header.
- dom/FragmentDirectiveParser.h: Add missing wtf/text/WTFString.h header.
- editing/atk/FrameSelectionAtk.cpp: Replace inclusion of header Document.h with
DocumentInlines.h.
- html/HTMLElement.cpp: Add missing EventLoop.h header inclusion.
- html/HTMLFrameElement.cpp: Add missing ElementInlines.h header inclusion.
- html/HTMLHRElement.cpp: Ditto.
- html/HTMLInputElement.cpp: Ditto.
- html/SearchInputType.cpp: Ditto.
- loader/DocumentLoader.cpp: Add missing DocumentInlines.h header inclusion.
- platform/audio/glib/MediaSessionManagerGLib.cpp: Add missing MediaSessionGLib.h header
inclusion.
- platform/gamepad/GamepadConstants.h: Add missing WTF:: namespace prefix to uses of
WTF::String.
- platform/mediastream/AudioMediaStreamTrackRenderer.cpp: Add missing inclusion of
LibWebRTCAudioModule.h header, guarded by USE(LIBWEBRTC).
- rendering/CSSFilter.cpp: Add missing inclusion of headers FilterOperations.h,
GraphicsContext.h, LengthFunctions.h, and RenderElement.h
- rendering/svg/SVGResourcesCache.cpp: Add missing inclusion of ElementInlines.h header.
Source/WebCore/PAL:
- pal/graphics/WebGPU/WebGPUColorWrite.h: Add missing wtf/RefCounted.h header.
- pal/graphics/WebGPU/WebGPUSupportedLimits.h: Add missing wtf/Ref.h header.
- pal/graphics/WebGPU/WebGPUValidationError.h: Add missing wtf/text/WTFString.h header.
- 1:24 PM Changeset in webkit [285653] by
-
- 9 edits in trunk/Source
Rename Heap::isCurrentThreadBusy() to Heap::currentThreadIsDoingGCWork().
https://bugs.webkit.org/show_bug.cgi?id=233005
rdar://85307204
Reviewed by Saam Barati.
Source/JavaScriptCore:
This rename clarifies what the "busy" part is about. Also remove some unused code:
Heap::isValidAllocation(), isValidThreadState(), and isValidSharedInstanceThreadState().
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jettison):
- heap/Heap.cpp:
(JSC::Heap::currentThreadIsDoingGCWork):
(JSC::Heap::isValidAllocation): Deleted.
(JSC::Heap::isCurrentThreadBusy): Deleted.
- heap/Heap.h:
- jsc.cpp:
(jscmain):
- runtime/VM.h:
(JSC::VM::isCollectorBusyOnCurrentThread):
Source/WebCore:
- bindings/js/GCController.cpp:
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::garbageCollectNowIfNotDoneRecently):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::deleteJSCodeAndGC):
- 1:09 PM Changeset in webkit [285652] by
-
- 6 edits in trunk
-Warray-bounds, -Wstringop-truncation, -Wstringop-overread warnings in Packed.h
https://bugs.webkit.org/show_bug.cgi?id=226557
<rdar://problem/79103658>
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-11
Reviewed by Darin Adler.
.:
Suppress -Wstringop-overread for all of WebKit when building with GCC 11 or newer. This is
an unfortunate way to deal with false positives that we ought to be able to silence in just
a few places, but when warnings do not respect pragmas we have few alternatives, and trying
to remove derived sources from the unified build in order to build them with special flags
is just not worth the effort.
This is part of a larger trend of oversensitive warnings from GCC 11.
- Source/cmake/WebKitCompilerFlags.cmake:
Source/WebCore:
Since -Wstringop-overread is now suppressed globally, we can include WebSocket.cpp in the
unified build once again.
- CMakeLists.txt:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 1:02 PM Changeset in webkit [285651] by
-
- 26 edits1 add in trunk
Inline RegExp.test JIT code in DFG and FTL
https://bugs.webkit.org/show_bug.cgi?id=230469
Reviewed by Saam Barati.
JSTests:
New microbenchmark.
- microbenchmarks/regexp-test-inlined.js: Added.
Source/JavaScriptCore:
Restructured YarrJIT from inheriting from MacroAssembler to having a MacroAssembler
member. Added a new path to Yarr JIT code to compile inline code by changing how the
code is entered and exited. Added statistic to the normal compilation path to record
the size of the matching code generated, the amount of stack space needed, and if
the code can be inlined. This patch only inlines 8bit code, as this seems to cover
the most common performance sensitive cases. Adding 16 bit, non-Unicode inlining
would be straightforward. The code is structured to take the inlined path for the
case of non-rope string arguments. For other cases, we fall back to calling out
to C++ paths.
Here are the perf results running the newly added regexp-test-inlined micro
benchmark (time in msec):
Baseline With this patch Result
ARM64 137.3849+-3.0740 64.9282+-0.7348 2.12x faster
X86-64 220.2616+-19.2814 105.2034+-6.8722 2.09x faster
As part of this change, found that the strength reduction didn't work properly for the
existing cases for RegExpExec, RegExpTest and related since we added that checks for
overriding the RegExp object. Clobberize for tryGetById was clobber top, but added
an exception for RegExp.lastIndex. This fix allowed many of the strength reductions
cases to start working again, namely the costant folding cases.
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGCommonData.h:
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.cpp:
(JSC::DFG::Node::convertToRegExpTestInline):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::hasCellOperand2):
(JSC::DFG::Node::cellOperand2):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- runtime/OptionsList.h:
- runtime/RegExp.h:
- runtime/StackAlignment.h:
(JSC::argumentCountForStackSize):
- yarr/YarrJIT.cpp:
(JSC::Yarr::jitCompile):
(JSC::Yarr::jitCompileInlinedTest):
- yarr/YarrJIT.h:
(JSC::Yarr::YarrBoyerMoyerData::saveMaps):
(JSC::Yarr::YarrBoyerMoyerData::clearMaps):
(JSC::Yarr::YarrBoyerMoyerData::tryReuseBoyerMooreBitmap const):
(JSC::Yarr::YarrCodeBlock::InlineStats::InlineStats):
(JSC::Yarr::YarrCodeBlock::InlineStats::set):
(JSC::Yarr::YarrCodeBlock::InlineStats::clear):
(JSC::Yarr::YarrCodeBlock::InlineStats::codeSize const):
(JSC::Yarr::YarrCodeBlock::InlineStats::stackSize const):
(JSC::Yarr::YarrCodeBlock::InlineStats::canInline const):
(JSC::Yarr::YarrCodeBlock::InlineStats::needsTemp2 const):
(JSC::Yarr::YarrCodeBlock::set8BitCode):
(JSC::Yarr::YarrCodeBlock::set16BitCode):
(JSC::Yarr::YarrCodeBlock::set8BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::set16BitCodeMatchOnly):
(JSC::Yarr::YarrCodeBlock::set8BitInlineStats):
(JSC::Yarr::YarrCodeBlock::set16BitInlineStats):
(JSC::Yarr::YarrCodeBlock::get8BitInlineStats):
(JSC::Yarr::YarrCodeBlock::get16BitInlineStats):
(JSC::Yarr::YarrCodeBlock::clear):
(JSC::Yarr::YarrCodeBlock::tryReuseBoyerMooreBitmap const): Deleted.
- yarr/YarrJITRegisters.h: Added.
(JSC::Yarr::YarrJITRegisters::YarrJITRegisters):
Source/WTF:
Added a new enablement: ENABLE_YARR_JIT_ALL_PARENS_EXPRESSIONS.
- wtf/PlatformEnable.h:
- 1:00 PM Changeset in webkit [285650] by
-
- 1 copy in tags/Safari-612.3.5.10.1
Tag Safari-612.3.5.10.1.
- 12:58 PM Changeset in webkit [285649] by
-
- 8 edits in branches/safari-612.3.5.10-branch/Source
Versioning.
WebKit-7612.3.5.10.1
- 12:40 PM Changeset in webkit [285648] by
-
- 17 edits in trunk/Source
Log memory usage metadata when WebContent crosses critical or warning level memory thresholds
https://bugs.webkit.org/show_bug.cgi?id=232976
Reviewed by Darin Adler.
Source/WebCore:
WebCore::logMemoryStatistics was changed to:
- Emit VM tag names as public strings to the log. There isn't anything privacy sensitive about our 256 fixed VM tags, and emitting them to the logs as as private string (as we were doing before) made those log lines useless.
- Use WebCore::memoryUsageStatistics to gather memory metadata, since other WebCore callsites were already using that and it reduces code duplication.
- Only log JS object type counts on internal OS builds. Previously we also logged those counts on public OS builds, but that was useless since all the class names were redacted in the log.
- page/MemoryRelease.cpp:
(WebCore::logMemoryStatistics):
(WebCore::logMemoryStatisticsReasonDescription):
(WebCore::pageCount): Deleted.
(WebCore::logMemoryStatisticsAtTimeOfDeath): Deleted.
- page/MemoryRelease.h:
- page/PerformanceLogging.cpp:
(WebCore::PerformanceLogging::memoryUsageStatistics):
(WebCore::PerformanceLogging::didReachPointOfInterest):
- page/PerformanceLogging.h:
- page/cocoa/PerformanceLoggingCocoa.mm:
(WebCore::PerformanceLogging::getPlatformMemoryUsageStatistics):
Source/WebKit:
Added callbacks to log memory usage metadata the first time a process hits these milestones:
- exceeded inactive memory limit while active (on Mac)
- exceeded warning process limit threshold (on other non-Mac Apple platforms)
- exceeded critical process limit threshold (on other non-Mac Apple platforms)
The reason for this is we receive a large number of out of memory reports with very little
info in the logs. We want to log more metadata about memory usage (similar to what we do on
Mac inWebCore::logMemoryStatisticsAtTimeOfDeath) to help us debug those reports.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- WebProcess/WebProcess.h:
Source/WTF:
Fixed several issues with memory usage tracking:
- pagesPerVMTag now properly accounts for swapped-out pages in its footprint calculation, as footprint(1) already does.
- displayNamePerVMTag now includes all of the most common VM tags associated with WebKit.
- MemoryPressureHandler now knows the specific type of pressure event that occurred. This allows it to differentiate between the entire system being at a warning pressure level vs. just this process hitting its warning memory level limit.
- wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::setMemoryPressureStatus):
(WTF::MemoryPressureHandler::memoryPressureStatusChanged):
(WTF::MemoryPressureHandler::setUnderMemoryPressure): Deleted.
- wtf/MemoryPressureHandler.h:
(WTF::MemoryPressureHandler::setMemoryPressureStatusChangedCallback):
(WTF::MemoryPressureHandler::isUnderMemoryPressure const):
- wtf/ResourceUsage.h:
- wtf/cocoa/MemoryPressureHandlerCocoa.mm:
(WTF::MemoryPressureHandler::install):
- wtf/cocoa/ResourceUsageCocoa.cpp:
(WTF::displayNameForVMTag):
(WTF::pagesPerVMTag):
- wtf/unix/MemoryPressureHandlerUnix.cpp:
(WTF::MemoryPressureHandler::triggerMemoryPressureEvent):
- wtf/win/MemoryPressureHandlerWin.cpp:
(WTF::MemoryPressureHandler::windowsMeasurementTimerFired):
- 12:39 PM Changeset in webkit [285647] by
-
- 1 copy in branches/safari-612.3.5.10-branch
New branch.
- 12:28 PM Changeset in webkit [285646] by
-
- 4 edits in trunk/Source
[iOS] Adopt -[AVAudioSession setAuditTokensForProcessAssertion:]
https://bugs.webkit.org/show_bug.cgi?id=232909
<rdar://68184444>
Reviewed by Chris Dumez.
Source/WebCore:
Wrap the implementation of setPresentingProcess() in a HAVE guard.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionIOS::setPresentingProcesses):
Source/WTF:
- wtf/PlatformHave.h:
- 12:14 PM Changeset in webkit [285645] by
-
- 10 edits in trunk
Add support in WebCore for web app manifest icons
https://bugs.webkit.org/show_bug.cgi?id=231339
Source/WebCore:
rdar://84311306
Patch by Rachel Ginsberg <rginsberg@apple.com> on 2021-11-11
Reviewed by Brent Fulgham.
Tests are added to OpenSource/Tools/TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp
- Modules/applicationmanifest/ApplicationManifest.h:
A new enum for the icon purpose (Icon::Purpose) was added to the ApplicationManifest::Icon struct.
A new Icon struct containing variable for the src, sizes,
type, and Icon::Purpose attributes for app manifest icons was added to the ApplicationManifest
struct. A vector of Icon's is added as a variable for
the ApplicationManifest struct.
(WebCore::ApplicationManifest::encode const):
Added icons to encode function
(WebCore::ApplicationManifest::decode):
Added icons to decode function
(WebCore::ApplicationManifest::Icon::encode const):
Create encode function for ApplicationManifest::Icon
(WebCore::ApplicationManifest::Icon::decode):
Create decode function for ApplicationManifest::Icon
- Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::parseManifest):
Added call to parseIcons
(WebCore::ApplicationManifestParser::parseIcons):
parseIcons iterates through the list of icons, performs checks for attribute,
and then, if valid, adds the attribute to an ApplicationManifestIcon struct
that is appended to a new Vector of ApplicationManifestIcons.
- Modules/applicationmanifest/ApplicationManifestParser.h:
Declare functions for ApplicationManifestParser
Source/WebKit:
rdar://84311306
Patch by Rachel Ginsberg <rginsberg@apple.com> on 2021-11-11
Reviewed by Brent Fulgham.
- UIProcess/API/Cocoa/_WKApplicationManifest.h:
- UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(makeVectorElement):
Used by makeVector in initWithCoder:. Takes a _WKApplicationManifestIcon and returns
a WebCore::ApplicationManifest::Icon.
(-[_WKApplicationManifest initWithCoder:]):
Added icons.
(-[_WKApplicationManifest encodeWithCoder:]):
Added icons.
(-[_WKApplicationManifest icons]):
Should appease build error before full support for icons is built into _WKApplicationManifest
(+[_WKApplicationManifestIcon supportsSecureCoding]):
(-[_WKApplicationManifestIcon initWithCoder:]):
(-[_WKApplicationManifestIcon encodeWithCoder:]):
(-[_WKApplicationManifestIcon dealloc]):
- UIProcess/API/Cocoa/_WKApplicationManifestInternal.h:
Tools:
Patch by Rachel Ginsberg <rginsberg@apple.com> on 2021-11-11
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebCore/ApplicationManifestParser.cpp:
(ApplicationManifestParserTest::parseIconFirstTopLevelProperty):
Function to create JSON for icon attributes. This is
necessary because icons are in a list, whereas all other
attributes in app manifest are not.
(ApplicationManifestParserTest::parseIconFirstTopLevelPropertyForSrc):
Needed to make a slightly different version to add a src URL, since
it is required for a given icon to be added to the vector.
(ApplicationManifestParserTest::testIconsSrc):
(ApplicationManifestParserTest::testIconsType):
(ApplicationManifestParserTest::testIconsSizes):
(ApplicationManifestParserTest::testIconsPurposes):
Functions for each of the icon attributes.
(TEST_F):
Calls the various icon test functions with different input
- 11:46 AM Changeset in webkit [285644] by
-
- 8 edits3 adds in trunk
REGRESSION (iOS 15, GPU Process): Fails to load texture map
https://bugs.webkit.org/show_bug.cgi?id=231471
<rdar://problem/84328146>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-11
Reviewed by Tim Horton.
Source/WebCore:
Clear the CGImage copy from the IOSurface CGContext after the IOSurface has
been drawn to a bitmap CGContext. The CGImage stored in the IOSurface CGContext
contains a malloc buffer of the data. This buffer is counted against GPU
process memory consumption, causing GPU process jetsams.
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::draw):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
Source/WebKit:
Use the normal "draw image buffer" call to draw the image buffer
to the shareable bitmap. Before, it was manually re-implementing this
API call via the lower level calls.
The drawImageBuffer call now fixes up the IOSurface -backed source
ImageBuffers to not keep referencing to the CGImage that provided
the data to the draw. Otherwise GPU process jetsams as the CGImage
inside IOSurface is counted against GPU process memory limit.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
Tools:
Add a test that tries to assert that GraphicsContext::drawImageBuffer() does not increase
memory footprint of the process. However, leave the test disabled as currently
it seems that the WTF::memoryFootprint() measurement does not see all the
memory releases the CG does.
- TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp:
(TestWebKitAPI::memoryFootprintChangedBy):
(TestWebKitAPI::imageBufferPixelIs):
(TestWebKitAPI::TEST):
LayoutTests:
Add a test that sometimes jetsams on device.
Jetsam is not deterministic as it is only
triggerd during memory pressure.
macOS does not trigger jetsam due to platform
rules.
- fast/canvas/webgl/gl-teximage-imagebitmap-memory.html: Added.
- fast/canvas/webgl/resources/green-4000x4000.png: Added.
- 11:07 AM Changeset in webkit [285643] by
-
- 3 edits in trunk/Tools
Infinite recursion under InjectedBundlePage::exitFullScreenForElement()
https://bugs.webkit.org/show_bug.cgi?id=232948
<rdar://80588375>
Reviewed by Eric Carlson.
When WebCore indicates an error in exiting fullscreen, WebKit will respond by attempting to
close any outstanding fullscreen sessions by calling WebFullScreenManager::close(). If this
occurs in the InjectedBundlePage client during a call into WKBundlePageWillExitFullScreen()
or WKBundlePageWillDidFullScreen(), this call will recurse into
InjectedBundlePage::exitFullScreenForElement(), and cause a stack overflow.
Track the current state of fullscreen on a per-InjectedBundlePage basis, and bail out if
the state has been modified due to recursion.
Add a HashMap to map WKBundlePageRef onto InjectedBundlePages. Use that map to find the
particular InjectedBundlePage being requested to enter fullscreen. Add an enumerated
set of Fullscreen states and a private ivar for tracking that state.
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::InjectedBundlePage):
(WTR::InjectedBundlePage::~InjectedBundlePage):
(WTR::InjectedBundlePage::enterFullScreenForElement):
(WTR::InjectedBundlePage::exitFullScreenForElement):
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.h:
- 11:06 AM Changeset in webkit [285642] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Reset InlineTextItem width on bidi split
https://bugs.webkit.org/show_bug.cgi?id=233002
Reviewed by Darin Adler.
We remeasure the individual inline items right before line breaking.
- layout/formattingContexts/inline/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::split):
- 11:05 AM Changeset in webkit [285641] by
-
- 2 edits in trunk/Source/WebKit
[RemoteInspector][Socket] Can't find the target since r277787
https://bugs.webkit.org/show_bug.cgi?id=232986
Reviewed by Don Olmstead.
Remote Inspector has the same issue as bug 226908.
RemoteInspectorProtocolHandler needs the same fix as r278748.
- UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp: Copy WebURLSchemeTask.request().url() to avoid obtaining the temporary object.
- 10:31 AM Changeset in webkit [285640] by
-
- 29 edits in trunk/Source
Make scroll granularity an enum class
https://bugs.webkit.org/show_bug.cgi?id=232641
Reviewed by Cameron McCormack.
Source/WebCore:
- dom/Element.cpp:
(WebCore::Element::scrollByLines):
(WebCore::Element::scrollByPages):
- editing/EditorCommand.cpp:
(WebCore::executeScrollPageBackward):
(WebCore::executeScrollPageForward):
(WebCore::executeScrollLineUp):
(WebCore::executeScrollLineDown):
(WebCore::executeScrollToBeginningOfDocument):
(WebCore::executeScrollToEndOfDocument):
- page/EventHandler.cpp:
(WebCore::wheelGranularityToScrollGranularity):
(WebCore::EventHandler::logicalScrollRecursively):
(WebCore::EventHandler::defaultSpaceEventHandler):
(WebCore::EventHandler::scrollDistance):
- page/FrameView.cpp:
(WebCore::FrameView::adjustScrollStepForFixedContent):
- platform/KeyboardScrollingAnimator.cpp:
(WebCore::KeyboardScrollingAnimator::scrollDistance const):
(WebCore::KeyboardScrollingAnimator::keyboardScrollForKeyboardEvent const):
(WebCore::KeyboardScrollingAnimator::beginKeyboardScrollGesture):
- platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent):
- platform/ScrollTypes.h:
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scroll):
- platform/Scrollbar.cpp:
(WebCore::Scrollbar::pressedPartScrollGranularity):
- platform/ios/ScrollAnimatorIOS.mm:
(WebCore::ScrollAnimatorIOS::handleTouchEvent):
- platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::wndProc):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::logicalScroll):
Source/WebKit:
- Scripts/webkit/messages.py:
(headers_for_type):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView keyboardScrollViewAnimator:distanceForIncrement:inDirection:]):
- UIProcess/ios/WKKeyboardScrollingAnimator.mm:
(-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollViewAnimator distanceForIncrement:inDirection:]):
- UIProcess/win/WebPopupMenuProxyWin.cpp:
(WebKit::WebPopupMenuProxyWin::onMouseWheel):
- UIProcess/win/WebView.cpp:
(WebKit::WebView::onHorizontalScroll):
(WebKit::WebView::onVerticalScroll):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scrollBy):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::performDefaultBehaviorForKeyEvent):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
- WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::performDefaultBehaviorForKeyEvent):
Source/WebKitLegacy/mac:
- WebView/WebFrameView.mm:
(-[WebFrameView _scrollToBeginningOfDocument]):
(-[WebFrameView _scrollToEndOfDocument]):
(-[WebFrameView _pageVertically:]):
(-[WebFrameView _pageHorizontally:]):
(-[WebFrameView _scrollLineVertically:]):
(-[WebFrameView _scrollLineHorizontally:]):
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::verticalScroll):
(WebView::horizontalScroll):
(WebView::keyDown):
- 10:29 AM Changeset in webkit [285639] by
-
- 44 edits9 adds in trunk
JSCallbackData should use lexical global object for errors and lifecycle
https://bugs.webkit.org/show_bug.cgi?id=232387
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-expected.txt: Added.
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context-expected.txt: Added.
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html: Added.
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html: Added.
- web-platform-tests/dom/traversal/support/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context-subframe.html: Added.
- web-platform-tests/dom/traversal/support/TreeWalker-acceptNode-filter-cross-realm-subframe.html: Added.
Source/WebCore:
Currently, JSCallbackData uses incumbent [1] global object pretty much for everything,
which causes a few issues:
1) TypeErrors are constructed in incorrect realm;
2) NodeFilter / XPathNSResolver crash if their incumbent window gets disconnected;
3) other callbacks, originated in detached frame, were not invoked at all.
Since not all handleEvent() callers have ScriptExecutionContext, and to avoid a large
code diff, this patch utilizes callback wrapper's ScriptExecutionContext to fix all
the above-mentioned problems.
To accomodate NodeFilter and XPathNSResolver of detached frames without growing
sizeof
of all other other callbacks, m_globalObject member is introduced only for them.
AudioWorklet changes are unobservable as worklets can't acquire a cross-realm method.
[1] https://html.spec.whatwg.org/multipage/webappapis.html#incumbent
Tests: fast/dom/Geolocation/callback-to-deleted-context.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html
- Modules/geolocation/PositionErrorCallback.idl:
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
(WebCore::AudioWorkletGlobalScope::createProcessor):
- Modules/webaudio/AudioWorkletProcessor.cpp:
(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setProcessCallback):
- Modules/webaudio/AudioWorkletProcessor.h:
(WebCore::AudioWorkletProcessor::processCallbackWrapper):
- bindings/js/JSAudioWorkletProcessorCustom.cpp:
(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
- bindings/js/JSCallbackData.h:
(WebCore::JSCallbackData::JSCallbackData):
(WebCore::JSCallbackData::~JSCallbackData):
(WebCore::JSCallbackDataStrong::JSCallbackDataStrong):
(WebCore::JSCallbackDataStrong::invokeCallback):
(WebCore::JSCallbackDataWeak::JSCallbackDataWeak):
(WebCore::JSCallbackDataWeak::invokeCallback):
(WebCore::JSCallbackData::globalObject): Deleted.
- bindings/js/JSDOMConvertCallbacks.h:
(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):
- bindings/js/JSDOMConvertXPathNSResolver.h:
(WebCore::Converter<IDLInterface<XPathNSResolver>>::convert):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowInstanceFunction_openDatabaseBody):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
(JSValueToNativeDOMConvertNeedsGlobalObject):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/*: Updated.
- bindings/scripts/test/TestCallbackFunctionSkipCallbackInvokeCheck.idl: Added.
- bindings/scripts/test/TestCallbackInterface.idl:
- dom/NodeFilter.idl:
- workers/WorkerOrWorkletGlobalScope.h:
- worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
- xml/CustomXPathNSResolver.idl:
LayoutTests:
- fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
- fast/dom/Geolocation/callback-to-deleted-context.html:
- fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
- 10:27 AM Changeset in webkit [285638] by
-
- 10 edits in trunk
Drop support for <object usemap> making <object> interactive
https://bugs.webkit.org/show_bug.cgi?id=222642
LayoutTests/imported/w3c:
Reviewed by Antti Koivisto.
As per https://github.com/whatwg/html/pull/6283, <object usemap> should no longer be supported.
IDL support is kept per spec like other obsolete attributes.
- web-platform-tests/html/semantics/forms/the-label-element/clicking-noninteractive-unlabelable-content-expected.txt:
Source/WebCore:
Reviewed by Antti Koivisto.
As per https://github.com/whatwg/html/pull/6283, <object usemap> should no longer be supported.
IDL support is kept per spec like other obsolete attributes.
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::isURLAttribute const):
(WebCore::HTMLObjectElement::addSubresourceAttributeURLs const):
(WebCore::HTMLObjectElement::isInteractiveContent const): Deleted.
- html/HTMLObjectElement.h:
Source/WebKit:
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-11
Reviewed by Antti Koivisto.
Remove support for usemap attribute in GTK DOM API adding a warning message instead.
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp:
(webkit_dom_html_object_element_get_use_map):
(webkit_dom_html_object_element_set_use_map):
LayoutTests:
Reviewed by Antti Koivisto.
As per https://github.com/whatwg/html/pull/6283, <object usemap> should no longer be supported.
IDL support is kept per spec like other obsolete attributes.
- imported/blink/fast/forms/label/label-contains-other-interactive-content-expected.txt:
- imported/blink/fast/forms/label/label-contains-other-interactive-content.html:
- 10:19 AM Changeset in webkit [285637] by
-
- 41 edits13 copies4 adds1 delete in trunk
Factor platform specific code out of HTMLModelElement
https://bugs.webkit.org/show_bug.cgi?id=232848
Reviewed by Dean Jackson.
Source/WebCore:
Factor out most of the platform / renderer specific details from HTMLModelElement
into a new ModelPlayer/ModelPlayerProvider abstraction. This allows for better
separation of concerns, tighter coupling in the ARKit player implementation by
being entirely in WebKit and the ability to support multiple backends. The suffix
"player" was chosen to roughly align with the existing concept of a MediaPlayer.
- CMakeLists.txt:
- Headers.cmake:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
Add new files / remove no longer necessary HTMLModelElementCocoa.mm
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::~HTMLModelElement):
clearFile() is now handled in the ARKit specific ModelPlayer destructor.
(WebCore::HTMLModelElement::setSourceURL):
For simplicity, we clear the player when the URL changes and we start a
new load. In the future, we should consider keeping the player around and
simply resetting it if that proves to be a performance benefit.
(WebCore::HTMLModelElement::modelDidChange):
Repurpose modelDidChange to now be where we create the player, via the
provider and instantiate the load.
(WebCore::HTMLModelElement::usesPlatformLayer const):
(WebCore::HTMLModelElement::platformLayer const):
Add accessors for the player's layer and a predicate indicating
whether there is one that RenderLayerBacking uses to pick whether
it will use the platform layer or the model-as-contents path. It
would be good to move to just having one in the future.
(WebCore::HTMLModelElement::didFinishLoading):
(WebCore::HTMLModelElement::didFailLoading):
Implement the ModelPlayerClient functions to trigger the render tree update.
(WebCore::sharedModelElementCacheDirectory): Deleted.
(WebCore::HTMLModelElement::setModelElementCacheDirectory): Deleted.
(WebCore::HTMLModelElement::modelElementCacheDirectory): Deleted.
Move to ARKit ModelPlayer implementation
- Modules/model-element/HTMLModelElementCocoa.mm: Removed.
Move to ARKit ModelPlayer implementation
- Modules/model-element/ModelPlayer.cpp: Added.
- Modules/model-element/ModelPlayer.h: Added.
The model player is the main interface for loading and interacting
with models.
- Modules/model-element/ModelPlayerClient.cpp: Added.
- Modules/model-element/ModelPlayerClient.h: Added.
The model player client allows the model player to communicate back
to its owner things like load success / failure and will likely also
allow trigging things like subresource loads the model player needs
to kick off.
- Modules/model-element/ModelPlayerProvider.cpp: Added.
- Modules/model-element/ModelPlayerProvider.h: Added.
The model player provider allows the WebKit layer to provide its
own model players.
- Modules/model-element/dummy: Added.
- Modules/model-element/dummy/DummyModelPlayer.cpp: Added.
- Modules/model-element/dummy/DummyModelPlayer.h: Added.
- Modules/model-element/dummy/DummyModelPlayerProvider.cpp: Added.
- Modules/model-element/dummy/DummyModelPlayerProvider.h: Added.
The dummy player and provider are used for platforms / configurations
where model is not supported.
- loader/EmptyClients.h:
- loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
Use the DummyModelPlayerProvider for the empty client.
- page/ChromeClient.h:
(WebCore::ChromeClient::modelElementDidCreatePreview const): Deleted.
This is is no longer needed now that the ARKit implementation is in WebKit.
- page/Page.cpp:
- page/Page.h:
- page/PageConfiguration.cpp:
- page/PageConfiguration.h:
Add a model player provider to the list of providers the page vends.
- platform/graphics/Model.cpp:
- platform/graphics/Model.h:
Remove #if ENABLE(MODEL_ELEMENT) for parts that aren't actually the
element itself.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
Remove platform specific code and utilize the new platformLayer accessor
and predicate on HTMLModelElement.
Source/WebKit:
Move implementation details of the macOS ARKit <model> implementation
into an ARKit model player implementation.
- CMakeLists.txt:
- Sources.txt:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
Add new files.
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
(WebKit::ModelElementController::modelElementDidCreatePreview):
- UIProcess/ModelElementController.h:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Make modelElementDidCreatePreview() an async callback rather than
using a ElementContext to reconnect on the way back.
- WebProcess/Model: Added.
- WebProcess/Model/WebModelPlayerProvider.cpp: Added.
- WebProcess/Model/WebModelPlayerProvider.h: Added.
Add ModelPlayerProvider implementation for WebKit.
- WebProcess/Model/mac: Added.
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayer.h: Added.
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayer.mm: Added.
Move code from HTMLModelElementCocoa here, and implement the ModelPlayer
interface using it. Rather than using the ChromeClient, we can now directly
use an async IPC message to set up the link.
- WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
(WebKit::NotificationPermissionRequestManager::startRequest):
Fix build issue caused by adding new files.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setWebsiteDataStoreParameters):
Update call to setModelElementCacheDirectory to be on the ARKitInlinePreviewModelPlayer.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::modelElementDidCreatePreview const): Deleted.
- WebProcess/WebCoreSupport/WebChromeClient.h:
Remove no longer needed modelElementDidCreatePreview client function.
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Use DummyModelPlayerProvider for the DummyModelPlayerProvider since the feature
is not supported for WebKitLegacy at the moment.
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::initWithFrame):
Use DummyModelPlayerProvider for the DummyModelPlayerProvider since the feature
is not supported for WebKitLegacy at the moment.
LayoutTests:
- platform/mac-wk1/TestExpectations:
Skip model tests for WebKitLegacy as it is not supported there currently.
- 9:31 AM Changeset in webkit [285636] by
-
- 59 edits1 add in trunk/Source
Move m_doesGC from Heap to VM.
https://bugs.webkit.org/show_bug.cgi?id=232975
rdar://85277492
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
m_doesGC is only needed for ENABLE(DFG_DOES_GC_VALIDATION), and is used for checking
if the VM thread's execution is in a state that can allow GC to run. Hence, it is
more related to VM thread execution as opposed to the state of the Heap. This patch
moves m_doesGC from Heap to VM to get it out of the way of upcoming Global GC work.
Also change DeferGC, DeferGCForAWhile, and GCDeferralContext to take a VM& instead
of a Heap&. DeferGC and GCDeferralContext need to access VM& in order to call
VM::verifyCanGC(). DeferGCForAWhile does not need VM&, but we're changing it to be
consistent with DeferGC. There should be no perf impact for this change.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::jettison):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::decodeCachedCodeBlocks):
- bytecode/Watchpoint.cpp:
(JSC::WatchpointSet::fireAllWatchpoints):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::generate):
- dfg/DFGDoesGCCheck.cpp:
- dfg/DFGOSRExit.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
(JSC::DFG::OSRExit::compileExit):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileLoopHint):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
(JSC::FTL::JSC_DEFINE_JIT_OPERATION):
- ftl/FTLOperations.cpp:
(JSC::FTL::JSC_DEFINE_JIT_OPERATION):
- heap/CompleteSubspace.cpp:
(JSC::CompleteSubspace::tryAllocateSlow):
(JSC::CompleteSubspace::reallocatePreciseAllocationNonVirtual):
- heap/CompleteSubspaceInlines.h:
(JSC::CompleteSubspace::allocateNonVirtual):
- heap/DeferGC.h:
(JSC::DeferGC::DeferGC): Deleted.
(JSC::DeferGC::~DeferGC): Deleted.
(JSC::DeferGCForAWhile::DeferGCForAWhile): Deleted.
(JSC::DeferGCForAWhile::~DeferGCForAWhile): Deleted.
- heap/DeferGCInlines.h: Added.
(JSC::DeferGC::DeferGC):
(JSC::DeferGC::~DeferGC):
(JSC::DeferGCForAWhile::DeferGCForAWhile):
(JSC::DeferGCForAWhile::~DeferGCForAWhile):
- heap/GCDeferralContext.h:
- heap/GCDeferralContextInlines.h:
(JSC::GCDeferralContext::GCDeferralContext):
(JSC::GCDeferralContext::~GCDeferralContext):
- heap/Heap.cpp:
(JSC::Heap::collectNow):
(JSC::Heap::collectAsync):
(JSC::Heap::collectSync):
(JSC::Heap::stopIfNecessarySlow):
(JSC::Heap::collectIfNecessaryOrDefer):
- heap/Heap.h:
(JSC::Heap::addressOfDoesGC): Deleted.
(JSC::Heap::setDoesGCExpectation): Deleted.
(JSC::Heap::verifyCanGC): Deleted.
- heap/HeapInlines.h:
(JSC::Heap::acquireAccess):
(JSC::Heap::stopIfNecessary):
- heap/HeapSnapshotBuilder.cpp:
(JSC::HeapSnapshotBuilder::json):
- heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::sweepNextBlock):
- heap/LocalAllocatorInlines.h:
(JSC::LocalAllocator::allocate):
- heap/PreciseAllocation.cpp:
(JSC::PreciseAllocation::tryCreate):
(JSC::PreciseAllocation::createForLowerTier):
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::queryHolders):
- inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::getPreview):
(Inspector::InspectorHeapAgent::getRemoteObject):
- inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::InspectorScriptProfilerAgent::trackingComplete):
- interpreter/ShadowChickenInlines.h:
(JSC::ShadowChicken::iterate):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- jit/JITWorklist.cpp:
(JSC::JITWorklist::completeAllReadyPlansForVM):
(JSC::JITWorklist::waitUntilAllPlansForVMAreReady):
(JSC::JITWorklist::completeAllPlansForVM):
(JSC::JITWorklist::removeAllReadyPlansForVM):
- jit/Repatch.cpp:
(JSC::fireWatchpointsAndClearStubIfNeeded):
(JSC::tryCacheGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::tryCachePutBy):
(JSC::tryCacheArrayPutByVal):
(JSC::tryCacheDeleteBy):
(JSC::tryCacheInBy):
(JSC::tryCacheHasPrivateBrand):
(JSC::tryCacheCheckPrivateBrand):
(JSC::tryCacheSetPrivateBrand):
(JSC::tryCacheInstanceOf):
(JSC::linkPolymorphicCall):
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/CachedTypes.cpp:
(JSC::decodeCodeBlockImpl):
- runtime/ConcurrentJSLock.h:
(JSC::GCSafeConcurrentJSLocker::GCSafeConcurrentJSLocker):
- runtime/ExceptionFuzz.cpp:
(JSC::doExceptionFuzzing):
- runtime/JSArray.cpp:
(JSC::JSArray::unshiftCountWithArrayStorage):
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
- runtime/JSCellInlines.h:
- runtime/JSGenericTypedArrayViewInlines.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::haveABadTime):
- runtime/JSObject.cpp:
(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::reallocateAndShrinkButterfly):
(JSC::createCustomGetterFunction):
(JSC::createCustomSetterFunction):
- runtime/JSString.h:
(JSC::jsSingleCharacterString):
(JSC::JSString::toAtomString const):
(JSC::JSString::toExistingAtomString const):
(JSC::JSString::value const):
(JSC::JSString::tryGetValue const):
(JSC::JSRopeString::unsafeView const):
(JSC::JSRopeString::viewWithUnderlyingString const):
(JSC::JSString::unsafeView const):
- runtime/JSSymbolTableObject.h:
(JSC::symbolTablePut):
- runtime/RegExpKey.h:
- runtime/RegExpMatchesArray.cpp:
(JSC::createEmptyRegExpMatchesArray):
- runtime/RegExpMatchesArray.h:
(JSC::createRegExpMatchesArray):
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::stackTracesAsJSON):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::prepareForExecutionImpl):
- runtime/Structure.cpp:
(JSC::Structure::materializePropertyTable):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::removeNewPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::nonPropertyTransitionSlow):
(JSC::Structure::flattenDictionaryStructure):
- runtime/StructureInlines.h:
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::attributeChange):
- runtime/VM.h:
(JSC::VM::addressOfDoesGC):
(JSC::VM::setDoesGCExpectation):
(JSC::VM::verifyCanGC):
Source/WebCore:
- bindings/js/GCController.cpp:
(WebCore::GCController::dumpHeap):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::createCrossOriginFunction):
(WebCore::JSDOMGlobalObject::createCrossOriginGetterSetter):
- 9:22 AM Changeset in webkit [285635] by
-
- 9 edits2 moves in trunk/Source
WKSystemPreviewView should be called WKUSDPreviewView
https://bugs.webkit.org/show_bug.cgi?id=232961
<rdar://problem/85265415>
Reviewed by Sam Weinig.
Source/WebCore:
Rename the WebCore APIs that look for "SystemPreview" MIME-types
to be clear they are looking for USD.
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::isUSDMIMEType):
(WebCore::MIMETypeRegistry::isSystemPreviewMIMEType): Deleted.
- platform/MIMETypeRegistry.h:
- platform/cocoa/MIMETypeRegistryCocoa.mm:
(WebCore::MIMETypeRegistry::preferredExtensionForMIMEType):
Source/WebKit:
WKSystemPreviewView is a uninformative name. WKUSDPreviewView is more accurate.
- SourcesCocoa.txt:
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
- UIProcess/SystemPreviewController.cpp:
(WebKit::SystemPreviewController::canPreview const):
- UIProcess/ios/WKUSDPreviewView.h: Renamed from Source/WebKit/UIProcess/ios/WKSystemPreviewView.h.
- UIProcess/ios/WKUSDPreviewView.mm: Renamed from Source/WebKit/UIProcess/ios/WKSystemPreviewView.mm.
(getUTIForSystemPreviewMIMEType):
(-[WKUSDPreviewView web_initWithFrame:webView:mimeType:]):
(-[WKUSDPreviewView web_setContentProviderData:suggestedFilename:]):
(-[WKUSDPreviewView _layoutThumbnailView]):
(-[WKUSDPreviewView thumbnailView:wantsToPresentPreviewController:forItem:]):
(-[WKUSDPreviewView web_contentView]):
(+[WKUSDPreviewView web_requiresCustomSnapshotting]):
(-[WKUSDPreviewView web_setMinimumSize:]):
(-[WKUSDPreviewView web_setOverlaidAccessoryViewsInset:]):
(-[WKUSDPreviewView web_computedContentInsetDidChange]):
(-[WKUSDPreviewView web_setFixedOverlayView:]):
(-[WKUSDPreviewView web_didSameDocumentNavigation:]):
(-[WKUSDPreviewView web_isBackground]):
(-[WKUSDPreviewView web_countStringMatches:options:maxCount:]):
(-[WKUSDPreviewView web_findString:options:maxCount:]):
(-[WKUSDPreviewView web_hideFindUI]):
(-[WKUSDPreviewView provideDataForItem:]):
- WebKit.xcodeproj/project.pbxproj:
- 9:18 AM Changeset in webkit [285634] by
-
- 9 edits in trunk
Turn off various preferences when in captive portal mode
https://bugs.webkit.org/show_bug.cgi?id=232958
<rdar://84622396>
Reviewed by Brent Fulgham.
Source/WebKit:
Disable the following settings when in captive portal mode:
- WebGL
- WebGL2
- Gamepads
- RemotePlayback
- FileSystemAccess
- AllowsPictureInPictureMediaPlayback
- PictureInPictureAPI
- SpeechRecognition
- Notifications
- WebXR
- WebXRAugmentedRealityModule
- WebAudio
- DownloadableBinaryFonts
- PeerConnection (WebRTC)
Covered by updated API tests.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- WebProcess/WebProcess.h:
(WebKit::WebProcess::isCaptivePortalModeEnabled const):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 8:10 AM Changeset in webkit [285633] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Allow access to power logging service
https://bugs.webkit.org/show_bug.cgi?id=232978
<rdar://problem/85279539>
Reviewed by Brent Fulgham.
Access to this logging service is still required in the GPU process on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 7:57 AM Changeset in webkit [285632] by
-
- 5 edits in trunk/Source/WebCore
AX: Implement AXCoreObject::value for AXIsolatedObject
https://bugs.webkit.org/show_bug.cgi?id=232983
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-11
Reviewed by Chris Fleizach.
This patch implements AXCoreObject::value by moving the implementation
from AccessibilityObject into AXCoreObject (AccessibilityObjectInterface.h),
as the behavior should be the same for both types of objects. We can entirely
share the implementation because all the methods it calls are interface methods.
This patch also changes AXIsolatedObject::headingLevel() to use
unsignedAttributeValuerather thanintAttributeValue, as the value
we are setting is anunsigned. Before this change,headingLevel
always returned zero because the property lookup never returned an
int.
Between these two changes, roughly 57 text-only failures are fixed compared to
main
with run-webkit-tests --release --accessibility-isolated-tree accessibility/
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::value):
Move implementation to AXCoreObject (AccessibilityObjectInterface.h).
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::value):
Added default implementation from AccessibilityObject.cpp.
- accessibility/isolatedtree/AXIsolatedObject.h:
Change
headingLevelto useunsignedAttributeValuerather than
intAttributeValue.
- 7:55 AM Changeset in webkit [285631] by
-
- 11 edits in trunk
Improve additivity support when animating the transform property
https://bugs.webkit.org/show_bug.cgi?id=232990
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark 91 new PASS results.
- web-platform-tests/css/css-transforms/animation/composited-transform-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-matrix-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-perspective-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-rotate-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-skew-composition-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-translate-composition-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
Source/WebCore:
When blending TransformOperations with the "add" composite operation, we should
simply concatenate the from and to transform operations.
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- 7:01 AM Changeset in webkit [285630] by
-
- 13 edits1 add in trunk/Source/WebCore
Introduce SelectorMatchingState and move SelectorFilter there
https://bugs.webkit.org/show_bug.cgi?id=232994
Reviewed by Alan Bujtas.
It will be useful to have an extensible state struct available during style resolution.
Initially it will contain just the existing SelectorFilter.
- WebCore.xcodeproj/project.pbxproj:
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::ElementRuleCollector):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
- style/ElementRuleCollector.h:
- style/SelectorMatchingState.h: Added.
- style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::invalidateIfNeeded):
(WebCore::Style::Invalidator::invalidateStyleForTree):
(WebCore::Style::Invalidator::invalidateStyleForDescendants):
(WebCore::Style::Invalidator::invalidateStyle):
(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):
- style/StyleInvalidator.h:
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::styleForElement):
(WebCore::Style::Resolver::pseudoStyleForElement):
- style/StyleResolver.h:
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::SharingResolver):
(WebCore::Style::SharingResolver::styleSharingCandidateMatchesRuleSet const):
- style/StyleSharingResolver.h:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::makeResolutionContext):
(WebCore::Style::TreeResolver::makeResolutionContextForPseudoElement):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::popParent):
- style/StyleTreeResolver.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::resolveCustomStyle):
- 6:57 AM Changeset in webkit [285629] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Do not set prior context on the line-break iterator when when crossing layout box boundary
https://bugs.webkit.org/show_bug.cgi?id=232979
Reviewed by Antti Koivisto.
This is the case when the bidi boundary may also be a valid soft wrap opportunity. We normally set
a "prior context" before calling into the nextBreakablePosition to eliminate the need for constructing
continuous text content by extracting strings from different layout boxes. However in the bidi boundary case, we know
that the text content belongs to only one layout box.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity): This will eventually be replaced with the "breaking reason flag" optimization i.e. bidi boundary vs. soft wrap opportunity.
- 6:55 AM Changeset in webkit [285628] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add support for non-initial text-alignment values on bidi content
https://bugs.webkit.org/show_bug.cgi?id=232968
Reviewed by Antti Koivisto.
The text-align property "moves" the root inline box as a whole and not the individual runs.
This patch ensures that this offset value is taken into account when computing the horizontal position for the visually ordered runs too.
(Note that this offset value is baked into the logical position of the runs, see LineBox::logicalRectForTextRun.)
- layout/formattingContexts/inline/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::createBoxesAndUpdateGeometryForLineContent):
- 6:55 AM Changeset in webkit [285627] by
-
- 2 edits in trunk/Tools
[Flatpak] http server is not properly tear down
https://bugs.webkit.org/show_bug.cgi?id=221554
Patch by Philippe Normand <pnormand@igalia.com> on 2021-11-11
Reviewed by Adrian Perez de Castro.
In Linux when the layout tests are manually interrupted it might lead to Apache not being
cleanly stopped. On the next run it would then fail to start, usually failing to setup its
'scoreboard' with SHM. The proposed solution is to look for stale SHM segments, eg. segments
allocated but not attached to any process, and remove them, before starting the Apache
process.
- Scripts/webkitpy/layout_tests/servers/apache_http_server.py:
(LayoutTestApacheHttpd._remove_stale_shm_segments):
(LayoutTestApacheHttpd._spawn_process):
- 6:54 AM Changeset in webkit [285626] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add support for missing inline item types in buildBidiParagraph
https://bugs.webkit.org/show_bug.cgi?id=232964
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::buildBidiParagraph):
- 6:32 AM Changeset in webkit [285625] by
-
- 2 edits in trunk/Tools
[GTK][WPE] webkit-flatpak-run-nightly infinite self-call loop
https://bugs.webkit.org/show_bug.cgi?id=230400
Patch by Philippe Normand <pnormand@igalia.com> on 2021-11-11
Reviewed by Adrian Perez de Castro.
Port the changes landed in r272712 for the webkit-bwrap script, which we can't directly use
within webkit-flatpak-run-nightly because it's nice to keep it as standalone as possible.
- Scripts/webkit-flatpak-run-nightly:
- 4:24 AM Changeset in webkit [285624] by
-
- 21 edits in trunk
[CSS Cascade Layers] Support 'revert-layer' value
https://bugs.webkit.org/show_bug.cgi?id=232236
<rdar://problem/84879369>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/revert-layer-008-expected.txt:
- web-platform-tests/css/css-will-change/parsing/will-change-invalid:
Source/WebCore:
'revert-layer' keyword rolls back the value computed by the cascade to the one coming from the layer below.
https://www.w3.org/TR/css-cascade-5/#revert-layer
- css/CSSPrimitiveValue.h:
- css/CSSValue.cpp:
(WebCore::CSSValue::isRevertLayerValue const):
- css/CSSValue.h:
- css/CSSValueKeywords.in:
Add a 'revert-layer' keyword.
- css/parser/CSSParserIdioms.h:
(WebCore::isCSSWideKeyword):
Make the keyword CSS-wide.
(WebCore::isValidCustomIdentifier):
- style/CascadeLevel.h:
(WebCore::Style::operator--):
Add decrement operator.
(WebCore::Style::allCascadeLevels): Deleted.
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::addElementStyleProperties):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):
Pass the casdade layer priority so it is available when resolving the cascade.
(WebCore::Style::ElementRuleCollector::addElementInlineStyleProperties):
Add a bit indicating if the properties came from a style attribute. This is needed for correct resolution of !important with cascade layers.
- style/ElementRuleCollector.h:
- style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::PropertyCascade):
Specify cascade levels in terms of the maximum level instead of an OptionSet of levels. This makes things simpler.
Make it a member.
Provide maximum cascade layer priority when constructing rollback cascade.
(WebCore::Style::PropertyCascade::buildCascade):
(WebCore::Style::PropertyCascade::setPropertyInternal):
(WebCore::Style::PropertyCascade::addMatch):
Ignore properties with cascade level higher than the maximum.
(WebCore::Style::PropertyCascade::addImportantMatches):
Take cascade layers into accouny when sorting important matches.
(WebCore::Style::PropertyCascade::propertyCascadeForRollback const): Deleted.
Move rollback cascades to Builder.
- style/PropertyCascade.h:
(WebCore::Style::PropertyCascade::maximumCascadeLevel const):
(WebCore::Style::PropertyCascade::maximumCascadeLayerPriority const):
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::Builder):
Specify cascade levels in terms of the maximum level instead of an OptionSet of levels.
(WebCore::Style::Builder::applyCascadeProperty):
(WebCore::Style::Builder::applyProperty):
Construct rollback cascade for 'revert-layer' case too. This is similar to 'revert'.
(WebCore::Style::Builder::ensureRollbackCascadeForRevert):
(WebCore::Style::Builder::ensureRollbackCascadeForRevertLayer):
Make the rollback cascades and store them into a HashMap.
(WebCore::Style::Builder::makeRollbackCascadeKey):
- style/StyleBuilder.h:
- style/StyleBuilderState.h:
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::styleForPage):
(WebCore::Style::Resolver::applyMatchedProperties):
Adopt to the new interface.
LayoutTests:
- 1:42 AM Changeset in webkit [285623] by
-
- 9 edits1 add in trunk
[css-flexbox] Improve & simplify the flex-basis computation
https://bugs.webkit.org/show_bug.cgi?id=230755
Reviewed by Alan Bujtas.
PerformanceTests:
New test case to catch performance regressions with lots of nested (specially column) flexboxes.
- Layout/nested-flexbox.html: Added.
Source/WebCore:
The flex basis computation has some special cases that require us to size the flex items "as if" they had the
length specified by flex-basis property as their main size (either width or height depending on the flex direction).
In order to do that a mechanism similar to the overriding sizes was implemented, but in this case, we're doing
an overriding of the style. That overriding style is used during both layout and preferred width computations if
present.
A new RAII class called ScopedFlexBasisAsChildMainSize sets the overriding before computing the flex base size and
clears it just after the calculations. This is done in the computeFlexBaseSizeForChild() method that was renamed
from computeInnerFlexBaseSizeForChild() as it fits better with the terminology used in the specs.
Flex basis computation is already covered by the WPT test suite, there is no need for extra tests. This patch
fixes the only flex-basis-* test case that was not passing apart from another one.
The original patch was causing severe regressions in sites doing heavy usage of nested flexboxes like twitter.com or
gmail.com because it was removing some caching that is needed in order not to do way too many layouts. The new one does
not have this issue. A new perf test was added in order to detect those eventual regressions. In my laptop the test
achieves 13.5k runs/s while with the original patch is only capable of doing 6k runs/s.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computePreferredLogicalWidths): Use the overriding style if present.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::overridingLogicalHeightLength const): Added.
(WebCore::RenderBox::setOverridingLogicalHeightLength): Added.
(WebCore::RenderBox::hasOverridingLogicalHeightLength const): Added.
(WebCore::RenderBox::clearOverridingLogicalHeightLength): Added.
(WebCore::RenderBox::overridingLogicalWidthLength const): Added.
(WebCore::RenderBox::setOverridingLogicalWidthLength): Added.
(WebCore::RenderBox::hasOverridingLogicalWidthLength const): Added.
(WebCore::RenderBox::clearOverridingLogicalWidthLength): Added.
(WebCore::RenderBox::computeLogicalWidthInFragment const): Use the overriding style if present.
(WebCore::RenderBox::computeLogicalHeight const): Use the overriding style if present.
- rendering/RenderBox.h:
- rendering/RenderFlexibleBox.cpp:
(WebCore::ScopedFlexBasisAsChildMainSize::ScopedFlexBasisAsChildMainSize): Sets the overriding style.
(WebCore::ScopedFlexBasisAsChildMainSize::~ScopedFlexBasisAsChildMainSize): Clears the overriding style.
(WebCore::RenderFlexibleBox::computeFlexBaseSizeForChild): Renamed from computeInnerFlexBaseSizeForChild().
(WebCore::RenderFlexibleBox::maybeCacheChildMainIntrinsicSize): Refactored from code from
computeInnerFlexBaseSizeForChild().
(WebCore::RenderFlexibleBox::constructFlexItem): Moved code to maybeCacheChildMainIntrinsicSize().
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Deleted.
- rendering/RenderFlexibleBox.h:
LayoutTests:
- TestExpectations: Unskipped a couple of tests that work fine now.
- 12:21 AM Changeset in webkit [285622] by
-
- 6 edits in trunk/Source/WebCore
Use narrower types for style scope ordinal and cascade layer priority
https://bugs.webkit.org/show_bug.cgi?id=232797
Reviewed by Alan Bujtas.
This shrinks critical ElementRuleCollector data structures like MatchedRule.
64k layers ought to be enough for anybody (and 256 scopes).
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::matchSlottedPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRulesForScope):
Check the scope depth limits.
- style/ElementRuleCollector.h:
- style/RuleSet.h:
(WebCore::Style::RuleSet::cascadeLayerPriorityForIdentifier const):
(WebCore::Style::RuleSet::cascadeLayerPriorityFor const):
Add a type alias and make it uint16_t.
- style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::updateCascadeLayerPriorities):
- style/StyleScopeOrdinal.h:
(WebCore::Style::operator++):
(WebCore::Style::operator--):
Use int8_t. No realistic case requires more than a handful.
- 12:08 AM Changeset in webkit [285621] by
-
- 16 edits in trunk
Default computed value for "content" should be "none" for ::before and ::after
https://bugs.webkit.org/show_bug.cgi?id=232932
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-content/computed-value-expected.txt:
- web-platform-tests/css/css-pseudo/marker-computed-content-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
Source/WebCore:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::contentToCSSValue):
LayoutTests:
- platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/glib/svg/css/getComputedStyle-basic-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/ios/svg/css/getComputedStyle-basic-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/mac/svg/css/getComputedStyle-basic-expected.txt:
Nov 10, 2021:
- 10:12 PM Changeset in webkit [285620] by
-
- 7 edits2 adds in trunk
REGRESSION(r283863):
<attachment>with a longactiondo not render correctly
https://bugs.webkit.org/show_bug.cgi?id=232645
<rdar://problem/84558377>
Reviewed by Myles C. Maxfield.
Source/WebCore:
Unlike the
DisplayListconcept in WebCore, when usingCGContextDelegateRef(which is
whatDrawGlyphsRecorderuses on Cocoa platforms) the callbacks for each action are only
told about the current state of all-the-things at the time of that action, not each of the
corresponding API-level calls that resulted in that final state (e.g. whereDisplayList
would see separatescaleandrotatecalls,CGContextDelegateRefwould only be able to
get the final calculated CTM). In order forDrawGlyphsRecorderto (re)generate WebCore
calls, it needs to have information about the starting state of theCGContextbefore any
actions are performed so it can at least derive some diff/idea of what happened.
This is further complicated by the fact that when drawing text CG separates the state of
all-the-things into two: the CTM and the text matrix. WebKit does not have this separation,
however, so it needs to combine the two into a single CTM, but only when dealing with text.
A new path (
drawNativeText) was added in r283863 that allowsDrawGlyphsRecorderto be
used directly with native text-related objects (e.g.CTLineRef) instead of objects/data
derived in WebCore. A result of this on Cocoa platforms is that now a singledrawNativeText
can result in multiplerecordDrawGlyphsinvocations if theCTLineRefcontains multiple
"groupings" of glyphs to draw (e.g. if a line is truncated with a "..." in the middle then
the three groups will be the remaining text before, the "..." and the remaining text after).
AFAICT before this new path it was never the case that the text matrix had a translate, only
rotate/skew/etc., meaning that whenDrawGlyphsRecorderneeded to convert from the CG's
computed glyph positions back into WebCore's glyph advances it could use the text matrix
since there would be no translation. With this new path, however, if adrawNativeTextcall
results in multiplerecordDrawGlyphsthen there will be a translation in the text matrix
to account for that. As such, we end up double counting the text matrix: once when we
(re)generate the CTM to give to WebCore and _again_ when we (re)compute the WebCore advances.
Since we've already counted the text matrix once, we don't need to do it again. Also, by
this point we've already modified WebCore's CTM, so we only really need to account for the
difference from the original position when we first calleddrawNativeText. As such, we
just need invert what was used to generate CG positions from WebCore advances.
Note that in the name of expediently fixing a regression, this change only considers
horizontal text as<attachment>are never drawn vertically. Fixing vertical text will be
done in a followup <https://webkit.org/b/232917>.
Test: fast/attachment/attachment-truncated-action.html
- platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:
(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):
- platform/graphics/FontCascade.h:
- platform/graphics/coretext/FontCascadeCoreText.cpp:
(WebCore::fillVectorWithHorizontalGlyphPositions):
(WebCore::fillVectorWithVerticalGlyphPositions):
Add a comment indicating the related nature of these functions withDrawGlyphsRecorder::recordDrawGlyphs.
Drive-by:fillVectorWithHorizontalGlyphPositionsis only called by this class, so don't export it.
LayoutTests:
- fast/attachment/attachment-truncated-action.html: Added.
- fast/attachment/attachment-truncated-action-expected-mismatch.html: Added.
- TestExpectations:
- platform/ios/TestExpectations:
- 9:03 PM Changeset in webkit [285619] by
-
- 5 edits in trunk
We should not kill all WebContent processes whenever the WebAuthn process crashes
https://bugs.webkit.org/show_bug.cgi?id=232970
<rdar://83941760>
Reviewed by Geoff Garen.
Source/WebKit:
We should not kill all WebContent processes whenever the WebAuthn process crashes. This is overly aggressive. We should
instead do like for the network process and have the WebProcess re-initiate the connection to the WebAuthn process when
it's gone.
No new tests, updated existing API test.
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:
(WebKit::WebAuthnProcessProxy::webAuthnProcessCrashed):
Do not terminate all WebProcesses when the WebAuthn process crashes.
- WebProcess/WebAuthentication/WebAuthnProcessConnection.cpp:
(WebKit::WebAuthnProcessConnection::didClose):
Make sure we call WebProcess::webAuthnProcessConnectionClosed() when the WebProcess
loses its connection to the WebAuthn process. This makes sure we clear m_webAuthnProcessConnection
and properly re-initiate a new WebAuthn process connection the next time WebProcess::ensureWebAuthnProcessConnection()
is called.
Tools:
Update API test coverage to reflect behavior change.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 8:31 PM Changeset in webkit [285618] by
-
- 19 edits in trunk
[GPU Process] Make CSSFilter be a composite of FilterFunctions
https://bugs.webkit.org/show_bug.cgi?id=232469
rdar://85047148
Reviewed by Simon Fraser.
Source/WebCore:
In this patch, the CSS reference filter is built as an SVGFilter and it
is kept as a FilterFunction in the CSSFilter functions' list. The Filter
associated with the FilterEffects of the referenced filter will be an
SVGFilter instead of the root CSSFilter. This will allow having color
spacing for the referenced filters different from the color spacing of
CSSFilter.
Also this patch makes a single function for building the primitives of
the SVGFilter instead of having two functions.
To allow operating through the SVGFilter as a FilterFunction owned by
CSSFilter, the SVGFilter will have a pointer to its lastEffect.
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- platform/graphics/filters/Filter.h:
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::collectEffects): Deleted.
(WebCore::FilterEffect::totalNumberOfEffectInputs const): Deleted.
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::numberOfEffectInputs const):
(WebCore::FilterEffect::setMaxEffectRect):
(WebCore::FilterEffect::outsets const): Deleted.
- platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::outsets const):
(WebCore::FilterFunction::clearResult):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::m_hasFilterThatShouldBeRestrictedBySecurityOrigin):
(WebCore::createBlurEffect):
(WebCore::createBrightnessEffect):
(WebCore::createContrastEffect):
(WebCore::createDropShadowEffect):
(WebCore::createGrayScaleEffect):
(WebCore::createHueRotateEffect):
(WebCore::createInvertEffect):
(WebCore::createOpacityEffect):
(WebCore::createSaturateEffect):
(WebCore::createSepiaEffect):
(WebCore::createSVGFilter):
(WebCore::setupLastEffectProperties):
(WebCore::CSSFilter::buildFilterFunctions):
(WebCore::CSSFilter::inputContext):
(WebCore::CSSFilter::allocateBackingStoreIfNeeded):
(WebCore::CSSFilter::lastEffect):
(WebCore::CSSFilter::determineFilterPrimitiveSubregion):
(WebCore::CSSFilter::clearIntermediateResults):
(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::output):
(WebCore::CSSFilter::setSourceImageRect):
(WebCore::CSSFilter::outputRect):
(WebCore::CSSFilter::outsets const):
(WebCore::m_sourceGraphic): Deleted.
(WebCore::CSSFilter::buildReferenceFilter): Deleted.
(WebCore::CSSFilter::build): Deleted.
(WebCore::CSSFilter::output const): Deleted.
(WebCore::CSSFilter::setMaxEffectRects): Deleted.
(WebCore::CSSFilter::outputRect const): Deleted.
- rendering/CSSFilter.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupFilters):
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::buildFilter):
(WebCore::RenderLayerFilters::beginFilterEffect):
(WebCore::RenderLayerFilters::applyFilterEffect):
- rendering/RenderLayerFilters.h:
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::buildPrimitives const): Deleted.
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::outsets const):
(WebCore::SVGFilter::clearResult):
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::setupBuiltinEffects):
(WebCore::colorInterpolationForElement):
(WebCore::collectEffects):
(WebCore::totalNumberFilterEffects):
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::SVGFilterBuilder): Deleted.
- svg/graphics/filters/SVGFilterBuilder.h:
LayoutTests:
Unskip filter hidpi layout tests.
- 6:52 PM Changeset in webkit [285617] by
-
- 8 edits in trunk
[WebAuthn] Unify _WKWebAuthenticationPanel SPI and AuthenticatorCoordinator's ClientDataJson generation
https://bugs.webkit.org/show_bug.cgi?id=232965
<rdar://problem/85268216>
Reviewed by Brent Fulgham.
Source/WebCore:
The _WKWebAuthenticationPanel SPI and AuthenticatorCoordinator use different methods of generating
clientDataJson, which results in strings with the keys in a different order. This change abstracts
the clientDataJson generation out of AuthenticatorCoordinator and into WebAuthenticationUtils.
- Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinator::create const):
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
(WebCore::AuthenticatorCoordinatorInternal::produceClientDataJson): Deleted.
(WebCore::AuthenticatorCoordinatorInternal::produceClientDataJsonHash): Deleted.
- Modules/webauthn/WebAuthenticationUtils.cpp:
(WebCore::buildClientDataJson):
(WebCore::buildClientDataJsonHash):
- Modules/webauthn/WebAuthenticationUtils.h:
Source/WebKit:
The _WKWebAuthenticationPanel SPI and AuthenticatorCoordinator use different methods of generating
clientDataJson, which results in strings with the keys in a different order. This causes problems
because when generating asserts via ASC ui, the hash signed and the client data json used to generate
that hash are different from the client data json returned to js.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(produceClientDataJson):
Tools:
Update api tests to reflect different clientDataJson format from WebAuthenticationUtils
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 6:20 PM Changeset in webkit [285616] by
-
- 1 copy in tags/Safari-613.1.8
Tag Safari-613.1.8.
- 4:47 PM Changeset in webkit [285615] by
-
- 42 edits16 deletes in trunk
Remove non-standard -webkit-border-fit CSS property
https://bugs.webkit.org/show_bug.cgi?id=229564
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
Source/WebCore:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator BorderFit const): Deleted.
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::adjustForBorderFit const): Deleted.
(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded): Deleted.
- rendering/RenderBlockFlow.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInFragment const):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
- rendering/style/RenderStyle.cpp:
(WebCore::rareNonInheritedDataChangeRequiresRepaint):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::borderFit const): Deleted.
(WebCore::RenderStyle::setBorderFit): Deleted.
(WebCore::RenderStyle::initialBorderFit): Deleted.
- rendering/style/RenderStyleConstants.cpp:
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
Source/WebInspectorUI:
- UserInterface/Models/CSSKeywordCompletions.js:
Tools:
- LayoutReloaded/misc/LFC-passing-tests.txt:
LayoutTests:
Remove relevant tests and update test expectations.
- TestExpectations:
- fast/block/border-fit-with-right-alignment-expected.html: Removed.
- fast/block/border-fit-with-right-alignment.html: Removed.
- fast/borders/border-fit-2-expected.txt: Removed.
- fast/borders/border-fit-2.html: Removed.
- fast/borders/border-fit-expected.txt: Removed.
- fast/borders/border-fit.html: Removed.
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/getComputedStyle/resources/property-names.js:
- fast/multicol/widow-relayout-with-border-fit-expected.txt: Removed.
- fast/multicol/widow-relayout-with-border-fit.html: Removed.
- fast/repaint/border-fit-lines-expected.html: Removed.
- fast/repaint/border-fit-lines.html: Removed.
- platform/glib/fast/borders/border-fit-expected.txt: Removed.
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/glib/svg/css/getComputedStyle-basic-expected.txt:
- platform/gtk/fast/borders/border-fit-2-expected.png: Removed.
- platform/gtk/fast/borders/border-fit-expected.png: Removed.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/TestExpectations:
- platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/svg/css/getComputedStyle-basic-expected.txt:
- platform/mac/TestExpectations:
- platform/mac/fast/borders/border-fit-2-expected.png: Removed.
- platform/mac/fast/borders/border-fit-expected.png: Removed.
- platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/mac/svg/css/getComputedStyle-basic-expected.txt:
- platform/win/fast/borders/border-fit-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- svg/css/getComputedStyle-basic-expected.txt:
- 4:45 PM Changeset in webkit [285614] by
-
- 1 copy in tags/Safari-613.1.7.1
Tag Safari-613.1.7.1.
- 4:45 PM Changeset in webkit [285613] by
-
- 1 delete in tags/Safari-613.1.7.1
Delete tag.
- 4:26 PM Changeset in webkit [285612] by
-
- 6 edits in trunk/Source/WebKit
Block sandbox access to consume mach extensions
https://bugs.webkit.org/show_bug.cgi?id=232254
<rdar://problem/84622169>
Reviewed by Brent Fulgham.
Block sandbox access to consume mach extensions that are not issued by WebKit.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 4:19 PM Changeset in webkit [285611] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed internal build fix after r285444
- Platform/spi/Cocoa/AppleMediaServicesUISPI.h:
Make sure that
AppleMediaServicesSPI.his always included.
- Platform/spi/Cocoa/AppleMediaServicesSPI.h:
Add missing
;.
- 4:14 PM Changeset in webkit [285610] by
-
- 22 edits2 adds in trunk
Add support for marking an
<input>as being autofilled with obscured content
https://bugs.webkit.org/show_bug.cgi?id=232903
<rdar://problem/84276999>
Reviewed by Aditya Keerthi.
Source/WebCore:
Test: fast/forms/auto-fill-button/input-auto-filled-and-obscured.html
- html/HTMLInputElement.h:
(WebCore::HTMLInputElement::isAutoFilledAndObscured const): Added.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::reset):
(WebCore::HTMLInputElement::setAutoFilledAndObscured): Added.
Add a new boolean state member that is used by injected bundle code (and tests).
- css/CSSSelector.h:
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText const):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
- css/SelectorCheckerTestFunctions.h:
(WebCore::isAutofilledAndObscured): Added.
- css/SelectorPseudoClassAndCompatibilityElementMap.in:
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::addPseudoClassType):
Create a new-webkit-autofill-and-obscuredpseudo-class.
- css/html.css:
(input:-webkit-autofill-and-obscured): Added.
(input:-webkit-autofill, input:-webkit-autofill-strong-password, input:-webkit-autofill-strong-password-viewable, input:-webkit-autofill-and-obscured): Renamed frominput:-webkit-autofill, input:-webkit-autofill-strong-password, input:-webkit-autofill-strong-password-viewable.
Use-webkit-autofill-and-obscuredto change the<input>text into non-interactable discs.
- testing/Internals.idl:
- testing/Internals.h:
- testing/Internals.cpp:
(WebCore::Internals::setAutoFilledAndObscured): Added.
Source/WebKit:
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilledAndObscured const): Added.
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilledAndObscured): Added.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle HTMLInputElementIsAutoFilledAndObscured]): Added.
(-[WKWebProcessPlugInNodeHandle setHTMLInputElementIsAutoFilledAndObscured:]): Added.
- WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
- WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
(WKBundleNodeHandleSetHTMLInputElementAutoFilledAndObscured): Added.
Expose a way to get/set the CSS-webkit-autofill-and-obscuredpseudo-class on an<input>.
LayoutTests:
- fast/forms/auto-fill-button/input-auto-filled-and-obscured.html: Added.
- fast/forms/auto-fill-button/input-auto-filled-and-obscured-expected.html: Added.
- platform/win/TestExpectations:
- 4:03 PM Changeset in webkit [285609] by
-
- 16 edits2 adds in trunk
Refactor some image overlay logic to work with built-in media controls
https://bugs.webkit.org/show_bug.cgi?id=232899
rdar://83173597
Reviewed by Antoine Quint and Tim Horton.
Source/WebCore:
Make various minor adjustments to allow built-in modern media controls to play well with image overlay content.
See below for more details.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::mediaControlsContainerClassName):
- Modules/mediacontrols/MediaControlsHost.h:
Add a helper function to grab the "media-controls-container" class name, which is used for the
divelement
containing built-in modern media controls. This is used below to identify existing media control container
elements when determining where to inject the image overlay root container.
- Modules/mediacontrols/MediaControlsHost.idl:
- Modules/modern-media-controls/controls/controls-bar.css:
(.controls-bar):
Z-order the media controls bar (which contains all interactible media control elements) above any image overlay
content that may coexist in the same shadow root.
- Modules/modern-media-controls/controls/media-controls.css:
(:host):
Remove
-webkit-user-select: none;here. This was added to prevent the iOS magnifier UI from showing up when
long pressing inside a video element; we can achieve the same effect without applying this property over the
entire host element by instead changing selection logic in WebKit2.
(.media-controls):
Push the
-webkit-user-select: none;property down into the media control children, instead of on
.media-controlsitself.
(.media-controls > *):
- Modules/modern-media-controls/media/media-controller.js:
(MediaController):
Change this to ask for
mediaControlsContainerClassNamefrom the host, instead of hard-coding it to
"media-controls-container". From code inspection, there does not seem to be any codepath that passes in an
undefinedhost, except for the modern media controls layout tests (which still pass after this adjustment).
- html/HTMLElement.cpp:
(WebCore::HTMLElement::isImageOverlayText):
(WebCore::HTMLElement::removeImageOverlaySoonIfNeeded):
Adjust these helper methods to work in the case where the image overlay container is hosted underneath the media
controls container.
(WebCore::HTMLElement::updateWithTextRecognitionResult):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::playInternal):
If needed, remove the image overlay when seeking or playing media.
Source/WebKit:
See WebCore/ChangeLog for more details.
- Shared/ios/InteractionInformationAtPosition.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(canAttemptTextRecognitionForNonImageElements):
Add a new WebKitAdditions integration point.
(-[WKContentView imageAnalysisGestureDidBegin:]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::selectionPositionInformation):
Adjust for the changes to the built-in media controls stylesheet by adding logic to prevent the magnifier from
showing up when long pressing (or long pressing inside) video elements on iOS.
LayoutTests:
Adjust a modern media controls test, such that it no longer verifies that the
-webkit-user-selectCSS property
is none on an audio element; in lieu of this, we add a new layout test inediting/selectionto verify that
long pressing over the timestamp of an audio element does not trigger text selection.
- editing/selection/ios/do-not-allow-text-selection-in-audio-element-expected.txt: Added.
- editing/selection/ios/do-not-allow-text-selection-in-audio-element.html: Added.
- media/modern-media-controls/audio/audio-controls-styles-expected.txt:
- media/modern-media-controls/audio/audio-controls-styles.html:
- 2:49 PM Changeset in webkit [285608] by
-
- 2 edits in trunk/Tools
[Cocoa] Build WebGPU on our bots
https://bugs.webkit.org/show_bug.cgi?id=232924
Reviewed by Dean Jackson and Alex Christensen.
Simply tell the build script about the existence of WebGPU.
- Scripts/build-webkit:
- 12:50 PM Changeset in webkit [285607] by
-
- 2 edits in trunk/Tools
Unreviewed, reverting r285603.
https://bugs.webkit.org/show_bug.cgi?id=232963
broke the watchOS build
Reverted changeset:
"[Cocoa] Build WebGPU on our bots"
https://bugs.webkit.org/show_bug.cgi?id=232924
https://commits.webkit.org/r285603
- 12:30 PM Changeset in webkit [285606] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Remove access to sysctl properties
https://bugs.webkit.org/show_bug.cgi?id=232329
<rdar://problem/84679628>
Reviewed by Darin Adler.
Based on telemetry, remove access to unused sysctl properties in the GPU process' sandbox on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 12:26 PM Changeset in webkit [285605] by
-
- 2 edits in trunk/Source/WebInspectorUI
WebInspectorUI needs to support InstallAPI
https://bugs.webkit.org/show_bug.cgi?id=232955
Reviewed by BJ Burg.
- Configurations/WebInspectorUIFramework.xcconfig:
- 12:10 PM Changeset in webkit [285604] by
-
- 5 edits4 deletes in trunk
The cssText property for a computed style should return an empty string
https://bugs.webkit.org/show_bug.cgi?id=232943
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
Source/WebCore:
See https://github.com/w3c/csswg-drafts/issues/1033. This was an annoying test to fail because the output
would require a rebaseline every time we'd change something visible in the computed style.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::cssText const):
LayoutTests:
Remove all platform-specific expectations for the WPT css/cssom/cssstyledeclaration-csstext.html since the
assertion that would fail differently on various platforms now passes everywhere.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Removed.
- platform/ios/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Removed.
- 11:53 AM Changeset in webkit [285603] by
-
- 2 edits in trunk/Tools
[Cocoa] Build WebGPU on our bots
https://bugs.webkit.org/show_bug.cgi?id=232924
Reviewed by Dean Jackson.
Simply tell the build script about the existence of WebGPU.
- Scripts/build-webkit:
- 11:40 AM Changeset in webkit [285602] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] ubidi expects non-preserved new lines as whitespace characters
https://bugs.webkit.org/show_bug.cgi?id=232921
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::replaceNonPreservedNewLineCharactersAndAppend):
(WebCore::Layout::buildBidiParagraph):
- 11:37 AM Changeset in webkit [285601] by
-
- 4 edits in trunk
Coding style for inner namespaces is should be simplified to not indented
https://bugs.webkit.org/show_bug.cgi?id=232073
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-11-10
Reviewed by Antti Koivisto.
.:
- .clang-format:
Do not indent contents of inner namespaces, match current code.
Websites/webkit.org:
- code-style.md:
Simplify coding style to match the existing code: contents of inner namespaces
should not be indented.
- 11:37 AM Changeset in webkit [285600] by
-
- 5 edits in branches/safari-612-branch/Source
Cherry-pick r285236. rdar://problem/83950623
This reverts r285508.
- 11:30 AM Changeset in webkit [285599] by
-
- 5 edits in trunk
Implement serialization and deserialization of redirect and modify headers actions for WKContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=232901
Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-10
Reviewed by Timothy Hatcher.
Source/WebCore:
I serialized each type so that the first 4 bytes are the total serialized length of that type.
The next time we increment CurrentContentRuleListFileVersion I intend to do that for all existing action serializations.
I used UTF-8 encoding on disk because I anticipate most of the use here will be ASCII because the strings will
either go into URLs or into HTTP headers, both of which use only 8-bit characters when actually used.
URLTransformActions will likely have many cases that don't have all fields, so I optimized by adding one byte
with 8 booleans indicating whether the field is present or not. This way, I don't need 32 bytes of 0's for the
unused fields' serializations.
Future optimization can be done by adding WTF::String::utf8Length() and WTF::String::utf8EncodeIntoBuffer(Span<uint8_t>)
but that will just reduce copies and allocations during compiling, not the serialized format.
Another future optimization that could be done is to use null terminated strings instead of a 4 byte size before each string.
That would reduce the binary size considerably.
- contentextensions/ContentExtensionActions.cpp:
(WebCore::ContentExtensions::append):
(WebCore::ContentExtensions::uncheckedAppend):
(WebCore::ContentExtensions::deserializeLength):
(WebCore::ContentExtensions::deserializeUTF8String):
(WebCore::ContentExtensions::writeLengthToVectorAtOffset):
(WebCore::ContentExtensions::ModifyHeadersAction::serialize const):
(WebCore::ContentExtensions::ModifyHeadersAction::deserialize):
(WebCore::ContentExtensions::ModifyHeadersAction::serializedLength):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::serialize const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::deserialize):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::serializedLength):
(WebCore::ContentExtensions::RedirectAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::serializedLength):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::serializedLength):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::serialize const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::deserialize):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::serializedLength):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::serialize const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::deserialize):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::serializedLength):
- contentextensions/ContentExtensionActions.h:
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::AppendOperation::isolatedCopy const): Deleted.
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::AppendOperation::operator== const): Deleted.
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::SetOperation::isolatedCopy const): Deleted.
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::SetOperation::operator== const): Deleted.
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::RemoveOperation::isolatedCopy const): Deleted.
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::RemoveOperation::operator== const): Deleted.
(WebCore::ContentExtensions::RedirectAction::ExtensionPathAction::isolatedCopy const): Deleted.
(WebCore::ContentExtensions::RedirectAction::ExtensionPathAction::operator== const): Deleted.
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::isolatedCopy const): Deleted.
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::operator== const): Deleted.
(WebCore::ContentExtensions::RedirectAction::URLAction::isolatedCopy const): Deleted.
(WebCore::ContentExtensions::RedirectAction::URLAction::operator== const): Deleted.
Tools:
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
- 11:23 AM Changeset in webkit [285598] by
-
- 9 edits2 deletes in branches/safari-612-branch
Revert r285519. rdar://problem/83971417
This reverts r285519.
- 11:21 AM Changeset in webkit [285597] by
-
- 27 edits in trunk
[GPU Process] Make SVGFilter and CSSFilter work in the same coordinates system
https://bugs.webkit.org/show_bug.cgi?id=232457
rdar://85035379
Reviewed by Simon Fraser.
Source/WebCore:
Currently SVGFilter sets the following members of Filter
- AffineTransform m_absoluteTransform: this is the scaling part from the transformation from the target element to the outermost coordinate system
- FloatSize m_filterResolution: this is the clamping scale if the size of the result ImageBuffers exceeds MaxClampedArea
And the CSSFilter sets the following member of Filter:
- float m_filterScale: this is the document().deviceScaleFactor()
The discrepancy happens also when creating the result ImageBuffers. For
SVGFilter, we create them with scaleFactor = 1. This means the logicalSize
of the ImageBuffer is equal to its backendSize. But for CSSFilter we
create them with scaleFactor = m_filterScale. This means the logicalSize
!= backendSize in this case.
We need to unify the coordinates system for both filters. We need also to
replace the three members by a single FloatSize called "m_filterScale".
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:
(WebCore::FilterEffectRendererCoreImage::renderToImageBuffer):
(WebCore::FilterEffectRendererCoreImage::destRect const):
- platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::platformApplySoftware):
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::platformApplySoftware):
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::determineAbsolutePaintRect):
(WebCore::FEDropShadow::platformApplySoftware):
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::calculateKernelSize):
(WebCore::FEGaussianBlur::platformApplySoftware):
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::determineAbsolutePaintRect):
(WebCore::FEMorphology::platformApplySoftware):
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::determineAbsolutePaintRect):
(WebCore::FEOffset::platformApplySoftware):
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::fillRegion const):
(WebCore::FETurbulence::platformApplySoftware):
- platform/graphics/filters/Filter.h:
(WebCore::Filter::filterScale const):
(WebCore::Filter::setFilterScale):
(WebCore::Filter::sourceImageRect const):
(WebCore::Filter::setSourceImageRect):
(WebCore::Filter::filterRegion const):
(WebCore::Filter::setFilterRegion):
(WebCore::Filter::scaledByFilterScale const):
(WebCore::Filter::sourceImage):
(WebCore::Filter::setSourceImage):
(WebCore::Filter::Filter):
(WebCore::Filter::filterResolution const): Deleted.
(WebCore::Filter::setFilterResolution): Deleted.
(WebCore::Filter::absoluteTransform const): Deleted.
(WebCore::Filter::isSVGFilter const): Deleted.
(WebCore::Filter::isCSSFilter const): Deleted.
(WebCore::Filter::scaledByFilterResolution const): Deleted.
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::determineFilterPrimitiveSubregion):
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::imageBufferResult):
(WebCore::FilterEffect::unmultipliedResult):
(WebCore::FilterEffect::premultipliedResult):
(WebCore::FilterEffect::copyImageBytes const):
(WebCore::FilterEffect::convertPixelBufferToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
(WebCore::FilterEffect::createImageBufferResult):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::determineAbsolutePaintRect):
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::CSSFilter):
(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::build):
(WebCore::CSSFilter::allocateBackingStoreIfNeeded):
(WebCore::CSSFilter::determineFilterPrimitiveSubregion):
(WebCore::CSSFilter::clearIntermediateResults):
(WebCore::CSSFilter::setSourceImageRect):
(WebCore::CSSFilter::outputRect const):
- rendering/CSSFilter.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::buildFilter):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
- rendering/svg/RenderSVGResourceFilter.h:
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::determineAbsolutePaintRect):
(WebCore::FEImage::platformApplySoftware):
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::SVGFilter):
(WebCore::SVGFilter::scaledByFilterScale const):
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::scaledByFilterResolution const): Deleted.
- svg/graphics/filters/SVGFilter.h:
LayoutTests:
Skip the hidpi reference filter tests till we connect the FilterEffects
to the correct parent Filter.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
Remove unnecessary un-skipping for conic-gradients tests since they were
not skipped globally.
- 11:15 AM Changeset in webkit [285596] by
-
- 2 deletes in branches/safari-612-branch/Source
Remove conflict files that should not have been checked in. rdar://problem/83430097
- 11:15 AM Changeset in webkit [285595] by
-
- 1 edit in branches/safari-612-branch/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
Unreviewed build fix. rdar://83863266
Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2919:31: error: no member named 'userSelectIncludingInert' in 'WebCore::RenderStyle'
- 11:14 AM Changeset in webkit [285594] by
-
- 24 edits in trunk
Add basic support for launching CaptivePortalMode WebProcesses
https://bugs.webkit.org/show_bug.cgi?id=232737
<rdar://84473037>
Reviewed by Brent Fulgham.
Source/WebKit:
Add new
WKWebpagePreferences.captivePortalModeEnabledAPI to allow clients apps to opt in or
out of captive portal mode for each navigation (WKWebpagePreferences is passed with the navigation
policy decision). For setting the default state of this setting, the client can set
WebWebViewConfiguration.defaultWebpagePreferences.captivePortalModeEnabled(will impact all views
using this configuration).
Note that both this property can only be set by apps with the browser entitlement on iOS (no
restriction on macOS). On iOS, the default value of WKWebpagePreferences.captivePortalModeEnabled
depends on the corresponding system setting. For now, this is simulated by a NSUserDefault but it
will eventually come from somewhere else (TCC?).
Whenever transitioning in or out of captive portal mode, we process-swap on navigation policy
decision. Whenever captive portal mode is enabled, we turn off JIT, generational and concurrent GC
in the WebProcess, as soon as it launches.
Covered by new API tests.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::captivePortalModeEnabled const):
- UIProcess/API/APIPageConfiguration.h:
- UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
(API::WebsitePolicies::captivePortalModeEnabled const):
- UIProcess/API/APIWebsitePolicies.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
(-[WKWebpagePreferences setCaptivePortalModeEnabled:]):
(-[WKWebpagePreferences captivePortalModeEnabled]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::captivePortalModeEnabledBySystem):
- UIProcess/Launcher/ProcessLauncher.h:
(WebKit::ProcessLauncher::Client::shouldEnableCaptivePortalMode const):
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::launchProcess):
- UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::findReusableSuspendedPageProcess):
- UIProcess/SuspendedPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
(WebKit::WebPageProxy::isJITEnabled):
(WebKit::WebPageProxy::shouldEnableCaptivePortalMode const):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::takeProcess):
- UIProcess/WebProcessCache.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::captivePortalModeEnabledBySystem):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::createForServiceWorkers):
(WebKit::WebProcessProxy::WebProcessProxy):
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::captivePortalMode const):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 11:04 AM Changeset in webkit [285593] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Remove sandbox read access to files
https://bugs.webkit.org/show_bug.cgi?id=232389
<rdar://problem/84717349>
Reviewed by Brent Fulgham.
Based on telemetry, remove read access to files in the GPU process' sandbox on iOS.
This patch also adds some new telemetry for rules related to reading of files.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 10:54 AM Changeset in webkit [285592] by
-
- 5 edits2 adds in trunk
in_by_val should not constant fold to in_by_id when the property is a property index
https://bugs.webkit.org/show_bug.cgi?id=232753
Reviewed by Yusuke Suzuki.
JSTests:
- stress/dont-in-by-id-when-index-2.js: Added.
(assert):
(main.v179):
(main.async v244):
(main):
- stress/dont-in-by-id-when-index.js: Added.
(assert):
(test):
Source/JavaScriptCore:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGValidate.cpp:
- 10:46 AM Changeset in webkit [285591] by
-
- 2 edits in trunk/LayoutTests
[JSC][ARMv7] Unskip LayoutTests/js/script-tests/stack-overflow-regexp.js
https://bugs.webkit.org/show_bug.cgi?id=232945
Unreviewed gardening.
This test no longer seems flaky on ARMv7. Remove architecture specific
skip condition.
Patch by Geza Lore <Geza Lore> on 2021-11-10
- js/script-tests/stack-overflow-regexp.js:
- 10:45 AM Changeset in webkit [285590] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, fix broken test
https://bugs.webkit.org/show_bug.cgi?id=232949
useGrouping: 'false' is no longer allowed according to the spec.
- Intl/numberformat-format-all-options.html:
- 10:43 AM Changeset in webkit [285589] by
-
- 46 edits2 adds in trunk
AX: Make ancestor computation cheaper by setting flags upon child insertion
https://bugs.webkit.org/show_bug.cgi?id=232466
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-10
Reviewed by Andres Gonzalez.
This patch adds bit-flags (named AXAncestorFlags) to our accessibility objects,
and sets these flags upon child insertion to enable cheap
determination of whether any object has ancestors of certain types
(e.g. a document role ancestor). Some AX clients need this
information, and WebKit can compute it more efficiently than they can.
The following flags are added in this patch:
- HasDocumentRoleAncestor
- HasWebApplicationAncestor
- IsInDescriptionListDetail
- IsInDescriptionListTerm
- IsInCell
Source/WebCore:
Tests: accessibility/ancestor-computation.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::computeAncestorFlags const): Added.
(WebCore::AccessibilityObject::initializeAncestorFlags): Added.
(WebCore::AccessibilityObject::matchesAncestorFlag const): Added.
(WebCore::AccessibilityObject::hasAncestorMatchingFlag const): Added.
(WebCore::AccessibilityObject::hasDocumentRoleAncestor const): Added.
(WebCore::AccessibilityObject::hasWebApplicationAncestor const):Added.
(WebCore::AccessibilityObject::isInDescriptionListDetail const):Added.
(WebCore::AccessibilityObject::isInDescriptionListTerm const): Added.
(WebCore::AccessibilityObject::isInTableCell const): Added.
(WebCore::accessibilityObjectFrom): Added.
(WebCore::AccessibilityObject::insertChild):
Compute and store AXAncestorFlags for newly inserted children.
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::addAncestorFlags): Added.
(WebCore::AccessibilityObject::ancestorFlagsAreInitialized const): Added.
(WebCore::AccessibilityObject::hasAncestorFlag const): Added.
- accessibility/AccessibilityObjectInterface.h:
Add AXAncestorFlags enum class and these virtual functions:
- hasDocumentRoleAncestor
- hasWebApplicationAncestor
- isInDescriptionListDetail
- isInDescriptionListTerm
- isInCell
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityHasDocumentRoleAncestor]): Added.
(-[WebAccessibilityObjectWrapper accessibilityHasWebApplicationAncestor]): Added.
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListDefinition]):
Moved to a different part of the file.
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListTerm]):
Moved to a different part of the file.
(-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
Moved to a different part of the file.
(-[WebAccessibilityObjectWrapper tableParent]): Fix grammar in comment.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
Initialize new AXPropertyName::AncestorFlags property.
(WebCore::AXIsolatedObject::ancestorFlags const): Added.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
Add new AXPropertyName::AncestorFlags property. Add new
OptionSet<AXAncestorFlag> type to AXPropertyValueVariant.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetStyle):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
Handle new AXHasDocumentRoleAncestorAttribute,
AXHasWebApplicationAncestorAttribute, AXIsInDescriptionListDetail,
AXIsInDescriptionListTerm, and AXIsInTableCell attributes.
Tools:
- DumpRenderTree/AccessibilityUIElement.cpp:
(hasDocumentRoleAncestorCallback):
(hasWebApplicationAncestorCallback):
(isInDescriptionListDetailCallback):
(isInDescriptionListTermCallback):
(isInCellCallback):
Added all of the above.
- DumpRenderTree/AccessibilityUIElement.h:
- DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::hasDocumentRoleAncestor const):
(AccessibilityUIElement::hasWebApplicationAncestor const):
(AccessibilityUIElement::isInCell const):
Added all of the above.
(AccessibilityUIElement::isInDescriptionListDetail const): Added.
(AccessibilityUIElement::isInDescriptionListTerm const): Added.
(WTR::AccessibilityUIElement::isInDefinitionListDefinition const): Deleted.
(WTR::AccessibilityUIElement::isInDefinitionListTerm const): Deleted.
- DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::hasDocumentRoleAncestor const):
(AccessibilityUIElement::hasWebApplicationAncestor const):
(AccessibilityUIElement::isInDescriptionListDetail const):
(AccessibilityUIElement::isInDescriptionListTerm const):
(AccessibilityUIElement::isInCell const):
Added all of the above.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::hasDocumentRoleAncestor const):
(WTR::AccessibilityUIElement::hasWebApplicationAncestor const):
(WTR::AccessibilityUIElement::isInCell const):
Added all of the above.
(WTR::AccessibilityUIElement::isInDefinitionListDefinition const): Deleted.
(WTR::AccessibilityUIElement::isInDefinitionListTerm const): Deleted.
(WTR::AccessibilityUIElement::isInDescriptionListDetail const): Added.
(WTR::AccessibilityUIElement::isInDescriptionListTerm const): Added.
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
Add new attributes hasDocumentRoleAncestor, hasWebApplicationAncestor,
isInDescriptionListDetail, and isInDescriptionListTerm. Change
isInTableCell() to be an attribute named isInCell.
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::hasDocumentRoleAncestor const): Added.
(WTR::AccessibilityUIElement::hasWebApplicationAncestor const): Added.
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::hasDocumentRoleAncestor const):
(WTR::AccessibilityUIElement::hasWebApplicationAncestor const):
(WTR::AccessibilityUIElement::isInDescriptionListDetail const):
(WTR::AccessibilityUIElement::isInDescriptionListTerm const):
(WTR::AccessibilityUIElement::isInCell const):
Added all of the above.
LayoutTests:
- accessibility/ancestor-computation-expected.txt: Added.
- accessibility/ancestor-computation.html: Added.
- accessibility/ios-simulator/description-list-expected.txt:
- accessibility/ios-simulator/description-list.html:
Renamed from definition-list.html, because the term is "description
list" and not "definition list".
- accessibility/image-link-expected.txt:
- accessibility/image-map2-expected.txt:
- accessibility/internal-link-anchors2-expected.txt:
- accessibility/ios-simulator/element-in-table-cell-expected.txt:
- accessibility/ios-simulator/element-in-table-cell.html:
- accessibility/mac/aria-columnrowheaders-expected.txt:
- accessibility/mac/bounds-for-range-expected.txt:
- accessibility/mac/document-attributes-expected.txt:
- accessibility/mac/document-links-expected.txt:
- accessibility/mac/internal-link-anchors-expected.txt:
- accessibility/math-multiscript-attributes-expected.txt:
- accessibility/table-attributes-expected.txt:
- accessibility/table-cell-spans-expected.txt:
- accessibility/table-cells-expected.txt:
- accessibility/table-detection-expected.txt:
- accessibility/table-one-cell-expected.txt:
- accessibility/table-sections-expected.txt:
- accessibility/table-with-rules-expected.txt:
- accessibility/transformed-element-expected.txt:
- platform/mac/accessibility/lists-expected.txt:
- platform/mac/accessibility/parent-delete-expected.txt:
- platform/mac/accessibility/plugin-expected.txt:
Add new AXHasDocumentRoleAncestor and AXHasWebApplicationAncestor
attributes to expected output (these tests dump all attributes for
some / all elements).
- platform/glib/TestExpectations:
- platform/win/TestExpectations:
Ignore new ancestor-computation.html test due to lack of
AccessibilityUIElement method implementations added to
Mac and iOS only with this patch.
- platform/ios/TestExpectations:
Enable new ancestor-computation.html test.
- 9:55 AM Changeset in webkit [285588] by
-
- 25 edits in trunk
[CF] Reduce duplication and unneeded buffer allocations and copying in URL code, also remove unused methods and functions
https://bugs.webkit.org/show_bug.cgi?id=232220
Reviewed by Alex Christensen.
Source/WebKit:
- Shared/API/c/cf/WKURLCF.mm:
(WKURLCreateWithCFURL): Use bytesAsString, saving creation and destruction
of a CString each time this is called.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(-[WKSecureCodingURLWrapper encodeWithCoder:]): Use bytesAsVector.
- Shared/Cocoa/WKNSURLExtras.h: Removed unused methods
+[NSURL _web_URLWithWTFString:relativeToURL:] and
-[NSURL _web_originalDataAsWTFString].
- Shared/Cocoa/WKNSURLExtras.mm:
(+[NSURL _web_URLWithWTFString:relativeToURL:]): Deleted.
(-[NSURL _web_originalDataAsWTFString]): Deleted.
- Shared/Cocoa/WKNSURLRequest.mm:
(-[WKNSURLRequest URL]): Removed unneeded call to +[NSURL _web_URLWithWTFString:]
because this code is converting a WTF::URL to an NSURL, which can use the conversion
operator in the WTF::URL class.
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::ArgumentCoder<CFURLRef>::encode): Use bytesAsVector.
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
Use bytesAsString and bridge_cast.
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]): Ditto.
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]): Ditto.
(setUpPagePolicyClient): Removed unneeded call to +[NSURL _web_URLWithWTFString:]
because this code is converting a WTF::URL to an NSURL, which can use the conversion
operator in the WTF::URL class.
- UIProcess/Cocoa/LegacyDownloadClient.mm:
(WebKit::LegacyDownloadClient::willSendRequest): Removed unneeded call to
+[NSURL _web_URLWithWTFString:] because this code is converting a WTF::URL to an NSURL,
which can use the conversion operator in the WTF::URL class.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame URL]): Ditto.
Source/WebKitLegacy/mac:
- Misc/WebNSURLExtras.h: Tweaked comments a bit. No need to say methods are "new", since
that won't be true in the future. Removed unused methods
+[NSURL _web_URLWithUserTypedString:relativeToURL:],
+[NSURL _webkit_URLWithUserTypedString:relativeToURL:],
+[NSURL _web_URLWithData:], +[NSURL _web_URLWithData:relatveToURL:].
Wanted to remove even more nearly unused methods: many were used only
inside the WebKit project, in legacy plug-in code, and some seemed unused,
but it wasn't easy for me to quickly verify that.
- Misc/WebNSURLExtras.mm: Removed "using namespace WebCore" and
"using namespace WTF".
(+[NSURL _web_URLWithUserTypedString:relativeToURL:]): Deleted.
(+[NSURL _web_URLWithUserTypedString:]): Use WTF prefix explicitly.
(+[NSURL _webkit_URLWithUserTypedString:relativeToURL:]): Deleted.
(+[NSURL _webkit_URLWithUserTypedString:]): Use WTF prefix explicitly.
(+[NSURL _web_URLWithDataAsString:]): Removed special case for nil since the code
will do the right thing with nil without an explicit check.
(+[NSURL _web_URLWithDataAsString:relativeToURL]): Ditto. Also formatted the code
as a one-liner.
(+[NSURL _web_URLWithData:]): Deleted.
(+[NSURL _web_URLWithData:relativeToURL:]): Deleted.
(-[NSURL _web_originalData]): Use WTF prefix explicitly.
(-[NSURL _web_originalDataAsString]): Ditto.
(-[NSURL _web_isEmpty]): Use bridge_cast and make code style checker happy by using
"!" instead of "== 0".
(-[NSURL _web_URLCString]): Use WTF prefix explicitly.
(-[NSURL _webkit_canonicalize]): Use WebCore prefix explicitly.
(-[NSURL _webkit_URLByRemovingFragment]): Use WTF prefix explicitly.
(-[NSURL _web_schemeSeparatorWithoutColon]): Deleted.
(-[NSURL _web_dataForURLComponentType:]): Deleted.
(-[NSURL _web_hostData]): Use WTF prefix explicitly. Rearranged for clarity and
slightly improved efficiency as well.
(-[NSString _web_isUserVisibleURL]): Use WTF prefix explicitly.
(-[NSString _webkit_stringByReplacingValidPercentEscapes]): Use WebCore prefix
explicitly.
(-[NSString _web_decodeHostName]): Use WTF prefix explicitly.
(-[NSString _web_encodeHostName]): Ditto.
(-[NSString _webkit_decodeHostName]): Ditto.
(-[NSString _webkit_encodeHostName]): Ditto.
Source/WTF:
- wtf/URL.h: Removed unneeded includes. Use default instead of { }
for empty destructor. Added emptyCFURL function.
- wtf/cf/CFURLExtras.cpp:
(WTF::bytesAsCFData): Added. Replaces originalURLData from NSURLExtras.mm,
but with a simpler implementation and more error checking. Here it's also
alongside the other nearly identical functions.
(WTF::bytesAsString): Added. Replaces getURLBytes for callers that are
going to turn the bytes into a WTF::String. Before this patch, the callers
were converting from CFURLRef to WTF::CString and then to WTF::String, so
this eliminates the malloc/free pair for CString.
(WTF::bytesAsVector): Added. Replaces getURLBytes using a return value
instead of an out argument. Adds the optimization of filling the buffer if
the inline capacity is sufficient, which was in originalURLData, but not
here in getURLBytes before.
(WTF::isSameOrigin): Renamed from isCFURLSameOrigin and rewrote this to
have fewer type casts and more parallel structure so it's easier to read,
while adapting it to use bytesAsVector.
- wtf/cf/CFURLExtras.h: Replaced URLCharBuffer, getURLBytes, and
isCFURLSameOrigin with URLBytesVectorInlineCapacity, bytesAsCFData,
bytesAsString, bytesAsVector, and isSameOrigin. Got rid of unneeded
includes.
- wtf/cf/URLCF.cpp:
(WTF::URL::URL): Use bytesAsString to streamline implementation and
remove allocation/deallcation of a CString.
(WTF::URL::emptyCFURL): Added. Used to refactor createCFURL so we can
share it across Foundation and non-Foundation versions.
(WTF::URL::createCFURL const): Added the logic that was in the version
in URLCocoa.mm so we can share this single version, and removed the #if
surrounding this.
(WTF::URL::fileSystemPath const): Use auto.
- wtf/cocoa/NSURLExtras.h: Changed URLWithUserTypedString to ignore
the baseURL argument. It's not used, but the function is exported and
currently used in Safari source code, which, like all callers passes
a nil for baseURL. so, for now left the argument. Removed the baseURL
argument from URLWithUserTypedStringDeprecated. Removed unused functions
rangeOfURLScheme and looksLikeAbsoluteURL.
- wtf/cocoa/NSURLExtras.mm: Removed "using namespace URLHelpers".
(WTF::readIDNAllowedScriptListFile): Use URLHelpers explicitly.
(WTF::decodeHostName): Ditto.
(WTF::encodeHostName): Ditto.
(WTF::URLByTruncatingOneCharacterBeforeComponent): Simplified by using
the bytesAsVector function.
(WTF::URLByRemovingResourceSpecifier): Deleted.
(WTF::URLWithData): Call URLByTruncatingOneCharacterBeforeComponent
directly.
(WTF::URLWithUserTypedString): Removed the unneeded support for a
base URL. Use URLHelpers explicitly.
(WTF::URLWithUserTypedStringDeprecated): Ditto.
(WTF::hasQuestionMarkOnlyQueryString): Use bridge_cast.
(WTF::dataForURLComponentType): Rearranged to simplify a bit, remove support
for special value for CFURLComponentType that means the complete URL, since
no callers were using that, and use bytesAsVector.
(WTF::URLByRemovingComponentAndSubsequentCharacter): Use bridge_cast and
bytesAsVector.
(WTF::originalURLData): Use bridge_cast and bytesAsCFData.
(WTF::userVisibleString): Use URLHelpers explicitly.
(WTF::isUserVisibleURL): Rewrote for simplicity and coding style; since
the local characters are a null-terminated C string, we don't need
length checks as long as we validate characters first, since a '\0'
character can be read and will not be valid.
(WTF::rangeOfURLScheme): Deleted.
(WTF::looksLikeAbsoluteURL): Deleted.
- wtf/cocoa/URLCocoa.mm:
(WTF::URL::URL): Changed to just call the CFURLRef constructor so we
don't need to repeat things twice.
(WTF::URL::emptyCFURL): Added. This is the one part of the createCFURL
function that depends on Objective-C.
(WTF::URL::createCFURL const): Merged into the function in URLCF.cpp.
(WTF::makeNSArrayElement): Use bridge_cast instead of the trickier
idiom with explicit calls to leakRef and bridge_transfer.
- wtf/mac/FileSystemMac.mm:
(WTF::FileSystem::setMetadataURL): Updated since URLWithUserTypedString
no longer requires a baseURL of nil to be passed. Also removed explicit
WTF namespace since this code itself is in the WTF namespace.
- wtf/text/cocoa/StringCocoa.mm:
(WTF::String::String): Use bridge_cast.
(WTF::makeNSArrayElement): Use bridge_cast.
Tools:
- TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST): Removed extra argument to URLWithUserTypedString/Deprecated.
- 9:51 AM Changeset in webkit [285587] by
-
- 2 edits in trunk/Source/WebCore
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/workers.html is flaky crashing in debug
https://bugs.webkit.org/show_bug.cgi?id=232920
Reviewed by Alex Christensen.
When WorkerGlobalScope::postTask() gets called, the task may get destroyed on the worker thread, without
getting executed in the case where the worker thread is about to exit. This was causing trouble in
BroadcastChannel::dispatchMessageTo() where we were calling WorkerGlobalScope::postTask() and capturing
a CallbackAggregator. We were relying on the task actually executing to dispatch the CallbackAggregator
back to the maint thread so that the completion handler is always called on the main thread.
To address the issue, we now capture a WTF::ScopeExit which calls the completion handler on the main
thread upon destruction. This way, the completion handler will always get called on the main thread,
no matter what.
- dom/BroadcastChannel.cpp:
(WebCore::BroadcastChannel::dispatchMessageTo):
- 9:42 AM Changeset in webkit [285586] by
-
- 5 edits in trunk
[GTK] Layout Test media/video-seek-with-negative-playback.html timeouts on the release bot.
https://bugs.webkit.org/show_bug.cgi?id=135086
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
In some specific cases, an EOS GstEvent can happen right before a seek. The event is translated
by playbin as an EOS GstMessage and posted to the bus, waiting to be forwarded to the main thread.
The EOS message (now irrelevant after the seek) is received and processed right after the seek,
causing the termination of the media at the player private and upper levels. This can even happen
after the seek has completed (m_isSeeking already false).
This patch detects that condition by ensuring that the playback is coherent with the EOS message,
that is, if we're still playing somewhere inside the playable ranges, there should be no EOS at
all. If that's the case, it's considered to be one of those spureous EOS and is ignored.
Live streams (infinite duration) are special and we still have to detect legitimate EOS there, so
this message bailout isn't done in those cases.
Also refactored the code that queries the position to the sinks.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Ignore EOS message if the playback position is inside the playback limits when they're finite. Refactored sink position query code as gstreamerPositionFromSinks().
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added gstreamerPositionFromSinks().
LayoutTests:
- platform/glib/TestExpectations: Unskipped test.
- 9:41 AM Changeset in webkit [285585] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Unable to build WebKit with multiple users in the same machine, webpushd uses /tmp/WebKit.dst
https://bugs.webkit.org/show_bug.cgi?id=232940
Patch by Alex Christensen <achristensen@webkit.org> on 2021-11-10
Reviewed by Alexey Proskuryakov.
- WebKit.xcodeproj/project.pbxproj:
- 9:32 AM Changeset in webkit [285584] by
-
- 22 edits in trunk/Source
[iOS] Adopt -[AVAudioSession setAuditTokensForProcessAssertion:]
https://bugs.webkit.org/show_bug.cgi?id=232909
<rdar://68184444>
Reviewed by Eric Carlson.
Source/WebCore:
- platform/audio/AudioSession.h:
- platform/audio/ios/AudioSessionIOS.h:
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionIOS::setPresentingProcesses):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WebKit:
When a page is loaded through SafariViewService, the UIProcess is SVS, but the "presenting"
application is the client of SafariViewController. To further compliate things, multiple apps
all using a SafariViewController will use a singleton SafariViewService application. When such
an application goes to the background while playing audio, the audio subsystem will keep the
UIProcess from suspending, but not the presenting application. The audio subsystem will see
that the presenting application has become suspended, and will interrupt audio playback.
Opt into a AVAudioSession behavior where a client can provide an array of audit tokens for
those processes which are "presenting" the audio playback to the user. This will include the
UIProcess, but also the process which is hosting the SafariViewController. The audio subsystem
will keep the processes in that list from becoming suspended during audio playback.
Since there may be different clients of SafariViewService existing simultaneously, only include
those presenting application tokens whose WebContent processes require an "active" audio session.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
- GPUProcess/GPUConnectionToWebProcess.h:
(WebKit::GPUConnectionToWebProcess::presentingApplicationAuditToken const):
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::audioSessionManager const):
- GPUProcess/media/RemoteAudioSessionProxy.cpp:
(WebKit::RemoteAudioSessionProxy::tryToSetActive):
- GPUProcess/media/RemoteAudioSessionProxy.h:
(WebKit::RemoteAudioSessionProxy::gpuConnectionToWebProcess const):
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::updatePresentingProcesses):
- GPUProcess/media/RemoteAudioSessionProxyManager.h:
- Scripts/process-entitlements.sh:
- Shared/GPUProcessConnectionParameters.h:
(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration setPresentingApplicationProcessToken:]):
(-[_WKProcessPoolConfiguration presentingApplicationProcessToken]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::getGPUProcessConnection):
- WebProcess/GPU/GPUProcessConnection.h:
- 9:24 AM Changeset in webkit [285583] by
-
- 19 edits in trunk
[css-contain] Support contain:paint
https://bugs.webkit.org/show_bug.cgi?id=224742
Patch by Rob Buis <rbuis@igalia.com> on 2021-11-10
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
Adjust test expectation now that contain: strict is supported.
- web-platform-tests/css/css-flexbox/flex-item-contains-strict-expected.txt:
Source/WebCore:
This patch implements paint containment as specified[1].
It adds shouldApplyPaintContainment to check whether the element applies for paint containment. Is so, then:
- an independent formatting context is established.
- an absolute positioning and fixed positioning containing block is established.
- a stacking context is created.
- implements clipping on the overflow clip edge.
This patch also adds effectiveOverflowX/effectiveOverflowY on RenderElement to take
the effect of paint containment on overflow-x/y into account.
[1] https://drafts.csswg.org/css-contain-2/#paint-containment
- page/FrameView.cpp:
(WebCore::FrameView::applyOverflowToViewport):
(WebCore::FrameView::applyPaginationToViewport):
(WebCore::FrameView::calculateScrollbarModesForLayout):
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::updateFromStyle):
(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
(WebCore::RenderBox::createsNewFormattingContext const):
(WebCore::RenderBox::addOverflowFromChild):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::updateFromStyle):
- rendering/RenderElement.cpp:
(WebCore::includeNonFixedHeight):
(WebCore::RenderElement::effectiveOverflowX const):
(WebCore::RenderElement::effectiveOverflowY const):
- rendering/RenderElement.h:
(WebCore::RenderElement::effectiveOverflowInlineDirection const):
(WebCore::RenderElement::effectiveOverflowBlockDirection const):
(WebCore::RenderElement::canContainFixedPositionObjects const):
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::mainAxisOverflowForChild const):
(WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):
- rendering/RenderFragmentContainer.cpp:
(WebCore::RenderFragmentContainer::overflowRectForFragmentedFlowPortion):
- rendering/RenderInline.h:
- rendering/RenderLayer.cpp:
(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::shouldBeCSSStackingContext const):
(WebCore::RenderLayer::setAncestorChainHasSelfPaintingLayerDescendant):
(WebCore::RenderLayer::setAncestorChainHasVisibleDescendant):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::setPaintContainmentApplies):
(WebCore::shouldApplyPaintContainment):
- rendering/RenderObject.h:
(WebCore::RenderObject::paintContainmentApplies const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::overflowY const):
(WebCore::RenderStyle::containsPaint const):
(WebCore::RenderStyle::overflowInlineDirection const): Deleted.
(WebCore::RenderStyle::overflowBlockDirection const): Deleted.
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::shouldApplyViewportClip const):
LayoutTests:
Unskip tests that pass now.
- 9:15 AM Changeset in webkit [285582] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Remove access to sysctl properties
https://bugs.webkit.org/show_bug.cgi?id=232821
<rdar://problem/85162088>
Reviewed by Brent Fulgham.
Based on telemetry, remove access to unused sysctl properties in the GPU process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 9:12 AM Changeset in webkit [285581] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Remove access to mach-register
https://bugs.webkit.org/show_bug.cgi?id=232442
<rdar://problem/84763289>
Reviewed by Darin Adler.
Based on telemetry, remove access to mach-register in the GPU process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 9:09 AM Changeset in webkit [285580] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Block access to mapping of executables
https://bugs.webkit.org/show_bug.cgi?id=232824
<rdar://problem/85163925>
Reviewed by Brent Fulgham.
Block access to mapping of certain executables in the GPU process on iOS.
These changes are based on collected telemetry.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 9:06 AM Changeset in webkit [285579] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Remove access to IOKit classes
https://bugs.webkit.org/show_bug.cgi?id=232308
<rdar://problem/84665748>
Reviewed by Brent Fulgham.
Based on telemetry, remove access to unused IOKit classes in the GPU process' sandbox on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 9:05 AM Changeset in webkit [285578] by
-
- 2 edits in trunk/JSTests
[JSC][32bit] Unskip JSTests/stress/json-stringify-string-builder-overflow.js
https://bugs.webkit.org/show_bug.cgi?id=232944
Unreviewed gardening.
This seems to survive 1000 iterations on both armv7 and mips
hw. Remove the arch-specific skips leaving the memory limited
ones.
Patch by Xan Lopez <Xan Lopez> on 2021-11-10
- stress/json-stringify-string-builder-overflow.js:
- 7:55 AM Changeset in webkit [285577] by
-
- 1881 edits692 adds48 deletes in trunk
Update libwebrtc to M96
https://bugs.webkit.org/show_bug.cgi?id=232873
LayoutTests/imported/w3c:
Reviewed by Alex Christensen.
- web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt:
- web-platform-tests/webrtc/RTCPeerConnection-mandatory-getStats.https-expected.txt:
- web-platform-tests/webrtc/RTCRtpTransceiver.https-expected.txt:
- web-platform-tests/webrtc/protocol/dtls-setup.https-expected.txt:
Source/ThirdParty/libwebrtc:
Reviewed by Alex Christensen.
Updated libwebrtc code according M96 upstream branch.
- CMakeLists.txt:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
- Source/webrtc: resynced.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Reviewed by Alex Christensen.
Update WebCore code according updated libwebrtc API, in particular moving from deprecated CreateDataChannel to CreateDataChannelOrError.
Covered by existing tests.
- Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::createDataChannel):
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::BasicPacketSocketFactory::BasicPacketSocketFactory):
- platform/mediastream/AudioMediaStreamTrackRenderer.cpp:
(WebCore::AudioMediaStreamTrackRenderer::create):
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.cpp:
(WebCore::createH264Format):
(WebCore::supportedH264Formats):
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp:
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.cpp:
- testing/MockLibWebRTCPeerConnection.cpp:
(WebCore::MockLibWebRTCPeerConnection::CreateDataChannelOrError):
(WebCore::MockLibWebRTCPeerConnection::CreateDataChannel): Deleted.
- testing/MockLibWebRTCPeerConnection.h:
Source/WebKit:
Reviewed by Alex Christensen.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::NetworkRTCProvider):
- 7:47 AM Changeset in webkit [285576] by
-
- 7 edits in trunk/Source
[iOS] Add audio gain in case category switches to PlayAndRecord
https://bugs.webkit.org/show_bug.cgi?id=232941
<rdar://85250248>
Reviewed by Eric Carlson.
Source/WebCore:
Add a audio category change observer.
Observer needs to be in the process where the actual iOS shared audio session is living (GPUProcess typically).
Manually tested.
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/cocoa/AudioSampleBufferList.h:
- platform/audio/ios/AudioSessionIOS.h:
- platform/audio/ios/AudioSessionIOS.mm:
Source/WebKit:
In case of PlayAndRecord, apply a static gain of 5 to audio rendered from MediaStreamTracks.
For that purpose, observe changes to the AudioSession category and react upon it.
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp:
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::Unit):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::start):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render):
(WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::categoryDidChange):
- 7:11 AM Changeset in webkit [285575] by
-
- 18 edits in trunk/Source
Migrate DialogElementEnabled from RuntimeFlags to Settings
https://bugs.webkit.org/show_bug.cgi?id=232926
Reviewed by Youenn Fablet.
Source/WebCore:
- html/HTMLDialogElement.idl:
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::formMethod const):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::parseAttribute):
(WebCore::HTMLFormElement::method const):
- html/HTMLTagNames.in:
- loader/FormSubmission.cpp:
(WebCore::FormSubmission::Attributes::methodString):
(WebCore::FormSubmission::Attributes::parseMethodType):
(WebCore::FormSubmission::Attributes::updateMethodType):
(WebCore::FormSubmission::create):
- loader/FormSubmission.h:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDialogElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::dialogElementEnabled const): Deleted.
- style/UserAgentStyle.cpp:
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):
Source/WebKit:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetDialogElementEnabled): Deleted.
(WKPreferencesGetDialogElementEnabled): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Source/WebKitLegacy/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences dialogElementEnabled]): Deleted.
(-[WebPreferences setDialogElementEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 6:40 AM Changeset in webkit [285574] by
-
- 7 edits1 add in trunk/Source/WebCore
Use Hasher for hashing MatchResult for MatchedDeclarationsCache
https://bugs.webkit.org/show_bug.cgi?id=232930
Reviewed by Kimmo Kinnunen.
We currently use hashMemory over a Vector<MatchedProperties>. This works correctly only as long as
the MatchedProperties struct is fully packed. Any unitilized memory in the struct leads to badness.
- WebCore.xcodeproj/project.pbxproj:
- style/ElementRuleCollector.h:
(WebCore::Style::MatchResult::operator== const): Deleted.
(WebCore::Style::MatchResult::operator!= const): Deleted.
(WebCore::Style::MatchResult::isEmpty const): Deleted.
(WebCore::Style::operator==): Deleted.
(WebCore::Style::operator!=): Deleted.
Move MatchResult to a file of its own.
- style/MatchResult.h: Added.
(WebCore::Style::MatchResult::isEmpty const):
(WebCore::Style::operator==):
(WebCore::Style::operator!=):
(WebCore::Style::add):
Implement Hasher functions for the types.
- style/MatchedDeclarationsCache.cpp:
(WebCore::Style::MatchedDeclarationsCache::computeHash):
use WTF::computeHash
- style/MatchedDeclarationsCache.h:
- style/PageRuleCollector.h:
- style/PropertyCascade.h:
- 6:31 AM Changeset in webkit [285573] by
-
- 2 edits in trunk/Tools
[GLib] apply-build-revision fails when git-svn is not installed
https://bugs.webkit.org/show_bug.cgi?id=232929
Patch by Philippe Normand <pnormand@igalia.com> on 2021-11-10
Reviewed by Michael Catanzaro.
Attempt to get the build revision from the git log if the git-svn call failed, either
because git-svn is not installed or the metadata in .git/svn is incomplete.
- glib/apply-build-revision-to-files.py:
(get_revision_from_most_recent_git_commit):
(get_build_revision):
- 4:49 AM Changeset in webkit [285572] by
-
- 4 edits in trunk
Hasher should be able to hash pointers
https://bugs.webkit.org/show_bug.cgi?id=232927
Reviewed by Kimmo Kinnunen.
Source/WTF:
- wtf/Hasher.h:
(WTF::add):
Tools:
- TestWebKitAPI/Tests/WTF/Hasher.cpp:
(TestWebKitAPI::TEST):
- 3:36 AM Changeset in webkit [285571] by
-
- 4 edits2 adds in trunk
[Media] Make currentTime compliant with the spec when readyState is HAVE_NOTHING
https://bugs.webkit.org/show_bug.cgi?id=229605
Source/WebCore:
Reviewed by Xabier Rodriguez-Calvar.
Covered by LayoutTests/media/video-seek-have-nothing.html.
Added an internal defaultPlaybackPosition in HTMLMediaElement when currentTime changes
are done when readyState is still HAVE_NOTHING, as mandated by the spec[1] since late
2011: https://html.spec.whatwg.org/#current-playback-position
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setReadyState): Seek to defaultPlaybackPosition (and reset it) when readyState increases to HAVE_METADATA.
(WebCore::HTMLMediaElement::currentMediaTime const): Return defaultPlaybackPosition when higher than zero.
(WebCore::HTMLMediaElement::setCurrentTimeForBindings): Store the new currentTime in defaultPlaybackPosition when changed during a HAVE_NOTHING readyState.
- html/HTMLMediaElement.h: Added m_defaultPlaybackStartPosition private attribute.
LayoutTests:
Reviewed by Xabier Rodriguez-Calvar.
New test that checks that changes in currentTime done while on readyState=HAVE_NOTHING
are recorded and trigger a seek as soon as readyState increases to HAVE_METADATA or above.
- media/video-seek-have-nothing-expected.txt: Added.
- media/video-seek-have-nothing.html: Added.
- 1:42 AM Changeset in webkit [285570] by
-
- 3 edits2 adds in trunk
Fix crash in GraphicsContextCG::endTransparencyLayer
https://bugs.webkit.org/show_bug.cgi?id=230230
Reviewed by Myles C. Maxfield.
Source/WebCore:
The crash was due to unbalanced calls to begin and end transparency layers.
A branch handling ancestors of transparent layers that are transform root needed to be
aware of the top layer. Opacity on ancestors don't affect top layer elements so calling
beginTransparencyLayersonparent()is incorrect.
Also fix
transparentPaintingAncestor()to be top layer aware to avoid flickering layers
while scrolling.
Test: fast/layers/top-layer-ancestor-opacity-and-transform-crash.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::transparentPaintingAncestor):
(WebCore::RenderLayer::paintLayerWithEffects):
LayoutTests:
- fast/layers/top-layer-ancestor-opacity-and-transform-crash-expected.txt: Added.
- fast/layers/top-layer-ancestor-opacity-and-transform-crash.html: Added.
- 1:30 AM Changeset in webkit [285569] by
-
- 4 edits in trunk
Enable dialog tests on Windows
https://bugs.webkit.org/show_bug.cgi?id=232911
Reviewed by Youenn Fablet.
The runtime flag sometimes seems to be off for Windows, change the member in
RuntimeEnabledFeatures.h and re-enable tests.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
LayoutTests:
- platform/win/TestExpectations:
- 12:48 AM Changeset in webkit [285568] by
-
- 4 edits3 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines after r284521
https://bugs.webkit.org/show_bug.cgi?id=232913
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-10
- platform/glib/TestExpectations:
- platform/glib/svg/foreignObject/background-render-phase-expected.txt: Added.
- platform/glib/svg/foreignObject/multiple-foreign-objects-expected.txt: Added.
- platform/glib/svg/wicd/sizing-flakiness-expected.txt: Added.
- platform/gtk/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
- platform/wpe/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
- 12:38 AM Changeset in webkit [285567] by
-
- 4 edits6 adds in trunk
Wavy decorations don't cover the whole line length
https://bugs.webkit.org/show_bug.cgi?id=232663
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
Import WPT tests from https://github.com/web-platform-tests/wpt/pull/31540.
- web-platform-tests/css/css-text-decor/text-decoration-line-through-wavy-covers-whole-line-length-001-expected-mismatch.html: Added.
- web-platform-tests/css/css-text-decor/text-decoration-line-through-wavy-covers-whole-line-length-001.html: Added.
- web-platform-tests/css/css-text-decor/text-decoration-overline-wavy-covers-whole-line-length-001-expected-mismatch.html: Added.
- web-platform-tests/css/css-text-decor/text-decoration-overline-wavy-covers-whole-line-length-001.html: Added.
- web-platform-tests/css/css-text-decor/text-decoration-underline-wavy-covers-whole-line-length-001-expected-mismatch.html: Added.
- web-platform-tests/css/css-text-decor/text-decoration-underline-wavy-covers-whole-line-length-001.html: Added.
- web-platform-tests/css/css-text-decor/w3c-import.log:
Source/WebCore:
We have a problem with wavy decorations, because we are only painting
whole waves. Which means that, sometimes, the last part of the line
is not covered by the wavy decorations.
To fix this we're modifying strokeWavyTextDecoration() method.
We paint 2 extra waves before and after the line width,
and we clip the wavy text decoration to match the line's width.
This patch also removes adjustStepToDecorationLength() as the method
was wrong (e.g. passing 40px length and 10px step, it'd modify the step
to be 10.75px which makes no sense).
Apart from that, as we're now clipping the wave to the text line,
this adjustment is no longer needed.
Tests: imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-line-through-wavy-covers-whole-line-length-001.html
imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-overline-wavy-covers-whole-line-length-001.html
imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-underline-wavy-covers-whole-line-length-001.html
- rendering/TextDecorationPainter.cpp:
(WebCore::strokeWavyTextDecoration):
(WebCore::adjustStepToDecorationLength): Deleted.
- 12:20 AM Changeset in webkit [285566] by
-
- 24 edits in trunk
Perform FileSystemSyncAccessHandle operations in web process
https://bugs.webkit.org/show_bug.cgi?id=232146
<rdar://problem/84809428>
Reviewed by Youenn Fablet.
Source/WebCore:
truncate(), getSize() and flush() operations are now performed on a global WorkQueue in web process.
- Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::getSize): Deleted.
(WebCore::FileSystemFileHandle::truncate): Deleted.
(WebCore::FileSystemFileHandle::flush): Deleted.
- Modules/filesystemaccess/FileSystemFileHandle.h:
- Modules/filesystemaccess/FileSystemStorageConnection.h:
- Modules/filesystemaccess/FileSystemSyncAccessHandle.cpp:
(WebCore::FileSystemSyncAccessHandle::~FileSystemSyncAccessHandle):
(WebCore::FileSystemSyncAccessHandle::truncate):
(WebCore::FileSystemSyncAccessHandle::getSize):
(WebCore::FileSystemSyncAccessHandle::flush):
(WebCore::FileSystemSyncAccessHandle::close):
(WebCore::FileSystemSyncAccessHandle::closeInternal):
(WebCore::FileSystemSyncAccessHandle::closeBackend):
(WebCore::FileSystemSyncAccessHandle::read):
(WebCore::FileSystemSyncAccessHandle::write):
(WebCore::FileSystemSyncAccessHandle::completePromise):
- Modules/filesystemaccess/FileSystemSyncAccessHandle.h:
(): Deleted.
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
(WebCore::WorkerFileSystemStorageConnection::completeIntegerCallback): Deleted.
(WebCore::WorkerFileSystemStorageConnection::getSize): Deleted.
(WebCore::WorkerFileSystemStorageConnection::truncate): Deleted.
(WebCore::WorkerFileSystemStorageConnection::flush): Deleted.
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::sharedFileSystemStorageQueue):
(WebCore::WorkerGlobalScope::postFileSystemStorageTask):
- workers/WorkerGlobalScope.h:
Source/WebKit:
Network process no longer needs to hold open file handle for FileSystemSyncAccessHandle. Now it creates an open
file handle, pass it to web process and close it.
- NetworkProcess/storage/FileSystemStorageError.h:
(WebKit::convertToException):
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::FileSystemStorageHandle::createSyncAccessHandle):
(WebKit::FileSystemStorageHandle::close):
(WebKit::FileSystemStorageHandle::move):
(WebKit::FileSystemStorageHandle::~FileSystemStorageHandle): Deleted.
(WebKit::FileSystemStorageHandle::getSize): Deleted.
(WebKit::FileSystemStorageHandle::truncate): Deleted.
(WebKit::FileSystemStorageHandle::flush): Deleted.
- NetworkProcess/storage/FileSystemStorageHandle.h:
(): Deleted.
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::createSyncAccessHandle):
(WebKit::NetworkStorageManager::getSizeForAccessHandle): Deleted.
(WebKit::NetworkStorageManager::truncateForAccessHandle): Deleted.
(WebKit::NetworkStorageManager::flushForAccessHandle): Deleted.
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.messages.in:
- Platform/IPC/SharedFileHandle.cpp:
(IPC::SharedFileHandle::close):
- Platform/IPC/SharedFileHandle.h:
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.cpp:
(WebKit::WebFileSystemStorageConnection::getSize): Deleted.
(WebKit::WebFileSystemStorageConnection::truncate): Deleted.
(WebKit::WebFileSystemStorageConnection::flush): Deleted.
- WebProcess/WebCoreSupport/WebFileSystemStorageConnection.h:
LayoutTests:
- storage/filesystemaccess/handle-move-worker-expected.txt:
- storage/filesystemaccess/resources/handle-move.js:
(async test):
Nov 9, 2021:
- 10:52 PM Changeset in webkit [285565] by
-
- 9 edits in trunk
[macOS] Enable NSURLSession partitioning based on first-party domain at CFNetwork level
https://bugs.webkit.org/show_bug.cgi?id=230750
<rdar://problem/83159358>
Reviewed by Alex Christensen.
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(overrideAttributionContext): Deleted.
Stop disabling CFNetwork NSURLSession partitioning based on first-party domain on
macOS.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
(WebKit::NetworkSessionCocoa::hasIsolatedSession const):
(WebKit::NetworkSessionCocoa::clearIsolatedSessions):
(WebKit::NetworkSessionCocoa::invalidateAndCancelSessionSet):
Disable ITP session partitioning of certain prevalent domains on platforms where
CFNetwork already does full partitioning of all domains (now that it is enabled
on macOS 12+ and iOS15+).
Source/WTF:
Add HAVE(CFNETWORK_SESSION_PARTITIONING_BASED_ON_FIRST_PARTY_DOMAIN) build time flag that is true
on newer Apple OSes where CFNetwork does NSURLSession partitioning based on first-party domain for
us.
- wtf/PlatformHave.h:
LayoutTests:
Skip a few ITP session partitioning tests on newer OSes now that session partitioning
happens for all first-party domains at CFNetwork level on these OSes.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 9:23 PM Changeset in webkit [285564] by
-
- 29 edits5 copies6 adds in trunk
Add support for PushSubscriptionChangeEvent
https://bugs.webkit.org/show_bug.cgi?id=232455
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are now passing.
- web-platform-tests/push-api/idlharness.https.any.serviceworker-expected.txt:
Source/WebCore:
This adds support for the PushSubscriptionChangeEvent object. I plan to add support for the
onpushsubscriptionchange event handler in a later patch.
While working on this, it seemed reasonable to be able to create PushSubscriptions that
point to a null ServiceWorkerRegistration. This is for subscriptions that are returned via
the oldSubscription property and are therefore already unsubscribed.
I added a new constructor for creating a PushSubscription pointing to a null
ServiceWorkerRegistration, rather than changing the existing constructor to just take a
RefPtr<ServiceWorkerRegistration>. This is because I wanted to remove the WEBCORE_EXPORT
from ServiceWorkerRegistration, and the inline code generated by creating a null
RefPtr<ServiceWorkerRegistration> in the internals dylib caused it to require
ServiceWorkerRegistration::ref/deref to be exported.
Tests: http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/push-api/PushManager.cpp:
(WebCore::PushManager::subscribe):
(WebCore::PushManager::getSubscription):
(WebCore::PushManager::permissionState):
- Modules/push-api/PushManager.h:
- Modules/push-api/PushManager.idl:
- Modules/push-api/PushSubscription.cpp:
(WebCore::PushSubscription::PushSubscription):
(WebCore::PushSubscription::unsubscribe):
- Modules/push-api/PushSubscription.h:
- Modules/push-api/PushSubscription.idl:
- Modules/push-api/PushSubscriptionChangeEvent.cpp: Copied from Source/WebCore/Modules/push-api/PushManager.h.
(WebCore::PushSubscriptionChangeEvent::create):
(WebCore::PushSubscriptionChangeEvent::PushSubscriptionChangeEvent):
- Modules/push-api/PushSubscriptionChangeEvent.h: Copied from Source/WebCore/Modules/push-api/PushManager.h.
- Modules/push-api/PushSubscriptionChangeEvent.idl: Copied from Source/WebCore/Modules/push-api/PushSubscription.idl.
- Modules/push-api/PushSubscriptionChangeEventInit.h: Copied from Source/WebCore/Modules/push-api/PushSubscription.idl.
- Modules/push-api/PushSubscriptionChangeEventInit.idl: Copied from Source/WebCore/Modules/push-api/PushSubscription.idl.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- dom/EventNames.in:
- testing/Internals.cpp:
(WebCore::Internals::createPushSubscription):
- testing/Internals.h:
- testing/Internals.idl:
- testing/ServiceWorkerInternals.cpp:
(WebCore::ServiceWorkerInternals::createPushSubscription):
- testing/ServiceWorkerInternals.h:
- testing/ServiceWorkerInternals.idl:
- workers/service/ServiceWorkerRegistration.h:
- workers/service/ServiceWorkerRegistration.idl:
LayoutTests:
Added PushSubscriptionChangeEvent tests and made PushSubscription tests also run in the
service worker context.
- http/wpt/push-api/constants.js: Added.
(bytesFrom):
- http/wpt/push-api/pushManager.any.js:
- http/wpt/push-api/pushSubscription.https.any-expected.txt:
- http/wpt/push-api/pushSubscription.https.any.js:
(GLOBAL.isWorker):
(async promise_test):
(bytesFrom): Deleted.
(promise_test.async test): Deleted.
(promise_test): Deleted.
- http/wpt/push-api/pushSubscription.https.any.serviceworker-expected.txt: Added.
- http/wpt/push-api/pushSubscription.https.any.serviceworker.html: Added.
- http/wpt/push-api/pushSubscriptionChangeEvent.any.js: Added.
(test):
(promise_test.async newSubscription):
(promise_test.async return):
(promise_test):
- http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker-expected.txt: Added.
- http/wpt/push-api/pushSubscriptionChangeEvent.any.serviceworker.html: Added.
- 9:14 PM Changeset in webkit [285563] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Remove shared memory access
https://bugs.webkit.org/show_bug.cgi?id=232823
<rdar://problem/85163103>
Reviewed by Brent Fulgham.
Based on telemetry, remove shared memory access in the GPU process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 8:59 PM Changeset in webkit [285562] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Remove read access to preferences
https://bugs.webkit.org/show_bug.cgi?id=232439
<rdar://problem/84762138>
Reviewed by Darin Adler.
Based on telemetry, remove access to reading some preference domains in the GPU process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 8:28 PM Changeset in webkit [285561] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add telemetry for system calls in WP
https://bugs.webkit.org/show_bug.cgi?id=231836
<rdar://problem/84317842>
Reviewed by Brent Fulgham.
Add telemetry for system calls in WP to understand in which context they are being used.
- WebProcess/com.apple.WebProcess.sb.in:
- 7:59 PM Changeset in webkit [285560] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Remove shared memory access
https://bugs.webkit.org/show_bug.cgi?id=232281
<rdar://problem/84635475>
Reviewed by Darin Adler.
Based on telemetry, remove shared memory access in the GPU process' sandbox on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 7:29 PM Changeset in webkit [285559] by
-
- 7 edits in branches/safari-612-branch/Source
Apply patch. rdar://problem/85165713
- 7:29 PM Changeset in webkit [285558] by
-
- 5 edits in branches/safari-612-branch
Cherry-pick r285389. rdar://problem/84380291
Integrator's note: excluded changes to Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm.
AX: WebKit1 PluginViewBase objects with an associated widget()->platformWidget() should be considered attachments
https://bugs.webkit.org/show_bug.cgi?id=232759
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-06
Reviewed by Chris Fleizach.
Source/WebCore:
In https://bugs.webkit.org/show_bug.cgi?id=229556 (AX: Make PDFs
loaded via <embed> accessible), we changed AccessibilityRenderObject::isAttachment
to return false if the underlying object represented a PluginViewBase
under the assumption that if a PluginViewBase existed, the object must
be a WebKit2 plugin. That assumption is wrong, because in certain
scenarios an object can be a WebKit1 PluginViewBase (e.g. attachments
inserted by WebKit1 webviews).
This patch changes isAttachment to only return false if the
PluginViewBase doesn't also have an associated platformWidget, which
should be present in WebKit1 only.
This patch also fixes a bug in the Mac -[WebAccessibilityObjectWrapper
subrole]. For objects with a role of group and no children, we
returned a subrole of AXEmptyGroup. However, we didn't check for the
presence of renderWidgetChildren that a group may have.
- accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::isAttachment const): Consider PluginViewBase objects with an associated platformWidget to be attachments.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper subrole]): Don't return AXEmptyGroup subrole for objects with renderWidgetChildren.
LayoutTests:
This patch changes the Mac WebAccessibilityObjectWrapper to not return
an AXEmptyGroup subrole for objects with renderWidgetChildren.
- accessibility/mac/basic-embed-pdf-accessibility-expected.txt:
- accessibility/mac/basic-embed-pdf-accessibility.html: Add expectation that the embed container doesn't have an AXEmptyGroup subrole.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:29 PM Changeset in webkit [285557] by
-
- 11 edits1 add in branches/safari-612-branch/Source/WebCore
Cherry-pick r285318. rdar://problem/85168068
[Cocoa] Migrate from CTFontCopyVariationAxes() to CTFontCopyVariationAxesInternal() if possible
https://bugs.webkit.org/show_bug.cgi?id=232690
Reviewed by Simon Fraser and Cameron McCormack.
Source/WebCore:
CTFontCopyVariationAxesInternal() is faster than CTFontCopyVariationAxes(), but the strings
it provides are not localized. Luckily, we don't actually use the strings in the common case,
so we can migrate to CTFontCopyVariationAxesInternal() safely.
No new tests because there is no behavior change.
- platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::variationAxes): (WebCore::defaultVariationValues): (WebCore::preparePlatformFont):
- platform/graphics/cocoa/FontCacheCoreText.h:
- platform/graphics/cocoa/FontPlatformDataCocoa.mm: (WebCore::FontPlatformData::variationAxes const):
Source/WebCore/PAL:
- pal/spi/cf/CoreTextSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285318 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:28 PM Changeset in webkit [285556] by
-
- 21 edits1 add in branches/safari-612-branch
Cherry-pick r285169. rdar://problem/83950623
AX: WebKit needs to include NSAccessibilityChildrenInNavigationOrderAttribute in accessibilityAttributeNames
https://bugs.webkit.org/show_bug.cgi?id=232595
Patch by Tyler Wilcock <Tyler Wilcock> on 2021-11-02
Reviewed by Andres Gonzalez.
This patch adds NSAccessibilityChildrenInNavigationOrderAttribute
(a.k.a. AXChildrenInNavigationOrder) to
WebAccessibilityObjectWrapperMac::accessibilityAttributeNames. The Mac
wrapper supported this attribute prior to this patch, but we didn't
advertise that we supported it because we didn't include it in our
exported attribute names.
Source/WebCore:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Add NSAccessibilityChildrenInNavigationOrderAttribute to list of base supported attributes.
LayoutTests:
- accessibility/image-link-expected.txt:
- accessibility/image-map2-expected.txt:
- accessibility/internal-link-anchors2-expected.txt:
- accessibility/mac/aria-columnrowheaders-expected.txt:
- accessibility/mac/bounds-for-range-expected.txt:
- accessibility/mac/document-attributes-expected.txt:
- accessibility/mac/document-links-expected.txt:
- accessibility/mac/internal-link-anchors-expected.txt:
- accessibility/math-multiscript-attributes-expected.txt:
- accessibility/table-attributes-expected.txt:
- accessibility/table-cell-spans-expected.txt:
- accessibility/table-cells-expected.txt:
- accessibility/table-detection-expected.txt:
- accessibility/table-one-cell-expected.txt:
- accessibility/table-sections-expected.txt:
- accessibility/table-with-rules-expected.txt:
- accessibility/transformed-element-expected.txt:
- platform/mac/accessibility/lists-expected.txt:
- platform/mac/accessibility/parent-delete-expected.txt: Add expected AXChildrenInNavigationOrder attribute output.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:28 PM Changeset in webkit [285555] by
-
- 60 edits in branches/safari-612-branch/Source
Cherry-pick r284453. rdar://problem/85034820
cachedCGColor() and nsColor() should return smart pointers
https://bugs.webkit.org/show_bug.cgi?id=231909
Reviewed by Tim Horton.
r276283 attempted to make cachedCGColor() and nsColor() thread-safe but the fix was incomplete
since those functions return unretained objects that can be released from the cache on any
other thread. This patch updates cachedCGColor() and nsColor() to return a RetainPtr to address
the issue.
Source/WebCore:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (AXAttributeStringSetStyle):
- editing/cocoa/FontAttributesCocoa.mm: (WebCore::FontAttributes::createDictionary const):
- editing/cocoa/FontShadowCocoa.mm: (WebCore::FontShadow::createShadow const):
- editing/cocoa/HTMLConverter.mm: (HTMLConverter::convert): (HTMLConverter::_colorForElement): (HTMLConverter::computedAttributesForElement): (HTMLConverter::_fillInBlock): (HTMLConverter::_processElement): (WebCore::editingAttributedString):
- platform/graphics/Color.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm: (WebCore::LocalSampleBufferDisplayLayer::initialize):
- platform/graphics/ca/PlatformCALayer.cpp: (WebCore::PlatformCALayer::drawTextAtPoint const):
- platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm: (WebCore::PlatformCAFilters::setFiltersOnLayer):
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (WebCore::PlatformCALayerCocoa::setBackgroundColor): (WebCore::PlatformCALayerCocoa::setBorderColor):
- platform/graphics/cg/ColorCG.cpp: (WebCore::cachedCGColor):
- platform/graphics/cg/GradientCG.cpp: (WebCore::Gradient::createCGGradient):
- platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::setCGFillColor): (WebCore::setCGShadow): (WebCore::GraphicsContextCG::didUpdateState):
- platform/graphics/cocoa/ColorCocoa.h:
- platform/graphics/cocoa/ColorCocoa.mm: (WebCore::platformColor):
- platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::addAttributesForCustomFontPalettes):
- platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::drawFocusRingAtTime): (WebCore::colorForMarkerLineStyle): (WebCore::GraphicsContextCG::drawDotsForDocumentMarker):
- platform/graphics/mac/ColorMac.h:
- platform/graphics/mac/ColorMac.mm: (WTF::RetainPtr<NSColor>>::createValueForKey): (WebCore::nsColor):
- platform/mac/LocalDefaultSystemAppearance.mm: (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
- platform/mac/PlatformPasteboardMac.mm: (WebCore::PlatformPasteboard::setColor):
- platform/mac/ScrollbarThemeMac.mm: (WebCore::ScrollbarThemeMac::setUpOverhangAreaBackground):
- platform/mac/ThemeMac.mm: (WebCore::drawCellFocusRingWithFrameAtTime):
- rendering/RenderThemeMac.mm: (WebCore::AttachmentLayout::layOutTitle): (WebCore::AttachmentLayout::layOutSubtitle):
- testing/cocoa/WebViewVisualIdentificationOverlay.mm: (-[WebViewVisualIdentificationOverlay initWithWebView:kind:deprecated:]): (drawPattern):
Source/WebKit:
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: (WebKit::cgColorFromColor): (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView themeColor]): (-[WKWebView underPageBackgroundColor]): (-[WKWebView _pageExtendedBackgroundColor]): (-[WKWebView _sampledPageTopColor]):
- UIProcess/API/Cocoa/_WKApplicationManifest.mm: (-[_WKApplicationManifest themeColor]):
- UIProcess/API/mac/WKView.mm: (-[WKView underlayColor]): (-[WKView _pageExtendedBackgroundColor]):
- UIProcess/API/mac/WKWebViewMac.mm: (-[WKWebView _underlayColor]):
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::updateTextTouchBar): (WebKit::WebViewImpl::underlayColor const): (WebKit::WebViewImpl::pageExtendedBackgroundColor const):
- UIProcess/PDF/WKPDFHUDView.mm: (-[WKPDFHUDView _setupLayer:]):
- UIProcess/mac/WebColorPickerMac.mm: (WebKit::WebColorPickerMac::setSelectedColor): (WebKit::WebColorPickerMac::showColorPicker): (-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):
- WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::setAccentColor):
- WebProcess/cocoa/VideoFullscreenManager.mm: (WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
Source/WebKitLegacy/mac:
- DOM/DOMRGBColor.mm: (-[DOMRGBColor color]):
- WebView/WebFrame.mm: (-[WebFrame _bodyBackgroundColor]):
- WebView/WebView.mm: (-[WebView updateTextTouchBar]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:48 PM Changeset in webkit [285554] by
-
- 3 edits in trunk/LayoutTests
Unreviewed test gardening, skip failing test.
https://bugs.webkit.org/show_bug.cgi?id=231084
rdar://problem/83770133
Bug 230210 caused a progression on how we would detect stall during playback.
This exposed an issue with the existing test where it could fail differently
if a temporary stall occurred.
This test can't pass as we do not support change of resolution mid-stream
in plain mp4 playback (see bug 232916)
Patch by Jean-Yves Avenard <jyavenard@gmail.com> on 2021-11-09
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 6:44 PM Changeset in webkit [285553] by
-
- 14 edits in branches/safari-613.1.8-branch
Cherry-pick r285538. rdar://problem/85234466
Unreviewed, reverting r285246.
https://bugs.webkit.org/show_bug.cgi?id=232907
Broke FixedVector
Reverted changeset:
"[JSC] Clean up StructureStubInfo initialization"
https://bugs.webkit.org/show_bug.cgi?id=232652
https://commits.webkit.org/r285246
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285538 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:57 PM Changeset in webkit [285552] by
-
- 11 edits1 add in trunk/Source/WebCore
[Cocoa] Migrate from CTFontCopyVariationAxes() to CTFontCopyVariationAxesInternal() if possible
https://bugs.webkit.org/show_bug.cgi?id=232690
Reviewed by Simon Fraser and Cameron McCormack.
Source/WebCore:
CTFontCopyVariationAxesInternal() is faster than CTFontCopyVariationAxes(), but the strings
it provides are not localized. Luckily, we don't actually use the strings in the common case,
so we can migrate to CTFontCopyVariationAxesInternal() safely.
No new tests because there is no behavior change.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::buildObjectForFont):
- platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::variationAxes const):
- platform/graphics/FontPlatformData.h:
- platform/graphics/ShouldLocalizeAxisNames.h: Added.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::variationAxes):
(WebCore::defaultVariationValues):
(WebCore::preparePlatformFont):
(WebCore::variationCapabilitiesForFontDescriptor):
- platform/graphics/cocoa/FontCacheCoreText.h:
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::variationAxes const):
Source/WebCore/PAL:
- pal/spi/cf/CoreTextSPI.h:
- 5:39 PM Changeset in webkit [285551] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Block access to mapping of executables
https://bugs.webkit.org/show_bug.cgi?id=232257
<rdar://problem/84623297>
Reviewed by Brent Fulgham.
Block access to mapping of certain executables in the GPU process on macOS.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 5:25 PM Changeset in webkit [285550] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (Safari 15): AudioContext.currentTime speeds up (and audio won't play) when Bluetooth speaker connected
https://bugs.webkit.org/show_bug.cgi?id=232728
<rdar://problem/85075538>
Reviewed by Jer Noble.
This was a regression from us moving WebAudio to the GPUProcess in Safari 15. The issue occurred because the
WebProcess (writer) would get further and further ahead of the GPUProcess (reader) after a hardware sample
rate change.
When rendering on https://mdn.github.io/webaudio-examples/audiocontext-states/ with a hardware sample rate of
96Khz, RemoteAudioDestination::render() would get called with a numberOfFrame=128. Each time
RemoteAudioDestination::render() was called, it would signal the IPC semaphore, causing the WebProcess to
produce one WebAudio rendering quantum (128 frames). This would match perfectly and there would be no issues.
However, if during playback, the hardware sample rate changes (which can happen when connecting to bluetooth
speakers), CoreAudio would start calling RemoteAudioDestination::render() with a different numberOfFrame.
For example, when switching the hardware sample rate to 44.1Khz, numberOfFrames would be 278. Every time it
is called, render() would signal the semaphore 3 times, causing the WebProcess to produce 3 WebAudio rendering
quantums (3 * 128 = 384 frames). So each time render() is called, the WebProcess would generate384 - 278 = 105
frames too many, causing it to get further and further ahead of the GPUProcess. One symptom would be that
AudioContext.currentTime would progress too fast. Also, eventually, our RingBuffer between the 2 process would
fill up and lead to rendering issues.
To address the issue, I updated RemoteAudioDestination::render() to keep track of how many extra samples it
requested from the WebProcess previously. This avoids signalling the IPC semaphore too many times and the
WebProcess can no longer get too far ahead of the GPUProcess. The logic matches what was already done in
RemoteAudioMediaStreamTrackRendererInternalUnitManager::Unit::render().
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
- 5:17 PM Changeset in webkit [285549] by
-
- 9 edits in trunk
Turn on selection flipping by default.
https://bugs.webkit.org/show_bug.cgi?id=232853
Reviewed by Wenson Hsieh.
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
LayoutTests:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-right-to-change-selected-text.html:
- fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text-expected.txt:
- fast/events/touch/ios/long-press-on-editable-content-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text-expected.txt:
- fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/long-press-then-drag-right-to-change-selected-text.html:
- 5:09 PM Changeset in webkit [285548] by
-
- 25 edits in trunk
Unreviewed, reverting r285536.
https://bugs.webkit.org/show_bug.cgi?id=232915
causes API test crashes
Reverted changeset:
"[CF] Reduce duplication and unneeded buffer allocations and
copying in URL code, also remove unused methods and functions"
https://bugs.webkit.org/show_bug.cgi?id=232220
https://commits.webkit.org/r285536
- 5:05 PM Changeset in webkit [285547] by
-
- 120 edits5 adds in trunk/Tools
Unify build of TestWebKitAPI/Tests/WebKitCocoa
https://bugs.webkit.org/show_bug.cgi?id=232768
Reviewed by Tim Horton.
I found that the Fullscreen.LayoutConstraints was not being built because FullscreenLayoutConstraints.mm was not being built.
Now that it is being built it times out, so I disabled it.
- TestWebKitAPI/DeprecatedGlobalValues.cpp: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.
(resetGlobalState):
- TestWebKitAPI/DeprecatedGlobalValues.h: Copied from Tools/TestWebKitAPI/Tests/WebKit/AboutBlankLoad.cpp.
- TestWebKitAPI/DeprecatedGlobalValues.mm: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.
- TestWebKitAPI/Scripts/generate-unified-sources.sh:
- TestWebKitAPI/Sources.txt:
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/AVFoundationPreference.mm:
- TestWebKitAPI/Tests/WebKitCocoa/AdditionalReadAccessAllowedURLs.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ApplePay.mm:
- TestWebKitAPI/Tests/WebKitCocoa/AsyncPolicyForNavigationResponse.mm:
(-[TestAsyncNavigationDelegate webView:didFinishNavigation:]):
(-[TestAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
- TestWebKitAPI/Tests/WebKitCocoa/BundleParameters.mm:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(-[ChallengeDelegate webView:didFinishNavigation:]):
(-[ClientCertificateDelegate webView:didFinishNavigation:]):
(-[ProposedCredentialDelegate webView:didFinishNavigation:]):
(-[ServerTrustDelegate webView:didFailProvisionalNavigation:withError:]):
(-[ServerTrustDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:
(WebKit2_CommandBackForwardTestWKView::SetUp):
(WebKit2_CommandBackForwardTestWKView::loadFiles):
(TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:
(-[TestContextMenuUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuAPIBeforeSPIUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuAPIBeforeSPIUIDelegate _webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuImageUIDelegate _webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/CookieAcceptPolicy.mm:
- TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:
(createWebViewWithCustomPasteboardDataEnabled): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/CopyURL.mm:
(createWebViewWithCustomPasteboardDataEnabled): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/CustomUserAgent.mm:
- TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:
(-[DecidePolicyForNavigationActionController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoading.mm:
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
- TestWebKitAPI/Tests/WebKitCocoa/DuplicateCompletionHandlerCalls.mm:
(-[DuplicateCompletionHandlerCallsDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ExitPiPOnSuspendVideoElement.mm:
- TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenLayoutConstraints.mm:
- TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IDBDeleteRecovery.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IDBObjectStoreInfoUpgradeToV2.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
(-[IPCTestingAPIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/IconLoadingDelegate.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
(-[AppBoundDomainDelegate webView:didFailProvisionalNavigation:withError:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBDatabaseProcessKill.mm:
(-[DatabaseProcessKillMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBInPageCache.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBMultiProcess.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm:
- TestWebKitAPI/Tests/WebKitCocoa/JavaScriptDuringNavigation.mm:
(-[JSNavigationDelegate webView:didFinishNavigation:]):
- TestWebKitAPI/Tests/WebKitCocoa/LoadAlternateHTMLString.mm:
(-[LoadAlternateHTMLStringFromProvisionalLoadErrorController webView:didStartProvisionalNavigation:]):
- TestWebKitAPI/Tests/WebKitCocoa/LoadFileThenReload.mm:
- TestWebKitAPI/Tests/WebKitCocoa/LocalStorageClear.mm:
- TestWebKitAPI/Tests/WebKitCocoa/LocalStorageDatabaseTracker.mm:
- TestWebKitAPI/Tests/WebKitCocoa/LocalStorageNullEntries.mm:
- TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:
(-[LocalStorageNavigationDelegate webView:didFinishNavigation:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/LocalStorageQuirkTest.mm:
- TestWebKitAPI/Tests/WebKitCocoa/MediaSession.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
- TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(-[BroadcastChannelMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcessCrashNonPersistentDataStore.mm:
- TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mm:
- TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm:
- TestWebKitAPI/Tests/WebKitCocoa/PDFLinkReferrer.mm:
(emptyReleaseInfoCallback):
- TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm:
(createWebViewWithCustomPasteboardDataEnabled): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm:
(createWebViewWithCustomPasteboardDataEnabled): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/PasteboardUtilities.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.
- TestWebKitAPI/Tests/WebKitCocoa/PasteboardUtilities.mm: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm.
(createWebViewWithCustomPasteboardDataEnabled):
- TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[PSONNavigationDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(-[PSONNavigationDelegate webView:didStartProvisionalNavigation:]):
(-[PSONNavigationDelegate webView:didCommitNavigation:]):
(-[PSONUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
- TestWebKitAPI/Tests/WebKitCocoa/ProvisionalURLNotChange.mm:
- TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:
(-[ProxyDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
- TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:
(-[QuickLookDelegate navigationError]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/RequiresUserActionForPlayback.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimer.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ResponsivenessTimerDoesntFireEarly.mm:
- TestWebKitAPI/Tests/WebKitCocoa/RunOpenPanel.mm:
(-[RunOpenPanelUIDelegate webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(-[SafeBrowsingNavigationDelegate webView:didCommitNavigation:]):
(-[WKWebViewGoBackNavigationDelegate webView:didFinishNavigation:]):
- TestWebKitAPI/Tests/WebKitCocoa/SchemeRegistry.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
(-[TestSWAsyncNavigationDelegate webView:didFinishNavigation:]):
(-[TestSWAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestSWAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
- TestWebKitAPI/Tests/WebKitCocoa/ShouldOpenExternalURLsInNewWindowActions.mm:
(-[ShouldOpenExternalURLsInNewWindowActionsController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(-[SpeechRecognitionNavigationDelegate webView:didFinishNavigation:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
- TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/TopContentInset.mm:
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[UITestDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
- TestWebKitAPI/Tests/WebKitCocoa/UploadDirectory.mm:
(-[UploadDelegate webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
- TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:
- TestWebKitAPI/Tests/WebKitCocoa/UserInitiatedActionInNavigationAction.mm:
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:
(resetInspectorGlobalState):
(-[UIDelegateForTesting _webView:configurationForLocalInspector:]):
(TEST):
(resetGlobalState): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:
(resetGlobalState): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:
(resetGlobalState): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionHost.mm:
(resetGlobalState): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm:
(-[NavigationResponseTestDelegate webView:didFinishNavigation:]):
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
(-[RedirectSchemeHandler webView:didReceiveServerRedirectForProvisionalNavigation:]):
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDiagnosticLogging.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewFindString.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewSnapshot.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(-[BasicNavigationDelegateWithoutCrashHandler webView:didStartProvisionalNavigation:]):
- TestWebKitAPI/Tests/WebKitCocoa/WebProcessKillIDBCleanup.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebSQLBasics.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[PopUpPoliciesDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
- TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm:
- TestWebKitAPI/Tests/WebKitLegacy/ios/DateTimeInputsAccessoryViewTests.mm:
- TestWebKitAPI/Tests/WebKitLegacy/ios/PreemptVideoFullscreen.mm:
- TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollingDoesNotPauseMedia.mm:
- TestWebKitAPI/Tests/WebKitLegacy/ios/WebGLPrepareDisplayOnWebThread.mm:
- TestWebKitAPI/Tests/WebKitLegacy/mac/AccessingPastedImage.mm:
- TestWebKitAPI/Tests/WebKitLegacy/mac/ClosingWebView.mm:
- TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm:
- TestWebKitAPI/Tests/WebKitLegacy/mac/DownloadThread.mm:
- TestWebKitAPI/Tests/WebKitObjC/CustomProtocolsTest.mm:
- TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:
(-[AsyncPolicyDelegateForInsetTest webView:didFinishNavigation:]):
- TestWebKitAPI/Tests/mac/ContentFiltering.mm:
- 5:03 PM Changeset in webkit [285546] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Add syscalls to sandbox
https://bugs.webkit.org/show_bug.cgi?id=232211
<rdar://problem/84584880>
Reviewed by Darin Adler.
Based on telemetry, add syscalls to the GPU process' sandbox on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 4:52 PM Changeset in webkit [285545] by
-
- 2 edits in trunk/Source/WebKit
[iOS][GPUP] Remove sandbox access to mach services
https://bugs.webkit.org/show_bug.cgi?id=232209
<rdar://problem/84584739>
Reviewed by Darin Adler.
Remove access to mach services in the GPU process' sandbox that are unused according to telemetry.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- 4:45 PM Changeset in webkit [285544] by
-
- 2 edits in trunk/Source/WebCore
[WebXR] three.js demos don't work
https://bugs.webkit.org/show_bug.cgi?id=232798
rdar://83559881
Reviewed by Myles C. Maxfield.
Any content using three.js for WebXR was failing for
a couple of reasons. Firstly, we were not correctly
restoring the framebuffer, read, draw and texture
bindings in the native code, and three.js was correctly
assuming it didn't need to rebind.
Secondly, we were not resolving the multisample
framebuffer if the context was created with no alpha.
The issue is that our framebuffer from XR always has
an alpha channel, and you can't blit from RGB to RGBA.
- Modules/webxr/WebXROpaqueFramebuffer.cpp:
(WebCore::WebXROpaqueFramebuffer::startFrame): Make sure to restore the
bound texture target when exiting the function. Also ensure that we
tell the resolved FBO where its texture data comes from.
(WebCore::WebXROpaqueFramebuffer::endFrame): Restore the framebuffer binding.
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer): Use the correct format.
- 4:40 PM Changeset in webkit [285543] by
-
- 51 edits2 adds in trunk/Source/WebCore
[GPU Process] Introduce FilterFunction and make it the base class of Filter and FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=232413
rdar://84966765
Reviewed by Myles C. Maxfield.
This allows CSSFilter to hold a list of FilterFunctions. The Filter in
this case will act like a composite pattern of FilterEffects.
This patch also
- Removes the virtual function filterName() from all the FilterEffect classes. It replaces it with a static function in FilterFunction.
- Removes the virtual function filterEffectType() and the function FilterEffect::filterEffectClassType() since they can both be replaced by FilterFunction::filterType().
- Adds trait macros for all FilterEffects and the SVGFilters class.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/coreimage/FilterEffectRendererCoreImage.mm:
(WebCore::FilterEffectRendererCoreImage::supportsCoreImageRendering):
(WebCore::FilterEffectRendererCoreImage::connectCIFilters):
- platform/graphics/filters/FEBlend.cpp:
(WebCore::FEBlend::FEBlend):
- platform/graphics/filters/FEBlend.h:
(): Deleted.
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::FEColorMatrix):
- platform/graphics/filters/FEColorMatrix.h:
(isType): Deleted.
- platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::FEComponentTransfer):
- platform/graphics/filters/FEComponentTransfer.h:
(isType): Deleted.
- platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::FEComposite):
- platform/graphics/filters/FEComposite.h:
- platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::FEConvolveMatrix):
- platform/graphics/filters/FEConvolveMatrix.h:
- platform/graphics/filters/FEDiffuseLighting.cpp:
(WebCore::FEDiffuseLighting::FEDiffuseLighting):
- platform/graphics/filters/FEDiffuseLighting.h:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::FEDisplacementMap):
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::FEDropShadow):
- platform/graphics/filters/FEDropShadow.h:
(): Deleted.
- platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::FEFlood):
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::FEGaussianBlur):
- platform/graphics/filters/FEGaussianBlur.h:
(): Deleted.
- platform/graphics/filters/FELighting.h:
- platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::FEMerge):
- platform/graphics/filters/FEMerge.h:
(): Deleted.
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::FEMorphology):
- platform/graphics/filters/FEMorphology.h:
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::FEOffset):
- platform/graphics/filters/FEOffset.h:
(): Deleted.
- platform/graphics/filters/FESpecularLighting.cpp:
(WebCore::FESpecularLighting::FESpecularLighting):
- platform/graphics/filters/FESpecularLighting.h:
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::FETile):
(WebCore::FETile::platformApplySoftware):
- platform/graphics/filters/FETile.h:
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::FETurbulence):
- platform/graphics/filters/FETurbulence.h:
- platform/graphics/filters/Filter.h:
(WebCore::Filter::Filter):
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::FilterEffect):
(WebCore::FilterEffect::determineFilterPrimitiveSubregion):
(WebCore::FilterEffect::createImageBufferResult):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):
- platform/graphics/filters/FilterEffect.h:
(isType):
(WebCore::FilterEffect::filterEffectType const): Deleted.
(WebCore::FilterEffect::filterEffectClassType const): Deleted.
- platform/graphics/filters/FilterFunction.cpp: Added.
(WebCore::FilterFunction::FilterFunction):
(WebCore::FilterFunction::filterName):
- platform/graphics/filters/FilterFunction.h: Added.
(WebCore::FilterFunction::filterType const):
(WebCore::FilterFunction::isCSSFilter const):
(WebCore::FilterFunction::isSVGFilter const):
(WebCore::FilterFunction::isFilter const):
(WebCore::FilterFunction::isFilterEffect const):
(WebCore::FilterFunction::sourceAlphaName):
(WebCore::FilterFunction::sourceGraphicName):
(WebCore::FilterFunction::filterName const):
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::SourceAlpha):
(WebCore::SourceAlpha::effectName): Deleted.
- platform/graphics/filters/SourceAlpha.h:
(WebCore::SourceAlpha::effectName):
(): Deleted.
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::effectName): Deleted.
- platform/graphics/filters/SourceGraphic.h:
(WebCore::SourceGraphic::effectName):
(WebCore::SourceGraphic::SourceGraphic):
(): Deleted.
(isType): Deleted.
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::CSSFilter):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::FEImage):
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::SVGFilter):
- svg/graphics/filters/SVGFilter.h:
(isType):
- svg/graphics/filters/SVGFilterBuilder.cpp:
- 4:38 PM Changeset in webkit [285542] by
-
- 6 edits1 add in branches/safari-612-branch
[JSC] Don't branch around register allocation in DFG enumerator get by val
https://bugs.webkit.org/show_bug.cgi?id=232260
rdar://84544469
Reviewed by Robin Morisset.
JSTests:
- stress/dont-branch-around-regalloc-enumerator-get-by-val-float.js: Added.
(foo):
Source/JavaScriptCore:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):
Canonical link: https://commits.webkit.org/243528@main
- 4:29 PM Changeset in webkit [285541] by
-
- 6 edits1 add in branches/safari-612-branch
EnumeratorGetByVal for IndexedMode+OwnStructureMode doesn't always recover the property name
https://bugs.webkit.org/show_bug.cgi?id=231321
<rdar://problem/84211697>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/enumerator-get-by-val-needs-to-recover-property-name.js: Added.
Source/JavaScriptCore:
When running an EnumeratorGetByVal in IndexedMode+OwnStructureMode, we may
go to the slow path. However, we were incorrectly going to the slow path
before recovering the actual property name. Instead, we were passing in
the integer index value to the get by val.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
Canonical link: https://commits.webkit.org/243803@main
- 4:03 PM Changeset in webkit [285540] by
-
- 7 edits in branches/safari-613.1.7-branch/Source
Cherry-pick r285164. rdar://problem/85227922
WebDriver: [Cocoa] support
acceptInsecureCertscapability
https://bugs.webkit.org/show_bug.cgi?id=231789
Reviewed by BJ Burg.
Add necessary plumbing to support the
acceptInsecureCertsWebDriver capability.
Source/JavaScriptCore:
- inspector/remote/RemoteInspectorConstants.h:
- inspector/remote/cocoa/RemoteInspectorCocoa.mm: (Inspector::RemoteInspector::receivedAutomationSessionRequestMessage):
Source/WebKit:
- UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h:
- UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.mm: (-[_WKAutomationSessionConfiguration init]): (-[_WKAutomationSessionConfiguration copyWithZone:]):
- UIProcess/Cocoa/AutomationClient.mm: (WebKit::AutomationClient::requestAutomationSession):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285164 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:53 PM Changeset in webkit [285539] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed internal build fix after r285444
- Platform/spi/Cocoa/AppleMediaServicesSPI.h:
- 3:06 PM Changeset in webkit [285538] by
-
- 14 edits in trunk
Unreviewed, reverting r285246.
https://bugs.webkit.org/show_bug.cgi?id=232907
Broke FixedVector
Reverted changeset:
"[JSC] Clean up StructureStubInfo initialization"
https://bugs.webkit.org/show_bug.cgi?id=232652
https://commits.webkit.org/r285246
- 3:02 PM Changeset in webkit [285537] by
-
- 2 edits in trunk/Source/WebKit
[WebAuthn] User handle is not saved on create via ASC
https://bugs.webkit.org/show_bug.cgi?id=232900
rdar://85216105
Reviewed by Brent Fulgham.
This value is required to be stored along the credential on create calls
such that it can be returned via get calls. Currently, it is always read
as empty because user.id is empty after ipc, while the id is decoded to
idVector.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::configureRegistrationRequestContext):
- 2:58 PM Changeset in webkit [285536] by
-
- 25 edits in trunk
[CF] Reduce duplication and unneeded buffer allocations and copying in URL code, also remove unused methods and functions
https://bugs.webkit.org/show_bug.cgi?id=232220
Reviewed by Alex Christensen.
Source/WebKit:
- Shared/API/c/cf/WKURLCF.mm:
(WKURLCreateWithCFURL): Use bytesAsString, saving creation and destruction
of a CString each time this is called.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(-[WKSecureCodingURLWrapper encodeWithCoder:]): Use bytesAsVector.
- Shared/Cocoa/WKNSURLExtras.h: Removed unused methods
+[NSURL _web_URLWithWTFString:relativeToURL:] and
-[NSURL _web_originalDataAsWTFString].
- Shared/Cocoa/WKNSURLExtras.mm:
(+[NSURL _web_URLWithWTFString:relativeToURL:]): Deleted.
(-[NSURL _web_originalDataAsWTFString]): Deleted.
- Shared/Cocoa/WKNSURLRequest.mm:
(-[WKNSURLRequest URL]): Removed unneeded call to +[NSURL _web_URLWithWTFString:]
because this code is converting a WTF::URL to an NSURL, which can use the conversion
operator in the WTF::URL class.
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::ArgumentCoder<CFURLRef>::encode): Use bytesAsVector.
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
Use bytesAsString and bridge_cast.
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]): Ditto.
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]): Ditto.
(setUpPagePolicyClient): Removed unneeded call to +[NSURL _web_URLWithWTFString:]
because this code is converting a WTF::URL to an NSURL, which can use the conversion
operator in the WTF::URL class.
- UIProcess/Cocoa/LegacyDownloadClient.mm:
(WebKit::LegacyDownloadClient::willSendRequest): Removed unneeded call to
+[NSURL _web_URLWithWTFString:] because this code is converting a WTF::URL to an NSURL,
which can use the conversion operator in the WTF::URL class.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame URL]): Ditto.
Source/WebKitLegacy/mac:
- Misc/WebNSURLExtras.h: Tweaked comments a bit. No need to say methods are "new", since
that won't be true in the future. Removed unused methods
+[NSURL _web_URLWithUserTypedString:relativeToURL:],
+[NSURL _webkit_URLWithUserTypedString:relativeToURL:],
+[NSURL _web_URLWithData:], +[NSURL _web_URLWithData:relatveToURL:].
Wanted to remove even more nearly unused methods: many were used only
inside the WebKit project, in legacy plug-in code, and some seemed unused,
but it wasn't easy for me to quickly verify that.
- Misc/WebNSURLExtras.mm: Removed "using namespace WebCore" and
"using namespace WTF".
(+[NSURL _web_URLWithUserTypedString:relativeToURL:]): Deleted.
(+[NSURL _web_URLWithUserTypedString:]): Use WTF prefix explicitly.
(+[NSURL _webkit_URLWithUserTypedString:relativeToURL:]): Deleted.
(+[NSURL _webkit_URLWithUserTypedString:]): Use WTF prefix explicitly.
(+[NSURL _web_URLWithDataAsString:]): Removed special case for nil since the code
will do the right thing with nil without an explicit check.
(+[NSURL _web_URLWithDataAsString:relativeToURL]): Ditto. Also formatted the code
as a one-liner.
(+[NSURL _web_URLWithData:]): Deleted.
(+[NSURL _web_URLWithData:relativeToURL:]): Deleted.
(-[NSURL _web_originalData]): Use WTF prefix explicitly.
(-[NSURL _web_originalDataAsString]): Ditto.
(-[NSURL _web_isEmpty]): Use bridge_cast and make code style checker happy by using
"!" instead of "== 0".
(-[NSURL _web_URLCString]): Use WTF prefix explicitly.
(-[NSURL _webkit_canonicalize]): Use WebCore prefix explicitly.
(-[NSURL _webkit_URLByRemovingFragment]): Use WTF prefix explicitly.
(-[NSURL _web_schemeSeparatorWithoutColon]): Deleted.
(-[NSURL _web_dataForURLComponentType:]): Deleted.
(-[NSURL _web_hostData]): Use WTF prefix explicitly. Rearranged for clarity and
slightly improved efficiency as well.
(-[NSString _web_isUserVisibleURL]): Use WTF prefix explicitly.
(-[NSString _webkit_stringByReplacingValidPercentEscapes]): Use WebCore prefix
explicitly.
(-[NSString _web_decodeHostName]): Use WTF prefix explicitly.
(-[NSString _web_encodeHostName]): Ditto.
(-[NSString _webkit_decodeHostName]): Ditto.
(-[NSString _webkit_encodeHostName]): Ditto.
Source/WTF:
- wtf/URL.h: Removed unneeded includes. Use default instead of { }
for empty destructor. Added emptyCFURL function.
- wtf/cf/CFURLExtras.cpp:
(WTF::bytesAsCFData): Added. Replaces originalURLData from NSURLExtras.mm,
but with a simpler implementation and more error checking. Here it's also
alongside the other nearly identical functions.
(WTF::bytesAsString): Added. Replaces getURLBytes for callers that are
going to turn the bytes into a WTF::String. Before this patch, the callers
were converting from CFURLRef to WTF::CString and then to WTF::String, so
this eliminates the malloc/free pair for CString.
(WTF::bytesAsVector): Added. Replaces getURLBytes using a return value
instead of an out argument. Adds the optimization of filling the buffer if
the inline capacity is sufficient, which was in originalURLData, but not
here in getURLBytes before.
(WTF::isSameOrigin): Renamed from isCFURLSameOrigin and rewrote this to
have fewer type casts and more parallel structure so it's easier to read,
while adapting it to use bytesAsVector.
- wtf/cf/CFURLExtras.h: Replaced URLCharBuffer, getURLBytes, and
isCFURLSameOrigin with URLBytesVectorInlineCapacity, bytesAsCFData,
bytesAsString, bytesAsVector, and isSameOrigin. Got rid of unneeded
includes.
- wtf/cf/URLCF.cpp:
(WTF::URL::URL): Use bytesAsString to streamline implementation and
remove allocation/deallcation of a CString.
(WTF::URL::emptyCFURL): Added. Used to refactor createCFURL so we can
share it across Foundation and non-Foundation versions.
(WTF::URL::createCFURL const): Added the logic that was in the version
in URLCocoa.mm so we can share this single version, and removed the #if
surrounding this.
(WTF::URL::fileSystemPath const): Use auto.
- wtf/cocoa/NSURLExtras.h: Changed URLWithUserTypedString to ignore
the baseURL argument. It's not used, but the function is exported and
currently used in Safari source code, which, like all callers passes
a nil for baseURL. so, for now left the argument. Removed the baseURL
argument from URLWithUserTypedStringDeprecated. Removed unused functions
rangeOfURLScheme and looksLikeAbsoluteURL.
- wtf/cocoa/NSURLExtras.mm: Removed "using namespace URLHelpers".
(WTF::readIDNAllowedScriptListFile): Use URLHelpers explicitly.
(WTF::decodeHostName): Ditto.
(WTF::encodeHostName): Ditto.
(WTF::URLByTruncatingOneCharacterBeforeComponent): Simplified by using
the bytesAsVector function.
(WTF::URLByRemovingResourceSpecifier): Deleted.
(WTF::URLWithData): Call URLByTruncatingOneCharacterBeforeComponent
directly.
(WTF::URLWithUserTypedString): Removed the unneeded support for a
base URL. Use URLHelpers explicitly.
(WTF::URLWithUserTypedStringDeprecated): Ditto.
(WTF::hasQuestionMarkOnlyQueryString): Use bridge_cast.
(WTF::dataForURLComponentType): Rearranged to simplify a bit, remove support
for special value for CFURLComponentType that means the complete URL, since
no callers were using that, and use bytesAsVector.
(WTF::URLByRemovingComponentAndSubsequentCharacter): Use bridge_cast and
bytesAsVector.
(WTF::originalURLData): Use bridge_cast and bytesAsCFData.
(WTF::userVisibleString): Use URLHelpers explicitly.
(WTF::isUserVisibleURL): Rewrote for simplicity and coding style; since
the local characters are a null-terminated C string, we don't need
length checks as long as we validate characters first, since a '\0'
character can be read and will not be valid.
(WTF::rangeOfURLScheme): Deleted.
(WTF::looksLikeAbsoluteURL): Deleted.
- wtf/cocoa/URLCocoa.mm:
(WTF::URL::URL): Changed to just call the CFURLRef constructor so we
don't need to repeat things twice.
(WTF::URL::emptyCFURL): Added. This is the one part of the createCFURL
function that depends on Objective-C.
(WTF::URL::createCFURL const): Merged into the function in URLCF.cpp.
(WTF::makeNSArrayElement): Use bridge_cast instead of the trickier
idiom with explicit calls to leakRef and bridge_transfer.
- wtf/mac/FileSystemMac.mm:
(WTF::FileSystem::setMetadataURL): Updated since URLWithUserTypedString
no longer requires a baseURL of nil to be passed. Also removed explicit
WTF namespace since this code itself is in the WTF namespace.
- wtf/text/cocoa/StringCocoa.mm:
(WTF::String::String): Use bridge_cast.
(WTF::makeNSArrayElement): Use bridge_cast.
Tools:
- TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST): Removed extra argument to URLWithUserTypedString/Deprecated.
- 2:25 PM Changeset in webkit [285535] by
-
- 2 edits in trunk
Add j_pascoe to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=232904
<rdar://problem/85222703>
Unreviewed.
- metadata/contributors.json:
- 2:19 PM Changeset in webkit [285534] by
-
- 7 edits in trunk
BroadcastChannel is still disabled in service workers
https://bugs.webkit.org/show_bug.cgi?id=232855
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/webmessaging/broadcastchannel/service-worker.https-expected.txt:
Source/WebKit:
No new tests, rebaselined existing test.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
Make sure BroadcastChannel is functional is Service Workers by setting up proper
BroadcastChannelRegistry on the PageConfiguration we use to construct the service
worker's dummy page.
Source/WTF:
Turn on BroadcastChannel experimental feature in WebCore since this is the value that Service Workers
end up using. We only need to disable it in WebKitLegacy.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 1:56 PM Changeset in webkit [285533] by
-
- 2 edits in trunk/Source/JavaScriptCore
Using WASM function size as the cap for choosing a register allocator causes performance regressions.
https://bugs.webkit.org/show_bug.cgi?id=217290
<rdar://problem/69934870>
Reviewed by Yusuke Suzuki.
This patch just increases --maximumTmpsForGraphColoring from 25k to 60k.
It was originally lowered to prevent jetsams in some wasm webpages such as mruby-wasm.aotoki.dev.
These jetsams were caused by excessive memory consumption by the interference graphs used by AirAllocateRegistersByGraphColoring and AirAllocateStackByGraphColoring.
I massively optimized these interference graphs in the following two patches (effect on mruby-wasm.aotoki.dev):
- https://trac.webkit.org/changeset/277714/webkit (262MB + 262MB -> 20MB + 10MB in register allocator)
- https://trac.webkit.org/changeset/278186/webkit (221MB + 399MB -> 6.5MB + 10.5MB in stack slot allocator)
So it should now be safe to increase --maximumTmpsForGraphColoring.
It is valuable to increase it, because some webpages such as https://dos.zone/en/play/https%3A%2F%2Fdoszone-uploads.s3.dualstack.eu-central-1.amazonaws.com%2Foriginal%2F2X%2Fb%2Fb4b5275904d86a4ab8a20917b2b7e34f0df47bf7.jsdos see massive performance wins/losses depending on whether we register allocate all of their wasm functions or not.
For example that page has two functions with ~54k temporaries, and its integrated benchmark has a score increase from about 27 to about 70 on an M1 MBP 2020 when they are register allocated.
External reports suggest that this the performance difference is even larger on older machines (5.5 to 48).
- runtime/OptionsList.h:
- 1:53 PM Changeset in webkit [285532] by
-
- 5 edits1 add in trunk/Source
[RISCV64] Add assembly, disassembly infrastructure
https://bugs.webkit.org/show_bug.cgi?id=232870
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-11-09
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Provide the necessary facilities for assembling and disassembling
RISC-V instructions. This is just a preliminary patch that introduces
the necessary assembly and disassembly infrastructure while actual
enhancements to RISCV64Assembler and MacroAssemblerRISCV64 classes are
left for later.
In RISCV64Assembler.h header, necessary helper functions, enumerations
and structs are introduced that enable crafting instruction values in
accordance with the base RISC-V specification. All the necessary
immediate and instruction types are supported, and the relevant
instruction definitions are introduced and become usable in future work.
For debugging purposes, a custom RISC-V disassembler is also introduced
and is enabled when appropriate. The implementation utilizes
functionality introduced in RISCV64Assembler.h, and different formatters
are introduced to handle special cases even among the established
instruction types.
- Sources.txt:
- assembler/RISCV64Assembler.h:
(JSC::RISCV64Instructions::registerValue):
(JSC::RISCV64Instructions::InstructionValue::InstructionValue):
(JSC::RISCV64Instructions::InstructionValue::field):
(JSC::RISCV64Instructions::InstructionValue::opcode):
(JSC::RISCV64Instructions::ImmediateBase::isValid):
(JSC::RISCV64Instructions::ImmediateBase::v):
(JSC::RISCV64Instructions::ImmediateBase::ImmediateBase):
(JSC::RISCV64Instructions::ImmediateBase::field):
(JSC::RISCV64Instructions::IImmediate::IImmediate):
(JSC::RISCV64Instructions::IImmediate::value):
(JSC::RISCV64Instructions::SImmediate::SImmediate):
(JSC::RISCV64Instructions::SImmediate::value):
(JSC::RISCV64Instructions::BImmediate::BImmediate):
(JSC::RISCV64Instructions::BImmediate::value):
(JSC::RISCV64Instructions::UImmediate::UImmediate):
(JSC::RISCV64Instructions::UImmediate::value):
(JSC::RISCV64Instructions::JImmediate::JImmediate):
(JSC::RISCV64Instructions::JImmediate::value):
(JSC::RISCV64Instructions::RegistersBase::Size):
(JSC::RISCV64Instructions::RTypeBase::construct):
(JSC::RISCV64Instructions::RTypeBase::matches):
(JSC::RISCV64Instructions::RTypeBase::rd):
(JSC::RISCV64Instructions::RTypeBase::rs1):
(JSC::RISCV64Instructions::RTypeBase::rs2):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::construct):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::matches):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rd):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rs1):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rs2):
(JSC::RISCV64Instructions::RTypeBaseWithRoundingMode::rm):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::construct):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::matches):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::rd):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::rs1):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::rs2):
(JSC::RISCV64Instructions::RTypeBaseWithAqRl::aqrl):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::construct):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::matches):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rd):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rs1):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rs2):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rs3):
(JSC::RISCV64Instructions::R4TypeBaseWithRoundingMode::rm):
(JSC::RISCV64Instructions::ITypeBase::construct):
(JSC::RISCV64Instructions::ITypeBase::matches):
(JSC::RISCV64Instructions::ITypeBase::rd):
(JSC::RISCV64Instructions::ITypeBase::rs1):
(JSC::RISCV64Instructions::STypeBase::construct):
(JSC::RISCV64Instructions::STypeBase::matches):
(JSC::RISCV64Instructions::STypeBase::rs1):
(JSC::RISCV64Instructions::STypeBase::rs2):
(JSC::RISCV64Instructions::BTypeBase::construct):
(JSC::RISCV64Instructions::BTypeBase::matches):
(JSC::RISCV64Instructions::BTypeBase::rs1):
(JSC::RISCV64Instructions::BTypeBase::rs2):
(JSC::RISCV64Instructions::UTypeBase::construct):
(JSC::RISCV64Instructions::UTypeBase::matches):
(JSC::RISCV64Instructions::UTypeBase::rd):
(JSC::RISCV64Instructions::JTypeBase::construct):
(JSC::RISCV64Instructions::JTypeBase::matches):
(JSC::RISCV64Instructions::JTypeBase::rd):
(JSC::RISCV64Instructions::SLLI::construct):
(JSC::RISCV64Instructions::SRLI::construct):
(JSC::RISCV64Instructions::SRAI::construct):
(JSC::RISCV64Instructions::SLLIW::construct):
(JSC::RISCV64Instructions::SRLIW::construct):
(JSC::RISCV64Instructions::SRAIW::construct):
(JSC::RISCV64Instructions::FCVTImpl::construct):
(JSC::RISCV64Instructions::FMVImpl::construct):
- disassembler/RISCV64Disassembler.cpp: Added.
(JSC::RISCV64Disassembler::StringBufferBase::data):
(JSC::RISCV64Disassembler::StringBufferBase::size):
(JSC::RISCV64Disassembler::StringBufferBase::createString):
(JSC::RISCV64Disassembler::registerName<RISCV64Instructions::RegistersBase::GType>):
(JSC::RISCV64Disassembler::registerName<RISCV64Instructions::RegistersBase::FType>):
(JSC::RISCV64Disassembler::roundingMode):
(JSC::RISCV64Disassembler::memoryOperationFlags):
(JSC::RISCV64Disassembler::aqrlFlags):
(JSC::RISCV64Disassembler::InstructionList::contains):
(JSC::RISCV64Disassembler::RTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeR2Formatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithRoundingModeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithRoundingModeFSQRTFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithRoundingModeFCVTFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithAqRlDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::RTypeWithAqRlLRFormatting::disassemble):
(JSC::RISCV64Disassembler::R4TypeWithRoundingModeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::ITypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::ITypeImmediateAsOffsetFormatting::disassemble):
(JSC::RISCV64Disassembler::STypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::BTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::UTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::JTypeDefaultFormatting::disassemble):
(JSC::RISCV64Disassembler::FenceInstructionFormatting::disassemble):
(JSC::RISCV64Disassembler::FenceIInstructionFormatting::disassemble):
(JSC::RISCV64Disassembler::EnvironmentInstructionFormatting::disassemble):
(JSC::RISCV64Disassembler::DisassemblyFormatting::disassemble):
(JSC::RISCV64Disassembler::Disassembler::disassemble):
(JSC::RISCV64Disassembler::Disassembler<InsnType>::disassemble):
(JSC::RISCV64Disassembler::disassembleOpcode):
(JSC::tryToDisassemble):
Source/WTF:
- wtf/PlatformEnable.h: Enable RISCV64_DISASSEMBLER when necessary.
- 1:36 PM Changeset in webkit [285531] by
-
- 2 edits in trunk/Source/WebCore
Fix macCatalyst build after r285509
https://bugs.webkit.org/show_bug.cgi?id=232863
Unreviewed.
- Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
- 1:33 PM Changeset in webkit [285530] by
-
- 8 edits in trunk/Source/JavaScriptCore
Refactoring and PutByVal cleanup
https://bugs.webkit.org/show_bug.cgi?id=232265
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-11-09
Reviewed by Saam Barati.
Follow-up from https://bugs.webkit.org/show_bug.cgi?id=232242,
this patch includes several small code changes but the patch doesn't
add/remove any feature:
- Removed several calls to operationPutByVal*Cell* that were
only used by the 32 bit code paths due to the lack of registers.
These calls were replaced by the calls used by the 64 bit paths,
that expect EncodedJSValues
- Because of #1, this patch removes those methods, since no one
uses them anymore.
- Created compilePutByVal to handle all cases (similar to compileGetByVal).
- Removed the Edge& childX from the PutByVal handling (and all methods
that expected them) in favor of getting them from node when needed.
- Unified compileContiguousPutByVal so it could be used by both 32
and 64 bit archs.
- Removed a lot of whitespace.
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal):
(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compilePutByVal):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrivateName): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrivateNameById): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithString): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByValForCellWithSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValWithThis): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutPrivateName): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutPrivateNameById): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckPrivateBrand): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetPrivateBrand): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckTypeInfoFlags): Deleted.
(JSC::DFG::SpeculativeJIT::compileParseInt): Deleted.
(JSC::DFG::SpeculativeJIT::compileOverridesHasInstance): Deleted.
(JSC::DFG::SpeculativeJIT::compileInstanceOfForCells): Deleted.
(JSC::DFG::SpeculativeJIT::compileInstanceOf): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueBitNot): Deleted.
(JSC::DFG::SpeculativeJIT::compileBitwiseNot): Deleted.
(JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueBitwiseOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileBitwiseOp): Deleted.
(JSC::DFG::SpeculativeJIT::emitUntypedOrBigIntRightShiftBitOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueLShiftOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueBitRShift): Deleted.
(JSC::DFG::SpeculativeJIT::compileShiftOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueSub): Deleted.
(JSC::DFG::SpeculativeJIT::compileMathIC): Deleted.
(JSC::DFG::SpeculativeJIT::compileInstanceOfCustom): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsCellWithType): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsTypedArrayView): Deleted.
(JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithAbs): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithClz32): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithDoubleUnaryOp): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithSub): Deleted.
(JSC::DFG::SpeculativeJIT::compileIncOrDec): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueNegate): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithNegate): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueMul): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithMul): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueDiv): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithDiv): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithFRound): Deleted.
(JSC::DFG::SpeculativeJIT::compileValueMod): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithMod): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithRounding): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithUnary): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithSqrt): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithMinMax): Deleted.
(JSC::DFG::compileArithPowIntegerFastPath): Deleted.
(JSC::DFG::SpeculativeJIT::compileValuePow): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithPow): Deleted.
(JSC::DFG::SpeculativeJIT::compare): Deleted.
(JSC::DFG::SpeculativeJIT::compileCompareUnsigned): Deleted.
(JSC::DFG::SpeculativeJIT::compileStrictEq): Deleted.
(JSC::DFG::SpeculativeJIT::compileBooleanCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileInt32Compare): Deleted.
(JSC::DFG::SpeculativeJIT::compileDoubleCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileSymbolEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compilePeepHoleSymbolEquality): Deleted.
(JSC::DFG::SpeculativeJIT::emitBitwiseJSValueEquality): Deleted.
(JSC::DFG::SpeculativeJIT::emitBranchOnBitwiseJSValueEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compilePeepHoleNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringToUntypedEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringIdentEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringIdentToNotStringVarEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringIdentCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileSameValue): Deleted.
(JSC::DFG::SpeculativeJIT::compileToBooleanString): Deleted.
(JSC::DFG::SpeculativeJIT::compileToBooleanStringOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::emitStringBranch): Deleted.
(JSC::DFG::SpeculativeJIT::emitStringOrOtherBranch): Deleted.
(JSC::DFG::SpeculativeJIT::compileConstantStoragePointer): Deleted.
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetScope): Deleted.
(JSC::DFG::SpeculativeJIT::compileSkipScope): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGlobalObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGlobalThis): Deleted.
(JSC::DFG::SpeculativeJIT::canBeRope): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetArrayLength): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckIdent): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewFunction): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetFunctionName): Deleted.
(JSC::DFG::SpeculativeJIT::compileVarargsLength): Deleted.
(JSC::DFG::SpeculativeJIT::compileLoadVarargs): Deleted.
(JSC::DFG::SpeculativeJIT::compileForwardVarargs): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateActivation): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetFromArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutToArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetArgument): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateScopedArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateClonedArguments): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateArgumentsButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateRest): Deleted.
(JSC::DFG::SpeculativeJIT::compileSpread): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArray): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetRestLength): Deleted.
(JSC::DFG::SpeculativeJIT::emitPopulateSliceIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileArraySlice): Deleted.
(JSC::DFG::SpeculativeJIT::compileArrayIndexOf): Deleted.
(JSC::DFG::SpeculativeJIT::compileArrayPush): Deleted.
(JSC::DFG::SpeculativeJIT::compileNotifyWrite): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileTypeOfIsObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsCallable): Deleted.
(JSC::DFG::SpeculativeJIT::compileIsConstructor): Deleted.
(JSC::DFG::SpeculativeJIT::compileTypeOf): Deleted.
(JSC::DFG::SpeculativeJIT::emitStructureCheck): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckIsConstant): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckNotEmpty): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckStructure): Deleted.
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage): Deleted.
(JSC::DFG::SpeculativeJIT::compileNukeStructureAndSetButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetButterfly): Deleted.
(JSC::DFG::allocateTemporaryRegistersForSnippet): Deleted.
(JSC::DFG::SpeculativeJIT::compileCallDOM): Deleted.
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckJSCast): Deleted.
(JSC::DFG::SpeculativeJIT::temporaryRegisterForPutByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOrStringValueOf): Deleted.
(JSC::DFG::getExecutable): Deleted.
(JSC::DFG::SpeculativeJIT::compileFunctionToString): Deleted.
(JSC::DFG::SpeculativeJIT::compileNumberToStringWithValidRadixConstant): Deleted.
(JSC::DFG::SpeculativeJIT::compileNumberToStringWithRadix): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewStringObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize): Deleted.
(JSC::DFG::SpeculativeJIT::emitNewTypedArrayWithSizeInRegister): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewRegexp): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCellTypeWithoutTypeFiltering): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCellType): Deleted.
(JSC::DFG::SpeculativeJIT::speculateInt32): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNumber): Deleted.
(JSC::DFG::SpeculativeJIT::speculateRealNumber): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal): Deleted.
(JSC::DFG::SpeculativeJIT::speculateBoolean): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCell): Deleted.
(JSC::DFG::SpeculativeJIT::speculateCellOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateFunction): Deleted.
(JSC::DFG::SpeculativeJIT::speculateFinalObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateRegExpObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateArray): Deleted.
(JSC::DFG::SpeculativeJIT::speculateProxyObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDerivedArray): Deleted.
(JSC::DFG::SpeculativeJIT::speculatePromiseObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDateObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateMapObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateSetObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateWeakMapObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateWeakSetObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateDataViewObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateObjectOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateString): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringOrOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringIdentAndLoadStorage): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringIdent): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateStringOrStringObject): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotStringVar): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::speculateSymbol): Deleted.
(JSC::DFG::SpeculativeJIT::speculateHeapBigInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotCell): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotCellNorBigInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNotDouble): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigInt): Deleted.
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString): Deleted.
(JSC::DFG::SpeculativeJIT::speculateOther): Deleted.
(JSC::DFG::SpeculativeJIT::speculateMisc): Deleted.
(JSC::DFG::SpeculativeJIT::speculate): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchImm): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchChar): Deleted.
(JSC::DFG::SpeculativeJIT::emitBinarySwitchStringRecurse): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitchString): Deleted.
(JSC::DFG::SpeculativeJIT::emitSwitch): Deleted.
(JSC::DFG::SpeculativeJIT::addBranch): Deleted.
(JSC::DFG::SpeculativeJIT::linkBranches): Deleted.
(JSC::DFG::SpeculativeJIT::compileStoreBarrier): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutAccessorById): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutGetterSetterById): Deleted.
(JSC::DFG::SpeculativeJIT::compileResolveScope): Deleted.
(JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGlobalVariable): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutGlobalVariable): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetClosureVar): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutClosureVar): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetInternalField): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutInternalField): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetRegExpObjectLastIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetRegExpObjectLastIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpExec): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpTest): Deleted.
(JSC::DFG::SpeculativeJIT::compileStringReplace): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpExecNonGlobalOrSticky): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpMatchFastGlobal): Deleted.
(JSC::DFG::SpeculativeJIT::compileRegExpMatchFast): Deleted.
(JSC::DFG::SpeculativeJIT::compileLazyJSConstant): Deleted.
(JSC::DFG::SpeculativeJIT::compileMaterializeNewObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileRecordRegExpCachedResult): Deleted.
(JSC::DFG::SpeculativeJIT::compileDefineDataProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compileDefineAccessorProperty): Deleted.
(JSC::DFG::SpeculativeJIT::emitAllocateButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetMapBucketHead): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetMapBucketNext): Deleted.
(JSC::DFG::SpeculativeJIT::compileLoadKeyFromMapBucket): Deleted.
(JSC::DFG::SpeculativeJIT::compileLoadValueFromMapBucket): Deleted.
(JSC::DFG::SpeculativeJIT::compileExtractValueFromWeakMapGet): Deleted.
(JSC::DFG::SpeculativeJIT::compileThrow): Deleted.
(JSC::DFG::SpeculativeJIT::compileThrowStaticError): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextUpdateIndexAndMode): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextExtractIndex): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextExtractMode): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorNextUpdatePropertyName): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorHasProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorInByVal): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorHasOwnProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutById): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByIdWithThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetByOffset): Deleted.
(JSC::DFG::SpeculativeJIT::compilePutByOffset): Deleted.
(JSC::DFG::SpeculativeJIT::compileMatchStructure): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetExecutable): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetGetter): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetSetter): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetCallee): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetCallee): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetArgumentCountIncludingThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetArgumentCountIncludingThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileStrCat): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArrayBuffer): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSize): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewTypedArray): Deleted.
(JSC::DFG::SpeculativeJIT::compileToThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectKeysOrObjectGetOwnPropertyNames): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectAssign): Deleted.
(JSC::DFG::SpeculativeJIT::compileObjectCreate): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateThis): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreatePromise): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateInternalFieldObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileCreateAsyncGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObjectImpl): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewAsyncGenerator): Deleted.
(JSC::DFG::SpeculativeJIT::compileNewInternalFieldObject): Deleted.
(JSC::DFG::SpeculativeJIT::compileToPrimitive): Deleted.
(JSC::DFG::SpeculativeJIT::compileToPropertyKey): Deleted.
(JSC::DFG::SpeculativeJIT::compileToNumeric): Deleted.
(JSC::DFG::SpeculativeJIT::compileCallNumberConstructor): Deleted.
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenPrologue): Deleted.
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenTail): Deleted.
(JSC::DFG::SpeculativeJIT::compileSetAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileMapSet): Deleted.
(JSC::DFG::SpeculativeJIT::compileWeakMapGet): Deleted.
(JSC::DFG::SpeculativeJIT::compileWeakSetAdd): Deleted.
(JSC::DFG::SpeculativeJIT::compileWeakMapSet): Deleted.
(JSC::DFG::SpeculativeJIT::compileGetPrototypeOf): Deleted.
(JSC::DFG::SpeculativeJIT::compileIdentity): Deleted.
(JSC::DFG::SpeculativeJIT::compileMiscStrictEq): Deleted.
(JSC::DFG::SpeculativeJIT::emitInitializeButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize): Deleted.
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty): Deleted.
(JSC::DFG::SpeculativeJIT::compileExtractCatchLocal): Deleted.
(JSC::DFG::SpeculativeJIT::compileClearCatchLocals): Deleted.
(JSC::DFG::SpeculativeJIT::compileProfileType): Deleted.
(JSC::DFG::SpeculativeJIT::cachedPutById): Deleted.
(JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeCompare): Deleted.
(JSC::DFG::SpeculativeJIT::genericJSValuePeepholeBranch): Deleted.
(JSC::DFG::SpeculativeJIT::compileHeapBigIntEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.
(JSC::DFG::SpeculativeJIT::compileEnumeratorGetByVal): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileContiguousPutByVal): Deleted.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfEmpty):
(JSC::AssemblyHelpers::branchIfNotEmpty):
- 1:25 PM Changeset in webkit [285529] by
-
- 14 edits2 adds in trunk
REGRESSION(r272201): Safari showed red distortion on webview after using Web Inspector, returning from another app
https://bugs.webkit.org/show_bug.cgi?id=231358
<rdar://problem/81505208>
Reviewed by Devin Rousso.
Source/WebCore:
Test: inspector/page/setShowPaintRects.html
When we added support for animating individual transform properties, we moved to a model where all animations
for a given CSS property were wrapped in a dedicated CAAnimationGroup when running accelerated. Those groups
have an infinite duration and thus would never call the -animationDidStop:finished: CAAnimationDelegate method.
An option would have been to set the delegate on all animations contained in a CAAnimationGroup in
PlatformCALayerCocoa::addAnimationForKey(), but as it turns out, the CAAnimationDelegate methods for children
of an animation group aren't fired.
Since the only current use for the -animationDidStop:finished: delegate method is to eventually message back
into WebInspectorClient::animationEndedForLayer() for opacity animations, which don't need to run contained in
groups, our approach to address the issue is to only group animations for transform-related properties and
leave other animations as simple leaf animations.
To do this, inside of GraphicsLayerCA::updateAnimations(), we replace the addAnimation() lambda with a new
addLeafAnimation() lambda which we use for opacity, background-color and filter animations.
In order to be able to test the successful removal of repaint rects as a result of the CAAnimationDelegate
method firing, Patrick Angle contributed the required changes under inspector/ to expose the number of paint
rects to layout tests.
- inspector/InspectorClient.h:
(WebCore::InspectorClient::paintRectCount const):
- inspector/InspectorController.cpp:
(WebCore::InspectorController::paintRectCount const):
- inspector/InspectorController.h:
- inspector/InspectorOverlay.h:
(WebCore::InspectorOverlay::paintRectCount const):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateAnimations):
- testing/Internals.cpp:
(WebCore::Internals::inspectorHighlightRects):
(WebCore::Internals::inspectorPaintRectCount):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
- WebProcess/Inspector/WebInspectorClient.h:
LayoutTests:
Add a new test, written by Patrick Angle, that tracks whether paint rects have appeared
and then disappeared as content repaints in an inspected page.
- inspector/page/setShowPaintRects-expected.txt: Added.
- inspector/page/setShowPaintRects.html: Added.
- platform/ios-wk1/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 1:17 PM Changeset in webkit [285528] by
-
- 8 edits2 adds in trunk/Source
Scroll To Text Fragment directive parsing
https://bugs.webkit.org/show_bug.cgi?id=231410
Reviewed by Chris Dumez.
Text directive parsing for
https://wicg.github.io/scroll-to-text-fragment/
Source/WebCore:
Make a new class to handle the parsing of the text directive.
The parsing is defined in the linked spec.
The directive should be stored on Document and in a future
patch the matching algorithm will find the text and scroll
and highlight it.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.h:
(WebCore::Document::setFragmentDirective):
(WebCore::Document::fragmentDirective const):
- dom/FragmentDirectiveParser.cpp: Added.
(WebCore::FragmentDirectiveParser::FragmentDirectiveParser):
(WebCore::FragmentDirectiveParser::parseFragmentDirective):
- dom/FragmentDirectiveParser.h: Added.
(WebCore::FragmentDirectiveParser::parsedTextDirectives const):
(WebCore::FragmentDirectiveParser::fragmentDirective const):
(WebCore::FragmentDirectiveParser::remainingURLFragment const):
(WebCore::FragmentDirectiveParser::isValid const):
- page/FrameView.cpp:
(WebCore::FrameView::scrollToFragment):
- platform/Logging.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 1:08 PM Changeset in webkit [285527] by
-
- 7 edits31 copies3 moves14 adds in trunk
[WebGPU] Stub out methods in WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=232872
Reviewed by Dean Jackson.
Source/WebGPU:
This creates empty implementations for all the methods in WebGPU.framework.
This means that there are now implementations for every API call, so PAL
can successfully call into WebGPU.framework and link with it.
- Configurations/Version.xcconfig: Added.
- Configurations/WebGPU.xcconfig:
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/Adapter.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/Adapter.mm: Added.
(WebGPU::Adapter::getLimits):
(WebGPU::Adapter::getProperties):
(WebGPU::Adapter::hasFeature):
(WebGPU::Adapter::requestDevice):
(wgpuAdapterRelease):
(wgpuAdapterGetLimits):
(wgpuAdapterGetProperties):
(wgpuAdapterHasFeature):
(wgpuAdapterRequestDevice):
- WebGPU/BindGroup.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/BindGroup.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(wgpuBindGroupRelease):
- WebGPU/BindGroupLayout.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/BindGroupLayout.mm: Renamed from Source/WebGPU/WebGPU/WebGPU.cpp.
(wgpuBindGroupLayoutRelease):
- WebGPU/Buffer.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/Buffer.mm: Added.
(WebGPU::Buffer::destroy):
(WebGPU::Buffer::getConstMappedRange):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::unmap):
(wgpuBufferRelease):
(wgpuBufferDestroy):
(wgpuBufferGetConstMappedRange):
(wgpuBufferGetMappedRange):
(wgpuBufferMapAsync):
(wgpuBufferUnmap):
- WebGPU/CommandBuffer.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/CommandBuffer.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(wgpuCommandBufferRelease):
- WebGPU/CommandEncoder.h: Added.
- WebGPU/CommandEncoder.mm: Added.
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::CommandEncoder::finish):
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::CommandEncoder::pushDebugGroup):
(WebGPU::CommandEncoder::resolveQuerySet):
(WebGPU::CommandEncoder::writeTimestamp):
(wgpuCommandEncoderRelease):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderCopyBufferToBuffer):
(wgpuCommandEncoderCopyBufferToTexture):
(wgpuCommandEncoderCopyTextureToBuffer):
(wgpuCommandEncoderCopyTextureToTexture):
(wgpuCommandEncoderFinish):
(wgpuCommandEncoderInsertDebugMarker):
(wgpuCommandEncoderPopDebugGroup):
(wgpuCommandEncoderPushDebugGroup):
(wgpuCommandEncoderResolveQuerySet):
(wgpuCommandEncoderWriteTimestamp):
- WebGPU/ComputePassEncoder.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/ComputePassEncoder.mm: Added.
(WebGPU::ComputePassEncoder::beginPipelineStatisticsQuery):
(WebGPU::ComputePassEncoder::dispatch):
(WebGPU::ComputePassEncoder::dispatchIndirect):
(WebGPU::ComputePassEncoder::endPass):
(WebGPU::ComputePassEncoder::endPipelineStatisticsQuery):
(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::popDebugGroup):
(WebGPU::ComputePassEncoder::pushDebugGroup):
(WebGPU::ComputePassEncoder::setBindGroup):
(WebGPU::ComputePassEncoder::setPipeline):
(WebGPU::ComputePassEncoder::writeTimestamp):
(wgpuComputePassEncoderRelease):
(wgpuComputePassEncoderBeginPipelineStatisticsQuery):
(wgpuComputePassEncoderDispatch):
(wgpuComputePassEncoderDispatchIndirect):
(wgpuComputePassEncoderEndPass):
(wgpuComputePassEncoderEndPipelineStatisticsQuery):
(wgpuComputePassEncoderInsertDebugMarker):
(wgpuComputePassEncoderPopDebugGroup):
(wgpuComputePassEncoderPushDebugGroup):
(wgpuComputePassEncoderSetBindGroup):
(wgpuComputePassEncoderSetPipeline):
(wgpuComputePassEncoderWriteTimestamp):
- WebGPU/ComputePipeline.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/ComputePipeline.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(WebGPU::ComputePipeline::getBindGroupLayout):
(WebGPU::ComputePipeline::setLabel):
(wgpuComputePipelineRelease):
(wgpuComputePipelineGetBindGroupLayout):
(wgpuComputePipelineSetLabel):
- WebGPU/Device.h: Added.
- WebGPU/Device.mm: Added.
(WebGPU::Device::createBindGroup):
(WebGPU::Device::createBindGroupLayout):
(WebGPU::Device::createBuffer):
(WebGPU::Device::createCommandEncoder):
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
(WebGPU::Device::createPipelineLayout):
(WebGPU::Device::createQuerySet):
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):
(WebGPU::Device::createSampler):
(WebGPU::Device::createShaderModule):
(WebGPU::Device::createSwapChain):
(WebGPU::Device::createTexture):
(WebGPU::Device::destroy):
(WebGPU::Device::getLimits):
(WebGPU::Device::getQueue):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(wgpuDeviceRelease):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceDestroy):
(wgpuDeviceGetLimits):
(wgpuDeviceGetQueue):
(wgpuDevicePopErrorScope):
(wgpuDevicePushErrorScope):
(wgpuDeviceSetDeviceLostCallback):
(wgpuDeviceSetUncapturedErrorCallback):
- WebGPU/ExportMacros.h:
- WebGPU/Instance.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/Instance.mm: Added.
(WebGPU::Instance::createSurface):
(WebGPU::Instance::processEvents):
(WebGPU::Instance::requestAdapter):
(wgpuInstanceRelease):
(wgpuCreateInstance):
(wgpuGetProcAddress):
(wgpuInstanceCreateSurface):
(wgpuInstanceProcessEvents):
(wgpuInstanceRequestAdapter):
- WebGPU/PipelineLayout.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/PipelineLayout.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(wgpuPipelineLayoutRelease):
- WebGPU/QuerySet.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/QuerySet.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(WebGPU::QuerySet::destroy):
(wgpuQuerySetRelease):
(wgpuQuerySetDestroy):
- WebGPU/Queue.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/Queue.mm: Added.
(WebGPU::Queue::onSubmittedWorkDone):
(WebGPU::Queue::submit):
(WebGPU::Queue::writeBuffer):
(WebGPU::Queue::writeTexture):
(wgpuQueueRelease):
(wgpuQueueOnSubmittedWorkDone):
(wgpuQueueSubmit):
(wgpuQueueWriteBuffer):
(wgpuQueueWriteTexture):
- WebGPU/RenderBundle.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/RenderBundle.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(wgpuRenderBundleRelease):
- WebGPU/RenderBundleEncoder.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/RenderBundleEncoder.mm: Added.
(WebGPU::RenderBundleEncoder::draw):
(WebGPU::RenderBundleEncoder::drawIndexed):
(WebGPU::RenderBundleEncoder::drawIndexedIndirect):
(WebGPU::RenderBundleEncoder::drawIndirect):
(WebGPU::RenderBundleEncoder::finish):
(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::popDebugGroup):
(WebGPU::RenderBundleEncoder::pushDebugGroup):
(WebGPU::RenderBundleEncoder::setBindGroup):
(WebGPU::RenderBundleEncoder::setIndexBuffer):
(WebGPU::RenderBundleEncoder::setPipeline):
(WebGPU::RenderBundleEncoder::setVertexBuffer):
(wgpuRenderBundleEncoderRelease):
(wgpuRenderBundleEncoderDraw):
(wgpuRenderBundleEncoderDrawIndexed):
(wgpuRenderBundleEncoderDrawIndexedIndirect):
(wgpuRenderBundleEncoderDrawIndirect):
(wgpuRenderBundleEncoderFinish):
(wgpuRenderBundleEncoderInsertDebugMarker):
(wgpuRenderBundleEncoderPopDebugGroup):
(wgpuRenderBundleEncoderPushDebugGroup):
(wgpuRenderBundleEncoderSetBindGroup):
(wgpuRenderBundleEncoderSetIndexBuffer):
(wgpuRenderBundleEncoderSetPipeline):
(wgpuRenderBundleEncoderSetVertexBuffer):
- WebGPU/RenderPassEncoder.h: Added.
- WebGPU/RenderPassEncoder.mm: Added.
(WebGPU::RenderPassEncoder::beginOcclusionQuery):
(WebGPU::RenderPassEncoder::beginPipelineStatisticsQuery):
(WebGPU::RenderPassEncoder::draw):
(WebGPU::RenderPassEncoder::drawIndexed):
(WebGPU::RenderPassEncoder::drawIndexedIndirect):
(WebGPU::RenderPassEncoder::drawIndirect):
(WebGPU::RenderPassEncoder::endOcclusionQuery):
(WebGPU::RenderPassEncoder::endPass):
(WebGPU::RenderPassEncoder::endPipelineStatisticsQuery):
(WebGPU::RenderPassEncoder::executeBundles):
(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::popDebugGroup):
(WebGPU::RenderPassEncoder::pushDebugGroup):
(WebGPU::RenderPassEncoder::setBindGroup):
(WebGPU::RenderPassEncoder::setBlendConstant):
(WebGPU::RenderPassEncoder::setIndexBuffer):
(WebGPU::RenderPassEncoder::setPipeline):
(WebGPU::RenderPassEncoder::setScissorRect):
(WebGPU::RenderPassEncoder::setStencilReference):
(WebGPU::RenderPassEncoder::setVertexBuffer):
(WebGPU::RenderPassEncoder::setViewport):
(WebGPU::RenderPassEncoder::writeTimestamp):
(wgpuRenderPassEncoderRelease):
(wgpuRenderPassEncoderBeginOcclusionQuery):
(wgpuRenderPassEncoderBeginPipelineStatisticsQuery):
(wgpuRenderPassEncoderDraw):
(wgpuRenderPassEncoderDrawIndexed):
(wgpuRenderPassEncoderDrawIndexedIndirect):
(wgpuRenderPassEncoderDrawIndirect):
(wgpuRenderPassEncoderEndOcclusionQuery):
(wgpuRenderPassEncoderEndPass):
(wgpuRenderPassEncoderEndPipelineStatisticsQuery):
(wgpuRenderPassEncoderExecuteBundles):
(wgpuRenderPassEncoderInsertDebugMarker):
(wgpuRenderPassEncoderPopDebugGroup):
(wgpuRenderPassEncoderPushDebugGroup):
(wgpuRenderPassEncoderSetBindGroup):
(wgpuRenderPassEncoderSetBlendConstant):
(wgpuRenderPassEncoderSetIndexBuffer):
(wgpuRenderPassEncoderSetPipeline):
(wgpuRenderPassEncoderSetScissorRect):
(wgpuRenderPassEncoderSetStencilReference):
(wgpuRenderPassEncoderSetVertexBuffer):
(wgpuRenderPassEncoderSetViewport):
(wgpuRenderPassEncoderWriteTimestamp):
- WebGPU/RenderPipeline.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/RenderPipeline.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(WebGPU::RenderPipeline::getBindGroupLayout):
(WebGPU::RenderPipeline::setLabel):
(wgpuRenderPipelineRelease):
(wgpuRenderPipelineGetBindGroupLayout):
(wgpuRenderPipelineSetLabel):
- WebGPU/Sampler.h: Renamed from Source/WebGPU/WebGPU/WebGPUObjC.h.
- WebGPU/Sampler.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(wgpuSamplerRelease):
- WebGPU/ShaderModule.h:
- WebGPU/ShaderModule.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(WebGPU::ShaderModule::setLabel):
(wgpuShaderModuleRelease):
(wgpuShaderModuleSetLabel):
- WebGPU/Surface.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/Surface.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(WebGPU::Surface::getPreferredFormat):
(wgpuSurfaceRelease):
(wgpuSurfaceGetPreferredFormat):
- WebGPU/SwapChain.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/SwapChain.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(WebGPU::SwapChain::getCurrentTextureView):
(WebGPU::SwapChain::present):
(wgpuSwapChainRelease):
(wgpuSwapChainGetCurrentTextureView):
(wgpuSwapChainPresent):
- WebGPU/Texture.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/Texture.mm: Copied from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(WebGPU::Texture::createView):
(WebGPU::Texture::destroy):
(wgpuTextureRelease):
(wgpuTextureCreateView):
(wgpuTextureDestroy):
- WebGPU/TextureView.h: Copied from Source/WebGPU/WebGPU/ShaderModule.h.
- WebGPU/TextureView.mm: Renamed from Source/WebGPU/WebGPU/WebGPUObjC.mm.
(wgpuTextureViewRelease):
- WebGPU/WebGPU.modulemap: Added.
- WebGPU/WebGPUExt.h: Added.
Tools:
- Scripts/webkitpy/style/checker.py:
- 1:06 PM Changeset in webkit [285526] by
-
- 16 edits in trunk/Source
Add runtime flag for momentum scrolling
https://bugs.webkit.org/show_bug.cgi?id=232898
<rdar://problem/85211338>
Reviewed by Simon Fraser.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add the preference.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):
- page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::applicableProperties const):
(WebCore::ScrollingStateFrameScrollingNode::setMomentumScrollingAnimatorEnabled):
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingStateNode.h:
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::momentumScrollingAnimatorEnabled const):
(WebCore::ScrollingTree::setMomentumScrollingAnimatorEnabled):
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::momentumScrollingAnimatorEnabled const):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:
(WebCore::ScrollingTreeScrollingNodeDelegateMac::momentumScrollingAnimatorEnabled const):
- platform/ScrollingEffectsController.h:
(WebCore::ScrollingEffectsControllerClient::momentumScrollingAnimatorEnabled const):
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
- 12:49 PM Changeset in webkit [285525] by
-
- 13 edits1 add in trunk
When inlining NewSymbol in the DFG don't universally call ToString on the input
https://bugs.webkit.org/show_bug.cgi?id=232754
Reviewed by Robin Morisset.
JSTests:
- stress/inline-new-symbol-dfg-undefined-first-arg.js: Added.
(assert):
(foo):
Source/JavaScriptCore:
When inlining Symbol(x) in the DFG, we were always calling ToString on x.
However, this is wrong spec wise. If x is undefined, the symbol should
produce a description value ofundefined, but calling ToString on x was causing
us to produce a description with the string"undefined".
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGMayExit.cpp:
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewSymbol):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewSymbol):
- 12:44 PM Changeset in webkit [285524] by
-
- 2 edits in trunk/Source/WebCore
Fix !ENABLE(ACCESSIBILITY) after r285427
https://bugs.webkit.org/show_bug.cgi?id=232893
<rdar://problem/85210424>
Reviewed by Andres Gonzalez.
In r285399 a number of AXObjectCache methods were affected by a removal of an
ENABLE(ACCESSIBILITY) guard. The definitions were pushed down to the large
!ENABLE(ACCESSIBILITY) block at the bottom of the file butinline staticisn't valid
code so the compile issue was fixed in r285427. However the commits had also introduced a
linker error around AXObjectCache::accessibilityEnabled and
AXObjectCache::accessibilityEnhancedUserInterfaceEnabled.
To fix the static member variables referenced in those methods are
static constexprwhen
!ENABLE(ACCESSIBILITY).
- accessibility/AXObjectCache.h:
- 12:44 PM Changeset in webkit [285523] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Horizontal constraint change should not purge the inline item cache.
https://bugs.webkit.org/show_bug.cgi?id=232892
Reviewed by Antti Koivisto.
Available horizontal space change does not affect the inline content itself (it only affects the geometry of said content).
- layout/formattingContexts/inline/invalidation/InlineInvalidation.cpp:
(WebCore::Layout::InlineInvalidation::horizontalConstraintChanged):
- 12:25 PM Changeset in webkit [285522] by
-
- 2 edits in trunk/Tools
[Windows] Non-find based status file finding in run-jsc-stress-tests needs to release status files
https://bugs.webkit.org/show_bug.cgi?id=232851
Reviewed by Don Olmstead.
Change the reading of status files in the non-find search
to properly scope the file access to release the status
files.
- Scripts/run-jsc-stress-tests:
- 12:04 PM Changeset in webkit [285521] by
-
- 22 edits in trunk
REGRESSION(r271735): PaymentShippingOption.selected ignored
https://bugs.webkit.org/show_bug.cgi?id=221960
<rdar://problem/73464404>
Reviewed by Tim Horton.
Source/WebCore:
Leverage new
PKShippingMethodsSPI to provide both the general list ofPKShippingMethod
and the default selectedPKShippingMethodswhen creating/updating a payment request.
- Modules/applepay/ApplePayShippingMethod.idl:
- Modules/applepay/ApplePayShippingMethod.h:
(WebCore::ApplePayShippingMethod::encode const):
(WebCore::ApplePayShippingMethod::decode):
Add newselectedboolean property.
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::computeShippingMethods const):
- Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::checkAndCanonicalizeDetails):
Source/WebCore/PAL:
Leverage new
PKShippingMethodsSPI to provide both the general list ofPKShippingMethod
and the default selectedPKShippingMethodswhen creating/updating a payment request.
- pal/cocoa/PassKitSoftLink.h:
- pal/cocoa/PassKitSoftLink.mm:
- pal/spi/cocoa/PassKitSPI.h:
Source/WebKit:
Leverage new
PKShippingMethodsSPI to provide both the general list ofPKShippingMethod
and the default selectedPKShippingMethodswhen creating/updating a payment request.
- Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
- Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKShippingMethods): Added.
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
Add new helper to generate thePKShippingMethodsfrom WebCore objects.
- Platform/cocoa/PaymentAuthorizationPresenter.mm:
(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):
(WebKit::toPKShippingMethods): Deleted.
- Platform/cocoa/WKPaymentAuthorizationDelegate.mm:
(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeCouponCodeChange:]):
(-[WKPaymentAuthorizationDelegate _initWithRequest:presenter:]):
(toShippingMethod):
(-[WKPaymentAuthorizationDelegate _didSelectShippingMethod:completion:]):
(-[WKPaymentAuthorizationDelegate summaryItems]): Deleted.
(-[WKPaymentAuthorizationDelegate shippingMethods]): Deleted.
Drive-by: Delete unused methods.
Source/WTF:
Leverage new
PKShippingMethodsSPI to provide both the general list ofPKShippingMethod
and the default selectedPKShippingMethodswhen creating/updating a payment request.
- wtf/PlatformEnableCocoa.h:
- wtf/PlatformHave.h:
LayoutTests:
- http/tests/paymentrequest/payment-request-change-shipping-option.https.html:
- http/tests/paymentrequest/payment-request-change-shipping-option.https-expected.txt:
- http/tests/paymentrequest/updateWith-shippingOptions.https.html:
- http/tests/paymentrequest/updateWith-shippingOptions.https-expected.txt:
- 11:50 AM Changeset in webkit [285520] by
-
- 6 edits in trunk/Source
Keep track of captured data time in SpeechRecognizer
https://bugs.webkit.org/show_bug.cgi?id=232867
Reviewed by Youenn Fablet.
Source/WebCore:
The time parameter passed to SpeechRecognizer::dataCaptured is not started from zero.
Manually tested.
- Modules/speech/SpeechRecognizer.cpp:
(WebCore::SpeechRecognizer::SpeechRecognizer):
- Modules/speech/SpeechRecognizer.h:
- Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
(WebCore::SpeechRecognizer::dataCaptured):
Source/WebKit:
Removed a redundant call.
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::RemoteAudio::setStorage):
- 11:42 AM Changeset in webkit [285519] by
-
- 9 edits2 adds in branches/safari-612-branch
Apply patch. rdar://problem/83971417
- 11:42 AM Changeset in webkit [285518] by
-
- 4 edits2 adds in branches/safari-612-branch
Apply patch. rdar://problem/83863266
- 11:42 AM Changeset in webkit [285517] by
-
- 6 edits in branches/safari-612-branch/Source/WebCore
Apply patch. rdar://problem/83419159
- 11:41 AM Changeset in webkit [285516] by
-
- 3 edits6 adds in branches/safari-612-branch
Apply patch. rdar://problem/84116159
- 11:21 AM Changeset in webkit [285515] by
-
- 2 edits in trunk/Source/bmalloc
Unreviewed, keep enabling mac libpas on OSS build
https://bugs.webkit.org/show_bug.cgi?id=232026
- bmalloc/BPlatform.h:
- 11:10 AM Changeset in webkit [285514] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed internal build fix after r285424
<rdar://problem/85207411>
`
WKScrollView.mm:227:35: error: incompatible pointer to integer conversion assigning to 'BOOL' (aka 'signed char') from 'UIColor * _Nullable'
`
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView setBackgroundColor:]):
- 11:05 AM Changeset in webkit [285513] by
-
- 11 edits1 delete in trunk/Source/WebCore
Unreviewed, reverting r285318.
https://bugs.webkit.org/show_bug.cgi?id=232894
broke Apple internal build
Reverted changeset:
"[Cocoa] Migrate from CTFontCopyVariationAxes() to
CTFontCopyVariationAxesInternal() if possible"
https://bugs.webkit.org/show_bug.cgi?id=232690
https://commits.webkit.org/r285318
- 11:02 AM Changeset in webkit [285512] by
-
- 2 edits in trunk/Source/bmalloc
Unreviewed, disabling libpas on ARM64 (not ARM64E!) for now due to performance issue only happening on newer SDK
https://bugs.webkit.org/show_bug.cgi?id=232026
- bmalloc/BPlatform.h:
- 10:55 AM Changeset in webkit [285511] by
-
- 8 edits in branches/safari-612-branch/Source
Versioning.
WebKit-7612.3.6
- 10:53 AM Changeset in webkit [285510] by
-
- 1 copy in tags/Safari-612.3.5
Tag Safari-612.3.5.
- 10:53 AM Changeset in webkit [285509] by
-
- 3 edits in trunk/Source/WebKit
Fix wrong frame count of CARingBuffer in SpeechRecognitionRemoteRealtimeMediaSource
https://bugs.webkit.org/show_bug.cgi?id=232863
<rdar://83381842>
Reviewed by Youenn Fablet.
SpeechRecognitionRealtimeMediaSourceManager::Source uses shared ring buffer to pass audio data to
SpeechRecognitionRemoteRealtimeMediaSource. We used to ask CARingBuffer in
SpeechRecognitionRealtimeMediaSourceManager::Source to allocate with m_numberOfFrames and send m_numberOfFrames
to SpeechRecognitionRemoteRealtimeMediaSource (so SpeechRecognitionRemoteRealtimeMediaSource can create a
corresponding CARingBuffer). This is wrong because CARingBuffer::allocate() rounds up frameCount to power of
two, which means m_numberOfFrames may be not the number used. We should get the actual frameCount in the
setStorage callback of SharedRingBufferStorage, and pass that value to SpeechRecognitionRemoteRealtimeMediaSource.
Manually tested.
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::setStorage):
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
(WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::Source):
(WebKit::SpeechRecognitionRealtimeMediaSourceManager::Source::storageChanged):
- 10:51 AM Changeset in webkit [285508] by
-
- 5 edits in branches/safari-612-branch/Source
Revert r285236. rdar://problem/83950623
This reverts r285470.
- 10:25 AM Changeset in webkit [285507] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Line spanning inline box items should be treated as opaque bidi content
https://bugs.webkit.org/show_bug.cgi?id=232887
Reviewed by Antti Koivisto.
These "made-up" line spanning inline items (e.g. <span>first line<br>second line</span> <- inline box start on the second line) are
opaque to bidi and should be treated accordingly (this is similar to what we do in setBidiLevelForOpaqueInlineItems at InlineItemsBuilder::breakAndComputeBidiLevels).
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
- 10:11 AM Changeset in webkit [285506] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, suppress scope check failures on Debug JSC tests
https://bugs.webkit.org/show_bug.cgi?id=215438
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):
- 9:55 AM Changeset in webkit [285505] by
-
- 6 edits6 adds in trunk/LayoutTests
Import css/css-sizing/aspect-ratio tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=232783
Patch by Rob Buis <rbuis@igalia.com> on 2021-11-09
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Import based on SHA d91cc9b3a0.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html:
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html:
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-031-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-031.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-032-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-032.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-033-expected.xht: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-033.html: Added.
- web-platform-tests/css/css-sizing/aspect-ratio/w3c-import.log:
LayoutTests:
- 9:51 AM Changeset in webkit [285504] by
-
- 2 edits in trunk/Source/WebKit
Reduce telemetry for well-understood sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=232885
<rdar://problem/84950269>
Reviewed by Per Arne Vollan.
Now that we have telemetry showing the use case for this syscall, remove the telemetry.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 9:49 AM Changeset in webkit [285503] by
-
- 11 edits11 adds in trunk
Ignore BroadcastChannel::postMessage from detached iframe / closing worker contexts
https://bugs.webkit.org/show_bug.cgi?id=232693
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Resync BroadcastChannel WPT tests from upstream to gain test coverage.
- web-platform-tests/webmessaging/broadcastchannel/basics.any.serviceworker.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/cross-origin-expected.txt: Added.
- web-platform-tests/webmessaging/broadcastchannel/cross-origin.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/detached-iframe-expected.txt: Added.
- web-platform-tests/webmessaging/broadcastchannel/detached-iframe.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/ordering-expected.txt: Added.
- web-platform-tests/webmessaging/broadcastchannel/ordering.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/resources/cross-origin.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/resources/ordering.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/resources/service-worker.js: Added.
- web-platform-tests/webmessaging/broadcastchannel/resources/w3c-import.log:
- web-platform-tests/webmessaging/broadcastchannel/resources/worker.js:
(handler):
- web-platform-tests/webmessaging/broadcastchannel/service-worker.https-expected.txt: Added.
- web-platform-tests/webmessaging/broadcastchannel/service-worker.https.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:
- web-platform-tests/webmessaging/broadcastchannel/workers-expected.txt:
- web-platform-tests/webmessaging/broadcastchannel/workers.html:
Source/WebCore:
Ignore BroadcastChannel::postMessage from detached iframe / closing worker contexts:
Tests: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/basics.any.serviceworker.html
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/cross-origin.html
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/detached-iframe.html
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/ordering.html
imported/w3c/web-platform-tests/webmessaging/broadcastchannel/service-worker.https.html
- dom/BroadcastChannel.cpp:
(WebCore::BroadcastChannel::postMessage):
(WebCore::BroadcastChannel::dispatchMessage):
(WebCore::BroadcastChannel::isEligibleForMessaging const):
- dom/BroadcastChannel.h:
- 8:58 AM Changeset in webkit [285502] by
-
- 2 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: Add script to update CSSDocumentation.js
https://bugs.webkit.org/show_bug.cgi?id=232433
<rdar://problem/84753008>
Reviewed by Devin Rousso.
- Scripts/update-inspector-css-documentation: Added.
Add a script to update the contextual CSS documentation data source at
Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js
with the latest information from the upstream data source.
- UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.prototype.canonicalNameForPropertyName):
Add a comment to keep the list of accepted prefixes in sync with the one from the script.
- 8:40 AM Changeset in webkit [285501] by
-
- 10 edits in trunk
New spec: Block external protocol handler in sandboxed frames
https://bugs.webkit.org/show_bug.cgi?id=231727
<rdar://problem/84498192>
Reviewed by Brent Fulgham.
Source/WebKit:
Per the HTML specification [1][2], we should prevent sandboxed iframes from opening
external applications by navigating to a URL with a custom procotol (e.g. rdar://).
Indeed, it would be surprising if malvertisers would be able to redirect you to
an external app.
To support valid use cases, we still allow such navigations in sandboxed iframes
if any of the following is true:
- sandboxFlags contains "allow-top-navigation-by-user-activation" and hasTransientActivation is true
- sandboxFlags contains "allow-top-navigation"
- sandboxFlags contains "allow-popups"
[1] https://github.com/whatwg/html/issues/2191
[2] https://html.spec.whatwg.org/#hand-off-to-external-software
- UIProcess/WebPageProxy.cpp:
(WebKit::frameSandboxAllowsOpeningExternalCustomProtocols):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(TEST):
- 8:11 AM Changeset in webkit [285500] by
-
- 5 edits in trunk/Source/WebKit
[iOS] Add a position information bit to indicate whether the hit-tested element is a paused video
https://bugs.webkit.org/show_bug.cgi?id=232861
Reviewed by Megan Gardner.
Add
InteractionInformationAtPosition::isPausedVideo, a flag that is true when the position information request
is over a paused video element (or inside the media control shadow root underneath that paused video element, in
the case where native controls are shown).
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
Also rename
imageElementContexttohostImageOrVideoElementContextto clarify that it (1) may now include
element contexts for video elements, and (2) unlike the regularelementContext, this includes the image or
video element that is the host for hit-tested content in the UA shadow root of the element corresponding to
elementContext.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView imageAnalysisGestureDidBegin:]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::videoPositionInformation):
Additionally populate the
imageof the position information, in the case whereincludeImageDatais set on
the incoming request.
(WebKit::hostVideoElementIgnoringImageOverlay):
(WebKit::imagePositionInformation):
(WebKit::elementPositionInformation):
(WebKit::WebPage::positionInformation):
- 8:08 AM Changeset in webkit [285499] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Unreviewed, reverting r285488.
https://bugs.webkit.org/show_bug.cgi?id=232884
Linked with r285486 which was also reverted.
Reverted changeset:
"Rebaseline will-change-invalid.html after r285487 & r285486"
https://commits.webkit.org/r285488
Patch by Commit Queue <commit-queue@webkit.org> on 2021-11-09
- 7:25 AM Changeset in webkit [285498] by
-
- 8 edits in trunk/LayoutTests
Convert more wheel event tests to UIHelper.mouseWheelSequence()
https://bugs.webkit.org/show_bug.cgi?id=232847
Reviewed by Wenson Hsieh.
Add an options parameter to mouseWheelSequence() so we can have a version that doens't
wait.
Some tests need to have minor position changes to default the wheel event coalescing code
in WebWheelEventCoalescer.
Change some JS style things.
- fast/scrolling/mac/momentum-axis-locking.html:
- fast/scrolling/mac/overflow-hidden-on-one-axis-async-overflow.html:
- fast/scrolling/mac/overflow-hidden-on-one-axis.html:
- fast/scrolling/mac/programmatic-scroll-overrides-rubberband.html:
- fast/scrolling/mac/wheel-event-deltas-are-not-filtered.html:
- resources/ui-helper.js:
(window.UIHelper.async mouseWheelSequence):
- 6:48 AM Changeset in webkit [285497] by
-
- 8 edits2 adds in trunk
[css-grid] update the content-sized grid width before laying out a grid item with block constraints and aspect-ratio
https://bugs.webkit.org/show_bug.cgi?id=231802
Reviewed by Javier Fernandez.
Source/WebCore:
For a grid item with an aspect-ratio, if it has block-constraints such as the relative logical height
case we consider in this CL, it should try and resolve it if possible and transfer this size into
the inline direction for the min/max content size. For the case that the grid width is content sized,
we need to update the width before laying out the grid items. Since the min-content contribution of
the grid item has changed based on the row sizes calculated in step 2 of sizing algorithm, we also
need to repeat the sizing algorithm steps to update the width of the track sizes.
- rendering/GridLayoutFunctions.cpp:
(WebCore::GridLayoutFunctions::isAspectRatioBlockSizeDependentChild):
- rendering/GridLayoutFunctions.h:
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::updateGridAreaForAspectRatioItems):
- rendering/RenderGrid.h:
LayoutTests:
Unskip the tests that are now passing and add a new test to check track size updates.
- imported/w3c/web-platform-tests/css/css-grid/grid-items/aspect-ratio-005-expected.html: Added.
- imported/w3c/web-platform-tests/css/css-grid/grid-items/aspect-ratio-005.html: Added.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- 6:40 AM Changeset in webkit [285496] by
-
- 5 edits in trunk/Tools
[EWS] Allow the optimization of running only the subset of failed tests on run-layout-tests-without-patch also for patches modifying the TestExpectations files
https://bugs.webkit.org/show_bug.cgi?id=231265
Reviewed by Alexey Proskuryakov.
On r274475 an optimization was applied to run-layout-tests-without-patch to only
run the subset of tests that failed with patch instead of the whole layout tests.
But this optimization had a corner case where it couldn't be applied.
It seems that we can still apply this optimization in this corner case if we pass
'--skipped=always' to run-webkit-tests so that Skipped tests are not run even if
those are specified as arguments on the command-line.
- CISupport/ews-build/steps.py:
(RunWebKitTests.setLayoutTestCommand):
(RunWebKitTestsWithoutPatch.setLayoutTestCommand):
- CISupport/ews-build/steps_unittest.py:
- Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(RunTest.test_ews_corner_case_failing_test):
(RunTest):
(RunTest.test_ews_corner_case_failing_directory):
(RunTest.test_ews_corner_case_skipped_test):
(RunTest.test_ews_corner_case_skipped_directory):
- Scripts/webkitpy/port/test.py:
- 6:35 AM Changeset in webkit [285495] by
-
- 3 edits2 adds in trunk
Rendering bug with height: min-content, position: absolute, and box-sizing: border-box
https://bugs.webkit.org/show_bug.cgi?id=232816
<rdar://problem/85154265>
Reviewed by Antti Koivisto.
Source/WebCore:
After r199895, computeIntrinsicLogicalContentHeightUsing started returning the inflated height (content height + border + padding)
as content height for border-box box sizing. While some of the callers expect this inflated height, computePositionedLogicalHeightUsing
needs the actual content height. This is also similar to what we do with the width values.
Test: fast/block/out-of-flow-intrinsic-height.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):
LayoutTests:
- fast/block/out-of-flow-intrinsic-height-expected.html: Added.
- fast/block/out-of-flow-intrinsic-height.html: Added.
- 6:31 AM Changeset in webkit [285494] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, reverting r285436.
https://bugs.webkit.org/show_bug.cgi?id=232878
Broke WPE build
Reverted changeset:
"[WebXR] three.js demos don't work"
https://bugs.webkit.org/show_bug.cgi?id=232798
https://commits.webkit.org/r285436
- 5:53 AM Changeset in webkit [285493] by
-
- 20 edits in trunk
Unreviewed, reverting r285486.
https://bugs.webkit.org/show_bug.cgi?id=232876
Made fast/ruby/generated-before-counter-doesnt-crash.html
flaky, possibly indicating perf problem
Reverted changeset:
"[CSS Cascade Layers] Support 'revert-layer' value"
https://bugs.webkit.org/show_bug.cgi?id=232236
https://commits.webkit.org/r285486
- 5:08 AM Changeset in webkit [285492] by
-
- 2 edits in trunk/Source/WebCore
Refactor consumeWillChange() to make better use of consumeCustomIdent()
https://bugs.webkit.org/show_bug.cgi?id=232874
Reviewed by Antti Koivisto.
consumeCustomIdent() already rejects for non-ident types and reserved keywords.
Make use of that to make the function more readable.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeWillChange):
- 4:15 AM Changeset in webkit [285491] by
-
- 2 edits in trunk/JSTests
Unskip array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg on ARM
https://bugs.webkit.org/show_bug.cgi?id=232811
Unreviewed gardening.
Gate the number of iterations adjustment on $memoryLimited instead of
the arch.
- stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
- 4:12 AM Changeset in webkit [285490] by
-
- 2 edits in trunk/JSTests
Unskip deltablue-for-of.js on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227291
Unreviewed gardening.
The test is not crashing but timeouts because of the number of
iterations. So to enable testing in more archs, we reduced the
number of iterations and constraints.
Patch by Mikhail R. Gadelha <Mikhail R. Gadelha> on 2021-11-09
- typeProfiler/deltablue-for-of.js:
(deltaBlue):
- 3:48 AM Changeset in webkit [285489] by
-
- 2 edits in trunk/JSTests
Unskip microbenchmarks/memcpy-typed-loop.js on arm/mips
https://bugs.webkit.org/show_bug.cgi?id=232813
Unreviewed gardening.
Can't reproduce this any more.
- microbenchmarks/memcpy-typed-loop.js:
- 2:49 AM Changeset in webkit [285488] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Rebaseline will-change-invalid.html after r285487 & r285486
Unreviewed test gardening
- web-platform-tests/css/css-will-change/parsing/will-change-invalid-expected.txt:
- 1:31 AM Changeset in webkit [285487] by
-
- 5 edits in trunk
Use isValidCustomIdentifier in consumeWillChange
https://bugs.webkit.org/show_bug.cgi?id=232868
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Edit existing WPT to be more exaustive: https://github.com/web-platform-tests/wpt/pull/31556
- web-platform-tests/css/css-will-change/parsing/will-change-invalid.html:
- web-platform-tests/css/css-will-change/parsing/will-change-invalid-expected.txt:
Source/WebCore:
This bit specifically implements <custom-ident>, see:
https://drafts.csswg.org/css-will-change/#will-change
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeWillChange):
- 1:29 AM Changeset in webkit [285486] by
-
- 20 edits in trunk
[CSS Cascade Layers] Support 'revert-layer' value
https://bugs.webkit.org/show_bug.cgi?id=232236
<rdar://problem/84879369>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/revert-layer-008-expected.txt:
Source/WebCore:
'revert-layer' keyword rolls back the value computed by the cascade to the one coming from the layer below.
https://www.w3.org/TR/css-cascade-5/#revert-layer
- css/CSSPrimitiveValue.h:
- css/CSSValue.cpp:
(WebCore::CSSValue::isRevertLayerValue const):
- css/CSSValue.h:
- css/CSSValueKeywords.in:
Add a 'revert-layer' keyword.
- css/parser/CSSParserIdioms.h:
(WebCore::isCSSWideKeyword):
Make the keyword CSS-wide.
(WebCore::isValidCustomIdentifier):
- style/CascadeLevel.h:
(WebCore::Style::operator--):
Add decrement operator.
(WebCore::Style::allCascadeLevels): Deleted.
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::addElementStyleProperties):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):
Pass the casdade layer priority so it is available when resolving the cascade.
(WebCore::Style::ElementRuleCollector::addElementInlineStyleProperties):
Add a bit indicating if the properties came from a style attribute. This is needed for correct resolution of !important with cascade layers.
- style/ElementRuleCollector.h:
- style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::PropertyCascade):
Specify cascade levels in terms of the maximum level instead of an OptionSet of levels. This makes things simpler.
Make it a member.
Provide maximum cascade layer priority when constructing rollback cascade.
(WebCore::Style::PropertyCascade::buildCascade):
(WebCore::Style::PropertyCascade::setPropertyInternal):
(WebCore::Style::PropertyCascade::addMatch):
Ignore properties with cascade level higher than the maximum.
(WebCore::Style::PropertyCascade::addImportantMatches):
Take cascade layers into accouny when sorting important matches.
(WebCore::Style::PropertyCascade::propertyCascadeForRollback const): Deleted.
Move rollback cascades to Builder.
- style/PropertyCascade.h:
(WebCore::Style::PropertyCascade::maximumCascadeLevel const):
(WebCore::Style::PropertyCascade::maximumCascadeLayerPriority const):
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::Builder):
Specify cascade levels in terms of the maximum level instead of an OptionSet of levels.
(WebCore::Style::Builder::applyCascadeProperty):
(WebCore::Style::Builder::applyProperty):
Construct rollback cascade for 'revert-layer' case too. This is similar to 'revert'.
(WebCore::Style::Builder::ensureRollbackCascadeForRevert):
(WebCore::Style::Builder::ensureRollbackCascadeForRevertLayer):
Make the rollback cascades and store them into a HashMap.
(WebCore::Style::Builder::makeRollbackCascadeKey):
- style/StyleBuilder.h:
- style/StyleBuilderState.h:
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::styleForPage):
(WebCore::Style::Resolver::applyMatchedProperties):
Adopt to the new interface.
LayoutTests:
- 12:37 AM Changeset in webkit [285485] by
-
- 4 edits2 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=232862
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-11-09
LayoutTests/imported/w3c:
- web-platform-tests/html/canvas/offscreen/text/2d.text.setFont.mathFont-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/text/2d.text.setFont.mathFont.worker-expected.txt: Added.
LayoutTests:
- platform/glib/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
- 12:27 AM Changeset in webkit [285484] by
-
- 2 edits in trunk/LayoutTests
Stop expecting imported/w3c/web-platform-tests/css/css-pseudo/marker-animate-002.html to fail
https://bugs.webkit.org/show_bug.cgi?id=232834
Reviewed by Antti Koivisto.
- 12:15 AM Changeset in webkit [285483] by
-
- 3 edits in trunk/Source/WebCore
Re-use isCSSWideKeyword in CSSVariableParser.cpp & CSSPropertyParser.cpp
https://bugs.webkit.org/show_bug.cgi?id=232830
Reviewed by Antti Koivisto.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::canParseTypedCustomPropertyValue):
- css/parser/CSSVariableParser.cpp:
(WebCore::classifyVariableRange):
- 12:05 AM Changeset in webkit [285482] by
-
- 5 edits2 adds in trunk
A mask or isolation should set transform-style to flat
https://bugs.webkit.org/show_bug.cgi?id=232491
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Update test results showing newly passing test.
- web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties-expected.txt:
Source/WebCore:
Tests: transforms/preserve-3d-flat-webkit-grouping-properties-expected.txt: Added.
transforms/preserve-3d-flat-webkit-grouping-properties.html: Added.
This is covered by an existing WPT test:
imported/w3c/web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties.html
Ensure that values of
mask-imageother thannone,mask-border-sourceother thannone,
andisolation: isolateall force used style ofpreserve-3d: flat.
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
LayoutTests:
- transforms/3d/preserve-3d-flat-webkit-grouping-properties-expected.txt: Added.
- transforms/3d/preserve-3d-flat-webkit-grouping-properties.html: Added.