Timeline
Mar 27, 2022:
- 11:15 PM Changeset in webkit [291960] by
-
- 6 edits in trunk/Source
Unreviewed, non-unified buildfix
https://bugs.webkit.org/show_bug.cgi?id=238436
Source/JavaScriptCore:
- dfg/DFGStrengthReductionPhase.cpp:
Source/WebCore:
- workers/service/ServiceWorkerWindowClient.cpp:
Source/WebKit:
- WebProcess/Storage/WebSWClientConnection.cpp:
- 9:37 PM Changeset in webkit [291959] by
-
- 9 edits in branches/safari-614.1.8-branch/Source
Versioning.
WebKit-7614.1.8
- 9:35 PM Changeset in webkit [291958] by
-
- 1 copy in branches/safari-614.1.8-branch
New branch.
- 9:34 PM Changeset in webkit [291957] by
-
- 9 edits in trunk/Source
Versioning.
WebKit-7614.1.9
- 9:18 PM Changeset in webkit [291956] by
-
- 18 edits in trunk
Preserve repeat() notation for grid-templates
https://bugs.webkit.org/show_bug.cgi?id=202259
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/animation/grid-template-columns-interpolation-expected.txt:
- web-platform-tests/css/css-grid/animation/grid-template-rows-interpolation-expected.txt:
- web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid-expected.txt:
- web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid-expected.txt:
Update expectations for existing WPT tests, now that we get the correct computed value for
grid-template-rows/columns.
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::GridTemplateTracksWrapper<ForColumns>::GridTemplateTracksWrapper): Deleted.
(WebCore::GridTemplateTracksWrapper<ForRows>::GridTemplateTracksWrapper): Deleted.
Replaces GridTemplateTracksWrapper with a simpler GridTemplatePropertyWrapper that just compares the
track lists. In the future we can iterate the two tracks lists in parallel and interpolate per-item,
in order to get animation correct per-spec.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::populateGridTrackList):
(WebCore::populateSubgridLineNameList):
(WebCore::valueForGridTrackList):
(WebCore::OrderedNamedLinesCollectorInsideRepeat::OrderedNamedLinesCollectorInsideRepeat): Deleted.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex const): Deleted.
(WebCore::OrderedNamedLinesCollectorInsideRepeat::collectLineNamesForIndex const): Deleted.
Implements getComputedStyle by iterating the track list and doing a 1:1 conversion to CSSValues, instead
of reconstructing from the processed hashtables.
This correctly preserves repeat() instances in the track list, which weren't retreivable from the processed
data.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::gridColumns const):
(WebCore::RenderStyle::gridRows const):
(WebCore::RenderStyle::gridColumnList const):
(WebCore::RenderStyle::gridRowList const):
(WebCore::RenderStyle::gridAutoRepeatColumns const):
(WebCore::RenderStyle::gridAutoRepeatRows const):
(WebCore::RenderStyle::gridAutoRepeatColumnsInsertionPoint const):
(WebCore::RenderStyle::gridAutoRepeatRowsInsertionPoint const):
(WebCore::RenderStyle::gridAutoRepeatColumnsType const):
(WebCore::RenderStyle::gridAutoRepeatRowsType const):
(WebCore::RenderStyle::namedGridColumnLines const):
(WebCore::RenderStyle::namedGridRowLines const):
(WebCore::RenderStyle::orderedNamedGridColumnLines const):
(WebCore::RenderStyle::orderedNamedGridRowLines const):
(WebCore::RenderStyle::autoRepeatNamedGridColumnLines const):
(WebCore::RenderStyle::autoRepeatNamedGridRowLines const):
(WebCore::RenderStyle::autoRepeatOrderedNamedGridColumnLines const):
(WebCore::RenderStyle::autoRepeatOrderedNamedGridRowLines const):
(WebCore::RenderStyle::gridSubgridRows const):
(WebCore::RenderStyle::gridSubgridColumns const):
(WebCore::RenderStyle::setGridColumnList):
(WebCore::RenderStyle::setGridRowList):
(WebCore::RenderStyle::setGridAutoRows):
(WebCore::RenderStyle::setGridAutoFlow):
(WebCore::RenderStyle::setGridColumns): Deleted.
(WebCore::RenderStyle::setGridRows): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatColumns): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatRows): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatColumnsInsertionPoint): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatRowsInsertionPoint): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatColumnsType): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatRowsType): Deleted.
(WebCore::RenderStyle::setNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setOrderedNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setOrderedNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatOrderedNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatOrderedNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setGridSubgridRows): Deleted.
(WebCore::RenderStyle::setGridSubgridColumns): Deleted.
- rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData):
(WebCore::StyleGridData::setRows):
(WebCore::StyleGridData::setColumns):
(WebCore::createGridLineNamesList):
(WebCore::StyleGridData::computeCachedTrackData):
(WebCore::operator<<):
- rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator== const):
(WebCore::StyleGridData::gridColumns const):
(WebCore::StyleGridData::gridRows const):
(WebCore::StyleGridData::namedGridColumnLines const):
(WebCore::StyleGridData::namedGridRowLines const):
(WebCore::StyleGridData::orderedNamedGridColumnLines const):
(WebCore::StyleGridData::orderedNamedGridRowLines const):
(WebCore::StyleGridData::autoRepeatNamedGridColumnLines const):
(WebCore::StyleGridData::autoRepeatNamedGridRowLines const):
(WebCore::StyleGridData::autoRepeatOrderedNamedGridColumnLines const):
(WebCore::StyleGridData::autoRepeatOrderedNamedGridRowLines const):
(WebCore::StyleGridData::gridAutoRepeatColumns const):
(WebCore::StyleGridData::gridAutoRepeatRows const):
(WebCore::StyleGridData::autoRepeatColumnsInsertionPoint const):
(WebCore::StyleGridData::autoRepeatRowsInsertionPoint const):
(WebCore::StyleGridData::autoRepeatColumnsType const):
(WebCore::StyleGridData::autoRepeatRowsType const):
(WebCore::StyleGridData::subgridRows const):
(WebCore::StyleGridData::subgridColumns const):
(WebCore::StyleGridData::columns const):
(WebCore::StyleGridData::rows const):
Stores the computed track lists directly on RenderGrid, while retaining storage of the processed data.
computeCachedTrackData should be logically identical to the old BuilderConverter::createGridTrackList, but
happens when we modify the StyleGridData so that we can run it during animations.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::createGridTrackList):
(WebCore::Style::createGridLineNamesList): Deleted.
(): Deleted.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyValueGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyValueGridTemplateRows):
Rather than converting the track list into processed hashtables, just copies the data in the track list
format so that the StyleGridData can access the original data.
LayoutTests:
- fast/css-grid-layout/grid-repeat-calc-expected.txt:
- fast/css-grid-layout/grid-repeat-calc.html:
- fast/css-grid-layout/non-grid-element-repeat-get-set-expected.txt:
- fast/css-grid-layout/non-grid-element-repeat-get-set.html:
Update expected results to use repeat() notation.
- 8:03 PM Changeset in webkit [291955] by
-
- 9 edits in trunk
Fix serialization of grid-template
https://bugs.webkit.org/show_bug.cgi?id=237868
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:
- web-platform-tests/css/css-grid/parsing/grid-template-shorthand-valid-expected.txt:
Update expectation files for newly passing tests.
Source/WebCore:
Existing WPT tests marked as passing.
- css/CSSGridTemplateAreasValue.cpp:
(WebCore::CSSGridTemplateAreasValue::stringForRow):
- css/CSSGridTemplateAreasValue.h:
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
(WebCore::isNoneValue):
(WebCore::isValueID):
(WebCore::StyleProperties::getGridTemplateValue const):
(WebCore::StyleProperties::getGridValue const):
- css/StyleProperties.h:
Creates custom serialization for grid-template that handles the case
where no areas were specified (and omits trailing 'none' value), as well as handling
the case where areas are interleaved within the tracks definitions.
- 7:35 PM Changeset in webkit [291954] by
-
- 47 edits in trunk/Source/WebCore
Sort IDL extended attributes alphabetically
https://bugs.webkit.org/show_bug.cgi?id=235531
<rdar://problem/88284366>
Patch by Daniel Adams <msub2official@gmail.com> on 2022-03-27
Reviewed by Sam Weinig.
This just goes through and corrects the ordering of "Conditional" and
"EnabledBySetting" in all of the files mentioned in the report.
Test: Trivial change, no test changes required.
- Modules/gamepad/Gamepad.idl:
- Modules/gamepad/GamepadButton.idl:
- Modules/webxr/Navigator+WebXR.idl:
- Modules/webxr/WebXRBoundedReferenceSpace.idl:
- Modules/webxr/WebXRFrame+HandInput.idl:
- Modules/webxr/WebXRFrame.idl:
- Modules/webxr/WebXRHand.idl:
- Modules/webxr/WebXRInputSource+HandInput.idl:
- Modules/webxr/WebXRInputSource.idl:
- Modules/webxr/WebXRInputSourceArray.idl:
- Modules/webxr/WebXRJointPose.idl:
- Modules/webxr/WebXRJointSpace.idl:
- Modules/webxr/WebXRLayer.idl:
- Modules/webxr/WebXRPose.idl:
- Modules/webxr/WebXRReferenceSpace.idl:
- Modules/webxr/WebXRRenderState.idl:
- Modules/webxr/WebXRRigidTransform.idl:
- Modules/webxr/WebXRSession.idl:
- Modules/webxr/WebXRSpace.idl:
- Modules/webxr/WebXRView.idl:
- Modules/webxr/WebXRViewerPose.idl:
- Modules/webxr/WebXRViewport.idl:
- Modules/webxr/WebXRWebGLLayer.idl:
- Modules/webxr/XREnvironmentBlendMode.idl:
- Modules/webxr/XREye.idl:
- Modules/webxr/XRHandedness.idl:
- Modules/webxr/XRInputSourceEvent.idl:
- Modules/webxr/XRInputSourcesChangeEvent.idl:
- Modules/webxr/XRInteractionMode.idl:
- Modules/webxr/XRReferenceSpaceEvent.idl:
- Modules/webxr/XRReferenceSpaceType.idl:
- Modules/webxr/XRRenderStateInit.idl:
- Modules/webxr/XRSessionEvent.idl:
- Modules/webxr/XRSessionInit.idl:
- Modules/webxr/XRSessionMode.idl:
- Modules/webxr/XRTargetRayMode.idl:
- Modules/webxr/XRVisibilityState.idl:
- Modules/webxr/XRWebGLLayerInit.idl:
- testing/FakeXRBoundsPoint.idl:
- testing/FakeXRButtonStateInit.idl:
- testing/FakeXRInputSourceInit.idl:
- testing/FakeXRRigidTransformInit.idl:
- testing/FakeXRViewInit.idl:
- testing/WebFakeXRDevice.idl:
- testing/WebFakeXRInputController.idl:
- testing/WebXRTest.idl:
- 1:38 PM Changeset in webkit [291953] by
-
- 4 edits in trunk
Use the sizing algorithm's available size to compute grid gap.
https://bugs.webkit.org/show_bug.cgi?id=236956
Reviewed by Tim Nguyen.
Source/WebCore:
Computing the grid gap for subgridded tracks happens during the sizing algorithm
(as part of copying the sizes from the parent, instead of computing new sizes). At
this point we should always have a definite size available (the size of the tracks in
the parent that the subgrid spans), but it may not yet be set on the subgrid's RenderElement.
This retreives the size from the track sizing algorithm instead, where it should always be
available by this point.
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithm::copyUsedTrackSizesForSubgrid):
LayoutTests:
Existing subgrid tests marked as passing.
- 1:24 PM Changeset in webkit [291952] by
-
- 6 edits1 add in trunk
Lazily allocate backing store for grid columns.
https://bugs.webkit.org/show_bug.cgi?id=212201
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/grid-definition/grid-limits-001-expected.txt: Added.
Add passing expectations file for previously skipped test.
Source/WebCore:
Existing WPT test grid-limits-001.html marked as passing.
- rendering/Grid.cpp:
(WebCore::Grid::ensureGridSize):
(WebCore::Grid::ensureStorageForRow):
(WebCore::Grid::insert):
(WebCore::Grid::cell const):
Only grow the first row's column storage (since we use this
to remember the column count) and lazily grow the others when
we try write to them.
(WebCore::GridIterator::GridIterator):
(WebCore::GridIterator::nextGridItem):
(WebCore::GridIterator::isEmptyAreaEnough const):
(WebCore::GridIterator::nextEmptyGridArea):
- rendering/Grid.h:
Changes GridIterator to use the Grid API rather than directly
accessing the inner Vector using 'friend'. This makes it easier to
ensure that we never access areas outside of our lazy allocations.
LayoutTests:
Remove skip annotation for test grid-limits-001 that now passes.
- 7:23 AM Changeset in webkit [291951] by
-
- 3 edits2 adds in trunk
[LFC][IFC] ASSERTs in BoxGeometry when loading Twitter page
https://bugs.webkit.org/show_bug.cgi?id=238421
<rdar://89980547>
Reviewed by Antti Koivisto.
Source/WebCore:
Ensure that we set size/position on trailing, empty inline box(es) in bidi context.
e.g.
<div>some content<span> <-line breaks here</span></div>
where the first line has the following runs:
[some content]
[inline box start]
second line has:
[spanning inline box start]
[<-line breaks here]
[inline box end]
The first line's trailing (and empty, due to trailing whitespace trimming) [inline box start] run
needs computed geometry/display box so that when on the subsequent line we see the [spanning inline box start] run
we can properly compute the enclosing geometry for the <span> element.
(and that's where we currently assert as we don't find the associated box geometry for the inline box on the first line.)
See the comment in InlineDisplayContentBuilder::processBidiContent for details.
(Note that this change has no visual impact as these trailing inline boxes are always empty.)
Test: fast/inline/trailing-empty-bidi-inline-box.html
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
LayoutTests:
- fast/inline/trailing-empty-bidi-inline-box-expected.txt: Added.
- fast/inline/trailing-empty-bidi-inline-box.html: Added.
- 4:53 AM Changeset in webkit [291950] by
-
- 8 edits in trunk
[GTK][WPE] Support CSS accent-color
https://bugs.webkit.org/show_bug.cgi?id=238398
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Add accent-color support for progress, range and entries.
Update check and radio styles so that they can use accent color as well.
- platform/adwaita/ThemeAdwaita.cpp:
(WebCore::ThemeAdwaita::paint):
(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):
- platform/adwaita/ThemeAdwaita.h:
- rendering/RenderThemeAdwaita.cpp:
(WebCore::getSystemAccentColor):
(WebCore::getAccentColor):
(WebCore::RenderThemeAdwaita::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::paintProgressBar):
(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::paintSliderThumb):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml: Enable accent-color for GTK and WPE.
LayoutTests:
- platform/gtk/TestExpectations: Enable accent-color tests for GTK.
Mar 26, 2022:
- 11:33 PM Changeset in webkit [291949] by
-
- 7 edits82 adds in trunk/LayoutTests
Import clip-path W3C tests
https://bugs.webkit.org/show_bug.cgi?id=238373
Reviewed by Tim Nguyen.
LayoutTests/imported/w3c:
Imported css/css-masking/clip-path and css/css-masking/parsing
Upstream rev: f987e7440879b5446f135dca82239feacc9a9caf
- resources/resource-files.json:
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-filter-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes1-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes2-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-overflow-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes1-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes2-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/clip-path-transition-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/animations/w3c-import.log:
- web-platform-tests/css/css-masking/clip-path/clip-path-blending-offset-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1a-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1a.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1b-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1b.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1c-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1c.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1a-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1a.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1b-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1b.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1c-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1c.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-fillBox-1a-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-fillBox-1a.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-filter-order-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-fixed-nested-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-fixed-scroll-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-1-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-2-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-2-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-2.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-inset-round-percent-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-localRef-1-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-localRef-1-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-localRef-1.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-marginBox-1a-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-marginBox-1a.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-mix-blend-mode-1-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-mix-blend-mode-1-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-mix-blend-mode-1.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1a-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1a.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1b-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1b.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1c-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1c.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-rotated-will-change-transform-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-001-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-001.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-002-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-002-units-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-002-units.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-002.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-003-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-003.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-004-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-004.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-001-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-001.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-002-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-002.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1a-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1a.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1b-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1b.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-svg-invalidate-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-backdrop-filter-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1a-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1a.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1b-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1b.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1c-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1c.html: Added.
- web-platform-tests/css/css-masking/clip-path/svg-clip-path-circle-offset-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/svg-clip-path-circle-offset-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/svg-clip-path-circle-offset.html: Added.
- web-platform-tests/css/css-masking/clip-path/svg-clip-path-ellipse-offset-expected.html: Added.
- web-platform-tests/css/css-masking/clip-path/svg-clip-path-ellipse-offset-ref.html: Added.
- web-platform-tests/css/css-masking/clip-path/svg-clip-path-ellipse-offset.html: Added.
- web-platform-tests/css/css-masking/clip-path/w3c-import.log:
- web-platform-tests/css/css-masking/parsing/clip-path-shape-parsing-expected.txt: Added.
- web-platform-tests/css/css-masking/parsing/clip-path-shape-parsing.html: Added.
- web-platform-tests/css/css-masking/parsing/support/parsing-testcommon.js: Added.
(test_valid_value):
- web-platform-tests/css/css-masking/parsing/w3c-import.log:
LayoutTests:
Updated expectations for newly imported failing clip-path tests.
- 6:47 PM Changeset in webkit [291948] by
-
- 10 edits768 adds in trunk
[WebGPU] Import WebGPU Conformance Test Suite
https://bugs.webkit.org/show_bug.cgi?id=238123
Reviewed by Dean Jackson.
Tools:
- Scripts/import-webgpu-cts: Added.
LayoutTests:
This patch imports the WebGPU Conformance Test Suite, from https://github.com/gpuweb/cts, as of
git commit 09f024e50e84f191ee4546ef4021707faa376096. Rather than the CTS having a bunch of HTML
files, one for each test, the CTS instead has a single HTML file which takes a query parameter
which describes the name of a test to run. Therefore, in order to make it work with our test
infrastructure (which requires a bunch of HTML files), we create a bunch of HTML files which just
redirect to the CTS test runner, accompanied by the relevant query parameter. There is a script
in Tools/Scripts which copies the contents of the CTS and generates these HTML files.
The WebGPU Conformance Test Suite:
- Is disabled by default
- Is enabled on macOS and iOS
- Is disabled on macOS-WK2 and iOS-WK2 (because of https://bugs.webkit.org/show_bug.cgi?id=233621)
- Each test individually fails, because we're still implementing our WebGPU implementation, so each test
is individually marked as [ Pass Failure ImageOnlyFailure Timeout ].
- TestExpectations:
- http/tests/webgpu/common/framework/fixture.js: Added.
(export.SkipTestCase):
(export.UnexpectedPassError):
(export.Fixture):
(export.Fixture.prototype.get params):
(export.Fixture.prototype.async init):
(export.Fixture.prototype.async finalize):
(export.Fixture.prototype.doInit):
(export.Fixture.prototype.doFinalize):
(export.Fixture.prototype.trackForCleanup):
(export.Fixture.prototype.tryTrackForCleanup):
(export.Fixture.prototype.debug):
(export.Fixture.prototype.skip):
(export.Fixture.prototype.warn):
(export.Fixture.prototype.fail):
(export.Fixture.prototype.async immediateAsyncExpectation):
(export.Fixture.prototype.eventualAsyncExpectation):
(export.Fixture.prototype.expectErrorValue):
(export.Fixture.prototype.shouldResolve):
(export.Fixture.prototype.async shouldReject):
(export.Fixture.prototype.async shouldThrow):
(export.Fixture.prototype.expect):
(export.Fixture.prototype.expectOK):
- http/tests/webgpu/common/framework/fixture.js.map: Added.
- http/tests/webgpu/common/framework/params_builder.js: Added.
(export.ParamsBuilderBase):
(export.builderIterateCasesWithSubcases):
(export.CaseParamsBuilder.prototype.iterateCasesWithSubcases):
(export.CaseParamsBuilder.prototype.Symbol.iterator):
(export.CaseParamsBuilder.prototype.expandWithParams):
(export.CaseParamsBuilder.prototype.expand):
(export.CaseParamsBuilder.prototype.combineWithParams):
(export.CaseParamsBuilder.prototype.combine):
(export.CaseParamsBuilder.prototype.filter):
(export.CaseParamsBuilder.prototype.unless):
(export.CaseParamsBuilder.prototype.beginSubcases):
(export.CaseParamsBuilder):
(export.const.kUnitCaseParamsBuilder.new.CaseParamsBuilder):
(export.SubcaseParamsBuilder):
(export.SubcaseParamsBuilder.prototype.iterateCasesWithSubcases):
(export.SubcaseParamsBuilder.prototype.expandWithParams):
(export.SubcaseParamsBuilder.prototype.expand):
(export.SubcaseParamsBuilder.prototype.combineWithParams):
(export.SubcaseParamsBuilder.prototype.combine):
(export.SubcaseParamsBuilder.prototype.filter):
(export.SubcaseParamsBuilder.prototype.unless):
(filterGenerator):
- http/tests/webgpu/common/framework/params_builder.js.map: Added.
- http/tests/webgpu/common/framework/resources.js: Added.
(export.getResourcePath):
(export.setBaseResourcePath):
- http/tests/webgpu/common/framework/resources.js.map: Added.
- http/tests/webgpu/common/framework/test_group.js: Added.
- http/tests/webgpu/common/framework/test_group.js.map: Added.
- http/tests/webgpu/common/internal/file_loader.js: Added.
(export.TestFileLoader.prototype.importSpecFile):
(export.TestFileLoader.prototype.async loadTree):
(export.TestFileLoader.prototype.async loadCases):
(export.TestFileLoader):
(export.DefaultTestFileLoader.prototype.async listing):
(export.DefaultTestFileLoader.prototype.import):
(export.DefaultTestFileLoader):
- http/tests/webgpu/common/internal/file_loader.js.map: Added.
- http/tests/webgpu/common/internal/logging/log_message.js: Added.
(export.LogMessageWithStack):
(export.LogMessageWithStack.prototype.setStackHidden):
(export.LogMessageWithStack.prototype.toJSON):
(export.prettyPrintLog):
- http/tests/webgpu/common/internal/logging/log_message.js.map: Added.
- http/tests/webgpu/common/internal/logging/logger.js: Added.
(export.Logger):
(export.Logger.prototype.record):
(export.Logger.prototype.asJSON):
- http/tests/webgpu/common/internal/logging/logger.js.map: Added.
- http/tests/webgpu/common/internal/logging/result.js: Added.
- http/tests/webgpu/common/internal/logging/result.js.map: Added.
- http/tests/webgpu/common/internal/logging/test_case_recorder.js: Added.
(export.TestCaseRecorder):
(export.TestCaseRecorder.prototype.start):
(export.TestCaseRecorder.prototype.finish):
(export.TestCaseRecorder.prototype.beginSubCase):
(export.TestCaseRecorder.prototype.endSubCase):
(export.TestCaseRecorder.prototype.injectResult):
(export.TestCaseRecorder.prototype.debug):
(export.TestCaseRecorder.prototype.info):
(export.TestCaseRecorder.prototype.skipped):
(export.TestCaseRecorder.prototype.warn):
(export.TestCaseRecorder.prototype.expectationFailed):
(export.TestCaseRecorder.prototype.validationFailed):
(export.TestCaseRecorder.prototype.threw):
(export.TestCaseRecorder.prototype.logImpl):
- http/tests/webgpu/common/internal/logging/test_case_recorder.js.map: Added.
- http/tests/webgpu/common/internal/params_utils.js: Added.
(export.paramKeyIsPublic):
(export.extractPublicParams):
(export.publicParamsEquals):
(typeAssert):
(export.mergeParams):
- http/tests/webgpu/common/internal/params_utils.js.map: Added.
- http/tests/webgpu/common/internal/query/compare.js: Added.
(export.compareQueries):
(compareOneLevel):
(comparePaths):
(export.comparePublicParamsPaths):
- http/tests/webgpu/common/internal/query/compare.js.map: Added.
- http/tests/webgpu/common/internal/query/encode_selectively.js: Added.
(export.encodeURIComponentSelectively):
- http/tests/webgpu/common/internal/query/encode_selectively.js.map: Added.
- http/tests/webgpu/common/internal/query/json_param_value.js: Added.
(stringifyFilter):
(export.stringifyParamValue):
(export.stringifyParamValueUniquely):
(export.parseParamValue):
- http/tests/webgpu/common/internal/query/json_param_value.js.map: Added.
- http/tests/webgpu/common/internal/query/parseQuery.js: Added.
(export.parseQuery):
(parseQueryImpl):
(parseBigPart):
(parseSingleParam):
(parseSingleParamValue):
- http/tests/webgpu/common/internal/query/parseQuery.js.map: Added.
- http/tests/webgpu/common/internal/query/query.js: Added.
(export.TestQueryMultiFile):
(export.TestQueryMultiFile.prototype.get depthInLevel):
(export.TestQueryMultiFile.prototype.toString):
(export.TestQueryMultiFile.prototype.toStringHelper):
(export.TestQueryMultiTest):
(export.TestQueryMultiTest.prototype.get depthInLevel):
(export.TestQueryMultiTest.prototype.toStringHelper):
(export.TestQueryMultiCase):
(export.TestQueryMultiCase.prototype.get depthInLevel):
(export.TestQueryMultiCase.prototype.toStringHelper):
(export.TestQuerySingleCase.prototype.get depthInLevel):
(export.TestQuerySingleCase.prototype.toStringHelper):
(export.TestQuerySingleCase):
(export.parseExpectationsForTestQuery):
(export.relativeQueryString):
- http/tests/webgpu/common/internal/query/query.js.map: Added.
- http/tests/webgpu/common/internal/query/separators.js: Added.
- http/tests/webgpu/common/internal/query/separators.js.map: Added.
- http/tests/webgpu/common/internal/query/stringify_params.js: Added.
(export.stringifyPublicParams):
(export.stringifyPublicParamsUniquely):
(export.stringifySingleParam):
(stringifySingleParamUniquely):
(stringifySingleParamValue):
- http/tests/webgpu/common/internal/query/stringify_params.js.map: Added.
- http/tests/webgpu/common/internal/query/validQueryPart.js: Added.
- http/tests/webgpu/common/internal/query/validQueryPart.js.map: Added.
- http/tests/webgpu/common/internal/stack.js: Added.
(export.extractImportantStackTrace):
- http/tests/webgpu/common/internal/stack.js.map: Added.
- http/tests/webgpu/common/internal/test_group.js: Added.
(export.makeTestGroup):
(export.makeTestGroupForUnitTesting):
(export.TestGroup):
(export.TestGroup.prototype.iterate):
(export.TestGroup.prototype.checkName):
(export.TestGroup.prototype.test):
(export.TestGroup.prototype.validate):
(TestBuilder):
(TestBuilder.prototype.desc):
(TestBuilder.prototype.uniqueId):
(TestBuilder.prototype.specURL):
(TestBuilder.prototype.fn):
(TestBuilder.prototype.batch):
(TestBuilder.prototype.unimplemented):
(TestBuilder.prototype.validate):
(TestBuilder.prototype.params):
(TestBuilder.prototype.paramsSimple):
(TestBuilder.prototype.paramsSubcasesOnly):
(TestBuilder.prototype.iterate):
(prototype.async runTest):
(prototype.async run):
- http/tests/webgpu/common/internal/test_group.js.map: Added.
- http/tests/webgpu/common/internal/test_suite_listing.js: Added.
- http/tests/webgpu/common/internal/test_suite_listing.js.map: Added.
- http/tests/webgpu/common/internal/tree.js: Added.
(export.TestTree):
(export.TestTree.prototype.iterateCollapsedNodes):
(export.TestTree.prototype.iterateLeaves):
(export.TestTree.prototype.dissolveSingleChildTrees):
(export.TestTree.prototype.toString):
(export.TestTree.iterateSubtreeNodes):
(export.TestTree.iterateSubtreeLeaves):
(export.TestTree.propagateCounts):
(export.TestTree.countsToString):
(export.TestTree.subtreeToString):
(export.async loadTreeForQuery):
(setSubtreeDescriptionAndCountTODOs):
(makeTreeForSuite):
(addSubtreeForDirPath):
(addSubtreeForFilePath):
(addSubtreeForTestPath):
(getOrInsertSubtree):
(insertLeaf):
(dissolveSingleChildTrees):
(readableNameForCase):
- http/tests/webgpu/common/internal/tree.js.map: Added.
- http/tests/webgpu/common/internal/util.js: Added.
(export.StacklessError):
- http/tests/webgpu/common/internal/util.js.map: Added.
- http/tests/webgpu/common/internal/version.js: Added.
- http/tests/webgpu/common/runtime/cmdline.js: Added.
(usage):
(i.a.startsWith):
- http/tests/webgpu/common/runtime/cmdline.js.map: Added.
- http/tests/webgpu/common/runtime/helper/options.js: Added.
(getWindowURL):
(export.optionEnabled):
- http/tests/webgpu/common/runtime/helper/options.js.map: Added.
- http/tests/webgpu/common/runtime/helper/sys.js: Added.
(node):
(deno.existsSync):
(deno):
- http/tests/webgpu/common/runtime/helper/sys.js.map: Added.
- http/tests/webgpu/common/runtime/helper/test_worker-worker.js: Added.
(self.onmessage.async ev):
- http/tests/webgpu/common/runtime/helper/test_worker-worker.js.map: Added.
- http/tests/webgpu/common/runtime/helper/test_worker.js: Added.
(export.TestWorker):
(export.TestWorker.prototype.async run):
- http/tests/webgpu/common/runtime/helper/test_worker.js.map: Added.
- http/tests/webgpu/common/runtime/server.js: Added.
(usage):
- http/tests/webgpu/common/runtime/server.js.map: Added.
- http/tests/webgpu/common/runtime/standalone.js: Added.
(window.onbeforeunload):
(emptySubtreeResult):
(mergeSubtreeResults):
(memoize):
(makeTreeNodeHTML):
(makeCaseHTML.const.runSubtree.async if):
(makeCaseHTML):
(const.runMySubtree.async if):
(makeSubtreeHTML):
(const.runMySubtree.async const):
(makeSubtreeChildrenHTML):
(consoleLogError):
(async appendTo):
(makeTreeNodeHeaderHTML):
(async const):
(qs.push):
- http/tests/webgpu/common/runtime/standalone.js.map: Added.
- http/tests/webgpu/common/runtime/wpt.js: Added.
(const.wpt_fn.async const):
(async const):
- http/tests/webgpu/common/runtime/wpt.js.map: Added.
- http/tests/webgpu/common/tools/checklist.js: Added.
(usage):
(async loadQueryListFromTextFile):
(checkForOverlappingQueries):
(async console):
(catch):
- http/tests/webgpu/common/tools/checklist.js.map: Added.
- http/tests/webgpu/common/tools/crawl.js: Added.
(async crawlFilesRecursively.async const):
(async crawlFilesRecursively):
(async export.async crawl):
(export.makeListing):
- http/tests/webgpu/common/tools/crawl.js.map: Added.
- http/tests/webgpu/common/tools/dev_server.js: Added.
(const.babelConfig.string_appeared_here):
(dirtyCompileCache):
(dirtyListingAndCompileCache):
(app.use):
(async req):
(port.const.iface.of.Object.values.os.networkInterfaces):
- http/tests/webgpu/common/tools/dev_server.js.map: Added.
- http/tests/webgpu/common/tools/gen_listings.js: Added.
(usage):
(argv.indexOf):
(async for):
- http/tests/webgpu/common/tools/gen_listings.js.map: Added.
- http/tests/webgpu/common/tools/gen_wpt_cts_html.js: Added.
(printUsageAndExit):
(async let):
(expLoop):
(const.prefix.of.argsPrefixes.of.tree.iterateCollapsedNodes):
(catch):
(async generateFile):
- http/tests/webgpu/common/tools/gen_wpt_cts_html.js.map: Added.
- http/tests/webgpu/common/tools/version.js: Added.
- http/tests/webgpu/common/tools/version.js.map: Added.
- http/tests/webgpu/common/util/collect_garbage.js: Added.
(export.async attemptGarbageCollection.gcRec):
(export.async attemptGarbageCollection):
- http/tests/webgpu/common/util/collect_garbage.js.map: Added.
- http/tests/webgpu/common/util/colors.js: Added.
- http/tests/webgpu/common/util/colors.js.map: Added.
- http/tests/webgpu/common/util/data_tables.js: Added.
(export.keysOf):
(export.numericKeysOf):
(export.makeTable):
- http/tests/webgpu/common/util/data_tables.js.map: Added.
- http/tests/webgpu/common/util/navigator_gpu.js: Added.
(defaultGPUProvider):
(export.setGPUProvider):
(export.getGPU):
- http/tests/webgpu/common/util/navigator_gpu.js.map: Added.
- http/tests/webgpu/common/util/preprocessor.js: Added.
(prototype.checkDepth):
(prototype.applyTo):
(Else.prototype.applyTo):
(Else):
(export.pp):
- http/tests/webgpu/common/util/preprocessor.js.map: Added.
- http/tests/webgpu/common/util/timeout.js: Added.
- http/tests/webgpu/common/util/timeout.js.map: Added.
- http/tests/webgpu/common/util/types.js: Added.
(export.assertTypeTrue):
- http/tests/webgpu/common/util/types.js.map: Added.
- http/tests/webgpu/common/util/util.js: Added.
(export.ErrorWithExtra):
(export.assert):
(export.assertOK):
(export.async assertReject):
(export.unreachable):
(export.now):
(export.resolveOnTimeout):
(export.PromiseTimeoutError):
(export.rejectOnTimeout):
(export.raceWithRejectOnTimeout):
(export.sortObjectByKey):
(export.objectEquals):
(export.range):
(export.iterRange):
(subarrayAsU8):
- http/tests/webgpu/common/util/util.js.map: Added.
- http/tests/webgpu/cts.https-expected.txt: Added.
- http/tests/webgpu/cts.https.html: Added.
- http/tests/webgpu/resources/Di-3d.png: Added.
- http/tests/webgpu/resources/README.md: Added.
- http/tests/webgpu/resources/red-green.bt601.vp9.webm: Added.
- http/tests/webgpu/resources/red-green.mp4: Added.
- http/tests/webgpu/resources/red-green.theora.ogv: Added.
- http/tests/webgpu/resources/red-green.webmvp8.webm: Added.
- http/tests/webgpu/webgpu/api/operation/adapter/requestDevice-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/adapter/requestDevice.html: Added.
- http/tests/webgpu/webgpu/api/operation/adapter/requestDevice.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/adapter/requestDevice_limits-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/adapter/requestDevice_limits.html: Added.
- http/tests/webgpu/webgpu/api/operation/adapter/requestDevice_limits.spec.js: Added.
(g.test.string_appeared_here.desc.Test.that.specifying.limits.that.aren.requestDevice.to.reject.fn.async t):
(string_appeared_here.fn.async t):
(65535.fn.async t):
- http/tests/webgpu/webgpu/api/operation/buffers/map-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map.html: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map.spec.js: Added.
(and.the.contents.of.buffers.returned.by.getMappedRange.on.buffers.are.mapped.read.mapped.write.mappedAtCreation.range.used.getMappedRange.mapRegion.used.mapAsync.mapRegionBoundModes.is.used.to.get mapRegion):
(getRegionForMap):
- http/tests/webgpu/webgpu/api/operation/buffers/map_ArrayBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map_ArrayBuffer.html: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map_ArrayBuffer.spec.js: Added.
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/api/operation/buffers/map_detach-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map_detach.html: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map_detach.spec.js: Added.
(unless.p.p.mappedAtCreation.false.p.mapMode.undefined.fn.async t):
- http/tests/webgpu/webgpu/api/operation/buffers/map_oom-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map_oom.html: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/map_oom.spec.js: Added.
(true.fn.async t):
(kBufferUsages.fn.async t):
- http/tests/webgpu/webgpu/api/operation/buffers/mapping_test.js: Added.
(export.MappingTest.prototype.checkMapWrite):
(export.MappingTest.prototype.checkMapWriteZeroed):
(export.MappingTest.prototype.expectZero):
(export.MappingTest):
- http/tests/webgpu/webgpu/api/operation/buffers/threading-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/threading.html: Added.
- http/tests/webgpu/webgpu/api/operation/buffers/threading.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/basic-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/basic.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/basic.spec.js: Added.
(g.test.string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/api/operation/command_buffer/clearBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/clearBuffer.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/clearBuffer.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/api/operation/command_buffer/copyBufferToBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/copyBufferToBuffer.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/copyBufferToBuffer.spec.js: Added.
(p.dstOffset.p.copySize.8.fn.async t):
(and.check.contents.of.both.fn.async t):
(then.checks.the.dst.buffer.fn.async t):
- http/tests/webgpu/webgpu/api/operation/command_buffer/copyTextureToTexture-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/copyTextureToTexture.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/copyTextureToTexture.spec.js: Added.
(F.prototype.GetInitialData):
(F.prototype.GetInitialDataPerMipLevel):
(F.prototype.GetInitialStencilDataPerMipLevel):
(F.prototype.DoCopyTextureToTextureTest):
(F.prototype.InitializeStencilAspect):
(F.prototype.VerifyStencilAspect):
(F.prototype.GetRenderPipelineForT2TCopyWithDepthTests):
(F.prototype.GetBindGroupLayoutForT2TCopyWithDepthTests):
(F.prototype.GetBindGroupForT2TCopyWithDepthTests):
(F.prototype.InitializeDepthAspect):
(F.prototype.VerifyDepthAspect):
(F):
(kRegularTextureFormats.filter):
(3.unless.p.p.dimension.string_appeared_here.p.srcCopyLevel.0.p.dstCopyLevel.0.fn.async t):
(kCompressedTextureFormats.filter):
(2.fn.async t):
(3.fn.async t):
(g.test.string_appeared_here.desc.Validate.the.correctness.of.copyTextureToTexture.with.depth.and.stencil.aspect.For.all.the.texture.formats.with.stencil.aspect.Initialize.the.stencil.aspect.of.the.source.texture.with.writeTexture.Copy.the.stencil.aspect.from.the.source.texture.into.the.destination.texture.Copy.the.stencil.aspect.of.the.destination.texture.into.another.staging.buffer.and.check.its.content.Test.the.copies.from.into.zero.non.zero.array.layer.mipmap.levels.Test.copying.multiple.array.layers.For.all.the.texture.formats.with.depth.aspect.Initialize.the.depth.aspect.of.the.source.texture.with.a.draw.call.Copy.the.depth.aspect.from.the.source.texture.into.the.destination.texture.Validate.the.content.in.the.destination.texture.with.the.depth.comparison.string_appeared_here):
(async fn):
- http/tests/webgpu/webgpu/api/operation/command_buffer/image_copy-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/image_copy.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/image_copy.spec.js: Added.
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.number.instead.of.GPUExtent3DDict.copy_various_mip_levels.test.that.copying.various.mip.levels.works.all.formats.Also.covers.special.code.paths.the.physical.size.of.the.subresource.is.not.equal.to.the.logical.size.bufferSize.offset.bytesPerImage.copyExtent.depthOrArrayLayers.and.copyExtent.needs.to.be.clamped.copy_with_no_image_or_slice_padding_and_undefined_values.test.that.when.copying.a.single.row.we.can.set any.bytesPerRow.value.and.when.copying.a.single.slice.we.can.set rowsPerImage):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.number.instead.of.GPUExtent3DDict.copy_various_mip_levels.test.that.copying.various.mip.levels.works.all.formats.Also.covers.special.code.paths.the.physical.size.of.the.subresource.is.not.equal.to.the.logical.size.bufferSize.offset.bytesPerImage.copyExtent.depthOrArrayLayers.and.copyExtent.needs.to.be.clamped.copy_with_no_image_or_slice_padding_and_undefined_values.test.that.when.copying.a.single.row.we.can.set any):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.getTexelOffsetInBytes):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.iterateBlockRows):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.generateData):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.undefDataLayoutIfNeeded):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.undefOrArrayCopyViewIfNeeded):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.arrayCopySizeIfNeeded):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyTextureToBufferWithAppliedArguments):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.uploadLinearTextureDataToTextureSubBox):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyPartialTextureToBufferAndCheckContents):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyWholeTextureToNewBuffer):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.updateLinearTextureDataSubBox):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyWholeTextureToBufferAndCheckContentsWithUpdatedData):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async uploadTextureAndVerifyCopy):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async DoUploadToStencilTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async DoCopyFromStencilTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async checkStencilTextureContent):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.initializeDepthAspectWithRendering):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.DoCopyTextureToBufferWithDepthAspectTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.formatCanBeTested):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including):
- http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/programmable_state_test.js: Added.
(export.ProgrammableStateTest.prototype.getBindGroupLayout):
(export.ProgrammableStateTest.prototype.getBindGroupLayouts):
(export.ProgrammableStateTest.prototype.createBindGroup):
(export.ProgrammableStateTest.prototype.setBindGroup):
(export.ProgrammableStateTest.prototype.createBindingStatePipeline):
(export.ProgrammableStateTest.prototype.setPipeline):
(export.ProgrammableStateTest.prototype.dispatchOrDraw):
(export.ProgrammableStateTest):
- http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking.spec.js: Added.
(export.const.description.Ensure.state.is.set correctly):
(fn.async t):
(g.test.string_appeared_here.desc.Test.that.the.order.in.you.set the):
- http/tests/webgpu/webgpu/api/operation/command_buffer/render/dynamic_state-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/render/dynamic_state.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/render/dynamic_state.spec.js: Added.
(Set.the.state.in.different.ways.to.make.sure.it.gets.the.correct.value.in.the.end.state.unset.default.state.explicitly.set once):
(set import):
- http/tests/webgpu/webgpu/api/operation/command_buffer/render/state_tracking-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/render/state_tracking.html: Added.
- http/tests/webgpu/webgpu/api/operation/command_buffer/render/state_tracking.spec.js: Added.
(export.const.description.Ensure.state.is.set correctly):
(VertexAndIndexStateTrackingTest.prototype.GetRenderPipelineForTest):
(VertexAndIndexStateTrackingTest):
(size.multiple.times.in.different.orders.still.keeps.the.correctness.of.each.draw.call.fn.async t):
(and.check.they.were.drawn.correctly.fn.async t):
(the.vertex.buffer.stride.is.part.of.SetVertexBuffer.instead.of.the.pipeline.fn.async t):
(The.test.verifies.both.of.these.two.draw.calls.work.correctly.fn.async t):
(g.test.string_appeared_here.desc.Test.that.setting.not.setting.the.index.buffer.does.not.impact.a.non.indexed.draw.fn.async t):
- http/tests/webgpu/webgpu/api/operation/compute/basic-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/compute/basic.html: Added.
- http/tests/webgpu/webgpu/api/operation/compute/basic.spec.js: Added.
(g.test.string_appeared_here.fn.async t):
(kMaxComputeWorkgroupSize.p.largeDimension.fn.async t):
- http/tests/webgpu/webgpu/api/operation/compute_pipeline/entry_point_name-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/compute_pipeline/entry_point_name.html: Added.
- http/tests/webgpu/webgpu/api/operation/compute_pipeline/entry_point_name.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/device/lost-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/device/lost.html: Added.
- http/tests/webgpu/webgpu/api/operation/device/lost.spec.js: Added.
(DeviceLostTests.prototype.getDeviceLostWithTimeout):
(DeviceLostTests.prototype.expectDeviceDestroyed):
(DeviceLostTests):
(async export):
- http/tests/webgpu/webgpu/api/operation/labels-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/labels.html: Added.
- http/tests/webgpu/webgpu/api/operation/labels.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/buffer_sync_test.js: Added.
(export.BufferSyncTest.prototype.async createBufferWithValue):
(export.BufferSyncTest.prototype.async createTextureWithValue):
(export.BufferSyncTest.prototype.createBindGroup):
(export.BufferSyncTest.prototype.createStorageWriteComputePipeline):
(export.BufferSyncTest.prototype.createStorageWriteRenderPipeline):
(export.BufferSyncTest.prototype.beginSimpleRenderPass):
(export.BufferSyncTest.prototype.encodeWriteAsStorageBufferInRenderPass):
(export.BufferSyncTest.prototype.encodeWriteAsStorageBufferInComputePass):
(export.BufferSyncTest.prototype.async encodeWriteByB2BCopy):
(export.BufferSyncTest.prototype.async encodeWriteByT2BCopy):
(export.BufferSyncTest.prototype.writeByWriteBuffer):
(export.BufferSyncTest.prototype.async encodeWriteOp):
(export.BufferSyncTest.prototype.async createCommandBufferWithWriteOp):
(export.BufferSyncTest.prototype.async submitWriteOp):
(export.BufferSyncTest.prototype.verifyData):
(export.BufferSyncTest.prototype.verifyDataTwoValidValues):
(export.BufferSyncTest):
- http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/rw_and_wr-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/rw_and_wr.html: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/rw_and_wr.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/ww-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/ww.html: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/ww.spec.js: Added.
(kAllWriteOps.fn.async t):
(true.fn.async t):
(g.test.string_appeared_here.desc.Test.write.after.write.operations.in.the.same.render.bundle.The.first.write.will.write.1.into.a.storage.buffer.The.second.write.will.write.2.into.the.same.buffer.in.the.same.pass.Expected.data.in.buffer.is.either.1.or.2.fn.async t):
(g.test.string_appeared_here.desc.Test.write.after.write.operations.in.the.same.compute.pass.The.first.write.will.write.1.into.a.storage.buffer.The.second.write.will.write.2.into.the.same.buffer.in.the.same.pass.Expected.data.in.buffer.is.2.fn.async t):
- http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource.html: Added.
- http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource.spec.js: Added.
(TextureSyncTestHelper):
(TextureSyncTestHelper.prototype.performReadOp):
(TextureSyncTestHelper.prototype.performWriteOp):
(TextureSyncTestHelper.prototype.ensureSubmit):
(TextureSyncTestHelper.prototype.popContext):
(TextureSyncTestHelper.prototype.makeDummyAttachment):
(TextureSyncTestHelper.prototype.ensureContext):
(TextureSyncTestHelper.prototype.flushRenderBundles):
(TextureSyncTestHelper.prototype.flushCommandBuffers):
(TextureSyncTestHelper.prototype.ensureBoundary):
(p.kBoundaryInfo.p.boundary.contexts.expandWithParams):
- http/tests/webgpu/webgpu/api/operation/memory_sync/texture/texture_sync_test.js: Added.
(combineContexts):
(export.checkOpsValidForContext):
- http/tests/webgpu/webgpu/api/operation/onSubmittedWorkDone-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/onSubmittedWorkDone.html: Added.
- http/tests/webgpu/webgpu/api/operation/onSubmittedWorkDone.spec.js: Added.
(g.test.string_appeared_here.desc.Await.onSubmittedWorkDone.once.without.having.submitted.any.work.fn.async t):
(g.test.string_appeared_here.desc.Await.onSubmittedWorkDone.once.after.submitting.some.work.writeBuffer.fn.async t):
(g.test.string_appeared_here.desc.Await.1000.onSubmittedWorkDone.calls.in.serial.fn.async t):
(g.test.string_appeared_here.desc.Await.1000.onSubmittedWorkDone.calls.in.parallel.with.Promise.all.fn.async t):
(g.test.string_appeared_here.desc.Issue.200.onSubmittedWorkDone.calls.and.make.sure.they.resolve.in.the.right.order.fn.async t):
- http/tests/webgpu/webgpu/api/operation/pipeline/default_layout-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/pipeline/default_layout.html: Added.
- http/tests/webgpu/webgpu/api/operation/pipeline/default_layout.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/queue/writeBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/queue/writeBuffer.html: Added.
- http/tests/webgpu/webgpu/api/operation/queue/writeBuffer.spec.js: Added.
(F.prototype.calculateRequiredBufferSize):
(F.prototype.testWriteBuffer):
(F):
- http/tests/webgpu/webgpu/api/operation/render_pass/clear_value-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/clear_value.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/clear_value.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/resolve-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/resolve.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/resolve.spec.js: Added.
(some.with.and.some.without.a.resolveTarget.renderPass.storeOp.set to):
(1.fn.t.i.t.params.slotsToResolve.includes):
- http/tests/webgpu/webgpu/api/operation/render_pass/storeOp-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/storeOp.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/storeOp.spec.js: Added.
(work.correctly.a.render.pass.with.a.color.attachment.All.renderable.color.formats.mip.level.set to):
(array.layer.set to):
(2D.textures.TODO.depth.slice.set to):
(work.correctly.a.render.pass.with.a.depth.stencil.attachment.All.renderable.depth.stencil.formats.mip.level.set to):
(2D.textures.TODO.test.depth24plus.and.depth24plus.stencil8.formats.TODO.test.that.depth.and.stencil.aspects.are.set separately.TODO.depth.slice.set to):
(2D.textures.TODO.test.depth24plus.and.depth24plus.stencil8.formats.TODO.test.that.depth.and.stencil.aspects.are.set separately):
(kStoreOps.fn.t.else):
(kEncodableTextureFormats.filter):
(kArrayLayers.fn.t.else):
(kNumColorAttachments.fn.t.i.else):
- http/tests/webgpu/webgpu/api/operation/render_pass/storeop2-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/storeop2.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pass/storeop2.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/api/operation/render_pipeline/alpha_to_coverage-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/alpha_to_coverage.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/alpha_to_coverage.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/culling_tests-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/culling_tests.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/culling_tests.spec.js: Added.
(faceIsCulled):
- http/tests/webgpu/webgpu/api/operation/render_pipeline/entry_point_name-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/entry_point_name.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/entry_point_name.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/pipeline_output_targets-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/pipeline_output_targets.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/pipeline_output_targets.spec.js: Added.
(F.prototype.getFragmentShaderCode):
(F):
(4.filter.x.x.componentCount.kTexelRepresentationInfo.x.format.componentOrder.length.fn.async t):
(filter.x.x.output.length.kTexelRepresentationInfo.x.format.componentOrder.length.fn.async t):
- http/tests/webgpu/webgpu/api/operation/render_pipeline/primitive_topology-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/primitive_topology.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/primitive_topology.spec.js: Added.
(v1.v3.v5.Topology.triangle.strip.4.triangles.v2.v4.v6.Triangle.list.locations.None.Center.of.two.triangle):
(Point2D):
(Point2D.prototype.toNDC):
(Point2D.getMidpoint):
(Point2D.getCentroid):
(getPointTestLocations):
(getLineTestLocations):
(getPrimitiveRestartLineTestLocations):
(getLineStripTestLocations):
(getTriangleListTestLocations):
(getTriangleStripTestLocations):
(getDefaultTestLocations):
- http/tests/webgpu/webgpu/api/operation/render_pipeline/sample_mask-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/sample_mask.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/sample_mask.spec.js: Added.
(fragment.shader.output.mask):
- http/tests/webgpu/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline.html: Added.
- http/tests/webgpu/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline.spec.js: Added.
(F):
- http/tests/webgpu/webgpu/api/operation/rendering/basic-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/basic.html: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/basic.spec.js: Added.
(g.test.string_appeared_here.fn.async t):
(false.fn.async t.async const):
(false.fn.async t):
- http/tests/webgpu/webgpu/api/operation/rendering/blending-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/blending.html: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/blending.spec.js: Added.
(mapColor):
(computeBlendFactor):
(computeBlendOperation):
(fn.t.switch):
- http/tests/webgpu/webgpu/api/operation/rendering/depth-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/depth.html: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/depth.spec.js: Added.
(g.test.string_appeared_here.desc.Tests.each.depth.compare.works):
- http/tests/webgpu/webgpu/api/operation/rendering/depth_clip_clamp-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/depth_clip_clamp.html: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/depth_clip_clamp.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/api/operation/rendering/draw-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/draw.html: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/draw.spec.js: Added.
(and.base_vertex.is.used.to.select.the.second.set The):
(9.undefined.fn.async t):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.switch):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.b.switch):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.vertexIndex.instanceIndex.bufferLayouts.forEach):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.const.pipeline.t.device.createRenderPipeline.vertex.module.t.device.createShaderModule.stage.vertex.fn.main.input.Inputs.Outputs.join):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.const.pipeline.t.device.createRenderPipeline.fragment.module.t.device.createShaderModule.stage.fragment.fn.main):
- http/tests/webgpu/webgpu/api/operation/rendering/indirect_draw-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/indirect_draw.html: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/indirect_draw.spec.js: Added.
(F.prototype.MakeIndexBuffer):
(F.prototype.MakeVertexBuffer):
(F.prototype.MakeIndirectBuffer):
(F):
- http/tests/webgpu/webgpu/api/operation/rendering/robust_access_index-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/robust_access_index.html: Added.
- http/tests/webgpu/webgpu/api/operation/rendering/robust_access_index.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/resource_init/buffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/resource_init/buffer.html: Added.
- http/tests/webgpu/webgpu/api/operation/resource_init/buffer.spec.js: Added.
(F.prototype.GetBufferUsageFromMapMode):
(F.prototype.async CheckGPUBufferContent):
(F.prototype.TestBufferZeroInitInBindGroup):
(F.prototype.CreateRenderPipelineForTest):
(F.prototype.RecordInitializeTextureColor):
(F.prototype.CheckBufferAndOutputTexture):
(F):
(12.fn.async t):
(kMapModeOptions.fn.async t):
(16.fn.async t):
(kBufferUsagesForMappedAtCreationTests.fn.async t):
(the.contents.of.the.GPUBuffer.have.already.been.initialized.to.0.fn.async t):
(8.fn.async t):
(fn.async t):
(g.test.string_appeared_here.desc.Verify.when.we.resolve.a.query.set into):
- http/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_copy.js: Added.
(export.const.checkContentsByBufferCopy):
(export.const.checkContentsByTextureCopy):
- http/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_ds_test.js: Added.
(makeFullscreenVertexModule):
(const.checkContents):
- http/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_sampling.js: Added.
(export.const.checkContentsBySampling):
- http/tests/webgpu/webgpu/api/operation/resource_init/texture_zero-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/resource_init/texture_zero.html: Added.
- http/tests/webgpu/webgpu/api/operation/resource_init/texture_zero.spec.js: Added.
(initializedStateAsColor):
(getRequiredTextureUsage):
(export.TextureZeroInitTest):
(export.TextureZeroInitTest.prototype.get textureWidth):
(export.TextureZeroInitTest.prototype.get textureHeight):
(export.TextureZeroInitTest.prototype.get textureDepth):
(export.TextureZeroInitTest.prototype.get textureDepthOrArrayLayers):
(export.TextureZeroInitTest.prototype.iterateUninitializedSubresources):
(export.TextureZeroInitTest.prototype.iterateInitializedSubresources):
(export.TextureZeroInitTest.prototype.generateTextureViewDescriptorsForRendering):
(export.TextureZeroInitTest.prototype.initializeWithStoreOp):
(export.TextureZeroInitTest.prototype.initializeWithCopy):
(export.TextureZeroInitTest.prototype.initializeTexture):
(export.TextureZeroInitTest.prototype.discardTexture):
(kTextureAspects.unless):
(kUninitializeMethods.unless):
(expandWithParams):
(sampleCount.1.layerCount.1.unless):
(true.filter):
(g.test.string_appeared_here.params.kTestParams.fn.async t):
- http/tests/webgpu/webgpu/api/operation/sampling/anisotropy-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/sampling/anisotropy.html: Added.
- http/tests/webgpu/webgpu/api/operation/sampling/anisotropy.spec.js: Added.
(by.testing.how.many.unique.sample.values.come.out.of.the.sample.operation.Check.anisotropy.is.done.in.the.correct.direction.by.having.a.2D.gradient.and.checking.we.get more):
(SamplerAnisotropicFilteringSlantedPlaneTest.prototype.copyRenderTargetToBuffer):
(SamplerAnisotropicFilteringSlantedPlaneTest.prototype.async init):
(SamplerAnisotropicFilteringSlantedPlaneTest.prototype.drawSlantedPlane):
(SamplerAnisotropicFilteringSlantedPlaneTest):
(as.the.sampling.rate.is.different.We.will.also.check.those.large.maxAnisotropy.values.are.clamped.so.that.rendering.is.the.same.as.the.supported.upper.limit.say.16.A.similar.webgl.demo.is.at.https.fn.async t):
(fn.async t):
- http/tests/webgpu/webgpu/api/operation/sampling/filter_mode-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/sampling/filter_mode.html: Added.
- http/tests/webgpu/webgpu/api/operation/sampling/filter_mode.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/sampling/lod_clamp-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/sampling/lod_clamp.html: Added.
- http/tests/webgpu/webgpu/api/operation/sampling/lod_clamp.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/shader_module/compilation_info-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/shader_module/compilation_info.html: Added.
- http/tests/webgpu/webgpu/api/operation/shader_module/compilation_info.spec.js: Added.
(return.vec4.f32):
(return.unknown):
(g.test.string_appeared_here.desc.Test.that.compilationInfo.can.be.called.on.any.ShaderModule.Test.both.valid.and.invalid.shader.modules.Test.shader.modules.containing.only.ASCII.and.those.containing.unicode.characters.Test.that.the.compilation.info.valid.shader.modules.contains.no.errors.Test.that.the.compilation.info.invalid.shader.modules.contains.at.least.one.error.paramsSimple.kAllShaderSources.fn.async t):
(indicating.an.unknown.position.Test.invalid.shader.modules.containing.containing.at.least.one.error.Test.shader.modules.containing.only.ASCII.and.those.containing.unicode.characters.paramsSimple.kInvalidShaderSources.fn.async t):
(g.test.string_appeared_here.desc.Test.that.message.offsets.and.lengths.are.valid.and.align.with.any.reported.lineNum.and.linePos.Test.valid.and.invalid.shader.modules.Test.shader.modules.containing.only.ASCII.and.those.containing.unicode.characters.paramsSimple.kAllShaderSources.fn.async t):
- http/tests/webgpu/webgpu/api/operation/texture_view/read-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/texture_view/read.html: Added.
- http/tests/webgpu/webgpu/api/operation/texture_view/read.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/texture_view/write-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/texture_view/write.html: Added.
- http/tests/webgpu/webgpu/api/operation/texture_view/write.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/uncapturederror-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/uncapturederror.html: Added.
- http/tests/webgpu/webgpu/api/operation/uncapturederror.spec.js: Added.
- http/tests/webgpu/webgpu/api/operation/vertex_state/correctness-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/vertex_state/correctness.html: Added.
- http/tests/webgpu/webgpu/api/operation/vertex_state/correctness.spec.js: Added.
(mapBufferAttribs):
(mapStateAttribs):
(prototype.makeTestWGSL):
(prototype.makeTestPipeline):
(prototype.submitRenderPass):
(prototype.generateTestData):
(prototype.expandTestData):
(prototype.interleaveVertexDataInto):
(prototype.createTestAndPipelineData):
(prototype.createExpectedBG):
(prototype.createVertexBuffers):
(prototype.runTest):
(fn.t.i):
- http/tests/webgpu/webgpu/api/operation/vertex_state/index_format-expected.txt: Added.
- http/tests/webgpu/webgpu/api/operation/vertex_state/index_format.html: Added.
- http/tests/webgpu/webgpu/api/operation/vertex_state/index_format.spec.js: Added.
(IndexFormatTest.prototype.MakeRenderPipeline):
(IndexFormatTest.prototype.CreateIndexBuffer):
(IndexFormatTest.prototype.run):
(IndexFormatTest.prototype.CreateExpectedUint8Array):
(IndexFormatTest):
(in.the.case.of.incorrect.results.This.shows.the.expected.result.marked.string_appeared_here.is.different.from.what.you.would.get if):
- http/tests/webgpu/webgpu/api/validation/attachment_compatibility-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/attachment_compatibility.html: Added.
- http/tests/webgpu/webgpu/api/validation/attachment_compatibility.spec.js: Added.
(F.prototype.createAttachmentTextureView):
(F.prototype.createColorAttachment):
(F.prototype.createDepthAttachment):
(F.prototype.createRenderPipeline):
(F):
(kDepthStencilAttachmentFormats.fn.async t):
- http/tests/webgpu/webgpu/api/validation/buffer/create-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/create.html: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/create.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/destroy-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/destroy.html: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/destroy.spec.js: Added.
(kBufferUsages.fn.async t):
(g.test.string_appeared_here.desc.string_appeared_here.fn.async t):
(fn.async t):
(unless.p.p.mappedAtCreation.false.p.mapMode.undefined.fn.async t):
- http/tests/webgpu/webgpu/api/validation/buffer/mapping-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/mapping.html: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/mapping.spec.js: Added.
(F.prototype.async testMapAsyncCall):
(F.prototype.testGetMappedRangeCall):
(F.prototype.createMappableBuffer):
(F):
(kBufferUsages.fn.async t):
(kMapModeOptions.fn.async t):
(fn.async t):
(kSizeAlignment.2.fn.async t):
(validation.can.be.performed.asynchronously.in.the.GPU.process.so.the.Content.process.doesn.fn.async t):
(after.a.mapAsync.call.or.after.being.created.mapped.fn.async t):
(g.test.string_appeared_here.desc.Test.that.old.getMappedRange.returned.arraybuffer.does.not.exist.after.unmap.and.newly.returned.arraybuffer.after.new.map.has.correct.subrange.fn.async t):
(g.test.string_appeared_here.desc.string_appeared_here.fn.async t):
(or.after.mappedAtCreation.or.mapAsync.fn.async t):
- http/tests/webgpu/webgpu/api/validation/buffer/threading-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/threading.html: Added.
- http/tests/webgpu/webgpu/api/validation/buffer/threading.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/depth_clip_control-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/depth_clip_control.html: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/depth_clip_control.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/query_types-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/query_types.html: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/query_types.spec.js: Added.
(g.test.string_appeared_here.desc.Tests.that.creating.query.set shouldn):
(true.fn.async t):
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/texture_formats-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/texture_formats.html: Added.
- http/tests/webgpu/webgpu/api/validation/capability_checks/features/texture_formats.spec.js: Added.
(false.fn.async t):
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/createBindGroup-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createBindGroup.html: Added.
- http/tests/webgpu/webgpu/api/validation/createBindGroup.spec.js: Added.
(clone):
(3.fn.async t):
(2.fn.async t):
(allBindingEntries.false.fn.t.switch):
(allBindingEntries.false.fn.t.t.expectValidationError):
(kTextureUsages.unless):
(fn.async t):
(string_appeared_here.fn.async t):
(kTextureViewDimensions.fn.async t):
(256.fn.t.t.expectValidationError):
(bufferBindingEntries.true.fn.t.t.expectValidationError):
(string_appeared_here.fn.t.t.expectValidationError):
(false.fn.async t):
- http/tests/webgpu/webgpu/api/validation/createBindGroupLayout-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createBindGroupLayout.html: Added.
- http/tests/webgpu/webgpu/api/validation/createBindGroupLayout.spec.js: Added.
(clone):
(fn.async t):
(allBindingEntries.false.fn.async t):
(kTextureViewDimensions.fn.async t):
(1.fn.async t):
(prototype.async g):
- http/tests/webgpu/webgpu/api/validation/createComputePipeline-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createComputePipeline.html: Added.
- http/tests/webgpu/webgpu/api/validation/createComputePipeline.spec.js: Added.
(F.prototype.getShaderModule):
(F.prototype.getInvalidShaderModule):
(F.prototype.doCreateComputePipelineTest):
(F):
(fn.async t):
(making.sure.that.the.test.working):
- http/tests/webgpu/webgpu/api/validation/createPipelineLayout-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createPipelineLayout.html: Added.
- http/tests/webgpu/webgpu/api/validation/createPipelineLayout.spec.js: Added.
(clone):
(kBufferBindingTypes.fn.async t):
(g.test.string_appeared_here.fn.async t):
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/createRenderPipeline-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createRenderPipeline.html: Added.
- http/tests/webgpu/webgpu/api/validation/createRenderPipeline.spec.js: Added.
(F.prototype.getFragmentShaderCode):
(F.prototype.getDescriptor):
(F.prototype.getPipelineLayout):
(F.prototype.createTexture):
(F.prototype.doCreateRenderPipelineTest):
(F):
(true.fn.async t):
(kTextureFormats.fn.async t):
(kCompareFunctions.fn.async t):
(kStencilOperations.fn.async t):
(fn.async t):
(4.fn.async t):
(kRenderableColorTextureFormats.fn.async t):
(kBlendOperations.fn.async t):
(false.fn.async t):
- http/tests/webgpu/webgpu/api/validation/createSampler-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createSampler.html: Added.
- http/tests/webgpu/webgpu/api/validation/createSampler.spec.js: Added.
(4e30.fn.async t):
(g.test.string_appeared_here.desc.string_appeared_here.params.u.u.beginSubcases.combineWithParams.u.combine):
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/createTexture-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createTexture.html: Added.
- http/tests/webgpu/webgpu/api/validation/createTexture.spec.js: Added.
(format.fn.async t):
(kTextureFormats.fn.async t):
(dimension.string_appeared_here.largestDimension.0.fn.async t):
(format.string_appeared_here.dimension.string_appeared_here.dimension.string_appeared_here.size.0.kTextureFormatInfo.format.blockWidth.0.size.1.kTextureFormatInfo.format.blockHeight.0.fn.async t):
(g.test.string_appeared_here.desc.Test.mip.level.count.bound.check.when.mipLevelCount.is.bigger.than.integer.bit.width.fn.async t):
(format.unless):
(fn.async t):
(2.fn.async t):
- http/tests/webgpu/webgpu/api/validation/createView-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/createView.html: Added.
- http/tests/webgpu/webgpu/api/validation/createView.spec.js: Added.
(kTextureFormats.fn.async t):
(undefined.fn.t.t.expectValidationError):
(kTextureAspects.fn.async t):
(validateCreateViewLayersLevels):
(const.lastArrayLayer.of.new.Set):
(fn.t.t.expectValidationError):
(const.lastMipLevel.of.new.Set):
(fn.async t):
(kResourceStates.fn.async t):
- http/tests/webgpu/webgpu/api/validation/create_pipeline-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/create_pipeline.html: Added.
- http/tests/webgpu/webgpu/api/validation/create_pipeline.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/beginRenderPass-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/beginRenderPass.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/beginRenderPass.spec.js: Added.
(fn.async t):
(false.fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/buffer_texture_copies-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/buffer_texture_copies.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/buffer_texture_copies.spec.js: Added.
(ImageCopyTest.prototype.testCopyBufferToTexture):
(ImageCopyTest.prototype.testCopyTextureToBuffer):
(ImageCopyTest.prototype.testWriteTexture):
(ImageCopyTest):
(string_appeared_here.fn.async t):
(fn.async t):
(8.fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/clearBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/clearBuffer.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/clearBuffer.spec.js: Added.
(F.prototype.TestClearBuffer):
(F):
(g.test.string_appeared_here.desc.Test.that.clearing.an.error.buffer.fails.fn.async t):
(fn.async t):
(kBufferUsages.fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/compute_pass-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/compute_pass.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/compute_pass.spec.js: Added.
(F.prototype.createComputePipeline):
(F.prototype.createIndirectBuffer):
(F):
(1.fn.t.else):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyBufferToBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyBufferToBuffer.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyBufferToBuffer.spec.js: Added.
(F.prototype.TestCopyBufferToBuffer):
(F):
(g.test.string_appeared_here.fn.async t):
(kBufferUsages.fn.async t):
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyTextureToTexture-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyTextureToTexture.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyTextureToTexture.spec.js: Added.
(F.prototype.TestCopyTextureToTexture):
(F.prototype.GetPhysicalSubresourceSize):
(F):
(kResourceStates.fn.async t):
(unless.p.p.dimension.string_appeared_here.p.srcLevelCount.1.p.dstLevelCount.1.fn.async t):
(kTextureUsages.fn.async t):
(4.fn.async t):
(8.fn.async t):
(kTextureFormats.fn.async t):
(1.fn.async t):
(3.unless.p.p.dimension.string_appeared_here.p.srcCopyLevel.0.p.dstCopyLevel.0.fn.async t):
(3.fn.async t):
(string_appeared_here.fn.async t):
(2.fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/debug-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/debug.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/debug.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/index_access-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/index_access.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/index_access.spec.js: Added.
(F.prototype.createIndexBuffer):
(F.prototype.createRenderPipeline):
(F.prototype.beginRenderPass):
(F.prototype.drawIndexed):
(F):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/draw-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/draw.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/draw.spec.js: Added.
(callDrawIndexed):
(and.test.that.draw.and.drawIndexed.will.success.error.as.expected.Such.set of):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/dynamic_state-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/dynamic_state.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/dynamic_state.spec.js: Added.
(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F.prototype.testViewportCall):
(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F.prototype.testScissorCall):
(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F.prototype.createDummyRenderPassEncoder):
(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/indirect_draw-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/indirect_draw.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/indirect_draw.spec.js: Added.
(F.prototype.makeIndexBuffer):
(F):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/render.js: Added.
(export.buildBufferOffsetAndSizeOOBTestParams):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setIndexBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setIndexBuffer.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setIndexBuffer.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setPipeline-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setPipeline.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setPipeline.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setVertexBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setVertexBuffer.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setVertexBuffer.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/state_tracking-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/state_tracking.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/state_tracking.spec.js: Added.
(F.prototype.getVertexBuffer):
(F.prototype.createRenderPipeline):
(F.prototype.beginRenderPass):
(F):
(g.test.string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render_pass-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render_pass.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/render_pass.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/setBindGroup-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/setBindGroup.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/cmds/setBindGroup.spec.js: Added.
(F.prototype.encoderTypeToStageFlag):
(F.prototype.createBindingResourceWithState):
(F.prototype.createBindGroup):
(F):
(string_appeared_here.fn.async t.async runTest):
(string_appeared_here.fn.async t):
(kProgrammableEncoderTypes.fn.async t):
(true.fn.async t):
(fn.t.const.doSetBindGroup):
- http/tests/webgpu/webgpu/api/validation/encoding/createRenderBundleEncoder-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/createRenderBundleEncoder.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/createRenderBundleEncoder.spec.js: Added.
(string_appeared_here.filter):
(fn.async t):
(string_appeared_here.fn.async t):
(true.fn.async t):
(g.test.string_appeared_here.desc.Tests.that.createRenderBundleEncoder.validation.of.depthReadOnly.and.stencilReadOnly.is.ignored.there.is.no.depthStencilFormat.set params):
- http/tests/webgpu/webgpu/api/validation/encoding/encoder_state-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/encoder_state.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/encoder_state.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat.spec.js: Added.
(getTestCmds):
(F.prototype.getIndexBuffer):
(F.prototype.getIndirectBuffer):
(F.prototype.getBindingResourceType):
(F.prototype.createRenderPipelineWithLayout):
(F.prototype.createComputePipelineWithLayout):
(F.prototype.createBindGroupWithLayout):
(F.prototype.doCompute):
(F.prototype.doRender):
(F.prototype.createBindGroupLayoutEntry):
(F.prototype.runTest):
(F):
(g.test.string_appeared_here.desc.Tests.the.bind.groups.must.match.the.requirements.of.the.pipeline.layout.bind.groups.required.by.the.pipeline.layout.are.required.bind.groups.unused.by.the.pipeline.layout.can.be.set or):
- http/tests/webgpu/webgpu/api/validation/encoding/queries/begin_end-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/begin_end.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/begin_end.spec.js: Added.
(fn.async t):
(true.fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/queries/common.js: Added.
(export.createQuerySetWithType):
(export.beginRenderPassWithQuerySet):
- http/tests/webgpu/webgpu/api/validation/encoding/queries/general-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/general.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/general.spec.js: Added.
(g.test.string_appeared_here.desc.Tests.that.set occlusion.query.set with):
(g.test.string_appeared_here.desc.Tests.that.set occlusion):
(fn.async t):
(g.test.string_appeared_here.desc.Tests.that.begin.occlusion.query.with.a.invalid.query.set that):
(occlusion.query.set in):
(g.test.string_appeared_here.desc.Tests.that.write.timestamp.to.all.types.of.query.set on):
(2.0.fn.async t):
(g.test.string_appeared_here.desc.Tests.that.write.timestamp.to.a.invalid.query.set that):
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/queries/pipeline_statistics-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/pipeline_statistics.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/pipeline_statistics.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/resolveQuerySet-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/resolveQuerySet.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/queries/resolveQuerySet.spec.js: Added.
(g.test.string_appeared_here.desc.Tests.that.resolve.query.set with):
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/encoding/render_bundle-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/render_bundle.html: Added.
- http/tests/webgpu/webgpu/api/validation/encoding/render_bundle.spec.js: Added.
(g.test.string_appeared_here.desc.Test.that.it.is.valid.to.execute.an.empty.list.of.render.bundles.fn.async t):
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/error_scope-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/error_scope.html: Added.
- http/tests/webgpu/webgpu/api/validation/error_scope.spec.js: Added.
(F.prototype.get device):
(F.prototype.async init):
(F.prototype.createErrorBuffer):
(F.prototype.async expectUncapturedError):
(F):
(g.test.string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/api/validation/image_copy/buffer_related-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/image_copy/buffer_related.html: Added.
- http/tests/webgpu/webgpu/api/validation/image_copy/buffer_related.spec.js: Added.
(kResourceStates.fn.async t):
(fn.async t):
(bytesPerRow.undefined.copyHeightInBlocks.1.bytesPerRow.undefined.bytesPerRow.kTextureFormatInfo.format.bytesPerBlock.fn.async t):
- http/tests/webgpu/webgpu/api/validation/image_copy/image_copy.js: Added.
(export.ImageCopyTest.prototype.testRun):
(export.ImageCopyTest.prototype.createAlignedTexture):
(export.ImageCopyTest.prototype.testBuffer):
(export.ImageCopyTest):
(valuesToTestDivisibilityBy):
(export.texelBlockAlignmentTestExpanderForOffset):
- http/tests/webgpu/webgpu/api/validation/image_copy/layout_related-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/image_copy/layout_related.html: Added.
- http/tests/webgpu/webgpu/api/validation/image_copy/layout_related.spec.js: Added.
(3.unless.p.p.dimension.string_appeared_here.p.copyHeightInBlocks.1.unless.p.p.copyDepth.p.size.2.fn.async t):
(fn.async t):
(filter):
(unless.p.p.dimension.string_appeared_here.p.copyHeightInBlocks.1.p.copyDepth.1.fn.async t):
(rowsPerImage.kTextureFormatInfo.format.blockHeight.fn.async t):
(texelBlockAlignmentTestExpanderForOffset.fn.async t):
(2.unless.p.p.dimension.string_appeared_here.p.copyHeightInBlocks.1.p.copyDepth.1.expandWithParams.p._success):
(2.fn.async t):
- http/tests/webgpu/webgpu/api/validation/image_copy/texture_related-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/image_copy/texture_related.html: Added.
- http/tests/webgpu/webgpu/api/validation/image_copy/texture_related.spec.js: Added.
(fn.async t):
(4.fn.async t):
(1.0.fn.async t):
(texelBlockAlignmentTestExpanderForValueToCoordinate.fn.async t):
(2.unless.p.p.dimension.string_appeared_here.p.coordinateToTest.0.p.mipLevel.0.fn.async t):
- http/tests/webgpu/webgpu/api/validation/initialization/requestDevice-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/initialization/requestDevice.html: Added.
- http/tests/webgpu/webgpu/api/validation/initialization/requestDevice.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/layout_shader_compat-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/layout_shader_compat.html: Added.
- http/tests/webgpu/webgpu/api/validation/layout_shader_compat.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/query_set/create-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/query_set/create.html: Added.
- http/tests/webgpu/webgpu/api/validation/query_set/create.spec.js: Added.
(g.test.string_appeared_here.desc.Tests.that.create.query.set with):
(kMaxQueryCount.1.fn.async t):
- http/tests/webgpu/webgpu/api/validation/query_set/destroy-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/query_set/destroy.html: Added.
- http/tests/webgpu/webgpu/api/validation/query_set/destroy.spec.js: Added.
(export.const.description.Destroying.a.query.set more):
(g.test.string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/api/validation/queue/buffer_mapped-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/queue/buffer_mapped.html: Added.
- http/tests/webgpu/webgpu/api/validation/queue/buffer_mapped.spec.js: Added.
(F.prototype.async runBufferDependencyTest):
(F):
(g.test.string_appeared_here.desc.Test.that.an.outstanding.mapping.will.prevent.writeBuffer.calls.fn.async t):
(both.when.used.as.the.source.and.destination.fn.async t):
(g.test.string_appeared_here.desc.Test.that.an.outstanding.mapping.will.prevent.copyBufferToTexture.commands.from.submitting.fn.async t):
(g.test.string_appeared_here.desc.Test.that.an.outstanding.mapping.will.prevent.copyTextureToBuffer.commands.from.submitting.fn.async t):
(fn.async t.const.steps.submit.async t):
- http/tests/webgpu/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture.html: Added.
- http/tests/webgpu/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture.spec.js: Added.
(computeMipMapSize):
(generateCopySizeForSrcOOB):
- http/tests/webgpu/webgpu/api/validation/queue/destroyed/buffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/queue/destroyed/buffer.html: Added.
- http/tests/webgpu/webgpu/api/validation/queue/destroyed/buffer.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/queue/destroyed/query_set-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/queue/destroyed/query_set.html: Added.
- http/tests/webgpu/webgpu/api/validation/queue/destroyed/query_set.spec.js: Added.
(export.const.description.Tests.using.a.destroyed.query.set on):
(g.test.string_appeared_here.desc.Tests.that.use.a.destroyed.query.set in):
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/api/validation/queue/submit-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/queue/submit.html: Added.
- http/tests/webgpu/webgpu/api/validation/queue/submit.spec.js: Added.
- http/tests/webgpu/webgpu/api/validation/queue/writeBuffer-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/queue/writeBuffer.html: Added.
- http/tests/webgpu/webgpu/api/validation/queue/writeBuffer.spec.js: Added.
(g.test.string_appeared_here.desc.Tests.that.the.data.ranges.given.to.GPUQueue.writeBuffer.are.properly.validated.Tests.calling.writeBuffer.with.both.TypedArrays.and.ArrayBuffers.and.checks.that.the.data.offset.and.size.is.interpreted.correctly.both.When.passing.a.TypedArray.the.data.offset.and.size.is.given.in.elements.When.passing.an.ArrayBuffer.the.data.offset.and.size.is.given.in.bytes.Also.verifies.that.the.specified.data.range.Describes.a.valid.range.of.the.destination.buffer.and.source.buffer.Fits.fully.within.the.destination.buffer.Has.a.byte.size.is.a.multiple.of.4.fn.async t.runTest):
(g.test.string_appeared_here.desc.Tests.that.the.data.ranges.given.to.GPUQueue.writeBuffer.are.properly.validated.Tests.calling.writeBuffer.with.both.TypedArrays.and.ArrayBuffers.and.checks.that.the.data.offset.and.size.is.interpreted.correctly.both.When.passing.a.TypedArray.the.data.offset.and.size.is.given.in.elements.When.passing.an.ArrayBuffer.the.data.offset.and.size.is.given.in.bytes.Also.verifies.that.the.specified.data.range.Describes.a.valid.range.of.the.destination.buffer.and.source.buffer.Fits.fully.within.the.destination.buffer.Has.a.byte.size.is.a.multiple.of.4.fn.async t):
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/render_pass/resolve-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/render_pass/resolve.html: Added.
- http/tests/webgpu/webgpu/api/validation/render_pass/resolve.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/render_pass/storeOp-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/render_pass/storeOp.html: Added.
- http/tests/webgpu/webgpu/api/validation/render_pass/storeOp.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/render_pass_descriptor-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/render_pass_descriptor.html: Added.
- http/tests/webgpu/webgpu/api/validation/render_pass_descriptor.spec.js: Added.
(F.prototype.createTexture):
(F.prototype.getColorAttachment):
(F.prototype.getDepthStencilAttachment):
(F.prototype.async tryRenderPass):
(F):
(fn.async t):
(g.test.string_appeared_here.fn.async t):
(kRenderableColorTextureFormats.filter.t.kTextureFormatInfo.t.format.multisample.fn.async t):
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_pass_encoder-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_pass_encoder.html: Added.
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_pass_encoder.spec.js: Added.
(TextureUsageTracking.prototype.createTexture):
(TextureUsageTracking.prototype.createBindGroupLayout):
(TextureUsageTracking.prototype.createBindGroup):
(TextureUsageTracking.prototype.createAndExecuteBundle):
(TextureUsageTracking.prototype.beginSimpleRenderPass):
(TextureUsageTracking.prototype.testValidationScope):
(TextureUsageTracking.prototype.setPipeline):
(TextureUsageTracking.prototype.issueDrawOrDispatch):
(TextureUsageTracking.prototype.setComputePipelineAndCallDispatch):
(TextureUsageTracking):
(unless.p.p.type0.string_appeared_here.p.levelCount0.1.p.layerCount0.1.p.type1.string_appeared_here.p.levelCount1.1.p.layerCount1.1.p.type0.string_appeared_here.p.type1.string_appeared_here.p.baseLevel1.BASE_LEVEL.fn.async t):
(unless.p.kTextureFormatInfo.p.format.depth.kTextureFormatInfo.p.format.stencil.p.aspect0.string_appeared_here.p.type0.string_appeared_here.p.aspect1.string_appeared_here.p.type1.string_appeared_here.unless.p.p.binding1InBundle.p.type1.string_appeared_here.unless.p.p.compute.p.binding0InBundle.p.binding1InBundle.p.type1.string_appeared_here.fn.async t):
(kShaderStages.unless.p.p.compute.Boolean.p.writeVisibility.GPUConst.ShaderStage.VERTEX.fn.async t):
(fn.async t):
(true.expandWithParams):
(unless.p.p.binding0InBundle.p.type0.string_appeared_here.p.binding1InBundle.p.type1.string_appeared_here.p.binding0InBundle.p.binding1InBundle.p._sampleCount.undefined.p._sampleCount.1.p._usage0.string_appeared_here.p._usage1.string_appeared_here.p.type0.string_appeared_here.p.type1.string_appeared_here.p.type0.string_appeared_here.p.type1.string_appeared_here.fn.async t):
(true.fn.async t):
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_common-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_common.html: Added.
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_common.spec.js: Added.
(F.prototype.getColorAttachment):
(F):
(false.unless.t.t.inSamePass.t.baseLevel0.t.baseLevel1.fn.async t):
(false.fn.async t):
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_misc-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_misc.html: Added.
- http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_misc.spec.js: Added.
(or.different.subresources.of.the.same.texture.texture.usages.in.copies.and.in.render.pass.consecutively.set bind):
- http/tests/webgpu/webgpu/api/validation/texture/destroy-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/texture/destroy.html: Added.
- http/tests/webgpu/webgpu/api/validation/texture/destroy.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/api/validation/validation_test.js: Added.
(export.ValidationTest.prototype.createTextureWithState):
(export.ValidationTest.prototype.createBufferWithState):
(export.ValidationTest.prototype.createQuerySetWithState):
(export.ValidationTest.prototype.getStorageBuffer):
(export.ValidationTest.prototype.getUniformBuffer):
(export.ValidationTest.prototype.getErrorBuffer):
(export.ValidationTest.prototype.getErrorSampler):
(export.ValidationTest.prototype.getSampledTexture):
(export.ValidationTest.prototype.getStorageTexture):
(export.ValidationTest.prototype.getRenderTexture):
(export.ValidationTest.prototype.getErrorTexture):
(export.ValidationTest.prototype.getErrorTextureView):
(export.ValidationTest.prototype.getBindingResource):
(export.ValidationTest.prototype.getDeviceMismatchedStorageBuffer):
(export.ValidationTest.prototype.getDeviceMismatchedUniformBuffer):
(export.ValidationTest.prototype.getDeviceMismatchedTexture):
(export.ValidationTest.prototype.getDeviceMismatchedSampledTexture):
(export.ValidationTest.prototype.getDeviceMismatchedStorageTexture):
(export.ValidationTest.prototype.getDeviceMismatchedRenderTexture):
(export.ValidationTest.prototype.getDeviceMismatchedBindingResource):
(export.ValidationTest.prototype.createRenderPipelineWithState):
(export.ValidationTest.prototype.createNoOpRenderPipeline):
(export.ValidationTest.prototype.createErrorRenderPipeline):
(export.ValidationTest.prototype.createNoOpComputePipeline):
(export.ValidationTest.prototype.createErrorComputePipeline):
(export.ValidationTest):
- http/tests/webgpu/webgpu/api/validation/vertex_state-expected.txt: Added.
- http/tests/webgpu/webgpu/api/validation/vertex_state.html: Added.
- http/tests/webgpu/webgpu/api/validation/vertex_state.spec.js: Added.
(addTestAttributes):
- http/tests/webgpu/webgpu/capability_info.js: Added.
(export.depthStencilFormatCopyableAspects):
(export.depthStencilBufferTextureCopySupported):
(export.depthStencilFormatAspectSize):
(export.textureDimensionAndFormatCompatible):
(export.bufferBindingTypeInfo):
(export.samplerBindingTypeInfo):
(export.sampledTextureBindingTypeInfo):
(export.storageTextureBindingTypeInfo):
(export.texBindingTypeInfo):
(export.bindingTypeInfo):
(export.bufferBindingEntries):
(export.samplerBindingEntries):
(export.textureBindingEntries):
(export.storageTextureBindingEntries):
(export.sampledAndStorageBindingEntries):
(export.allBindingEntries):
- http/tests/webgpu/webgpu/constants.js: Added.
(checkType):
- http/tests/webgpu/webgpu/examples-expected.txt: Added.
- http/tests/webgpu/webgpu/examples.html: Added.
- http/tests/webgpu/webgpu/examples.spec.js: Added.
(g.test.string_appeared_here.fn.async t):
(async g):
- http/tests/webgpu/webgpu/gpu_test.js: Added.
(export.initUncanonicalizedDeviceDescriptor):
(export.GPUTest.prototype.get device):
(export.GPUTest.prototype.get mismatchedDevice):
(export.GPUTest.prototype.async selectMismatchedDeviceOrSkipTestCase):
(export.GPUTest.prototype.get queue):
(export.GPUTest.prototype.async init):
(export.GPUTest.prototype.async finalize):
(export.GPUTest.prototype.async selectDeviceOrSkipTestCase):
(export.GPUTest.prototype.async selectDeviceForTextureFormatOrSkipTestCase):
(export.GPUTest.prototype.async selectDeviceForQueryTypeOrSkipTestCase):
(export.GPUTest.prototype.createCopyForMapRead):
(export.GPUTest.prototype.createAlignedCopyForMapRead):
(export.GPUTest.prototype.async readGPUBufferRangeTyped):
(export.GPUTest.prototype.expectGPUBufferValuesPassCheck):
(export.GPUTest.prototype.async expectGPUBufferValuesEqual):
(export.GPUTest.prototype.expectGPUBufferRepeatsSingleValue):
(export.GPUTest.prototype.expectSingleColor):
(export.GPUTest.prototype.readSinglePixelFrom2DTexture):
(export.GPUTest.prototype.expectSinglePixelIn2DTexture):
(export.GPUTest.prototype.expectSinglePixelBetweenTwoValuesFloat16In2DTexture):
(export.GPUTest.prototype.expectGPUError.async return):
(export.GPUTest.prototype.expectGPUError):
(export.GPUTest.prototype.async makeBufferWithContents):
(export.GPUTest.prototype.createTexture2DWithMipmaps):
(export.GPUTest.prototype.createEncoder):
(export.GPUTest):
- http/tests/webgpu/webgpu/idl/constants/flags-expected.txt: Added.
- http/tests/webgpu/webgpu/idl/constants/flags.html: Added.
- http/tests/webgpu/webgpu/idl/constants/flags.spec.js: Added.
- http/tests/webgpu/webgpu/idl/exposed.html.js: Added.
- http/tests/webgpu/webgpu/idl/exposed.http-expected.txt: Added.
- http/tests/webgpu/webgpu/idl/exposed.http.html: Added.
- http/tests/webgpu/webgpu/idl/exposed.https-expected.txt: Added.
- http/tests/webgpu/webgpu/idl/exposed.https.html: Added.
- http/tests/webgpu/webgpu/idl/idl_test.js: Added.
(export.IDLTest.prototype.async init):
(export.IDLTest.prototype.assertMember):
(export.IDLTest.prototype.assertMemberCount):
(export.IDLTest):
- http/tests/webgpu/webgpu/listing.js: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/binary/binary.js: Added.
(export.binary):
- http/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise.spec.js: Added.
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/binary/f32_arithmetic-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/binary/f32_arithmetic.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/binary/f32_arithmetic.spec.js: Added.
(fullNumericRange):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/abs-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/abs.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/abs.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/all-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/all.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/all.spec.js: Added.
(import):
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/any-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/any.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/any.spec.js: Added.
(import):
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan2-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan2.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan2.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/builtin.js: Added.
(export.builtin):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ceil-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ceil.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ceil.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/clamp-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/clamp.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/clamp.spec.js: Added.
(import):
(generateTestCases):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cos-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cos.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cos.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countLeadingZeros-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countLeadingZeros.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countLeadingZeros.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countOneBits-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countOneBits.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countOneBits.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countTrailingZeros-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countTrailingZeros.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countTrailingZeros.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/extractBits-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/extractBits.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/extractBits.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstLeadingBit-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstLeadingBit.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstLeadingBit.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstTrailingBit-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstTrailingBit.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstTrailingBit.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/float_built_functions-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/float_built_functions.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/float_built_functions.spec.js: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/floor-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/floor.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/floor.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fract-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fract.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fract.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/insertBits-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/insertBits.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/insertBits.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/inversesqrt-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/inversesqrt.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/inversesqrt.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ldexp-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ldexp.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ldexp.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log.spec.js: Added.
(import):
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log2-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log2.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log2.spec.js: Added.
(import):
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/logical_built_in_functions-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/logical_built_in_functions.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/logical_built_in_functions.spec.js: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/max-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/max.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/max.spec.js: Added.
(import):
(generateTestCases):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/min-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/min.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/min.spec.js: Added.
(import):
(generateTestCases):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reverseBits-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reverseBits.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reverseBits.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/select-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/select.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/select.spec.js: Added.
(makeBool):
(string_appeared_here.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sin-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sin.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sin.spec.js: Added.
(import):
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/value_testing_built_in_functions-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/value_testing_built_in_functions.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/value_testing_built_in_functions.spec.js: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/expression.js: Added.
(toComparator):
(storageType):
(fromStorage):
(toStorage):
(export.run):
- http/tests/webgpu/webgpu/shader/execution/expression/unary/f32_arithmetic-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/unary/f32_arithmetic.html: Added.
- http/tests/webgpu/webgpu/shader/execution/expression/unary/f32_arithmetic.spec.js: Added.
(4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/expression/unary/unary.js: Added.
(export.unary):
- http/tests/webgpu/webgpu/shader/execution/memory_model/atomicity-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/atomicity.html: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/atomicity.spec.js: Added.
(const.resultCode):
(else):
(fn.async t):
- http/tests/webgpu/webgpu/shader/execution/memory_model/barrier-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/barrier.html: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/barrier.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/shader/execution/memory_model/coherence-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/coherence.html: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/coherence.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/shader/execution/memory_model/memory_model_setup.js: Added.
(export.MemoryModelTester):
(export.MemoryModelTester.prototype.async run):
(export.MemoryModelTester.prototype.checkWeakIndex):
(export.MemoryModelTester.prototype.checkResult):
(export.MemoryModelTester.prototype.resultPrinter):
(export.MemoryModelTester.prototype.copyBufferToBuffer):
(export.MemoryModelTester.prototype.getRandomInt):
(export.MemoryModelTester.prototype.getRandomInRange):
(export.MemoryModelTester.prototype.shuffleArray):
(export.MemoryModelTester.prototype.async setShuffledWorkgroups):
(export.MemoryModelTester.prototype.async setScratchLocations):
(export.MemoryModelTester.prototype.async setStressParams):
(const.testShaderFunctions.fn.spin):
(fn.do_stress):
(builtin):
(export.buildTestShader):
(export.buildResultShader):
- http/tests/webgpu/webgpu/shader/execution/memory_model/weak-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/weak.html: Added.
- http/tests/webgpu/webgpu/shader/execution/memory_model/weak.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/shader/execution/robust_access-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/robust_access.html: Added.
- http/tests/webgpu/webgpu/shader/execution/robust_access.spec.js: Added.
(runShaderTest):
(testFillArrayBuffer):
- http/tests/webgpu/webgpu/shader/execution/robust_access_vertex-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/robust_access_vertex.html: Added.
- http/tests/webgpu/webgpu/shader/execution/robust_access_vertex.spec.js: Added.
(DrawCall.prototype.this.vertexBuffers.vertexArrays.map):
(DrawCall.prototype.insertInto):
(DrawCall.prototype.draw):
(DrawCall.prototype.drawIndexed):
(DrawCall.prototype.drawIndirect):
(DrawCall.prototype.drawIndexedIndirect):
(DrawCall.prototype.bindVertexBuffers):
(DrawCall.prototype.generateVertexBuffer):
(DrawCall.prototype.generateIndirectBuffer):
(DrawCall.prototype.generateIndexedIndirectBuffer):
(DrawCall):
(F.prototype.generateBufferContents):
(F.prototype.generateVertexBufferDescriptors):
(F.prototype.generateVertexShaderCode):
(F.prototype.createRenderPipeline):
(F.prototype.doTest):
(F):
(else):
(10.6.unless.p.p.drawCallTestParameter.string_appeared_here.p.errorScale.10.4.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/sampling/gradients_in_varying_loop-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/sampling/gradients_in_varying_loop.html: Added.
- http/tests/webgpu/webgpu/shader/execution/sampling/gradients_in_varying_loop.spec.js: Added.
(DerivativesTest.prototype.copyRenderTargetToBuffer):
(DerivativesTest.prototype.async init):
(DerivativesTest.prototype.drawQuad):
(DerivativesTest):
(3.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/shader_io/compute_builtins-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/shader_io/compute_builtins.html: Added.
- http/tests/webgpu/webgpu/shader/execution/shader_io/compute_builtins.spec.js: Added.
(beginSubcases.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/shader_io/shared_structs-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/shader_io/shared_structs.html: Added.
- http/tests/webgpu/webgpu/shader/execution/shader_io/shared_structs.spec.js: Added.
(and.the.layout.attributes.should.be.ignored.when.used.as.an.entry.point.IO.parameter.fn.async t):
(and.uses.it.as.both.the.output.of.a.vertex.shader.and.the.input.to.a.fragment.shader.fn.async t):
(and.uses.those.structures.as.parameter.and.return.types.entry.point.functions.and.regular.functions.fn.async t):
- http/tests/webgpu/webgpu/shader/execution/zero_init-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/execution/zero_init.html: Added.
- http/tests/webgpu/webgpu/shader/execution/zero_init.spec.js: Added.
(prettyPrint):
(and.storage):
- http/tests/webgpu/webgpu/shader/types.js: Added.
(export.generateTypes):
- http/tests/webgpu/webgpu/shader/validation/shader_io/builtins-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/builtins.html: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/builtins.spec.js: Added.
(string_appeared_here.beginSubcases.fn.t.stage.vertex.fn.main):
- http/tests/webgpu/webgpu/shader/validation/shader_io/generic-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/generic.html: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/generic.spec.js: Added.
(string_appeared_here.beginSubcases.fn.t.location):
(string_appeared_here.beginSubcases.fn.t.builtin):
(string_appeared_here.beginSubcases.fn.t.stage.fragment.fn.frag_main):
(string_appeared_here.beginSubcases.fn.t.stage.compute.workgroup_size.1.fn.comp_main):
(string_appeared_here.beginSubcases.fn.t.const.code.stage.vertex.fn.vert_main):
- http/tests/webgpu/webgpu/shader/validation/shader_io/interpolate-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/interpolate.html: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/interpolate.spec.js: Added.
(false.beginSubcases.fn.t.t.params.stage.string_appeared_here.t.params.use_struct.false.t.params.attribute.includes):
- http/tests/webgpu/webgpu/shader/validation/shader_io/invariant-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/invariant.html: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/invariant.spec.js: Added.
(false.beginSubcases.fn.t.const.code.struct.VertexOut.location):
- http/tests/webgpu/webgpu/shader/validation/shader_io/locations-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/locations.html: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/locations.spec.js: Added.
- http/tests/webgpu/webgpu/shader/validation/shader_io/util.js: Added.
(export.generateShader):
- http/tests/webgpu/webgpu/shader/validation/shader_validation_test.js: Added.
(export.ShaderValidationTest.prototype.expectCompileResult):
(export.ShaderValidationTest):
- http/tests/webgpu/webgpu/shader/validation/variable_and_const-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/validation/variable_and_const.html: Added.
- http/tests/webgpu/webgpu/shader/validation/variable_and_const.spec.js: Added.
(kTestTypes.fn.t.const.code.stage.fragment.fn.main):
(fn.t.prototype.stage.fn.main):
(fn.t.prototype.else):
(fn.t.else.prototype.stage.fn.main):
(so.no.cts.this.struct.with.bool.component.struct.with.runtime.array.Control.case.string_appeared_here.is.used.to.make.sure.when.only.the.storage.changes):
- http/tests/webgpu/webgpu/shader/validation/wgsl/basic-expected.txt: Added.
- http/tests/webgpu/webgpu/shader/validation/wgsl/basic.html: Added.
- http/tests/webgpu/webgpu/shader/validation/wgsl/basic.spec.js: Added.
(g.test.string_appeared_here.desc.A.trivial.correct.and.incorrect.shader.fn.t.stage.vertex.stage.fragment.fn.main):
- http/tests/webgpu/webgpu/shader/values.js: Added.
(export.subnormalF32Examples):
(export.normalF32Examples):
(export.nanF32BitsExamples):
- http/tests/webgpu/webgpu/util/buffer.js: Added.
(export.makeBufferWithContents):
- http/tests/webgpu/webgpu/util/check_contents.js: Added.
(export.checkElementsEqual):
(export.checkElementsBetween):
(export.checkElementsFloat16Between):
(export.checkElementsEqualEither):
(export.checkElementsEqualGenerated):
(export.checkElementsPassPredicate):
(export.checkElementsPassPredicate.):
- http/tests/webgpu/webgpu/util/color_space_conversion.js: Added.
(lin_sRGB):
(XYZ_to_lin_sRGB):
(lin_P3):
(gam_P3):
(lin_P3_to_XYZ):
(XYZ_to_lin_P3):
(export.displayP3ToSrgb):
(export.srgbToDisplayP3):
- http/tests/webgpu/webgpu/util/command_buffer_maker.js: Added.
(export.CommandBufferMaker):
- http/tests/webgpu/webgpu/util/compare.js: Added.
(export.absThreshold):
(export.ulpThreshold):
(export.correctlyRoundedThreshold):
(export.compare):
- http/tests/webgpu/webgpu/util/constants.js: Added.
(hexToF32):
- http/tests/webgpu/webgpu/util/conversion.js: Added.
(export.floatAsNormalizedInteger):
(export.normalizedIntegerAsFloat):
(export.float32ToFloatBits):
(export.float32ToFloat16Bits):
(export.float16BitsToFloat32):
(export.float32BitsToNumber):
(export.numberToFloat32Bits):
(export.floatBitsToNumber):
(export.floatBitsToNormalULPFromZero):
(export.packRGB9E5UFloat):
(export.assertInIntegerRange):
(export.gammaCompress):
(export.gammaDecompress):
(export.float32ToUint32):
(export.uint32ToFloat32):
(export.float32ToInt32):
(export.uint32ToInt32):
(export.ScalarType):
(export.ScalarType.prototype.toString):
(export.VectorType):
(export.VectorType.prototype.read):
(export.VectorType.prototype.toString):
(export.TypeVec):
(export.scalarType):
(export.numElementsOf):
(export.scalarTypeOf):
(export.Scalar):
(export.Scalar.prototype.copyTo):
(export.Scalar.prototype.toString):
(export.f32):
(export.f32Bits):
(export.f16Bits):
(export.i32):
(export.i16):
(export.i8):
(export.i32Bits):
(export.i16Bits):
(export.i8Bits):
(export.u32):
(export.u16):
(export.u8):
(export.u32Bits):
(export.u16Bits):
(export.u8Bits):
(export.bool):
(export.Vector):
(export.Vector.prototype.copyTo):
(export.Vector.prototype.toString):
(export.Vector.prototype.get x):
(export.Vector.prototype.get y):
(export.Vector.prototype.get z):
(export.Vector.prototype.get w):
(export.vec2):
(export.vec3):
(export.vec4):
- http/tests/webgpu/webgpu/util/copy_to_texture.js: Added.
(isFp16Format):
(isFp32Format):
(isUnormFormat):
(export.CopyToTextureUtils.prototype.doFlipY):
(export.CopyToTextureUtils.prototype.formatForExpectedPixels):
(export.CopyToTextureUtils.prototype.getSourceImageBitmapPixels):
(export.CopyToTextureUtils.prototype.getExpectedPixels):
(export.CopyToTextureUtils.prototype.checkCopyExternalImageResult):
(export.CopyToTextureUtils.prototype.async checkBufferWithRowPitch):
(export.CopyToTextureUtils.prototype.doTestAndCheckResult):
(export.CopyToTextureUtils):
- http/tests/webgpu/webgpu/util/create_elements.js: Added.
(export.createCanvas):
(export.createOnscreenCanvas):
(export.createOffscreenCanvas):
- http/tests/webgpu/webgpu/util/device_pool.js: Added.
(TestFailedButDeviceReusable):
(FeaturesNotSupported):
(export.TestOOMedShouldAttemptGC):
(export.DevicePool.prototype.async reserve):
(export.DevicePool.prototype.async release):
(export.DevicePool):
(DescriptorToHolderMap.prototype.deleteByDevice):
(DescriptorToHolderMap.prototype.async getOrCreate):
(DescriptorToHolderMap.prototype.insertAndCleanUp):
(DescriptorToHolderMap):
(canonicalizeDescriptor):
(supportsFeature):
(DeviceHolder.async create):
(DeviceHolder):
(DeviceHolder.prototype.acquire):
(DeviceHolder.prototype.async ensureRelease):
(DeviceHolder.prototype.async release):
- http/tests/webgpu/webgpu/util/math.js: Added.
(export.align):
(export.roundDown):
(export.clamp):
- http/tests/webgpu/webgpu/util/memory.js: Added.
(export.async exhaustVramUntilUnder64MB.async const):
(export.async exhaustVramUntilUnder64MB):
- http/tests/webgpu/webgpu/util/pretty_diff_tables.js: Added.
(export.generatePrettyTable):
- http/tests/webgpu/webgpu/util/texture/base.js: Added.
(export.maxMipLevelCount):
- http/tests/webgpu/webgpu/util/texture/layout.js: Added.
(export.getTextureCopyLayout):
- http/tests/webgpu/webgpu/util/texture/subresource.js: Added.
(endOfRange):
(rangeAsIterator):
(export.SubresourceRange):
(export.SubresourceRange.prototype.each):
(export.SubresourceRange.prototype.mipLevels):
- http/tests/webgpu/webgpu/util/texture/texel_data-expected.txt: Added.
- http/tests/webgpu/webgpu/util/texture/texel_data.html: Added.
- http/tests/webgpu/webgpu/util/texture/texel_data.js: Added.
(applyEach):
(packComponents):
(makeNormalizedInfo):
(makeIntegerInfo):
(makeFloatInfo):
(export.const.kTexelRepresentationInfo.rgba32float.makeFloatInfo):
(export.getSingleDataType):
(export.getComponentReadbackTraits):
- http/tests/webgpu/webgpu/util/texture/texel_data.spec.js: Added.
(doTest):
(kEncodableTextureFormats.filter):
- http/tests/webgpu/webgpu/util/unions.js: Added.
(export.reifyOrigin3D):
(export.reifyExtent3D):
- http/tests/webgpu/webgpu/web_platform/canvas/configure-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/configure.html: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/configure.spec.js: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/context_creation-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/context_creation.html: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/context_creation.spec.js: Added.
(fn.async t):
- http/tests/webgpu/webgpu/web_platform/canvas/getCurrentTexture-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/getCurrentTexture.html: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/getCurrentTexture.spec.js: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/getPreferredFormat-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/getPreferredFormat.html: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/getPreferredFormat.spec.js: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/readbackFromWebGPUCanvas-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/readbackFromWebGPUCanvas.html: Added.
- http/tests/webgpu/webgpu/web_platform/canvas/readbackFromWebGPUCanvas.spec.js: Added.
(async initCanvasContent):
(checkImageResult):
(readPixelsFrom2DCanvasAndCompare):
(string_appeared_here.fn.async t):
(allCanvasTypes.fn.async t):
- http/tests/webgpu/webgpu/web_platform/copyToTexture/ImageBitmap-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/copyToTexture/ImageBitmap.html: Added.
- http/tests/webgpu/webgpu/web_platform/copyToTexture/ImageBitmap.spec.js: Added.
(F.prototype.generatePixel):
(F.prototype.getImagePixels):
(F):
(fn.async t):
- http/tests/webgpu/webgpu/web_platform/copyToTexture/canvas-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/copyToTexture/canvas.html: Added.
- http/tests/webgpu/webgpu/web_platform/copyToTexture/canvas.spec.js: Added.
(F.prototype.init2DCanvasContentWithColorSpace):
(F.prototype.init2DCanvasContent):
(F.prototype.paint2DCanvas):
(F.prototype.initGLCanvasContent):
(F.prototype.getInitGPUCanvasData):
(F.prototype.initGPUCanvasContent):
(F.prototype.getSourceCanvas2DContent):
(F.prototype.getSourceCanvasGLContent):
(F.prototype.calculateSourceContentOnCPU):
(F.prototype.getTestImageURLByColorSpace):
(F):
(fn.async t):
- http/tests/webgpu/webgpu/web_platform/copyToTexture/video-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/copyToTexture/video.html: Added.
- http/tests/webgpu/webgpu/web_platform/copyToTexture/video.spec.js: Added.
- http/tests/webgpu/webgpu/web_platform/external_texture/video-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/external_texture/video.html: Added.
- http/tests/webgpu/webgpu/web_platform/external_texture/video.spec.js: Added.
(createExternalTextureSamplingTestPipeline):
(createExternalTextureSamplingTestBindGroup):
(kVideoSources.fn.async t):
(g.test.string_appeared_here.desc.Tests.that.a.GPUExternalTexture.is.destroyed.by.a.microtask.and.that.using.it.after.it.has.been.destroyed.results.in.an.error.fn.async t):
(async g):
- http/tests/webgpu/webgpu/web_platform/util.js: Added.
(export.startPlayingAndWaitForVideo):
- http/tests/webgpu/webgpu/web_platform/worker/worker-expected.txt: Added.
- http/tests/webgpu/webgpu/web_platform/worker/worker.html: Added.
- http/tests/webgpu/webgpu/web_platform/worker/worker.js: Added.
(async basicTest):
(self.onmessage.async ev):
- http/tests/webgpu/webgpu/web_platform/worker/worker.spec.js: Added.
(isNode):
(g.test.string_appeared_here.desc.test.WebGPU.is.available.in.DedicatedWorkers.and.check.basic.functionality.fn.async t):
- http/tests/webgpu/webgpu/web_platform/worker/worker_launcher.js: Added.
(export.async launchWorker):
- platform/ios-device-wk1/TestExpectations:
- platform/ios-simulator-wk1/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 6:13 PM Changeset in webkit [291947] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, mark streams/readable-stream-lock-after-worker-terminates-crash.html as flaky on Windows.
This test has been a flaky Timeout on Windows EWS for months and keeps leading to false positives.
Mark it as flaky to silence the noise.
- platform/win/TestExpectations:
- 3:19 PM Changeset in webkit [291946] by
-
- 90 edits in trunk/Source
Use static_assert instead of COMPILE_ASSERT
https://bugs.webkit.org/show_bug.cgi?id=238417
Reviewed by Mark Lam.
Source/JavaScriptCore:
- assembler/ARM64Assembler.h:
- assembler/ARMv7Assembler.h:
- assembler/MacroAssemblerX86Common.h:
- bytecode/Opcode.h:
- bytecode/VirtualRegister.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
- inspector/InspectorProtocolTypes.h:
(Inspector::Protocol::BindingTraits<JSON::ArrayOf<T>>::runtimeCast):
- inspector/scripts/codegen/cpp_generator_templates.py:
- inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
- inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
- inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
- inspector/scripts/tests/expected/definitions-with-mac-platform.json-result:
- inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
- inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
- inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
- inspector/scripts/tests/expected/type-declaration-object-type.json-result:
- inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
- inspector/scripts/tests/expected/type-with-open-parameters.json-result:
- jit/FPRInfo.h:
- jit/GPRInfo.h:
- parser/Parser.h:
- runtime/JSCell.cpp:
- runtime/JSObject.h:
- runtime/SmallStrings.cpp:
(JSC::SmallStrings::SmallStrings):
- runtime/Structure.h:
(JSC::Structure::outOfLineCapacity):
- yarr/YarrInterpreter.cpp:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- contentextensions/DFANode.h:
- css/CSSBasicShapes.cpp:
(WebCore::buildPolygonString):
- css/CSSProperty.cpp:
- css/CSSRule.cpp:
- css/CSSValue.cpp:
- css/StyleProperties.cpp:
- css/StyleRule.cpp:
- css/calc/CSSCalcOperationNode.cpp:
(WebCore::sortingCategoryForType):
- dom/ElementData.cpp:
- dom/NodeRareData.cpp:
- dom/ShadowRoot.cpp:
- dom/SpaceSplitString.cpp:
- dom/StyledElement.cpp:
- dom/TreeScope.cpp:
- editing/HTMLInterchange.cpp:
(WebCore::convertHTMLTextToInterchangeFormat):
- html/HTMLTrackElement.cpp:
- html/track/VTTCue.cpp:
- platform/Length.cpp:
- platform/ScrollableArea.cpp:
- platform/UserAgentQuirks.h:
(WebCore::UserAgentQuirks::UserAgentQuirks):
- platform/graphics/FontCascadeDescription.cpp:
- platform/graphics/Region.cpp:
(WebCore::Region::Shape::shapeOperation):
- platform/graphics/TextRun.cpp:
- platform/text/BidiContext.cpp:
- platform/text/TextFlags.h:
- platform/win/ImportedFunctionsEnumerator.cpp:
(WebCore::ImportedFunctionsEnumerator::addressOfCurrentFunctionPointer const):
- rendering/BreakLines.cpp:
- rendering/FloatingObjects.cpp:
- rendering/LegacyInlineBox.cpp:
- rendering/LegacyInlineFlowBox.cpp:
- rendering/LegacyInlineTextBox.cpp:
- rendering/LegacyRootInlineBox.cpp:
- rendering/RenderBlock.cpp:
- rendering/RenderBlockFlow.cpp:
- rendering/RenderBox.cpp:
- rendering/RenderObject.cpp:
- rendering/RenderTableCell.cpp:
- rendering/RenderText.cpp:
- rendering/style/FillLayer.cpp:
- rendering/style/RenderStyle.cpp:
- rendering/style/StyleBoxData.cpp:
- rendering/style/StyleRareInheritedData.cpp:
- rendering/style/WillChangeData.h:
- rendering/svg/SVGInlineTextBox.cpp:
- style/RuleData.cpp:
- svg/GradientAttributes.h:
Source/WebKit:
- Platform/IPC/Connection.h:
(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::sendSync):
- Platform/IPC/MessageSender.h:
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::sendOutgoingMessage):
- UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::send):
(WebKit::AuxiliaryProcessProxy::sendSync):
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):
Source/WebKitLegacy/mac:
- Plugins/WebBasePluginPackage.mm:
(-[WebBasePluginPackage isNativeLibraryData:]):
- WebView/WebDynamicScrollBarsView.mm:
Source/WTF:
Use C++ static_assert instead of COMPILE_ASSERT.
Currently keeping it since it was also used in Internal code too.
- wtf/CrossThreadCopier.cpp:
- wtf/JSONValues.cpp:
(WTF::JSONImpl::ObjectBase::asObject):
(WTF::JSONImpl::ObjectBase::asObject const):
(WTF::JSONImpl::ArrayBase::asArray):
- wtf/JSONValues.h:
- wtf/glib/FileSystemGlib.cpp:
(WTF::FileSystemImpl::lockFile):
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::lockFile):
- wtf/text/AtomString.h:
- 1:35 PM Changeset in webkit [291945] by
-
- 1 copy in tags/Safari-614.1.7.3
Tag Safari-614.1.7.3.
- 1:35 PM Changeset in webkit [291944] by
-
- 10 edits in branches/safari-614.1.7-branch/Source/WebKit
Cherry-pick r291943. rdar://problem/90878560
Update the check in the sandbox profiles to guard the system content path rules
https://bugs.webkit.org/show_bug.cgi?id=238419
rdar://90878560
Reviewed by Per Arne Vollan.
Replace
USE(SYSTEM_CONTENT_PATH)in the sandbox profiles with a different feature flag
so that we can enable these rules independently even if WebKit itself isn't using the
system content path.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291943 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:30 PM Changeset in webkit [291943] by
-
- 10 edits in trunk/Source/WebKit
Update the check in the sandbox profiles to guard the system content path rules
https://bugs.webkit.org/show_bug.cgi?id=238419
rdar://90878560
Reviewed by Per Arne Vollan.
Replace
USE(SYSTEM_CONTENT_PATH)in the sandbox profiles with a different feature flag
so that we can enable these rules independently even if WebKit itself isn't using the
system content path.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:10 PM Changeset in webkit [291942] by
-
- 2 edits in branches/safari-614.1.7-branch/Source/WebKit
Cherry-pick r291941. rdar://problem/90878872
REGRESSION(r291814): WebAuthn sandbox profile is missing
https://bugs.webkit.org/show_bug.cgi?id=238418
rdar://90878872
Reviewed by Per Arne Vollan.
Fix a typo in the script phase that copies the embedded sandbox profiles. We want to copy
com.apple.WebKit.WebAuthn.sb, not com.apple.WebKit.WebAuth.sb.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:54 PM Changeset in webkit [291941] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r291814): WebAuthn sandbox profile is missing
https://bugs.webkit.org/show_bug.cgi?id=238418
rdar://90878872
Reviewed by Per Arne Vollan.
Fix a typo in the script phase that copies the embedded sandbox profiles. We want to copy
com.apple.WebKit.WebAuthn.sb, not com.apple.WebKit.WebAuth.sb.
- WebKit.xcodeproj/project.pbxproj:
- 12:09 PM Changeset in webkit [291940] by
-
- 6 edits in trunk/Source/WebKit
Unreviewed, reverting r291909.
Found a better way to eanble the feature
Reverted changeset:
"Disable custom storage paths for IndexedDB and LocalStorage
by default"
https://bugs.webkit.org/show_bug.cgi?id=236977
https://commits.webkit.org/r291909
- 10:53 AM Changeset in webkit [291939] by
-
- 9 edits in branches/safari-614.1.7-branch/Source
Versioning.
WebKit-7614.1.7.3
- 8:55 AM Changeset in webkit [291938] by
-
- 45 edits in trunk
Implement ServiceWorkerWindowClient.focus
https://bugs.webkit.org/show_bug.cgi?id=238319
<rdar://90616490>
Reviewed by Brady Eidson.
Source/WebCore:
Add support for service worker focus:
- Implement user gesture requirement by introducing a flag in ServiceWorkerGlobalScope that is turned on for some time when receiving specific events like notification click event. The max time is currently set to 2 seconds. We might want to improve handling of user activation in non-document contexts but this is a fuzzy area right now so a service worker solution seems good for now.
- Remove the map of service worker client since we need to create new ones every time.
- focus will go its context manager that will send an IPC message to the network process to actually trigger focus.
We are missing focused check at promise resolution, this will be done in a follow-up.
Covered by API test.
- testing/ServiceWorkerInternals.cpp:
- testing/ServiceWorkerInternals.h:
- testing/js/WebCoreTestSupport.cpp:
- workers/service/ServiceWorkerClient.cpp:
- workers/service/ServiceWorkerClient.h:
- workers/service/ServiceWorkerClientData.h:
- workers/service/ServiceWorkerClients.cpp:
- workers/service/ServiceWorkerClients.h:
- workers/service/ServiceWorkerGlobalScope.cpp:
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/ServiceWorkerWindowClient.cpp:
- workers/service/ServiceWorkerWindowClient.h:
- workers/service/ServiceWorkerWindowClient.idl:
- workers/service/context/SWContextManager.h:
- workers/service/context/ServiceWorkerThread.cpp:
- workers/service/server/SWServer.h:
Source/WebKit:
Support new IPC message flow to focus from a service worker to network process to service worker client process to UIProcess.
Introduce a new delegate _focusWebViewFromServiceWorker as the scope is specific to service worker and usage is different from existing _focusWebView and other delegates.
The overall flow is like this:
- ServiceWorker process to NetworkProcess to Client WebProcess process to UIProcess (do the actual focus) to NetworkProcess to ServiceWorker process
We might want to directly go from NetworkProcess to UIProcess but we need to handle potential race conditions in that case.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
- UIProcess/API/APIUIClient.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Storage/WebSWClientConnection.cpp:
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebSWClientConnection.messages.in:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
LayoutTests:
Update tests to cover the fact we no longer reuse Client objects.
- http/tests/workers/service/resources/postmessage-echo-worker.js:
- http/tests/workers/service/resources/serviceworkerclients-get-worker.js:
- http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
- http/tests/workers/service/serviceworkerclients-matchAll.https-expected.txt:
- http/tests/workers/service/serviceworkerclients-matchAll.https.html:
- 7:41 AM Changeset in webkit [291937] by
-
- 80 edits in trunk
Use unary static_assert
https://bugs.webkit.org/show_bug.cgi?id=238412
Reviewed by Mark Lam.
Source/bmalloc:
- bmalloc/Algorithm.h:
(bmalloc::isPowerOfTwo):
- bmalloc/Gigacage.h:
- bmalloc/IsoHeapImpl.h:
Source/JavaScriptCore:
Replace
static_assert(..., "");withstatic_assert(...);
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::relinkJumpOrCall):
- assembler/AssemblerBuffer.h:
(JSC::AssemblerBuffer::putIntegralUnchecked):
- assembler/MacroAssemblerCodeRef.h:
- bytecode/AdaptiveInferredPropertyValueWatchpointBase.h:
- bytecode/ArrayProfile.h:
- bytecode/CodeBlockHash.cpp:
(JSC::CodeBlockHash::CodeBlockHash):
- bytecode/ParseHash.cpp:
(JSC::ParseHash::ParseHash):
- bytecode/Watchpoint.h:
- dfg/DFGNode.h:
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGSpeculativeJIT.cpp:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
- jit/RegisterSet.cpp:
(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):
(JSC::RegisterSet::dfgCalleeSaveRegisters):
(JSC::RegisterSet::ftlCalleeSaveRegisters):
- runtime/CachedBytecode.cpp:
(JSC::CachedBytecode::commitUpdates const):
- runtime/ClonedArguments.h:
- runtime/DirectArguments.h:
- runtime/DirectEvalExecutable.h:
- runtime/ErrorConstructor.h:
- runtime/IndirectEvalExecutable.h:
- runtime/JSArrayBufferView.cpp:
- runtime/JSBoundFunction.h:
- runtime/JSLexicalEnvironment.h:
(JSC::JSLexicalEnvironment::subspaceFor):
- runtime/JSString.cpp:
(JSC::JSRopeString::RopeBuilder<RecordOverflow>::expand):
- runtime/JSString.h:
- runtime/NativeFunction.h:
- runtime/Operations.h:
(JSC::jsString):
- runtime/RegExpObject.h:
- runtime/ScopedArguments.h:
- runtime/ScopedArgumentsTable.cpp:
- runtime/TypedArrayAdaptors.h:
(JSC::IntegralTypedArrayAdaptor::toJSValue):
- runtime/TypedArrayType.h:
- runtime/WeakMapImpl.h:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::AirIRGenerator::emitModOrDiv):
- yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::DisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::allocationSize):
Source/WebCore:
- Modules/entriesapi/FileSystemDirectoryEntry.h:
- Modules/entriesapi/FileSystemFileEntry.h:
- css/DOMMatrix.h:
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):
- dom/DOMPoint.h:
- dom/DOMRect.h:
- html/HTMLAllCollection.h:
- html/track/AudioTrackList.h:
- html/track/VideoTrackList.h:
- layout/formattingContexts/inline/InlineItem.cpp:
- layout/formattingContexts/inline/InlineTextItem.cpp:
- platform/KeyedCoding.h:
(WebCore::KeyedDecoder::decodeBytes):
- xml/XMLHttpRequestEventTarget.h:
Source/WebKit:
- Shared/API/c/WKContextMenuItem.cpp:
- UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::HistoryEntryDataEncoder::encodeArithmeticType):
(WebKit::HistoryEntryDataDecoder::decodeArithmeticType):
Source/WTF:
- wtf/CompactPointerTuple.h:
- wtf/FastMalloc.h:
- wtf/FunctionTraits.h:
(WTF::slotsForCCallArgument):
- wtf/Int128.cpp:
- wtf/MallocPtr.h:
- wtf/Markable.h:
(WTF::std::underlying_type<EnumType>::type>::max):
- wtf/PtrTag.h:
(WTF::tagInt):
- wtf/Seconds.h:
- wtf/StdLibExtras.h:
(WTF::roundUpToMultipleOf):
- wtf/SystemFree.h:
- wtf/UnalignedAccess.h:
(WTF::unalignedLoad):
(WTF::unalignedStore):
- wtf/UniqueArray.h:
(WTF::makeUniqueArray):
- wtf/WTFAssertions.cpp:
- wtf/text/StringConcatenate.h:
(WTF::tryMakeStringFromAdapters):
- wtf/text/StringImpl.h:
- wtf/text/SymbolImpl.h:
Tools:
- TestWebKitAPI/Tests/WTF/EnumTraits.cpp:
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/Int128.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/Packed.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/RobinHoodHashMap.cpp:
(TestWebKitAPI::TEST):
- 7:07 AM Changeset in webkit [291936] by
-
- 2 edits in trunk
Update my github username.
Unreviewed.
- metadata/contributors.json:
- 4:38 AM Changeset in webkit [291935] by
-
- 9 edits1 delete in trunk/Source/JavaScriptCore
[JSC] Include argumentRegisters in identity of SlowPathCallKey when clobberAllRegsInFTLICSlowPath is enabled
https://bugs.webkit.org/show_bug.cgi?id=238411
Reviewed by Mark Lam.
While SlowPathCallKey includes argumentRegisters, it is not used for its identity check. But this argumentRegisters
is effectual on the resulting code in FTLThunks if Options::clobberAllRegsInFTLICSlowPath is set. This causes
x64 Debug JSC test failures after enabling DataIC because the same FTLThunks should not be picked for different
argument registers when Options::clobberAllRegsInFTLICSlowPath is true.
However, always including argumentRegisters in the identity check will cause a code size regression since we will
lose a chance to duplicate thunks when argumentRegisters is ineffectual. Note that Options::clobberAllRegsInFTLICSlowPath
is only set for debugging use cases. Hence, argumentRegisters is normally not effectual.
In this patch, we include argumentRegisters in SlowPathCallKey's identity check only when Options::clobberAllRegsInFTLICSlowPath
is set. And we also refactor SlowPathCallKey to reduce size of it from 40 to 24.
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/MacroAssemblerCodeRef.h:
(JSC::CFunctionPtr::CFunctionPtr):
(JSC::FunctionPtr::FunctionPtr):
- ftl/FTLSlowPathCall.cpp:
(JSC::FTL::SlowPathCallContext::keyWithTarget const):
- ftl/FTLSlowPathCallKey.cpp:
(JSC::FTL::SlowPathCallKey::dump const):
- ftl/FTLSlowPathCallKey.h:
(JSC::FTL::SlowPathCallKey::SlowPathCallKey):
(JSC::FTL::SlowPathCallKey::callTarget const):
(JSC::FTL::SlowPathCallKey::usedRegisters const):
(JSC::FTL::SlowPathCallKey::argumentRegistersIfClobberingCheckIsEnabled const):
(JSC::FTL::SlowPathCallKey::indirectOffset const):
(JSC::FTL::SlowPathCallKey::withCallTarget):
(JSC::FTL::SlowPathCallKey::isEmptyValue const):
(JSC::FTL::SlowPathCallKey::isDeletedValue const):
(JSC::FTL::SlowPathCallKey::operator== const):
(JSC::FTL::SlowPathCallKey::hash const):
(JSC::FTL::SlowPathCallKey::argumentRegisters const): Deleted.
- ftl/FTLThunks.cpp:
(JSC::FTL::registerClobberCheck):
(JSC::FTL::slowPathCallThunkGenerator):
- jit/HashableRegisterSet.h: Removed.
- jit/RegisterSet.h:
(JSC::RegisterSetHash::hash):
(JSC::RegisterSetHash::equal):
- 2:17 AM Changeset in webkit [291934] by
-
- 2 edits in trunk/Tools
[WPE][GTK] Dist/distcheck targets fail due to Python error
https://bugs.webkit.org/show_bug.cgi?id=238394
Reviewed by Philippe Normand.
- Scripts/make-dist:
(Directory.list_files_in_version_control): Ensure that data read from pipes is converted to
strings by specifying text="ascii", as it seems safe to assume that files listed by Git will
not contain non-ASCII characters. While at it, make the function return a set to speed up
lookups.
Mar 25, 2022:
- 10:26 PM Changeset in webkit [291933] by
-
- 6 edits in trunk/Source/WebCore
Simplify / Optimize JSNodeOwner::isReachableFromOpaqueRoots()
https://bugs.webkit.org/show_bug.cgi?id=238380
Reviewed by Geoffrey Garen.
Drop checks specific to HTMLAudioElement and HTMLImageElement from
JSNodeOwner::isReachableFromOpaqueRoots() so that other Node wrappers
that are not audio or image elements do not have to pay the cost.
In the HTMLAudioElement case, HTMLAudioElement already subclasses HTMLMediaElement which
is an ActiveDOMObject and HTMLMediaElement::virtualHasPendingActivity() already takes
care of keeping the JS wrapper alive is there is audio playing.
For HTMLImageElement, I made it subclass ActiveDOMObject so that the JSHTMLImageElement
wrapper is now calling HTMLImageElement::hasPendingActivity() instead of every JS Node
wrapper via JSNodeOwner::isReachableFromOpaqueRoots().
- bindings/js/JSNodeCustom.cpp:
(WebCore::isReachableFromDOM):
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::create):
(WebCore::HTMLImageElement::createForLegacyFactoryFunction):
(WebCore::HTMLImageElement::activeDOMObjectName const):
(WebCore::HTMLImageElement::virtualHasPendingActivity const):
(WebCore::HTMLImageElement::hasPendingActivity const): Deleted.
- html/HTMLImageElement.h:
- html/HTMLImageElement.idl:
- html/ImageDocument.cpp:
(WebCore::ImageDocumentElement::create):
- 9:30 PM Changeset in webkit [291932] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Clean up DataIC polymorphic call code for OptimizingCallLinkInfo
https://bugs.webkit.org/show_bug.cgi?id=238395
Reviewed by Saam Barati.
When using DataIC, return address is already appropriate in non-tail call case
in polymorphic call stub code. This patch cleans up the code to align it to
DataIC BaselineCallLinkInfo.
- bytecode/Repatch.cpp:
(JSC::linkPolymorphicCall):
- 8:29 PM Changeset in webkit [291931] by
-
- 2 edits in trunk/Source/WebKit
Temporarily disable assertion in MessageReceiveQueueMap::addImpl()
https://bugs.webkit.org/show_bug.cgi?id=238397
Unreviewed followup: similarly change the assertion in remove() into a log.
- Platform/IPC/MessageReceiveQueueMap.cpp:
(IPC::MessageReceiveQueueMap::remove):
- 8:05 PM Changeset in webkit [291930] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r291884.
https://bugs.webkit.org/show_bug.cgi?id=238405
Broke the internal iOS build
Reverted changeset:
"Add Captive Portal alert to WKWebView"
https://bugs.webkit.org/show_bug.cgi?id=238326
https://commits.webkit.org/r291884
- 7:03 PM Changeset in webkit [291929] by
-
- 2 edits in trunk/Source/WebKit
Temporarily disable assertion in MessageReceiveQueueMap::addImpl()
https://bugs.webkit.org/show_bug.cgi?id=238397
Reviewed by Wenson Hsieh.
Enabling DOM Rendering in the GPU Process has exposed an issue (webkit.org/b/237674, webkit.org/b/238391).
Temporarily convert this assertion to logging to reduce test failures.
- Platform/IPC/MessageReceiveQueueMap.cpp:
(IPC::MessageReceiveQueueMap::addImpl):
- 6:58 PM Changeset in webkit [291928] by
-
- 301 edits8 adds4 deletes in branches/safari-613-branch/Source/ThirdParty/ANGLE
Apply patch. rdar://problem/90639134
- 6:57 PM Changeset in webkit [291927] by
-
- 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Apply patch. rdar://problem/89963372
- 6:57 PM Changeset in webkit [291926] by
-
- 487 edits1 copy3 moves17 adds18 deletes in branches/safari-613-branch/Source/ThirdParty/ANGLE
Apply patch. rdar://problem/88464021
- 6:52 PM Changeset in webkit [291925] by
-
- 12 edits in branches/safari-613-branch
Revert r285998. rdar://problem/85612240
- 6:51 PM Changeset in webkit [291924] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r291057. rdar://problem/89291566
File System Access: disallows names that are not permitted by underlying file system
https://bugs.webkit.org/show_bug.cgi?id=237635
rdar://89291566
We use FileSystem::fileSystemRepresentation to convert input name to a name that is permitted in current file
system. This patch makes File System Access API to throw error if the input name does not match the converted
name.
Reviewed by Youenn Fablet.
- NetworkProcess/storage/FileSystemStorageHandle.cpp: (WebKit::isValidFileName): (WebKit::FileSystemStorageHandle::requestCreateHandle): (WebKit::FileSystemStorageHandle::removeEntry): (WebKit::FileSystemStorageHandle::move):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291057 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291923] by
-
- 45 edits2 adds in branches/safari-613-branch
Cherry-pick r290985. rdar://problem/78421282
Add a preference to mute video capture in case audio capture gets interrupted
https://bugs.webkit.org/show_bug.cgi?id=237524
<rdar://78421282>
Reviewed by Eric Carlson.
Source/WebCore:
In case we detect that a microphone track source gets muted due to interruption, we mute
capture video tracks based if allowed by the new MuteCameraOnMicrophoneInterruptionEnabled setting.
Add support for mock microphone interruption and remove previous in process internals API.
Test: fast/mediastream/media-stream-video-track-interrupted-from-audio.html
- Modules/mediastream/MediaStreamTrack.cpp:
- Modules/mediastream/MediaStreamTrack.h:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- platform/mock/MockRealtimeAudioSource.cpp: (WebCore::MockRealtimeAudioSource::setIsInterrupted):
- platform/mock/MockRealtimeAudioSource.h:
- platform/mock/MockRealtimeMediaSourceCenter.cpp: (WebCore::MockRealtimeMediaSourceCenter::setMockCaptureDevicesInterrupted): (WebCore::MockRealtimeMediaSourceCenter::setMockCameraIsInterrupted): Deleted.
- platform/mock/MockRealtimeMediaSourceCenter.h:
Source/WebKit:
Add support for interrupt mock microphone devices.
Send to WebProcess sources whether sources are interrupted each time the source muted value changes.
Store that value in remote sources.
- GPUProcess/GPUProcess.cpp:
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- UIProcess/API/C/WKPage.cpp:
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/GPU/GPUProcessProxy.cpp:
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/cocoa/RemoteRealtimeAudioSource.h:
- WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
- WebProcess/cocoa/RemoteRealtimeVideoSource.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- WebProcess/cocoa/UserMediaCaptureManager.h:
- WebProcess/cocoa/UserMediaCaptureManager.messages.in:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
Add support for interrupt mock microphone devices.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
LayoutTests:
- fast/mediastream/media-stream-video-track-interrupted-from-audio-expected.txt: Added.
- fast/mediastream/media-stream-video-track-interrupted-from-audio.html: Added.
- fast/mediastream/media-stream-video-track-interrupted.html: Migrated to testRunner API.
- fast/mediastream/track-ended-while-muted.html:
- platform/glib/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291922] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r290978. rdar://problem/89901536
Add early return for empty path in makeAllDirectories
https://bugs.webkit.org/show_bug.cgi?id=237540
rdar://89901536
Reviewed by Chris Dumez.
Source/WTF:
- wtf/posix/FileSystemPOSIX.cpp: (WTF::FileSystemImpl::makeAllDirectories):
Tools:
- TestWebKitAPI/Tests/WTF/FileSystem.cpp: (TestWebKitAPI::TEST_F):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290978 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291921] by
-
- 5 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290837. rdar://problem/80407863
[Cocoa] Crash in MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL
https://bugs.webkit.org/show_bug.cgi?id=237456
rdar://80407863
Reviewed by Jer Noble.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::enableInheritURIQueryComponent const): Create and use a static, never destroyed, AtomString instead of creating one every time a AVURLAsset is created. New method used by both AVF media players.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: (WebCore::MediaPlayerPrivateAVFoundationCF::createAVAssetForURL): Call enableInheritURIQueryComponent.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291920] by
-
- 4 edits2 adds in branches/safari-613-branch/LayoutTests
Cherry-pick r290745. rdar://problem/80335706
[Cocoa] The behavior of navigator-language-ru changed in Monterey / iOS 15
https://bugs.webkit.org/show_bug.cgi?id=237384
<rdar://problem/80335706>
Unreviewed test gardening.
Add a new test for the new behavior, but keep the old one too for older OSes.
- fast/text/international/system-language/navigator-language/navigator-language-ru-2-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-ru-2.html: Added.
- platform/ios-14/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290745 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291919] by
-
- 10 edits in branches/safari-613-branch
Cherry-pick r290564. rdar://problem/89524668
Force -webkit-user-modify used style to readonly for inert nodes
https://bugs.webkit.org/show_bug.cgi?id=237244
Reviewed by Darin Adler.
This disallows programmatic edition of contenteditable inert nodes. Edition via user-input is
already prevented by forcing pointer-events style to none.
We create a seperate effectiveUserModify, similar to effectiveUserSelect/effectivePointerEvents,
to avoid changing the computed style.
This behaviour also matches Blink & Gecko.
LayoutTests/imported/w3c:
- web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative.html
- dom/Node.cpp: (WebCore::computeEditabilityFromComputedStyle):
- editing/ApplyBlockElementCommand.cpp: (WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):
- editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply):
- rendering/EventRegion.cpp: (WebCore::EventRegion::unite):
- rendering/RenderElement.cpp: (WebCore::RenderElement::styleWillChange):
- rendering/style/RenderStyle.h: (WebCore::RenderStyle::effectiveUserModify const):
- style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291918] by
-
- 15 edits in branches/safari-613-branch
Cherry-pick r290550. rdar://problem/88675827
Update CSP handling of javascript URLs
https://bugs.webkit.org/show_bug.cgi?id=236351
<rdar://problem/88675827>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow-expected.txt:
- web-platform-tests/content-security-policy/navigation/to-javascript-url-script-src-expected.txt:
Source/WebCore:
- bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeJavaScriptURL):
- loader/FrameLoader.cpp: (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): (WebCore::createWindow):
- loader/SubframeLoader.cpp: (WebCore::FrameLoader::SubframeLoader::requestFrame):
- page/DOMWindow.cpp: (WebCore::DOMWindow::setLocation):
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
- page/csp/ContentSecurityPolicy.h:
LayoutTests:
- TestExpectations:
- http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291917] by
-
- 32 edits in branches/safari-613-branch
Cherry-pick r290443. rdar://problem/89322580
Update CSP console logging
https://bugs.webkit.org/show_bug.cgi?id=232216
<rdar://problem/89322580>
Reviewed by Brent Fulgham.
Source/WebCore:
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal): (WebCore::SubresourceLoader::originalHeaders const):
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowResourceFromSource const): (WebCore::ContentSecurityPolicy::allowWorkerFromSource const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const):
Source/WebKit:
- NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::check): (WebKit::NetworkLoadChecker::checkRedirection): (WebKit::NetworkLoadChecker::checkRequest): (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
- NetworkProcess/NetworkLoadChecker.h:
LayoutTests:
- http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/audio-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/font-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/image-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/report-blocked-uri-after-multiple-redirects-expected.txt:
- http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/script-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/track-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/video-redirect-blocked.html:
- http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290443 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291916] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r290367. rdar://problem/88567612
Fix GPUP WebGL generator script wrt uninitialised sized span
https://bugs.webkit.org/show_bug.cgi?id=235889
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-23
Reviewed by Antti Koivisto.
Source/WebKit:
Regenerated.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp: (WebKit::RemoteGraphicsContextGLProxy::getShaderPrecisionFormat):
Tools:
Fix the generator. The r290328 only edited the generated files.
Add a other hunk missing from r290175.
- Scripts/generate-gpup-webgl:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291915] by
-
- 14 edits in branches/safari-613-branch
Cherry-pick r288792. rdar://problem/88227274
CSP: Properly block image content in object elements
https://bugs.webkit.org/show_bug.cgi?id=235837
Reviewed by Kate Cheney.
LayoutTests/imported/w3c:
Update expectations with more passes.
- web-platform-tests/content-security-policy/object-src/object-src-url-blocked-expected.txt:
- web-platform-tests/content-security-policy/object-src/object-src-url-embed-blocked-expected.txt:
- web-platform-tests/content-security-policy/object-src/object-src-url-redirect-blocked.sub-expected.txt:
Source/WebCore:
When an image is loaded through an object element it now passes through
the object-src directive check as the spec documents:
https://www.w3.org/TR/CSP3/#directive-object-src
- loader/ImageLoader.cpp: (WebCore::ImageLoader::updateFromElement):
- loader/ResourceLoaderOptions.h: (WebCore::ResourceLoaderOptions::loadedFromPluginElement): (WebCore::ResourceLoaderOptions::ResourceLoaderOptions): (WebCore::ResourceLoaderOptions::loadedFromOpaqueSource): Deleted.
- loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowObjectFromSource const):
- page/csp/ContentSecurityPolicy.h:
LayoutTests:
- http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2-expected.txt:
- http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288792 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:51 PM Changeset in webkit [291914] by
-
- 12 edits in branches/safari-613-branch/Source/WebKit
Revert r289292. rdar://problem/90113314
- 6:50 PM Changeset in webkit [291913] by
-
- 14 edits2 adds in branches/safari-613-branch
Revert r290708. rdar://problem/90113314
- 6:46 PM Changeset in webkit [291912] by
-
- 2 edits in branches/safari-613-branch/Source/JavaScriptCore
Cherry-pick r291891. rdar://problem/90838071
AI should not set the structure for ObjectCreate
https://bugs.webkit.org/show_bug.cgi?id=238349
Patch by Justin Michaud <Justin Michaud> on 2022-03-24
Reviewed by Saam Barati and Yusuke Suzuki.
The AbstractInterpreter should not set the structure for ObjectCreate because it might change by
the time the constant folding phase runs if the structure cache is cleared.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291891 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:45 PM Changeset in webkit [291911] by
-
- 6 edits2 adds in trunk
Incorrect handling of NaN inside calc() for top-level calculation
https://bugs.webkit.org/show_bug.cgi?id=234176
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-values/calc-infinity-nan-computed-expected.txt: Added.
- web-platform-tests/css/css-values/calc-infinity-nan-computed.html: Added.
- web-platform-tests/css/css-values/round-function-expected.txt:
- web-platform-tests/css/css-values/round-function.html:
Source/WebCore:
Add function to convert any top level NaN values to infinity values as per the spec.
This only affects the computed value of the calc expression, not its serialization.
Test: imported/w3c/web-platform-tests/css/css-values/calc-infinity-nan-computed.html
- css/calc/CSSCalcOperationNode.cpp:
(WebCore::CSSCalcOperationNode::combineChildren):
(WebCore::convertToTopLevelValue):
(WebCore::CSSCalcOperationNode::evaluateOperator):
- css/calc/CSSCalcOperationNode.h:
- 6:38 PM Changeset in webkit [291910] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.2.5
- 5:57 PM Changeset in webkit [291909] by
-
- 6 edits in trunk/Source/WebKit
Disable custom storage paths for IndexedDB and LocalStorage by default
https://bugs.webkit.org/show_bug.cgi?id=236977
Reviewed by Geoffrey Garen.
<rdar://problem/89559929>
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-watchos.plist:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):
- 5:55 PM Changeset in webkit [291908] by
-
- 1 copy in tags/Safari-613.2.4
Tag Safari-613.2.4.
- 5:53 PM Changeset in webkit [291907] by
-
- 5 edits in trunk/Source/WebKit
[GPU Process] [iOS] Enable GPU Process for DOM rendering on iOS
https://bugs.webkit.org/show_bug.cgi?id=236508
rdar://83437844
Reviewed by Jon Lee.
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-watchos.plist:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
- 5:02 PM Changeset in webkit [291906] by
-
- 1 copy in tags/Safari-613.1.17.1.13
Tag Safari-613.1.17.1.13.
- 5:02 PM Changeset in webkit [291905] by
-
- 1 copy in tags/Safari-613.1.17.0.8
Tag Safari-613.1.17.0.8.
- 4:58 PM Changeset in webkit [291904] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry pick r289026
rdar://90860743
http://trac.webkit.org/r289026 wasn't merged to the safari-613-branch, which caused excessive unnecessary logging.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- 4:46 PM Changeset in webkit [291903] by
-
- 4 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r291745.
https://bugs.webkit.org/show_bug.cgi?id=238399
JSC debug test failures
Reverted changeset:
"[JSC] Add DoNotHaveTagRegisters mode to unboxDouble"
https://bugs.webkit.org/show_bug.cgi?id=238018
https://commits.webkit.org/r291745
- 4:42 PM Changeset in webkit [291902] by
-
- 23 edits in trunk/Source
Use StringView::split() instead of String::split() in more places
https://bugs.webkit.org/show_bug.cgi?id=238362
Reviewed by Geoffrey Garen.
Use StringView::split() instead of String::split() where suitable and more efficient.
Source/WebCore:
- Modules/applepay/cocoa/PaymentContactCocoa.mm:
(WebCore::convert):
- html/HTMLInputElement.cpp:
(WebCore::isValidMIMEType):
(WebCore::isValidFileExtension):
(WebCore::parseAcceptAttribute):
- html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::compileShader):
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::nodeForPath):
- page/WindowFeatures.cpp:
(WebCore::parseDisabledAdaptations):
(WebCore::parseDialogFeatures):
(WebCore::parseDialogFeaturesMap):
- page/WindowFeatures.h:
- platform/network/CacheValidation.cpp:
(WebCore::collectVaryingRequestHeadersInternal):
- platform/network/HTTPParsers.cpp:
(WebCore::filenameFromHTTPContentDisposition):
(WebCore::parseXFrameOptionsHeader):
- platform/network/HTTPParsers.h:
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isAttachmentWithFilename const):
- svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendOS2Table):
- svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::parseOffsetValue):
(WebCore::SVGSMILElement::parseClockValue):
(WebCore::SVGSMILElement::parseCondition):
(WebCore::SVGSMILElement::parseBeginOrEnd):
(WebCore::SVGSMILElement::parseAttribute):
- svg/animation/SVGSMILElement.h:
Source/WebKit:
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::parseOSVersion):
(WebKit::populateSandboxInitializationParameters):
- UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::ProcessLauncher::launchProcess):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::initialize):
Source/WTF:
- wtf/Assertions.cpp:
- wtf/text/StringView.cpp:
(WTF::StringView::stripWhiteSpace const):
- wtf/text/StringView.h:
(WTF::StringView::toDouble const):
(WTF::StringView::stripLeadingAndTrailingMatchedCharacters const):
(WTF::StringView::stripLeadingAndTrailingMatchedCharacters): Deleted.
- 4:14 PM Changeset in webkit [291901] by
-
- 189 edits3 adds in trunk
[GTK][WPE] Update widget style to match libadwaita
https://bugs.webkit.org/show_bug.cgi?id=235884
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Update Adwaita widgets style to be closer to their Libadwaita versions instead of GTK3.
- Use new colors
- Opacity for disabled states instead of separate colors
- Translucent text selection, grey for inactive state
- Translucent borders, so the widgets don't get blurry depending on the page background
- Light borders for dark variant for visibility
- Update sliders and progress bars, as they can't really work with translucent borders as is
- Use grey selection for listboxes
Since text selection and accent are different colors now, move activeSelectionBackgroundColor()
etc out of ThemeAdwaita and expose a function for getting the accent color instead.
Update scrollbars to closely match libadwaita - update colors and dimensions, have a visible
trough in overlay mode. Reverse how borders are done - make sure the trough in regular and
overlay mode has the same size and draw borders around it rather than making borders a part
of the trough size.
- platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::paint):
(WebCore::ScrollbarThemeAdwaita::paintScrollCorner):
- platform/adwaita/ThemeAdwaita.cpp:
(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):
(WebCore::ThemeAdwaita::paintButton):
(WebCore::ThemeAdwaita::accentColor):
(WebCore::ThemeAdwaita::activeSelectionForegroundColor const): Deleted.
(WebCore::ThemeAdwaita::activeSelectionBackgroundColor const): Deleted.
(WebCore::ThemeAdwaita::inactiveSelectionForegroundColor const): Deleted.
(WebCore::ThemeAdwaita::inactiveSelectionBackgroundColor const): Deleted.
- platform/adwaita/ThemeAdwaita.h:
- rendering/RenderThemeAdwaita.cpp:
(WebCore::getAccentColor):
(WebCore::RenderThemeAdwaita::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformActiveSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::platformActiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::platformInactiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::paintProgressBar):
(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::paintSliderThumb):
- rendering/RenderThemeAdwaita.h:
LayoutTests:
Update test expectations to account for the changed widget and selection styles.
Remove [Pass] for text selection styles that was only set for glib/.
- platform/glib/TestExpectations:
- platform/gtk/css2.1/20110323/replaced-elements-001-expected.png:
- platform/gtk/css2.1/20110323/replaced-elements-001-expected.txt:
- platform/gtk/css3/flexbox/button-expected.png:
- platform/gtk/css3/flexbox/button-expected.txt:
- platform/gtk/editing/selection/3690703-2-expected.png:
- platform/gtk/editing/selection/3690703-2-expected.txt:
- platform/gtk/editing/selection/3690703-expected.png:
- platform/gtk/editing/selection/3690703-expected.txt:
- platform/gtk/editing/selection/3690719-expected.png:
- platform/gtk/editing/selection/3690719-expected.txt:
- platform/gtk/editing/selection/4397952-expected.png:
- platform/gtk/editing/selection/4397952-expected.txt:
- platform/gtk/editing/selection/5240265-expected.png:
- platform/gtk/editing/selection/5240265-expected.txt:
- platform/gtk/editing/selection/selection-button-text-expected.png:
- platform/gtk/editing/selection/selection-button-text-expected.txt:
- platform/gtk/fast/block/float/float-avoidance-expected.png:
- platform/gtk/fast/block/float/float-avoidance-expected.txt:
- platform/gtk/fast/block/positioning/inline-block-relposition-expected.png:
- platform/gtk/fast/block/positioning/inline-block-relposition-expected.txt:
- platform/gtk/fast/box-sizing/percentage-height-expected.png:
- platform/gtk/fast/box-sizing/percentage-height-expected.txt: Added.
- platform/gtk/fast/css/continuationCrash-expected.png:
- platform/gtk/fast/css/continuationCrash-expected.txt:
- platform/gtk/fast/css/margin-top-bottom-dynamic-expected.png:
- platform/gtk/fast/css/margin-top-bottom-dynamic-expected.txt:
- platform/gtk/fast/css/rtl-ordering-expected.png:
- platform/gtk/fast/css/rtl-ordering-expected.txt:
- platform/gtk/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.png:
- platform/gtk/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
- platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.png:
- platform/gtk/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/gtk/fast/dynamic/positioned-movement-with-positioned-children-expected.png:
- platform/gtk/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
- platform/gtk/fast/forms/001-expected.png:
- platform/gtk/fast/forms/001-expected.txt:
- platform/gtk/fast/forms/basic-buttons-expected.png:
- platform/gtk/fast/forms/basic-buttons-expected.txt:
- platform/gtk/fast/forms/basic-selects-expected.png:
- platform/gtk/fast/forms/basic-selects-expected.txt:
- platform/gtk/fast/forms/blankbuttons-expected.png:
- platform/gtk/fast/forms/blankbuttons-expected.txt:
- platform/gtk/fast/forms/box-shadow-override-expected.png:
- platform/gtk/fast/forms/box-shadow-override-expected.txt:
- platform/gtk/fast/forms/button-align-expected.png:
- platform/gtk/fast/forms/button-align-expected.txt:
- platform/gtk/fast/forms/button-cannot-be-nested-expected.png:
- platform/gtk/fast/forms/button-cannot-be-nested-expected.txt:
- platform/gtk/fast/forms/button-default-title-expected.png:
- platform/gtk/fast/forms/button-default-title-expected.txt:
- platform/gtk/fast/forms/button-generated-content-expected.png:
- platform/gtk/fast/forms/button-generated-content-expected.txt:
- platform/gtk/fast/forms/button-inner-block-reuse-expected.png:
- platform/gtk/fast/forms/button-inner-block-reuse-expected.txt:
- platform/gtk/fast/forms/button-positioned-expected.png:
- platform/gtk/fast/forms/button-positioned-expected.txt:
- platform/gtk/fast/forms/button-sizes-expected.png:
- platform/gtk/fast/forms/button-sizes-expected.txt:
- platform/gtk/fast/forms/button-style-color-expected.png:
- platform/gtk/fast/forms/button-style-color-expected.txt:
- platform/gtk/fast/forms/button-table-styles-expected.png:
- platform/gtk/fast/forms/button-table-styles-expected.txt:
- platform/gtk/fast/forms/button-text-transform-expected.png:
- platform/gtk/fast/forms/button-text-transform-expected.txt:
- platform/gtk/fast/forms/button-white-space-expected.png:
- platform/gtk/fast/forms/button-white-space-expected.txt:
- platform/gtk/fast/forms/control-clip-expected.png:
- platform/gtk/fast/forms/control-clip-expected.txt:
- platform/gtk/fast/forms/control-clip-overflow-expected.png:
- platform/gtk/fast/forms/control-clip-overflow-expected.txt:
- platform/gtk/fast/forms/control-restrict-line-height-expected.png:
- platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
- platform/gtk/fast/forms/disabled-select-change-index-expected.png:
- platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
- platform/gtk/fast/forms/file/file-input-direction-expected.png:
- platform/gtk/fast/forms/file/file-input-direction-expected.txt:
- platform/gtk/fast/forms/file/file-input-disabled-expected.png:
- platform/gtk/fast/forms/file/file-input-disabled-expected.txt:
- platform/gtk/fast/forms/form-element-geometry-expected.png:
- platform/gtk/fast/forms/form-element-geometry-expected.txt:
- platform/gtk/fast/forms/formmove3-expected.png:
- platform/gtk/fast/forms/formmove3-expected.txt:
- platform/gtk/fast/forms/input-appearance-height-expected.png:
- platform/gtk/fast/forms/input-appearance-height-expected.txt:
- platform/gtk/fast/forms/input-button-sizes-expected.png:
- platform/gtk/fast/forms/input-button-sizes-expected.txt:
- platform/gtk/fast/forms/input-first-letter-expected.png:
- platform/gtk/fast/forms/input-first-letter-expected.txt:
- platform/gtk/fast/forms/input-value-expected.png:
- platform/gtk/fast/forms/input-value-expected.txt:
- platform/gtk/fast/forms/select-baseline-expected.png:
- platform/gtk/fast/forms/select-baseline-expected.txt:
- platform/gtk/fast/forms/select-disabled-appearance-expected.png:
- platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
- platform/gtk/fast/forms/targeted-frame-submission-expected.png:
- platform/gtk/fast/forms/targeted-frame-submission-expected.txt:
- platform/gtk/fast/html/details-replace-summary-child-expected.png:
- platform/gtk/fast/html/details-replace-summary-child-expected.txt:
- platform/gtk/fast/html/details-replace-text-expected.png:
- platform/gtk/fast/html/details-replace-text-expected.txt:
- platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
- platform/gtk/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
- platform/gtk/fast/overflow/scrollRevealButton-expected.png:
- platform/gtk/fast/overflow/scrollRevealButton-expected.txt:
- platform/gtk/fast/replaced/replaced-breaking-expected.png:
- platform/gtk/fast/replaced/replaced-breaking-expected.txt:
- platform/gtk/fast/replaced/width100percent-button-expected.png:
- platform/gtk/fast/replaced/width100percent-button-expected.txt:
- platform/gtk/fast/table/append-cells2-expected.png:
- platform/gtk/fast/table/append-cells2-expected.txt:
- platform/gtk/fast/table/remove-td-display-none-expected.png:
- platform/gtk/fast/table/remove-td-display-none-expected.txt:
- platform/gtk/fast/text/international/hindi-spacing-expected.png:
- platform/gtk/fast/text/international/hindi-spacing-expected.txt:
- platform/gtk/fast/text/textIteratorNilRenderer-expected.png:
- platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
- platform/gtk/http/tests/navigation/javascriptlink-frames-expected.png:
- platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:
- platform/gtk/svg/custom/foreign-object-skew-expected.png:
- platform/gtk/svg/custom/foreign-object-skew-expected.txt: Added.
- platform/gtk/svg/custom/inline-svg-in-xhtml-expected.png:
- platform/gtk/svg/custom/inline-svg-in-xhtml-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug1188-expected.png:
- platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug1318-expected.png:
- platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug138725-expected.png:
- platform/gtk/tables/mozilla/bugs/bug138725-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug18359-expected.png:
- platform/gtk/tables/mozilla/bugs/bug18359-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug2479-2-expected.png:
- platform/gtk/tables/mozilla/bugs/bug2479-2-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug2479-3-expected.png:
- platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug2479-4-expected.png:
- platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug26178-expected.png:
- platform/gtk/tables/mozilla/bugs/bug26178-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug28928-expected.png:
- platform/gtk/tables/mozilla/bugs/bug28928-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug33855-expected.png:
- platform/gtk/tables/mozilla/bugs/bug33855-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug39209-expected.png:
- platform/gtk/tables/mozilla/bugs/bug39209-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug4429-expected.png:
- platform/gtk/tables/mozilla/bugs/bug4429-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug44505-expected.png:
- platform/gtk/tables/mozilla/bugs/bug44505-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug46368-1-expected.png:
- platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug46368-2-expected.png:
- platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug51037-expected.png:
- platform/gtk/tables/mozilla/bugs/bug51037-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug51727-expected.png:
- platform/gtk/tables/mozilla/bugs/bug51727-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug52505-expected.png:
- platform/gtk/tables/mozilla/bugs/bug52505-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug52506-expected.png:
- platform/gtk/tables/mozilla/bugs/bug52506-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug60749-expected.png:
- platform/gtk/tables/mozilla/bugs/bug60749-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug68912-expected.png:
- platform/gtk/tables/mozilla/bugs/bug68912-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug7342-expected.png:
- platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
- platform/gtk/tables/mozilla/bugs/bug92647-2-expected.png:
- platform/gtk/tables/mozilla/bugs/bug92647-2-expected.txt: Added.
- platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.png:
- platform/gtk/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
- platform/gtk/tables/mozilla/dom/tableDom-expected.png:
- platform/gtk/tables/mozilla/dom/tableDom-expected.txt:
- platform/gtk/tables/mozilla/other/move_row-expected.png:
- platform/gtk/tables/mozilla/other/move_row-expected.txt:
- platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.png:
- platform/gtk/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
- platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png:
- platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
- platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
- platform/gtk/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
- platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
- platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
- platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.png:
- platform/gtk/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
- 3:55 PM Changeset in webkit [291900] by
-
- 2 edits in trunk/Source/WebKit
[Big Sur] WK2 failing to build with
error: reference to 'WebDocumentView' is ambiguous
https://bugs.webkit.org/show_bug.cgi?id=238384
Reviewed by Alexey Proskuryakov.
Build fix, see rdar://90844690.
Create forwarding headers in WebKit's temporary directory which cause imports of any
migrated header to be imported using WebKit's header map. For example,
#import <WebKit/WebDocument.h>
#import <WebKitLegacy/WebDocument.h>
...both resolve to the same header.
Also, clean up project file references to files which were deleted in r291809.
- WebKit.xcodeproj/project.pbxproj:
- 3:53 PM Changeset in webkit [291899] by
-
- 1 copy in releases/WPE WebKit/webkit-2.36.0
WPE WebKit 2.36.0
- 3:52 PM Changeset in webkit [291898] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.36.0 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.36.0.
- 3:52 PM Changeset in webkit [291897] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Tools
[WPE][GTK] Dist/distcheck targets fail due to Python error
https://bugs.webkit.org/show_bug.cgi?id=238394
Unreviewed build fix.
- Scripts/make-dist:
(Directory.list_files_in_version_control): Ensure that data read from pipes is converted to
strings by specifying text="ascii", as it seems safe to assume that files listed by Git will
not contain non-ASCII characters. While at it, make the function return a set to speed up
lookups.
- 3:25 PM Changeset in webkit [291896] by
-
- 2 edits in trunk/Source/WebCore
FontCascade::widthForSimpleText needs the glyph only
https://bugs.webkit.org/show_bug.cgi?id=238385
Reviewed by Antti Koivisto.
widthForSimpleText operates on primary font only so let's just call PrimaryFont.glyphForCharacter() directly.
(This should provide a slight perf gain on text heavy pages. e.g. wikipedia over 50 page loads ->
w/o: widthForSimpleText: 266286 calls, mean duration: 0.000201ms, total duration: 53.403753ms, max duration 0.016750ms
w: widthForSimpleText: 266274 calls, mean duration: 0.000176ms, total duration: 46.949579ms, max duration 0.016917ms)
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::widthForSimpleText const):
- 3:11 PM Changeset in webkit [291895] by
-
- 2 edits in branches/safari-613.1.17.0-branch/Source/JavaScriptCore
Cherry-pick r291891. rdar://problem/90838071
AI should not set the structure for ObjectCreate
https://bugs.webkit.org/show_bug.cgi?id=238349
Patch by Justin Michaud <Justin Michaud> on 2022-03-24
Reviewed by Saam Barati and Yusuke Suzuki.
The AbstractInterpreter should not set the structure for ObjectCreate because it might change by
the time the constant folding phase runs if the structure cache is cleared.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291891 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:09 PM Changeset in webkit [291894] by
-
- 9 edits in branches/safari-613.1.17.0-branch/Source
Versioning.
WebKit-7613.1.17.0.8
- 3:07 PM Changeset in webkit [291893] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, update DerivedSources-output.xcfilelist to fix build.
- DerivedSources-output.xcfilelist:
- 3:05 PM Changeset in webkit [291892] by
-
- 2 edits in branches/safari-613.1.17.1-branch/Source/JavaScriptCore
Cherry-pick r291891. rdar://problem/90838071
AI should not set the structure for ObjectCreate
https://bugs.webkit.org/show_bug.cgi?id=238349
Patch by Justin Michaud <Justin Michaud> on 2022-03-24
Reviewed by Saam Barati and Yusuke Suzuki.
The AbstractInterpreter should not set the structure for ObjectCreate because it might change by
the time the constant folding phase runs if the structure cache is cleared.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291891 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:51 PM Changeset in webkit [291891] by
-
- 2 edits in trunk/Source/JavaScriptCore
AI should not set the structure for ObjectCreate
https://bugs.webkit.org/show_bug.cgi?id=238349
Patch by Justin Michaud <Justin Michaud> on 2022-03-24
Reviewed by Saam Barati and Yusuke Suzuki.
The AbstractInterpreter should not set the structure for ObjectCreate because it might change by
the time the constant folding phase runs if the structure cache is cleared.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- 2:46 PM Changeset in webkit [291890] by
-
- 4 edits in trunk/Source/WebGPU
[WebGPU] Remove default: from switch statements, in favor of exhaustively listing all cases
https://bugs.webkit.org/show_bug.cgi?id=238305
Reviewed by Darin Adler.
This will indicate places that need fixing when new values are added.
- WebGPU/BindGroupLayout.mm:
(WebGPU::createArgumentDescriptor):
- WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
- WebGPU/Instance.mm:
(WebGPU::sortedDevices):
- WebGPU/Queue.mm:
(WebGPU::Queue::writeBuffer):
- 2:37 PM Changeset in webkit [291889] by
-
- 13 edits2 adds in trunk
Enable PGO when building for release and production
https://bugs.webkit.org/show_bug.cgi?id=238119
rdar://90182309
Reviewed by Alexey Proskuryakov and Geoff Garen.
Source/JavaScriptCore:
See WebCore/ChangeLog for more information.
- Configurations/Base.xcconfig:
- Configurations/JavaScriptCore.xcconfig:
- JavaScriptCore.xcodeproj/project.pbxproj:
Source/WebCore:
Attempt to re-land support for compiling against profiling data, after it was reverted due to the profiling data
files being too large. We mitigate this by instead storing sparse profdata files as compressed files in
WebKitAdditions throughgit lfs, such that they don't cause the repo to grow significantly each time we update
profiling data.
At build time, we then introduce new build phase scripts to the JavaScriptCore, WebCore and WebKit builds to
decompress their respective.profdata.compressedfiles into.profdatafiles in the build, using
compression_tool. We compile against theseprofdatafiles when building for release and production
configurations, via the-fprofile-instr-useflag.
In the case where the *.profdata.compressed files are non-existent or haven't been downloaded yet, we instead
fall back to using an empty profiling data file, but only on non-production builds; this allows us to continue
passing in the-fprofile-instr-useflag, without running into build failures.
Note that we intentionally require production builds to use the (real) profiling data, and explicitly fail the
build with a specific error message in the case where the profiles are missing.
Additionally, note that in order to check for and deal with the case where the *.profdata.compressed files are
only undownloadedgit-lfsstubs, we not only check whether or not theprofdata.compressedfile exists, but
also whether or not the file size is at least an arbitrary cutoff of 4 KB (which should already be an order of
magnitude larger than thegit-lfsstub). While mostly arbitrary, I chose this cutoff due to the fact that it's
very close to the size of theEmpty.profdataplaceholder file in Tools; in practice, we should expect the
profiles for WebKit, WebCore and JavaScriptCore to be much, much larger than this empty file.
- Configurations/Base.xcconfig:
- Configurations/WebCore.xcconfig:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
See WebCore/ChangeLog for more information.
- Configurations/Base.xcconfig:
- Configurations/BaseTarget.xcconfig:
- WebKit.xcodeproj/project.pbxproj:
Tools:
Add an empty profiling data file that can be used as a fallback only for release (non-production) builds, when
the JavaScriptCore, WebCore or WebKit profiling data hasn't been locally downloaded.
- Profiling/Empty.profdata: Added.
- 2:19 PM Changeset in webkit [291888] by
-
- 19 edits3 adds in trunk
Add support for focused and visible ServiceWorkerWindowClient states
https://bugs.webkit.org/show_bug.cgi?id=238372
Reviewed by Brady Eidson.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event.https-expected.txt:
- web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt:
- web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt:
- web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https-expected.txt:
- web-platform-tests/service-workers/service-worker/clients-matchall.https-expected.txt:
Source/WebCore:
Add visible and focused to ServiceWorkerClientData.
In case document visibility or focused state changes, we push the corresponding ServiceWorkerClientData to network process.
Test: http/wpt/service-workers/client-properties.https.html
- dom/Document.cpp:
- dom/Document.h:
- page/FocusController.cpp:
- workers/service/ServiceWorkerClient.h:
- workers/service/ServiceWorkerClientData.cpp:
- workers/service/ServiceWorkerClientData.h:
- workers/service/ServiceWorkerClients.cpp:
- workers/service/ServiceWorkerWindowClient.cpp:
- workers/service/ServiceWorkerWindowClient.h:
LayoutTests:
- http/wpt/service-workers/client-properties-worker.js: Added.
- http/wpt/service-workers/client-properties.https-expected.txt: Added.
- http/wpt/service-workers/client-properties.https.html: Added.
- 2:02 PM Changeset in webkit [291887] by
-
- 1 edit in trunk/Tools/Scripts/libraries/resultsdbpy/resultsdbpy/bug_trackers/bug_description.py
[results-safari] filter out None in automatically generated bug title
https://bugs.webkit.org/show_bug.cgi?id=238360
rdar://90809419
Reviewed by Dewei Zhu and Jonathan Bedard.
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/bug_trackers/bug_description.py:
(translate_selected_dots_to_bug_title_and_description):
Canonical link: https://commits.webkit.org/248886@main
- 1:54 PM Changeset in webkit [291886] by
-
- 15 edits1 copy3 adds in trunk
PointerEvent.movementXalways 0 (breaks https://noisecraft.app/)
https://bugs.webkit.org/show_bug.cgi?id=220194
<rdar://problem/72814440>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt:
This change causes the test to progress further than before, but there still appear to be
other issues elsewhere, so adjust the expected output to reflect that.
Source/WebCore:
Test: pointer-lock/pointermove-movement-delta.html
- dom/PointerEvent.cpp:
(WebCore::PointerEvent::PointerEvent):
Also pass along the movement delta in the constructor that takes aMouseEvent.
- dom/MouseEvent.h:
- dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
Require that all constructors that aren't invoked from JS always provide a movement delta.
- dom/MouseRelatedEvent.h:
(WebCore::MouseRelatedEvent::movementX const):
(WebCore::MouseRelatedEvent::movementY const):
Expose these methods even when!ENABLE(POINTER_LOCK)so that they can be called without
the callsite having to also have a#if.
- page/EventHandler.cpp:
(WebCore::EventHandler::dispatchDragEvent):
Pass along the movement delta even when!ENABLE(POINTER_LOCK).
Tools:
- DumpRenderTree/mac/EventSendingController.mm:
(-[EventSendingController mouseMoveToX:Y:]):
- WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseMoveTo):
On macOS, the screen's origin is the bottom-left corner, so we need to flip thedeltaY.
LayoutTests:
- pointer-lock/pointermove-movement-delta.html: Added.
- pointer-lock/pointermove-movement-delta-expected.txt: Added.
- pointer-lock/mouse-event-delivery-expected.txt: Added.
On macOS, the screen's origin is the bottom-left corner, so we need to flip the
deltaY.
- platform/gtk/imported/w3c/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock-expected.txt: Added.
This change causes the test to progress further than before, but there still appear to be
other issues elsewhere, so adjust the expected output to reflect that.
- platform/mac-wk1/TestExpectations:
- 1:51 PM Changeset in webkit [291885] by
-
- 2 edits in trunk/Source/WebKit
Add some generated sources to the WebKit project
https://bugs.webkit.org/show_bug.cgi?id=238363
Reviewed by Alexey Proskuryakov.
There are many generated files which haven't been added to the project (they get built via
Sources.txt). Here, I add a few that I like to be able to find code in, particularly
MessageNames.h.
com.apple.WebKit.plugin-common.sb was deleted so is removed from the project.
- WebKit.xcodeproj/project.pbxproj:
- 1:47 PM Changeset in webkit [291884] by
-
- 3 edits in trunk/Source/WebKit
Add Captive Portal alert to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=238326
Patch by C Lopez <clopez1@apple.com> on 2022-03-25
Reviewed by Geoffrey Garen.
When WkWebView on iOS is initialized, we call
_presentCaptivePortalModeAlertIfNeededwhich checks whether an alert needs to be presented or not.
- UIProcess/API/ios/WKWebViewIOS.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _presentCaptivePortalModeAlertIfNeeded]):
(-[WKWebView didMoveToWindow]):
- 1:32 PM Changeset in webkit [291883] by
-
- 2 edits in trunk/Source/WebCore
Drop duplicate isFiringEventListeners check in Node wrappers' isReachableFromOpaqueRoots()
https://bugs.webkit.org/show_bug.cgi?id=238376
Reviewed by Geoffrey Garen.
Drop duplicate isFiringEventListeners check in Node wrappers' isReachableFromOpaqueRoots().
Those wrappers already call JSNodeOwner::isReachableFromOpaqueRoots() which already takes care
of checking the isFiringEventListeners flag.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- 1:16 PM Changeset in webkit [291882] by
-
- 8 edits in trunk
[WebAuthn] Maintain last modification time separate from last used time for platform credentials
https://bugs.webkit.org/show_bug.cgi?id=238293
rdar://90655676
Reviewed by Brent Fulgham.
This patch splits a key returned from [_WKWebAuthenticationPanel getAllLocalAuthenticatorCredentials...],
_WKLocalAuthenticatorCredentialLastModificationDateKey, which previously signified the last time a
credential was modified or used in an assertion, to just the last time the credential was modified.
A new key, _WKLocalAuthenticatorCredentialLastUsedDateKey represents the old definition, the last
time a key was used or modified.
Source/WebCore:
- Modules/webauthn/WebAuthenticationConstants.h:
Source/WebKit:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(getAllLocalAuthenticatorCredentialsImpl):
(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithGroupAndID:credential:username:]):
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
Tools:
Updated API test to verify differences between _WKLocalAuthenticatorCredentialLastModificationDateKey
and _WKLocalAuthenticatorCredentialLastModificationDateKey.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 1:07 PM Changeset in webkit [291881] by
-
- 2 edits in trunk/Source/WebKit
[GPU Process] RemoteRenderingBackend::stopListeningForIPC() should not change the RemoteResourceCache on the main thread
https://bugs.webkit.org/show_bug.cgi?id=238298
rdar://90731372
Reviewed by Simon Fraser.
To release the RemoteResourceCache and the rendering resource request on
the WorkQueue thread, RemoteRenderingBackend::stopListeningForIPC() dispatches
an empty lambda to its WorkQueue but m_renderingResourcesRequest and
m_remoteResourceCache are captured by-move to initializers to this lambda.
But this means m_remoteResourceCache is changed on the main thread while
the WorkQueue thread may be accessing it to get a cached remote resource.
The EWS crashes showed that, RemoteRenderingBackend::stopListeningForIPC()
on the main thread is waiting its WorkQueue to stop and complete all its
work including the dispatched empty lambda. And the WorkQueue thread is
getting wrong resource counters from the RemoteResourceCache. This would
happen if the HashMaps of RemoteResourceCache were emptied on the main
thread while the counters had outdated values.
To fix this thread safety issue, the RemoteResourceCache should not ever
be changed on the main thread. Since capturing by-move is kind of change,
we will capture m_renderingResourcesRequest and m_remoteResourceCache by
reference and we let the dispatched lambda explicitly releases them on
the WorkQueue thread.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::stopListeningForIPC):
- 12:34 PM Changeset in webkit [291880] by
-
- 2 edits in trunk/Source/WebKit
[macOS][WP] Remove unused sandbox extension rule
https://bugs.webkit.org/show_bug.cgi?id=238377
Reviewed by Geoffrey Garen.
Remove unused sandbox extension rule for RootDomainUserClient.
- WebProcess/com.apple.WebProcess.sb.in:
- 12:20 PM Changeset in webkit [291879] by
-
- 1 copy in tags/Safari-614.1.5.18
Tag Safari-614.1.5.18.
- 12:19 PM Changeset in webkit [291878] by
-
- 9 edits in trunk/Source/WebCore
[TextureMapper] Implement GraphicsContextGLTextureMapperANGLE::prepareForDisplay()
https://bugs.webkit.org/show_bug.cgi?id=238322
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-25
Reviewed by Darin Adler.
Use GraphicsContextGLTextureMapperANGLE::prepareForDisplay() to handle
buffer/texture preparation during the composition state flush instead of
doing it in the platform layer integration class.
The virtual GraphicsContextGL::prepareForDisplay() method is called
during the composition state flush on every context-backed canvas that
was changed since the previous flush. It's the most optimal location to
handle content display preparation, and it simplifies the actual display
through the TextureMapper facilities. It's a simple matter of ensuring
a current context and invoking texture preparation.
In Nicosia::GCGLANGLELayer::swapBuffersIfNeeded(), there's no need to
bother with the state of layer composition, everything is already set
to be wrapped into a buffer and pushed into the composition engine.
Similarly in TextureMapperGCGLPlatformLayer::paintToTextureMapper(),
the texture is already prepared and can be painted immediately, with
no further need for GL context switching.
GraphicsContextGLANGLE::prepareTexture() is not really used anymore
so it can be removed, and prepareTextureImpl() can use that name.
The method is still virtual so that GraphicsContextGLTextureMapperANGLE
can provide a more focused override, but GraphicsContextGLCocoa should
at some point also use its own implementation, at which point the
method could just be rolled into each class's prepareForDisplay().
No new tests, covered by existing tests.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::prepareTexture):
(WebCore::GraphicsContextGLANGLE::prepareTextureImpl): Deleted.
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::prepareForDisplay):
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:
(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Remove unused prepareTextureImpl() method declaration.
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareTexture):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareForDisplay):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareTextureImpl): Deleted.
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):
- 12:18 PM Changeset in webkit [291877] by
-
- 2 edits in branches/safari-614.1.7-branch/Source/WebKit
Cherry-pick r291869. rdar://problem/90848250
Unreviewed, fix the internal iOS build after r291814
rdar://90848250
Removed extraneous double quote (") in com.apple.WebKit.WebContent.sb.in.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291869 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:15 PM Changeset in webkit [291876] by
-
- 2 edits in branches/safari-614.1.5-branch/Source/WebKit
Cherry-pick r291869. rdar://problem/90848250
Unreviewed, fix the internal iOS build after r291814
rdar://90848250
Removed extraneous double quote (") in com.apple.WebKit.WebContent.sb.in.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291869 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:08 PM Changeset in webkit [291875] by
-
- 12 edits in trunk/Source/JavaScriptCore
[JSC] Use Data CallIC in unlinked DFG
https://bugs.webkit.org/show_bug.cgi?id=238176
Reviewed by Saam Barati.
This patch enables Data CallIC when Options::useDataICInOptimizingJIT() is true
to pave the way to introducing unlinked DFG.
The most complicated part is DFG tail call handling. We load CallLinkInfo in one
non-callee-save register, and we set up CallFrameShuffleData to keep this value
in the same register even after call frame shuffling for the tail call. This must
be non-callee-save register since callee-save registers are restored to values
of the one-level upper caller for the tail-call.
We also clean up CallLinkInfo code so that many functions work well with DataIC.
Currently, direct calls are not supported, and we will not emit direct calls when
unlinked DFG is used.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- bytecode/CallLinkInfo.cpp:
(JSC::BaselineCallLinkInfo::initialize):
(JSC::OptimizingCallLinkInfo::emitFastPath):
(JSC::OptimizingCallLinkInfo::emitTailCallFastPath):
(JSC::OptimizingCallLinkInfo::slowPathStart):
(JSC::OptimizingCallLinkInfo::emitDirectFastPath):
(JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
- bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::isDataIC const):
(JSC::CallLinkInfo::useDataIC const):
(JSC::CallLinkInfo::CallLinkInfo):
(JSC::CallLinkInfo::setUsesDataICs): Deleted.
- bytecode/Repatch.cpp:
(JSC::linkPolymorphicCall):
- dfg/DFGCommonData.h:
(JSC::DFG::CommonData::addCallLinkInfo):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::prepareForTailCallSlow):
- wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
- 12:00 PM Changeset in webkit [291874] by
-
- 1 copy in tags/Safari-614.1.5.5.3
Tag Safari-614.1.5.5.3.
- 11:59 AM Changeset in webkit [291873] by
-
- 2 edits in branches/safari-614.1.5.5-branch/Source/WebKit
Cherry-pick r291869. rdar://problem/90848250
Unreviewed, fix the internal iOS build after r291814
rdar://90848250
Removed extraneous double quote (") in com.apple.WebKit.WebContent.sb.in.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291869 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:54 AM Changeset in webkit [291872] by
-
- 9 edits in branches/safari-614.1.5.5-branch/Source
Versioning.
WebKit-7614.1.5.5.3
- 11:52 AM Changeset in webkit [291871] by
-
- 3 edits in trunk/Source/JavaScriptCore
Remove unused JITOperation, operationTryOSREnterAtCatch.
https://bugs.webkit.org/show_bug.cgi?id=238379
Reviewed by Mark Lam.
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- 11:46 AM Changeset in webkit [291870] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.18
- 11:39 AM Changeset in webkit [291869] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix the internal iOS build after r291814
rdar://90848250
Removed extraneous double quote (") in com.apple.WebKit.WebContent.sb.in.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 11:29 AM Changeset in webkit [291868] by
-
- 2 edits in trunk/Source/WTF
[web-animations] enable support for mutable timelines by default
https://bugs.webkit.org/show_bug.cgi?id=237958
<rdar://problem/90370794>
Reviewed by Dean Jackson.
Both Chrome and Firefox have been shipping this feature for quite some time.
Our support for it is complete, we just need to turn it on by default.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 11:03 AM Changeset in webkit [291867] by
-
- 47 edits9 copies18 adds in trunk
Add css-typed-om color IDL skeletons
https://bugs.webkit.org/show_bug.cgi?id=238208
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-25
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-typed-om/idlharness-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssColorValue-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHSL-expected.txt:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRGB-expected.txt:
Source/WebCore:
This is an off-by-default experimental feature.
Covered by wpt tests.
- DerivedSources-input.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- css/typedom/CSSKeywordValue.idl:
- css/typedom/CSSNumericValue.h:
- css/typedom/color/CSSColor.cpp: Added.
(WebCore::CSSColor::setColorSpace):
(WebCore::CSSColor::CSSColor):
- css/typedom/color/CSSColor.h: Added.
(WebCore::CSSColor::create):
(WebCore::CSSColor::alpha const):
(WebCore::CSSColor::setAlpha):
- css/typedom/color/CSSColor.idl:
- css/typedom/color/CSSColorValue.h: Added.
(WebCore::CSSColorValue::colorSpace):
(WebCore::CSSColorValue::to):
(WebCore::CSSColorValue::parse):
- css/typedom/color/CSSColorValue.idl:
- css/typedom/color/CSSHSL.cpp: Added.
(WebCore::CSSHSL::CSSHSL):
- css/typedom/color/CSSHSL.h: Added.
(WebCore::CSSHSL::create):
(WebCore::CSSHSL::h const):
(WebCore::CSSHSL::setH):
(WebCore::CSSHSL::s const):
(WebCore::CSSHSL::setS):
(WebCore::CSSHSL::l const):
(WebCore::CSSHSL::setL):
(WebCore::CSSHSL::alpha const):
(WebCore::CSSHSL::setAlpha):
- css/typedom/color/CSSHSL.idl:
- css/typedom/color/CSSHWB.cpp: Added.
(WebCore::CSSHWB::CSSHWB):
- css/typedom/color/CSSHWB.h: Added.
(WebCore::CSSHWB::create):
(WebCore::CSSHWB::h const):
(WebCore::CSSHWB::setH):
(WebCore::CSSHWB::w const):
(WebCore::CSSHWB::setW):
(WebCore::CSSHWB::b const):
(WebCore::CSSHWB::setB):
(WebCore::CSSHWB::alpha const):
(WebCore::CSSHWB::setAlpha):
- css/typedom/color/CSSHWB.idl:
- css/typedom/color/CSSLCH.cpp: Added.
(WebCore::CSSLCH::CSSLCH):
- css/typedom/color/CSSLCH.h: Added.
(WebCore::CSSLCH::create):
(WebCore::CSSLCH::l const):
(WebCore::CSSLCH::setL):
(WebCore::CSSLCH::c const):
(WebCore::CSSLCH::setC):
(WebCore::CSSLCH::h const):
(WebCore::CSSLCH::setH):
(WebCore::CSSLCH::alpha const):
(WebCore::CSSLCH::setAlpha):
- css/typedom/color/CSSLCH.idl:
- css/typedom/color/CSSLab.cpp: Added.
(WebCore::CSSLab::CSSLab):
- css/typedom/color/CSSLab.h: Added.
(WebCore::CSSLab::create):
(WebCore::CSSLab::l const):
(WebCore::CSSLab::setL):
(WebCore::CSSLab::a const):
(WebCore::CSSLab::setA):
(WebCore::CSSLab::b const):
(WebCore::CSSLab::setB):
(WebCore::CSSLab::alpha const):
(WebCore::CSSLab::setAlpha):
- css/typedom/color/CSSLab.idl:
- css/typedom/color/CSSOKLCH.cpp: Added.
(WebCore::CSSOKLCH::CSSOKLCH):
- css/typedom/color/CSSOKLCH.h: Added.
(WebCore::CSSOKLCH::create):
(WebCore::CSSOKLCH::l const):
(WebCore::CSSOKLCH::setL):
(WebCore::CSSOKLCH::c const):
(WebCore::CSSOKLCH::setC):
(WebCore::CSSOKLCH::h const):
(WebCore::CSSOKLCH::setH):
(WebCore::CSSOKLCH::alpha const):
(WebCore::CSSOKLCH::setAlpha):
- css/typedom/color/CSSOKLCH.idl:
- css/typedom/color/CSSOKLab.cpp: Added.
(WebCore::CSSOKLab::CSSOKLab):
- css/typedom/color/CSSOKLab.h: Added.
(WebCore::CSSOKLab::create):
(WebCore::CSSOKLab::l const):
(WebCore::CSSOKLab::setL):
(WebCore::CSSOKLab::a const):
(WebCore::CSSOKLab::setA):
(WebCore::CSSOKLab::b const):
(WebCore::CSSOKLab::setB):
(WebCore::CSSOKLab::alpha const):
(WebCore::CSSOKLab::setAlpha):
- css/typedom/color/CSSOKLab.idl:
- css/typedom/color/CSSRGB.cpp: Added.
(WebCore::CSSRGB::CSSRGB):
- css/typedom/color/CSSRGB.h: Added.
(WebCore::CSSRGB::create):
(WebCore::CSSRGB::r const):
(WebCore::CSSRGB::setR):
(WebCore::CSSRGB::g const):
(WebCore::CSSRGB::setG):
(WebCore::CSSRGB::b const):
(WebCore::CSSRGB::setB):
(WebCore::CSSRGB::alpha const):
(WebCore::CSSRGB::setAlpha):
- css/typedom/color/CSSRGB.idl:
- 10:39 AM Changeset in webkit [291866] by
-
- 2 edits in trunk/Source/WebCore
Reduce EventListenerVector's minimum capacity from 16 to 2
https://bugs.webkit.org/show_bug.cgi?id=238374
Reviewed by Geoffrey Garen.
Reduce EventListenerVector's minimum capacity from 16 to 2 to save memory and get a small speedup on Speedometer.
Very few event listeners are registered for a given type in the common case so eagerly allocating enough memory for 16 is wasteful.
This is a confirmed 0.4% progression on Speedometer according to A/B bots.
- dom/EventListenerMap.h:
- 10:32 AM Changeset in webkit [291865] by
-
- 22 edits in trunk/Tools
[git-webkit] Handle no repository case
https://bugs.webkit.org/show_bug.cgi?id=238383
<rdar://problem/90842476>
Reviewed by Aakash Jain.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:
(main): Set repository to 'None' instead of raising an OSError.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/init.py:
(Canonicalize.main): If no repository is provided, exit the program.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/checkout.py:
(Checkout.main): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:
(FilteredCommand.pager): Ditto.
(FilteredCommand.main): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
(Info.main): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_git_lfs.py:
(InstallGitLFS.parser): configure depends on if a repository is provided.
(InstallGitLFS.main): Installgit lfswhen no repository is provided.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
(Land.main): If no repository is provided, exit the program.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull.py:
(Pull.main): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup_git_svn.py:
(SetupGitSvn.main): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:
(TestBranch.test_basic_none):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
(TestCanonicalize.test_invalid_svn): Renamed from test_invalid.
(TestCanonicalize.test_invalid_None):
(TestCanonicalize.test_invalid): Renamed to test_invalid_svn.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
(TestCheckout.test_checkout_none):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/find_unittest.py:
(TestFind.test_none):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_git_lfs_unittest.py:
(TestInstallGitLFS.test_no_repo):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/land_unittest.py:
(TestLand.test_none):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/log_unittest.py:
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_git_svn_unittest.py:
(TestSetupGitSvn.test_none):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
(TestSetup.test_none):
Canonical link: https://commits.webkit.org/248871@main
- 10:24 AM Changeset in webkit [291864] by
-
- 1 copy in tags/Safari-614.1.7.2
Tag Safari-614.1.7.2.
- 10:13 AM Changeset in webkit [291863] by
-
- 211 edits in trunk
Start preparing WebCore for making the String(const char*) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=238336
Reviewed by Geoffrey Garen.
Start preparing WebCore for making the String(const char*) constructor explicit.
Making this constructor explicit helps catch at compile time cases where the ""_s
prefix is missing on String literals.
Source/JavaScriptCore:
- API/JSValue.mm:
(createStructHandlerMap):
(handerForStructTag):
- API/JSWrapperMap.mm:
(allocateConstructorForCustomClass):
- inspector/agents/InspectorAuditAgent.cpp:
(Inspector::InspectorAuditAgent::run):
Source/WebCore:
- Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:
(WebCore::convertAndValidateApplePayAMSUIRequest):
- Modules/applepay/ApplePayContactField.cpp:
(WebCore::convertAndValidate):
- Modules/applepay/ApplePayMerchantCapability.cpp:
(WebCore::convertAndValidate):
- Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::convertAndValidate):
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::create):
(WebCore::ApplePaySession::openPaymentSetup):
(WebCore::ApplePaySession::begin):
- Modules/applepay/ApplePaySetup.cpp:
(WebCore::ApplePaySetup::begin):
- Modules/applepay/PaymentInstallmentConfiguration.mm:
(WebCore::PaymentInstallmentConfiguration::create):
- Modules/applepay/PaymentRequestValidator.mm:
(WebCore::PaymentRequestValidator::validateTotal):
(WebCore::validateCountryCode):
(WebCore::validateCurrencyCode):
(WebCore::validateMerchantCapabilities):
(WebCore::validateSupportedNetworks):
(WebCore::validateShippingMethod):
- Modules/applepay/PaymentSession.cpp:
(WebCore::PaymentSession::canCreateSession):
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::convertAndValidateApplePayRequest):
- Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::parseIcons):
(WebCore::ApplicationManifestParser::parseScope):
- Modules/cache/WindowOrWorkerGlobalScopeCaches.cpp:
- Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::sanitizeKeyids):
- Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::listDirectoryWithMetadata):
(WebCore::validatePathIsExpectedType):
- Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::packageFormData):
- Modules/fetch/FetchHeaders.cpp:
(WebCore::fillHeaderMap):
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::startLoadingBlobURL):
- Modules/filesystemaccess/FileSystemFileHandle.cpp:
(WebCore::FileSystemFileHandle::getFile):
(WebCore::FileSystemFileHandle::createSyncAccessHandle):
- Modules/filesystemaccess/FileSystemHandle.cpp:
(WebCore::FileSystemHandle::isSameEntry const):
(WebCore::FileSystemHandle::move):
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::encode const):
(WebCore::IDBKeyData::decode):
- Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::includes):
- Modules/indexeddb/server/IDBSerialization.cpp:
(WebCore::serializeIDBKeyPath):
(WebCore::deserializeIDBKeyPath):
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::getOrigins const):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::removeAllDatabasesForFullOriginPath):
(WebCore::IDBServer::IDBServer::renameOrigin):
(WebCore::IDBServer::IDBServer::upgradeFilesIfNecessary):
(WebCore::IDBServer::IDBServer::upgradedDatabaseDirectory):
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::generateKeyNumber):
- Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::v1RecordsTableSchema):
(WebCore::IDBServer::v1RecordsTableSchemaAlternate):
(WebCore::IDBServer::v2RecordsTableSchema):
(WebCore::IDBServer::v2RecordsTableSchemaAlternate):
(WebCore::IDBServer::v1IndexRecordsTableSchema):
(WebCore::IDBServer::v1IndexRecordsTableSchemaAlternate):
(WebCore::IDBServer::v2IndexRecordsTableSchema):
(WebCore::IDBServer::v2IndexRecordsTableSchemaAlternate):
(WebCore::IDBServer::SQLiteIDBBackingStore::encodeDatabaseName):
(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabasePathForDirectory):
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedSetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::generateKeyNumber):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAddAfterSpaceCheck):
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::openCursor):
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
- Modules/indexeddb/shared/IDBIndexInfo.cpp:
(WebCore::IDBIndexInfo::loggingString const):
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::layoutTraitsClassName const):
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::create):
- Modules/mediasource/MediaSource.cpp:
(WebCore::addVP9FullRangeVideoFlagToContentType):
(WebCore::MediaSource::isTypeSupported):
- Modules/mediastream/MediaTrackConstraints.cpp:
(WebCore::set):
(WebCore::convertToInternalForm):
- Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::addIceCandidate):
(WebCore::RTCPeerConnection::iceServersFromConfiguration):
(WebCore::RTCPeerConnection::certificatesFromConfiguration):
(WebCore::RTCPeerConnection::initializeConfiguration):
(WebCore::RTCPeerConnection::setConfiguration):
(WebCore::RTCPeerConnection::chainOperation):
- Modules/mediastream/RTCRtpSFrameTransformer.cpp:
(WebCore::RTCRtpSFrameTransformer::transform):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::doCreateAnswer):
- Modules/mediastream/libwebrtc/LibWebRTCRtpTransceiverBackend.cpp:
(WebCore::toRtpCodecCapability):
- Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:
(WebCore::toException):
(WebCore::toRTCError):
- Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm:
(WebCore::writeToTemporaryFile):
- Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::checkAndCanonicalizeDetails):
(WebCore::PaymentRequest::show):
- Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
(WebCore::HTMLVideoElementPictureInPicture::requestPictureInPicture):
- Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::installReplacement):
(WebCore::processAndCreateYouTubeURL):
- Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:
(WebCore::SpeechRecognitionCaptureSourceImpl::updateDataSource):
(WebCore::SpeechRecognitionCaptureSourceImpl::sourceStopped):
(WebCore::SpeechRecognitionCaptureSourceImpl::sourceMutedChanged):
- Modules/speech/cocoa/WebSpeechRecognizerTaskMock.mm:
(-[WebSpeechRecognizerTaskMock audioSamplesAvailable:]):
- Modules/storage/StorageManager.cpp:
(WebCore::connectionInfo):
- Modules/web-locks/WebLockManager.cpp:
(WebCore::WebLockManager::signalToAbortTheRequest):
- Modules/webaudio/AudioListener.cpp:
(WebCore::AudioListener::AudioListener):
- Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::setAutomationRate):
- Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::insertEvent):
- Modules/webaudio/BiquadFilterNode.cpp:
(WebCore::BiquadFilterNode::getFrequencyResponse):
- Modules/webaudio/BiquadProcessor.cpp:
(WebCore::BiquadProcessor::BiquadProcessor):
- Modules/webaudio/DelayProcessor.cpp:
(WebCore::DelayProcessor::DelayProcessor):
- Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::create):
(WebCore::WaveShaperNode::setCurveForBindings):
- Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinatorInternal::needsAppIdQuirks):
- Modules/webauthn/WebAuthenticationUtils.cpp:
(WebCore::buildAttestationMap):
- Modules/webauthn/fido/DeviceResponseConverter.cpp:
(fido::readCTAPMakeCredentialResponse):
- Modules/webauthn/fido/Pin.cpp:
(fido::pin::KeyAgreementResponse::parseFromCOSE):
(fido::pin::TokenRequest::tryCreate):
- Modules/webauthn/fido/U2fResponseConverter.cpp:
(fido::readU2fRegisterResponse):
- Modules/webdatabase/ChangeVersionWrapper.cpp:
(WebCore::ChangeVersionWrapper::performPreflight):
- Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
- Modules/webdatabase/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::runTransaction):
- Modules/webdatabase/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::addAllowedFunctions):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::trackerDatabasePath const):
(WebCore::DatabaseTracker::openTrackerDatabase):
- Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
(WebCore::SQLStatement::setDatabaseDeletedError):
(WebCore::SQLStatement::setVersionMismatchedError):
(WebCore::SQLStatement::setFailureDueToQuota):
- Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::callErrorCallbackDueToInterruption):
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::handleCurrentStatementError):
(WebCore::SQLTransaction::postflightAndCommit):
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::subprotocolSeparator):
(WebCore::WebSocket::close):
(WebCore::WebSocket::suspend):
- Modules/websockets/WebSocket.h:
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
(WebCore::WebSocketChannel::processFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):
- Modules/websockets/WebSocketDeflateFramer.cpp:
(WebCore::WebSocketExtensionDeflateFrame::processResponse):
(WebCore::WebSocketDeflateFramer::deflate):
(WebCore::WebSocketDeflateFramer::inflate):
- Modules/websockets/WebSocketExtensionDispatcher.cpp:
(WebCore::WebSocketExtensionDispatcher::processHeaderValue):
- Modules/websockets/WebSocketFrame.cpp:
(WebCore::WebSocketFrame::parseFrame):
- Modules/webxr/WebXRWebGLLayer.cpp:
(WebCore::createOpaqueFramebuffer):
(WebCore::WebXRWebGLLayer::create):
- accessibility/AXImage.cpp:
(WebCore::AXImage::imageOverlayElements):
- accessibility/AXLogger.cpp:
(WebCore::AXLogger::AXLogger):
(WebCore::AXLogger::log):
(WebCore::operator<<):
- accessibility/AXLogger.h:
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::isModalElement const):
(WebCore::createFromRenderer):
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::textChanged):
(WebCore::AXObjectCache::handleMenuOpened):
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::passwordNotificationPostTimerFired):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::AXObjectCache::selectedStateChanged):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::handleModalChange):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::updateIsolatedTree):
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::readOnlyValue const):
(WebCore::AccessibilityObject::autoCompleteValue const):
(WebCore::AccessibilityObject::currentValue const):
(WebCore::AccessibilityObject::replaceTextInRange):
(WebCore::AccessibilityObject::computedRoleString const):
(WebCore::nodeHasPresentationRole):
(WebCore::AccessibilityObject::resolvedEditingStyles const):
(WebCore::Accessibility::isRadioButtonInDifferentAdhocGroup):
(WebCore::Accessibility::findMatchingObjects):
- accessibility/AccessibilityObjectInterface.h:
(WebCore::accessibilityRoleToString):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::renderObjectIsObservable const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
(WebCore::AccessibilityRenderObject::liveRegionRelevant const):
- accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored const):
- accessibility/AccessibilityTree.cpp:
(WebCore::AccessibilityTree::nodeHasTreeItemChild const):
(WebCore::AccessibilityTree::isTreeValid const):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::classList const):
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::AXIsolatedTree):
(WebCore::AXIsolatedTree::~AXIsolatedTree):
(WebCore::AXIsolatedTree::clear):
(WebCore::AXIsolatedTree::treeForID):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::objectsForIDs const):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateNodeProperty):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::focusedNode):
(WebCore::AXIsolatedTree::rootNode):
(WebCore::AXIsolatedTree::setRootNode):
(WebCore::AXIsolatedTree::setFocusedNodeID):
(WebCore::AXIsolatedTree::updateLoadingProgress):
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
(WebCore::AXIsolatedTree::applyPendingChanges):
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::subrolePlatformString const):
(WebCore::AccessibilityObject::rolePlatformDescription const):
- animation/AnimationEffect.cpp:
(WebCore::AnimationEffect::getTiming const):
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::animate):
- animation/EffectTiming.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::CSSPropertyIDToIDLAttributeName):
(WebCore::KeyframeEffect::getKeyframes):
- bindings/js/GCController.cpp:
(WebCore::GCController::GCController):
- bindings/js/JSCustomElementInterface.cpp:
(WebCore::JSCustomElementInterface::upgradeElement):
- bindings/js/JSDOMConvertNumbers.h:
(WebCore::Converter<IDLFloat>::convert):
- bindings/js/JSExecStateInstrumentation.h:
(WebCore::JSExecState::instrumentFunction):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::callInWorld):
- bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcArray::setValueAt const):
(JSC::Bindings::ObjcArray::valueAt const):
- bridge/runtime_array.cpp:
(JSC::RuntimeArray::put):
(JSC::RuntimeArray::putByIndex):
- bridge/runtime_object.cpp:
(JSC::Bindings::throwRuntimeObjectInvalidAccessError):
- contentextensions/ContentExtensionActions.cpp:
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::parse):
(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::parse):
- contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
- contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::getDomainList):
(WebCore::ContentExtensions::loadTrigger):
(WebCore::ContentExtensions::loadAction):
- contentextensions/SerializedNFA.cpp:
(WebCore::ContentExtensions::SerializedNFA::serialize):
- contentextensions/URLFilterParser.cpp:
(WebCore::ContentExtensions::URLFilterParser::statusString):
- contentextensions/URLFilterParser.h:
- crypto/SubtleCrypto.cpp:
(WebCore::SubtleCrypto::addAuthenticatedEncryptionWarningIfNecessary):
- crypto/algorithms/CryptoAlgorithmAES_CBC.h:
- crypto/algorithms/CryptoAlgorithmAES_CFB.h:
- crypto/algorithms/CryptoAlgorithmAES_CTR.h:
- crypto/algorithms/CryptoAlgorithmAES_GCM.h:
- crypto/algorithms/CryptoAlgorithmAES_KW.h:
- crypto/algorithms/CryptoAlgorithmECDH.h:
- crypto/algorithms/CryptoAlgorithmECDSA.h:
- crypto/algorithms/CryptoAlgorithmHKDF.h:
- crypto/algorithms/CryptoAlgorithmHMAC.h:
- crypto/algorithms/CryptoAlgorithmPBKDF2.h:
- crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
- crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
- crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
- crypto/algorithms/CryptoAlgorithmRSA_PSS.h:
- crypto/algorithms/CryptoAlgorithmSHA1.h:
- crypto/algorithms/CryptoAlgorithmSHA224.h:
- crypto/algorithms/CryptoAlgorithmSHA256.h:
- crypto/algorithms/CryptoAlgorithmSHA384.h:
- crypto/algorithms/CryptoAlgorithmSHA512.h:
- crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::exportJwk const):
- crypto/keys/CryptoKeyEC.cpp:
(WebCore::CryptoKeyEC::exportJwk const):
- crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::exportJwk const):
- crypto/keys/CryptoKeyRSA.cpp:
(WebCore::CryptoKeyRSA::exportJwk const):
- css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::isSupportedFormat const):
- css/CSSGridTemplateAreasValue.cpp:
(WebCore::stringForPosition):
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::unitTypeString):
- css/CSSSubgridValue.cpp:
(WebCore::CSSSubgridValue::customCSSText const):
- css/DOMCSSNamespace.cpp:
(WebCore::valueWithoutImportant):
- css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
- css/DeprecatedCSSOMValue.cpp:
(WebCore::DeprecatedCSSOMValue::cssText const):
- css/FontFace.cpp:
(WebCore::FontFace::unicodeRange const):
- css/MediaQueryExpression.cpp:
(WebCore::MediaQueryExpression::serialize const):
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getLayeredShorthandValue const):
(WebCore::MutableStyleProperties::setCustomProperty):
- css/makevalues.pl:
- css/parser/MediaQueryParser.cpp:
(WebCore::MediaQueryParser::skipUntilComma):
(WebCore::MediaQueryParser::parseInternal):
- css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::mediaConditionMatches):
- css/typedom/CSSNumericFactory.h:
- css/typedom/CSSNumericValue.cpp:
(WebCore::CSSNumericValue::multiplyInternal):
(WebCore::CSSNumericValue::to):
(WebCore::CSSNumericValue::parse):
- css/typedom/CSSStyleValueFactory.cpp:
(WebCore::CSSStyleValueFactory::reifyValue):
- editing/cocoa/HTMLConverter.mm:
(HTMLConverterCaches::propertyValueForNode):
(HTMLConverter::_processElement):
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::attachmentForData):
- loader/cocoa/BundleResourceLoader.mm:
(WebCore::BundleResourceLoader::loadResourceFromBundle):
- loader/mac/LoaderNSURLExtras.mm:
(suggestedFilenameWithMIMEType):
- page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::HistoricResourceUsageData::HistoricResourceUsageData):
(WebCore::drawCpuHistory):
(WebCore::drawGCHistory):
(WebCore::drawMemHistory):
- page/cocoa/SettingsBaseCocoa.mm:
(WebCore::SettingsBase::initializeDefaultFontFamilies):
- page/mac/PageMac.mm:
(WebCore::Page::platformInitialize):
- platform/LocalizedStrings.cpp:
(WebCore::AXARIAContentGroupText):
- platform/LocalizedStrings.h:
- platform/Pasteboard.h:
- platform/PasteboardCustomData.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):
- platform/cocoa/KeyEventCocoa.mm:
(WebCore::keyIdentifierForCharCode):
- platform/cocoa/PasteboardCocoa.mm:
(WebCore::imageTypeToFakeFilename):
(WebCore::Pasteboard::read):
- platform/cocoa/PasteboardCustomDataCocoa.mm:
(WebCore::PasteboardCustomData::cocoaType):
- platform/graphics/FourCC.h:
(WTF::LogArgument<WebCore::FourCC>::toString):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::validateDepthStencil):
- platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
(WebCore::CDMPrivateMediaSourceAVFObjC::parseKeySystem):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):
- platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::storagePath const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::streamSession):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
- platform/mac/DataDetectorHighlight.mm:
(WebCore::DataDetectorHighlight::fadeIn):
(WebCore::DataDetectorHighlight::fadeOut):
- platform/mac/PasteboardMac.mm:
- platform/mac/PlatformEventFactoryMac.mm:
(WebCore::keyIdentifierForKeyEvent):
(WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):
- platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::PlatformPasteboard::write):
(WebCore::createPasteboardItem):
- platform/mac/StringUtilities.mm:
(WebCore::wildcardRegexPatternString):
- platform/mac/ThreadCheck.mm:
(WebCoreReportThreadViolation):
- platform/mac/UserAgentMac.mm:
(WebCore::standardUserAgentWithApplicationName):
- platform/network/ResourceErrorBase.cpp:
- platform/network/ResourceErrorBase.h:
- platform/network/cocoa/RangeResponseGenerator.mm:
(WebCore::synthesizedResponseForRange):
- rendering/RenderThemeMac.mm:
(WebCore::iconForAttachment):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- svg/SVGFilterElement.h:
- svg/SVGFilterPrimitiveStandardAttributes.h:
- svg/SVGLinearGradientElement.h:
- svg/SVGMarkerElement.h:
- svg/SVGMaskElement.h:
- svg/SVGPathSegImpl.h:
- svg/SVGRadialGradientElement.h:
- svg/properties/SVGPropertyTraits.h:
(WebCore::SVGPropertyTraits<bool>::toString):
- testing/MockContentFilterSettings.h:
(WebCore::MockContentFilterSettings::unblockURLHost):
- xml/XPathValue.h:
(WebCore::XPath::Value::Value):
- xml/XSLStyleSheet.h:
Source/WebGPU:
- WGSL/Parser.cpp:
(WGSL::Parser<Lexer>::parseGlobalDecl):
(WGSL::Parser<Lexer>::parseAttribute):
(WGSL::Parser<Lexer>::parseTypeDecl):
(WGSL::Parser<Lexer>::parseStorageClass):
(WGSL::Parser<Lexer>::parseAccessMode):
(WGSL::Parser<Lexer>::parseStatement):
(WGSL::Parser<Lexer>::parsePrimaryExpression):
(WGSL::Parser<Lexer>::parseCoreLHSExpression):
- WGSL/Token.cpp:
(WGSL::toString):
- WebGPU/Adapter.mm:
(WebGPU::Adapter::requestDevice):
- WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::unmap):
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::CommandEncoder::clearBuffer):
(WebGPU::CommandEncoder::finish):
- WebGPU/ComputePipeline.mm:
(WebGPU::createConstantValues):
(WebGPU::Device::createComputePipeline):
- WebGPU/Queue.mm:
(WebGPU::Queue::submit):
- WebGPU/Sampler.mm:
(WebGPU::Device::createSampler):
- WebGPU/ShaderModule.mm:
(WebGPU::earlyCompileShaderModule):
Source/WebKit:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::setPromisedDataForImage):
(WebKit::WebViewImpl::requestDOMPasteAccess):
Source/WebKitLegacy/mac:
- Misc/WebNSPasteboardExtras.mm:
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
Source/WTF:
- wtf/text/TextStream.h:
(WTF::TextStream::dumpProperty):
Tools:
- TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
(TEST):
- 10:09 AM Changeset in webkit [291862] by
-
- 2 edits in branches/safari-614.1.7-branch/Source/WebKit
Cherry-pick r291828. rdar://problem/90794287
After r291814, we need to create the INSTALL_PATH for the iOS sandbox files
https://bugs.webkit.org/show_bug.cgi?id=238351
Reviewed by Saam Barati.
We need to create the $(INSTALL_PATH) for the preprocessed iOS sandbox files.
Before r291814, the built-in Xcode copy step used ditto when copying the .sb
files thus creating $(INSTALL_PATH) and its intermediate directories.
That change set made it so that all WebKit iOS sandbox profile files are preprocessed
thus eliminating the Xcode copy step.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:09 AM Changeset in webkit [291861] by
-
- 10 edits4 moves in branches/safari-614.1.7-branch/Source/WebKit
Cherry-pick r291814. rdar://problem/90343926
Update Sandbox profiles for system content path
https://bugs.webkit.org/show_bug.cgi?id=238255
Reviewed by Per Arne Vollan.
Updated WebKit sandbox profiles to include system content path rule files when building with the system content path.
Changed the iOS profiles to be preprocessed to make these changes.
- DerivedSources-input.xcfilelist
- DerivedSources-output.xcfilelist
- DerivedSources.make:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.
- Shared/Sandbox/preferences.sb:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:04 AM Changeset in webkit [291860] by
-
- 9 edits in branches/safari-614.1.7-branch/Source
Versioning.
WebKit-7614.1.7.2
- 9:58 AM Changeset in webkit [291859] by
-
- 1 copy in tags/Safari-614.1.7.1
Tag Safari-614.1.7.1.
- 9:58 AM Changeset in webkit [291858] by
-
- 3 edits in trunk/LayoutTests
Unreviewed cleanup.
Fix some errors found by lint-test-expectations (which add noise to every test run).
- platform/ios/TestExpectations:
- platform/win/TestExpectations:
- 9:43 AM Changeset in webkit [291857] by
-
- 9 edits in branches/safari-614.1.7-branch/Source
Versioning.
WebKit-7614.1.7.1
- 9:28 AM Changeset in webkit [291856] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix non-unified build after r291779
- wasm/WasmExceptionType.h:
- 9:07 AM Changeset in webkit [291855] by
-
- 3 edits in trunk/Source/WebCore
Include object IDs in logs and assert in AXIsolatedTree and WebAccessibilityObjectWrapperBase
https://bugs.webkit.org/show_bug.cgi?id=238352
Reviewed by Chris Fleizach.
I've found this additional information to be useful in other branches I'm working on.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::removeSubtreeFromNodeMap):
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase detachIsolatedObject:]):
- 8:55 AM Changeset in webkit [291854] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix the internal iOS build after r291842
https://bugs.webkit.org/show_bug.cgi?id=238344
Apply a similar adjustment to
WKModelView.mm, as inARKitInlinePreviewModelPlayerMac.mm, when generating a
usdz file path.
- UIProcess/ios/WKModelView.mm:
(-[WKModelView createFileForModel:]):
- 8:52 AM Changeset in webkit [291853] by
-
- 2 edits in trunk/Source/WebCore
media/auto-play-web-audio-in-about-blank-iframe.html is failing on EWS MacOS Debug bot
https://bugs.webkit.org/show_bug.cgi?id=238315
Reviewed by Eric Carlson.
Make sure to reset the state to foreground.
Speculative fix as I was not able to reproduce locally.
- testing/Internals.cpp:
- 2:15 AM Changeset in webkit [291852] by
-
- 10 edits in trunk
Improve rebuilding of ruby subtrees
https://bugs.webkit.org/show_bug.cgi?id=238365
Source/WebCore:
Patch by Frédéric Wang <fwang@igalia.com> on 2022-03-25
Reviewed by Alan Bujtas.
Don't collapse generated Ruby subtree when tearing down children and take into account the
fact that anonymous before/after node can belong to a display: content child.
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers): Don't collapse.
- rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::lastRubyRun): Child can be also be an anonymous after content.
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild): When beforeChild is
an anonymous before/after, just fallback to appending to the last ruby run.
LayoutTests:
Patch by Frederic Wang <fred.wang@free.fr> on 2022-03-25
Reviewed by Alan Bujtas.
Expectation for rubyDOM-remove-text2.html is updated now that we don't collapse anonymous
RenderRubyBase nodes.
- platform/gtk/fast/ruby/rubyDOM-remove-text2-expected.txt: Updated.
- platform/ios/fast/ruby/rubyDOM-remove-text2-expected.txt: Updated.
- platform/mac/fast/ruby/rubyDOM-remove-text2-expected.txt: Updated.
- platform/win/fast/ruby/rubyDOM-remove-text2-expected.txt: Updated.
- platform/wincairo/fast/ruby/rubyDOM-remove-text2-expected.txt: Updated.
- platform/wpe/fast/ruby/rubyDOM-remove-text2-expected.txt: Updated.
- 1:54 AM Changeset in webkit [291851] by
-
- 22 edits in trunk
Introduce an SPI to get website data directory for origin and use it in API tests
https://bugs.webkit.org/show_bug.cgi?id=238269
Reviewed by Alex Christensen.
Source/WebKit:
There are a few tests using hardcoded website data paths to check if files are correcly modified by API.
Everytime we migrate website data (for example, if we start using general storage directory for IndexedDB
storage), we need to update these tests with new paths, otherwise the tests will check the wrong paths. Let's
just add an SPI so these tests can get the paths in use dynamically, which would avoid test breakage when
we do website data migration.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::websiteDataOriginDirectoryForTesting):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::moveData):
(WebKit::NetworkStorageManager::getOriginDirectory):
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::toStorageType const):
(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedPath):
(WebKit::OriginStorageManager::resolvedPath):
(WebKit::OriginStorageManager::resolvedLocalStoragePath): Deleted.
(WebKit::OriginStorageManager::resolvedIDBStoragePath): Deleted.
- NetworkProcess/storage/OriginStorageManager.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _originDirectoryForTesting:topOrigin:type:completionHandler:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::websiteDataOriginDirectoryForTesting):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::originDirectoryForTesting):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/IDBCheckpointWAL.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:
(runMultipleIndicesTestWithDatabase):
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:
(runTest):
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/StoreBlobThenDelete.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(runWebsiteDataStoreCustomPaths):
- 12:43 AM Changeset in webkit [291850] by
-
- 2 edits in trunk/Source/WebCore
Mismatched forward declaration of GraphicsContextState
https://bugs.webkit.org/show_bug.cgi?id=238359
Reviewed by Darin Adler.
Forward declaration should be for a class not a struct. Fixes a warning.
- platform/graphics/cairo/CairoOperations.h:
Mar 24, 2022:
- 10:02 PM Changeset in webkit [291849] by
-
- 11 edits in trunk/Source
Non-unified build fixes, late March 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=238358
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- bytecode/ExitKind.cpp:
- bytecode/ExitKind.h:
- heap/RootMarkReason.cpp:
- heap/RootMarkReason.h:
- runtime/CallData.h:
Source/WebCore:
- html/HTMLInputElement.cpp:
Source/WebKit:
- GPUProcess/GPUProcess.cpp:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
- 9:21 PM Changeset in webkit [291848] by
-
- 7 edits in trunk/Source
String::split() should take in a StringView instead of a String
https://bugs.webkit.org/show_bug.cgi?id=238355
Reviewed by Geoffrey Garen.
Source/WebCore:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::classList const):
Call the more efficient split(UChar) overload instead.
Source/WebKit:
- UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp:
Optimize by calling StringView::split() instead of String::split().
Source/WTF:
String::split() should take in a StringView instead of a String, to avoid unnecessary construction
of Strings in some instances.
- wtf/text/WTFString.cpp:
(WTF::String::splitInternal const):
(WTF::String::split const):
(WTF::String::splitAllowingEmptyEntries const):
- wtf/text/WTFString.h:
- 9:14 PM Changeset in webkit [291847] by
-
- 1 edit1 add in trunk/JSTests
Add additional reported regression tests to ensure multiline token's column offset is reset
https://bugs.webkit.org/show_bug.cgi?id=221548
Reviewed by Alexey Shvayka.
The bug is fixed and tested in https://github.com/WebKit/WebKit/commit/6d1e5d9498f24805988ad81ca3228588dd000a51.
But let's add reported regression tests to ensure that they will not reproduce.
- stress/multiline-token-error-column.js: Added.
(shouldBe):
(throw.new.Error):
- 9:08 PM Changeset in webkit [291846] by
-
- 15 edits2 adds in trunk
[Cocoa] REGRESSION(r281291): When accessibility bold is enabled, font-family:system-ui is supposed to be bold
https://bugs.webkit.org/show_bug.cgi?id=237817
<rdar://problem/88249241>
Reviewed by Alan Bujtas.
Source/WebCore:
Accessibility bold is supposed to cause the system font to be rendered as bold, even if the
value of the font-weight property is normal.
The way this is originally supposed to work is that, when accessibility bold is enabled and
software asks for the system font, the font reports to not be bold, but the metrics/contours
end up visually bold to the user. Font variations, however, are a lower-level interface to
the font, and don't abide by the facade. So, before r281291, we weren't applying font variations
to the system font, so the facade was maintained, but r281291 started applying variations to the
system font, thereby breaking this accessibility bold setting.
The solution is to re-implement accessibility bold when we apply font variations. At the point
where we apply the weight variation, we should determine if accessibility bold is in effect, and
if it is, artificially increase the weight of the created font according to the platform's
inflation amount. There are a few SPI functions which aid in this endeavor.
Test: fast/text/accessibility-bold.html
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontIsSystemFont):
(WebCore::normalizeGXWeight):
(WebCore::normalizeCTWeight):
(WebCore::denormalizeGXWeight):
(WebCore::denormalizeCTWeight):
(WebCore::overrideEnhanceTextLegibility):
(WebCore::setOverrideEnhanceTextLegibility):
(WebCore::shouldEnhanceTextLegibility):
(WebCore::preparePlatformFont):
(WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
(WebCore::FontCache::platformInit):
(WebCore::variationCapabilitiesForFontDescriptor):
(WebCore::normalizeWeight): Deleted.
(WebCore::denormalizeWeight): Deleted.
- platform/graphics/cocoa/FontCacheCoreText.h:
- testing/Internals.cpp:
(WebCore::Internals::setOverrideEnhanceTextLegibility):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebCore/PAL:
- pal/spi/cf/CoreTextSPI.h:
- pal/spi/cocoa/AccessibilitySupportSPI.h:
LayoutTests:
This test has <!-- webkit-test-runner [ runSingly=true ] --> so the testing
infrastructure for accessibility bold can be web-process-global.
- fast/text/accessibility-bold-expected-mismatch.html: Added.
- fast/text/accessibility-bold.html: Added.
- platform/mac/TestExpectations: Because this test relies on a webkit-test-runner
header, skip it on WK1.
- platform/ios/TestExpectations: Ditto.
- platform/mac-wk2/TestExpectations: Mark as PASS.
- platform/ios-wk2/TestExpectations: Ditto.
- 7:51 PM Changeset in webkit [291845] by
-
- 9 edits in branches/safari-613.1.17.1-branch/Source
Versioning.
WebKit-7613.1.17.1.13
- 7:40 PM Changeset in webkit [291844] by
-
- 1 copy in tags/Safari-613.1.17.1.12
Tag Safari-613.1.17.1.12.
- 7:07 PM Changeset in webkit [291843] by
-
- 2 edits in trunk/Source/WebKit
Require click-to-play for media in Captive Portals
https://bugs.webkit.org/show_bug.cgi?id=238353
<rdar://90575996>
Reviewed by Chris Dumez.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::adjustSettingsForCaptivePortal): Disable auto-play for media for
Captive Portals.
- 7:05 PM Changeset in webkit [291842] by
-
- 31 edits in trunk
FileSystem::pathByAppendingComponent() should take in StringViews instead of Strings
https://bugs.webkit.org/show_bug.cgi?id=238344
Reviewed by Geoff Garen.
Source/JavaScriptCore:
- jsc.cpp:
Source/WebCore:
- Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot const):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::diskUsage):
(WebCore::IDBServer::IDBServer::upgradedDatabaseDirectory):
- Modules/webdatabase/OriginLock.cpp:
(WebCore::lockFileNameForPath):
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
- platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::loadIndex):
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
(WebKit::PCM::Database::Database):
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::storagePath):
(WebKit::CacheStorage::Engine::initialize):
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::cachesListFilename):
(WebKit::CacheStorage::cachesOriginFilename):
(WebKit::CacheStorage::Caches::cachesSizeFilename):
- NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::blobPathForHash const):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::makeCachePath):
- NetworkProcess/storage/IDBStorageManager.cpp:
(WebKit::IDBStorageManager::idbStorageOriginDirectory):
- UIProcess/Inspector/win/InspectorResourceURLSchemeHandler.cpp:
(WebKit::InspectorResourceURLSchemeHandler::platformStartTask):
Source/WebKitLegacy/mac:
- Storage/WebDatabaseProvider.mm:
(WebDatabaseProvider::indexedDatabaseDirectoryPath):
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
Source/WTF:
FileSystem::pathByAppendingComponent() should take in StringViews instead of Strings, to avoid
unnecessary String constructor in many instances.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::pathByAppendingComponent):
- wtf/FileSystem.h:
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::pathByAppendingComponent):
Tools:
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 6:03 PM Changeset in webkit [291841] by
-
- 5 edits in trunk
calc(): Handle finite value with infinite step in round()
https://bugs.webkit.org/show_bug.cgi?id=238231
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-values/round-function-expected.txt:
Source/WebCore:
Add handling for finite value with infinite step in round().
- css/calc/CSSCalcOperationNode.cpp:
(WebCore::CSSCalcOperationNode::evaluateOperator):
- css/calc/CSSCalcPrimitiveValueNode.cpp:
(WebCore::CSSCalcPrimitiveValueNode::invert):
- 5:50 PM Changeset in webkit [291840] by
-
- 1 edit in branches/safari-613-branch/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
Apply patch. rdar://problem/90792723
- 5:41 PM Changeset in webkit [291839] by
-
- 1 copy in tags/Safari-614.1.7
Tag Safari-614.1.7.
- 5:15 PM Changeset in webkit [291838] by
-
- 1 copy in tags/Safari-614.1.5.17
Tag Safari-614.1.5.17.
- 5:13 PM Changeset in webkit [291837] by
-
- 29 edits in trunk
String's startsWith() / endsWith() / replace() should take in a StringView instead of a String
https://bugs.webkit.org/show_bug.cgi?id=238333
Reviewed by Geoff Garen.
Source/JavaScriptCore:
- runtime/FileBasedFuzzerAgent.cpp:
(JSC::FileBasedFuzzerAgent::getPredictionInternal):
- runtime/IntlRelativeTimeFormat.cpp:
(JSC::singularUnit):
- runtime/TemporalObject.cpp:
(JSC::singularUnit):
Source/WebCore:
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::shouldIgnoreIceCandidate):
- css/CSSImageValue.cpp:
(WebCore::ResolvedURL::isLocalURL const):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::screenshot):
- page/csp/ContentSecurityPolicySource.cpp:
(WebCore::ContentSecurityPolicySource::pathMatches const):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::getUnmangledInfoLog):
- platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::CDMFactoryFairPlayStreaming::supportsKeySystem):
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::supportsContainerType):
(WebCore::ImageDecoderGStreamer::canDecodeType):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::supportsType):
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::checkVaryingsPacking const):
- platform/network/ParsedRequestRange.cpp:
(WebCore::ParsedRequestRange::parse):
- platform/network/curl/CookieJarDB.cpp:
(WebCore::checkSecureCookie):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::handleAcceptedCandidateWithSoftSpaces):
Source/WTF:
String's startsWith() / endsWith() / replace() should take in a StringView instead of a String,
to avoid unnecessary String creation in many instances.
- wtf/text/AtomString.h:
- wtf/text/StringCommon.h:
(WTF::startsWith): Deleted.
(WTF::startsWithIgnoringASCIICase): Deleted.
(WTF::endsWith): Deleted.
(WTF::endsWithIgnoringASCIICase): Deleted.
- wtf/text/StringImpl.cpp:
(WTF::equalInner):
(WTF::StringImpl::startsWith const):
(WTF::StringImpl::startsWithIgnoringASCIICase const):
(WTF::StringImpl::hasInfixStartingAt const):
(WTF::StringImpl::endsWith):
(WTF::StringImpl::endsWithIgnoringASCIICase const):
(WTF::StringImpl::hasInfixEndingAt const):
(WTF::StringImpl::replace):
- wtf/text/StringImpl.h:
(WTF::StringImpl::startsWith const): Deleted.
(WTF::StringImpl::endsWith const): Deleted.
- wtf/text/StringView.h:
(WTF::startsWith):
(WTF::startsWithIgnoringASCIICase):
(WTF::endsWith):
(WTF::endsWithIgnoringASCIICase):
(WTF::String::replace):
(WTF::String::startsWith const):
(WTF::String::startsWithIgnoringASCIICase const):
(WTF::String::endsWith const):
(WTF::String::endsWithIgnoringASCIICase const):
(WTF::String::hasInfixStartingAt const):
(WTF::String::hasInfixEndingAt const):
(WTF::AtomString::startsWith const):
(WTF::AtomString::startsWithIgnoringASCIICase const):
(WTF::AtomString::endsWith const):
(WTF::AtomString::endsWithIgnoringASCIICase const):
- wtf/text/WTFString.h:
- 5:13 PM Changeset in webkit [291836] by
-
- 2 edits in branches/safari-614.1.5-branch/Source/WebKit
Cherry-pick r291828. rdar://problem/90794287
After r291814, we need to create the INSTALL_PATH for the iOS sandbox files
https://bugs.webkit.org/show_bug.cgi?id=238351
Reviewed by Saam Barati.
We need to create the $(INSTALL_PATH) for the preprocessed iOS sandbox files.
Before r291814, the built-in Xcode copy step used ditto when copying the .sb
files thus creating $(INSTALL_PATH) and its intermediate directories.
That change set made it so that all WebKit iOS sandbox profile files are preprocessed
thus eliminating the Xcode copy step.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:08 PM Changeset in webkit [291835] by
-
- 6 edits in trunk/Source
[GLib] Add user directories to WTF::FileSystem
https://bugs.webkit.org/show_bug.cgi?id=238348
Reviewed by Adrian Perez de Castro.
Source/WebKit:
Use the new FileSystem APIs instead of calling glib directly.
- UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:
(WebKit::inspectorWebsiteDataStore):
- UIProcess/glib/WebsiteDataStoreGLib.cpp:
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
Source/WTF:
Add FileSystem::userCacheDirectory and FileSystem::userDataDirectory which call into
g_get_user_cache_dir and g_get_user_data_dir respectively.
- wtf/FileSystem.h:
- wtf/glib/FileSystemGlib.cpp:
(WTF::FileSystemImpl::userCacheDirectory):
(WTF::FileSystemImpl::userDataDirectory):
- 5:01 PM Changeset in webkit [291834] by
-
- 1 copy in tags/Safari-614.1.5.5.2
Tag Safari-614.1.5.5.2.
- 4:59 PM Changeset in webkit [291833] by
-
- 2 edits in branches/safari-614.1.5.5-branch/Source/WebKit
Cherry-pick r291828. rdar://problem/90794287
After r291814, we need to create the INSTALL_PATH for the iOS sandbox files
https://bugs.webkit.org/show_bug.cgi?id=238351
Reviewed by Saam Barati.
We need to create the $(INSTALL_PATH) for the preprocessed iOS sandbox files.
Before r291814, the built-in Xcode copy step used ditto when copying the .sb
files thus creating $(INSTALL_PATH) and its intermediate directories.
That change set made it so that all WebKit iOS sandbox profile files are preprocessed
thus eliminating the Xcode copy step.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:57 PM Changeset in webkit [291832] by
-
- 6 edits in trunk/Source
[iOS] make
WKMouseGestureRecognizerofficially conform to_UIHoverEventRespondable
https://bugs.webkit.org/show_bug.cgi?id=238242
<rdar://problem/88828903>
Reviewed by Tim Horton.
Source/WebKit:
- UIProcess/ios/WKMouseGestureRecognizer.h:
- UIProcess/ios/WKMouseGestureRecognizer.mm:
- Platform/spi/ios/UIKitSPI.h:
Source/WTF:
- wtf/PlatformHave.h:
- 4:56 PM Changeset in webkit [291831] by
-
- 9 edits in branches/safari-614.1.5.5-branch/Source
Versioning.
WebKit-7614.1.5.5.2
- 4:53 PM Changeset in webkit [291830] by
-
- 8 edits in trunk
Fix serialization of nan, infinity, -infinity for calc()
https://bugs.webkit.org/show_bug.cgi?id=238288
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt:
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt:
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt:
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt:
Source/WebCore:
Update serializing of nan, infinity, -infinity to be in line with step 2 of:
https://drafts.csswg.org/css-values/#calc-serialize.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::formatNumberValue const):
(WebCore::CSSPrimitiveValue::formatIntegerValue const):
- 4:48 PM Changeset in webkit [291829] by
-
- 10 edits4 moves in branches/safari-614.1.5-branch/Source/WebKit
Cherry-pick r291814. rdar://problem/90343926
Update Sandbox profiles for system content path
https://bugs.webkit.org/show_bug.cgi?id=238255
Reviewed by Per Arne Vollan.
Updated WebKit sandbox profiles to include system content path rule files when building with the system content path.
Changed the iOS profiles to be preprocessed to make these changes.
- DerivedSources-input.xcfilelist
- DerivedSources-output.xcfilelist
- DerivedSources.make:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.
- Shared/Sandbox/preferences.sb:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:38 PM Changeset in webkit [291828] by
-
- 2 edits in trunk/Source/WebKit
After r291814, we need to create the INSTALL_PATH for the iOS sandbox files
https://bugs.webkit.org/show_bug.cgi?id=238351
Reviewed by Saam Barati.
We need to create the $(INSTALL_PATH) for the preprocessed iOS sandbox files.
Before r291814, the built-in Xcode copy step used ditto when copying the .sb
files thus creating $(INSTALL_PATH) and its intermediate directories.
That change set made it so that all WebKit iOS sandbox profile files are preprocessed
thus eliminating the Xcode copy step.
- WebKit.xcodeproj/project.pbxproj:
- 4:38 PM Changeset in webkit [291827] by
-
- 1 copy in tags/Safari-614.1.5.5.1
Tag Safari-614.1.5.5.1.
- 4:37 PM Changeset in webkit [291826] by
-
- 10 edits4 moves in branches/safari-614.1.5.5-branch/Source/WebKit
Cherry-pick r291814. rdar://problem/90343926
Update Sandbox profiles for system content path
https://bugs.webkit.org/show_bug.cgi?id=238255
Reviewed by Per Arne Vollan.
Updated WebKit sandbox profiles to include system content path rule files when building with the system content path.
Changed the iOS profiles to be preprocessed to make these changes.
- DerivedSources-input.xcfilelist
- DerivedSources-output.xcfilelist
- DerivedSources.make:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.
- Shared/Sandbox/preferences.sb:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:37 PM Changeset in webkit [291825] by
-
- 2 edits in trunk/Tools
[ews] Set bug_title property appropriately
https://bugs.webkit.org/show_bug.cgi?id=238342
Reviewed by Ryan Haddad.
- CISupport/ews-build/steps.py:
(BugzillaMixin._is_bug_closed):
- 4:29 PM Changeset in webkit [291824] by
-
- 4 edits in trunk/Source/WebCore
Web Inspector: Blank inspector in a page with container queries
https://bugs.webkit.org/show_bug.cgi?id=238338
Reviewed by Devin Rousso.
Because there is no CSSOM implementation for container queries, we are unable to inspect them currently.
However, we should be resilient to the absence of that implementation and expect that not all rules have a
matching CSSOM implementation, instead of just crashing when it happens. This patch only resolves crashes as the
result of the presence of container queries, and followup work will be done to actually plumb the correct
information to Web Inspector to show these rules.
- inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::collectFlatRules):
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::collectStyleSheets):
- style/InspectorCSSOMWrappers.cpp:
(WebCore::Style::InspectorCSSOMWrappers::collect):
- 4:23 PM Changeset in webkit [291823] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(STP142): "A JavaScript exception occured: Can't find variable: utils" from SafariDriver
https://bugs.webkit.org/show_bug.cgi?id=238335
Reviewed by Devin Rousso.
Following r289467, we can't just copy the WebDriver atom scripts to the build products, since they now need to
haveutils.jsin any script that uses theutilsnamespace. TheWebKit.frameworkcopy of these scripts are
later used while building safaridriver, so they need to include the scripts as well.
- WebKit.xcodeproj/project.pbxproj:
- 4:22 PM Changeset in webkit [291822] by
-
- 9 edits in branches/safari-614.1.5.5-branch/Source
Versioning.
WebKit-7614.1.5.5.1
- 4:14 PM Changeset in webkit [291821] by
-
- 6 edits in trunk/Source/WebKit
REGRESSION(r286590): Links with URL schemes are not clickable in Mail
https://bugs.webkit.org/show_bug.cgi?id=238262
<rdar://89145552>
Reviewed by Geoffrey Garen.
This feature requires access to the Launch Services daemon in Mail and other apps on iOS.
This patch is a partial revert of r286590.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::nonBrowserServices):
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 4:09 PM Changeset in webkit [291820] by
-
- 1 copy in branches/safari-614.1.5.5-branch
New branch.
- 3:57 PM Changeset in webkit [291819] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.17
- 3:43 PM Changeset in webkit [291818] by
-
- 4 edits in trunk
Disable RTCRtpScriptTransform in CaptivePortal mode
https://bugs.webkit.org/show_bug.cgi?id=238340
<rdar://87821636>
Reviewed by Chris Dumez.
Source/WebKit:
When displaying content in a captive portal, we should make sure we disable
WebRTCEncodedTransform.
Tests: TestWebKitAPI
- WebProcess/WebPage/WebPage.cpp:
(WebKit::adjustSettingsForCaptivePortal): Disable WebRTCEncodedTransform.
Tools:
Add a test that RTCRtpScriptTransform is properly disabled in
CaptivePortal mode.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 3:27 PM Changeset in webkit [291817] by
-
- 15 edits3 adds in trunk
DOM GPUP: paintSystemPreviewBadge (AR QuickLook element badge)
https://bugs.webkit.org/show_bug.cgi?id=238295
rdar://83580608
Reviewed by Dean Jackson.
Source/WebCore:
Add a new SystemImage subclass to deal with the ARKit badge, moving the custom drawing code under
RenderThemeIOS::paintSystemPreviewBadge() to ARKitBadgeSystemImage::draw().
To facilitate this, we must also have ARKitBadgeSystemImage wrap the input Image provided to
RenderThemeIOS::paintSystemPreviewBadge() so that the CoreImage filters are applied correctly.
Finally, we remove some use of
using namespace WebCorein WebSpeechRecognizerTask and
WebSpeechRecognizerTaskMock since it caused some unified build failures.
- Headers.cmake:
- Modules/speech/cocoa/WebSpeechRecognizerTask.mm:
(-[WebSpeechRecognizerTaskImpl initWithIdentifier:locale:doMultipleRecognitions:reportInterimResults:maxAlternatives:delegateCallback:]):
(-[WebSpeechRecognizerTaskImpl callbackWithTranscriptions:isFinal:]):
(-[WebSpeechRecognizerTaskImpl sendSpeechStartIfNeeded]):
(-[WebSpeechRecognizerTaskImpl sendSpeechEndIfNeeded]):
(-[WebSpeechRecognizerTaskImpl sendEndIfNeeded]):
(-[WebSpeechRecognizerTaskImpl speechRecognizer:availabilityDidChange:]):
(-[WebSpeechRecognizerTaskImpl speechRecognitionTask:didFinishSuccessfully:]):
(-[WebSpeechRecognizerTask initWithIdentifier:locale:doMultipleRecognitions:reportInterimResults:maxAlternatives:delegateCallback:]):
- Modules/speech/cocoa/WebSpeechRecognizerTaskMock.mm:
(-[WebSpeechRecognizerTaskMock initWithIdentifier:locale:doMultipleRecognitions:reportInterimResults:maxAlternatives:delegateCallback:]):
(-[WebSpeechRecognizerTaskMock audioSamplesAvailable:]):
(-[WebSpeechRecognizerTaskMock abort]):
- Modules/system-preview/ARKitBadgeSystemImage.h: Added.
(WebCore::ARKitBadgeSystemImage::encode const):
(WebCore::ARKitBadgeSystemImage::decode):
(isType):
- Modules/system-preview/ARKitBadgeSystemImage.mm: Added.
(WebCore::arKitBundle):
(WebCore::loadARKitPDFPage):
(WebCore::systemPreviewLogo):
(WebCore::ARKitBadgeSystemImage::draw const):
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/SystemImage.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawSystemImage):
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintSystemPreviewBadge):
(WebCore::arKitBundle): Deleted.
(WebCore::loadARKitPDFPage): Deleted.
(WebCore::systemPreviewLogo): Deleted.
Source/WebKit:
Make sure we restore the Image on the ARKitBadgeSystemImage before we attempt to draw it.
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawSystemImage):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Ref<SystemImage>>::encode):
(IPC::ArgumentCoder<Ref<SystemImage>>::decode):
LayoutTests:
The system-preview/badge.html test now passes reliably with DOM GPUP enabled,
which incidentally fixes bug 236922.
- platform/ios-wk2/TestExpectations:
- 3:22 PM Changeset in webkit [291816] by
-
- 3 edits2 adds in trunk
REGRESSION (Safari 15.4): Nonce from link isn't used when loading style sheet
https://bugs.webkit.org/show_bug.cgi?id=238014
<rdar://problem/90599352>
Reviewed by Brent Fulgham.
Source/WebCore:
In https://bugs.webkit.org/show_bug.cgi?id=179728 we implemented
nonce hiding from the DOM. It seems we missed once location
where we need to reference the element.nonce() instead of the
nonce attribute.
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
LayoutTests:
- http/tests/security/contentSecurityPolicy/stylesheet-allowed-with-nonce-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/stylesheet-allowed-with-nonce.py: Added.
- 2:55 PM WebKitGTK/2.36.x edited by
- (diff)
- 2:41 PM Changeset in webkit [291815] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] JSRemoteFunction thunk should materialize code-pointer
https://bugs.webkit.org/show_bug.cgi?id=238313
Reviewed by Mark Lam.
When invoking a JSRemoteFunction, we must first wrap the arguments passed to it.
The wrapping operation may trigger a GC, and GC can jettison JIT code. As a result,
even though we know that the target JSFunction has JIT code that we want to execute,
the JIT code may be jettisoned (while wrapping the arguments for it) before we get
to the call. This resulted in occasional crashes on the JSTests/stress/shadow-realm-evaluate.js test.
This patch fixes this by doing a null check on the JIT code just before calling it,
and if null (i.e. the JIT code has been jettisoned), re-materializing the JIT code
first before making the call.
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- jit/JITOperations.h:
- jit/ThunkGenerators.cpp:
(JSC::remoteFunctionCallGenerator):
- 2:39 PM Changeset in webkit [291814] by
-
- 10 edits4 moves in trunk/Source/WebKit
Update Sandbox profiles for system content path
https://bugs.webkit.org/show_bug.cgi?id=238255
Reviewed by Per Arne Vollan.
Updated WebKit sandbox profiles to include system content path rule files when building with the system content path.
Changed the iOS profiles to be preprocessed to make these changes.
- DerivedSources-input.xcfilelist
- DerivedSources-output.xcfilelist
- DerivedSources.make:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb: Removed.
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in: Copied from Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.
- Shared/Sandbox/preferences.sb:
- WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:59 PM WebKitGTK/2.36.x edited by
- (diff)
- 1:50 PM Changeset in webkit [291813] by
-
- 5 edits4 adds in trunk
Safari can't play video completely at bilibili.com
https://bugs.webkit.org/show_bug.cgi?id=236440
rdar://88761053
Reviewed by Jer Noble.
Source/WebCore:
Video frames were incorrectly evicted during a call to appendBuffer
as the Source Buffer incorrectly assumed a discontinuity was present.
When appending data to a source buffer, the MSE specs describe a method
to detect discontinuities in the Coded Frame Processing algorithm
(https://www.w3.org/TR/media-source/#sourcebuffer-coded-frame-processing)
step 6:
"
- If last decode timestamp for track buffer is set and decode timestamp is less than last decode timestamp:
OR
- If last decode timestamp for track buffer is set and the difference between decode timestamp and last decode timestamp is greater than 2 times last frame duration.
"
The issue being what defines the last frame duration.
Is it the frame last seen in the coded frame processing loop or the frame
whose presentation timestamp is just before the one we are currently
processing.
H264 and HEVC have a concept of b-frames: that is a frame that depends
on a future frame to be decoded.
Those frames are found in the container and can be identified by their
presentation timestamp higher than the frame following in decode order.
Those present a challenge as the frame prior the current one in
presentation order, may actually only be found several frames back in
decode order.
Bug 181891 attempted to fix a similar issue, and used the longest
"decode duration" as a workaround to detect discontinuity in the content.
It mentioned adopting the same technique as in Mozilla's MSE
implementation, but Mozilla also skip discontinuity detection within a
media segment (https://www.w3.org/TR/media-source/#media-segment which for
fMP4 is a single moof box) an approach that can't be achieved with
CoreMedia's AVStreamDataParser.
As mentioned in bug 181891, CoreMedia ignore the decode timestamps' delta
and juggles with the sample's duration so that there's no discontinuity
in the demuxed samples' presentation time, causing false positive in the
gap detection algorithm.
Bilibili uses HEVC content, and uses an encoding that generate lots
of b-frames, with a very wide sliding window (seen up to 12 frames).
By using the longest frame duration found in either presentation or
decode duration as threshold to identify a discontinuity, we can
properly parse the content and not incorrectly evict appended frames.
(As a side note, the use of HEVC with B-Frames is peculiar as not all
hardware support it.)
It is difficult to identify here if the issue is within the bilibili's
content or CoreMedia's output, though the responsibility more than
likely lies with bilibili.
Test: media/media-source/media-mp4-hevc-bframes.html
- platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::TrackBuffer::TrackBuffer):
(WebCore::SourceBufferPrivate::resetTrackBuffers):
(WebCore::SourceBufferPrivate::didReceiveSample):
- platform/graphics/SourceBufferPrivate.h:
LayoutTests:
- media/media-source/content/test-bframes-hevc-manifest.json: Added.
- media/media-source/content/test-bframes-hevc.mp4: Added.
- media/media-source/media-mp4-hevc-bframes-expected.txt: Added.
- media/media-source/media-mp4-hevc-bframes.html: Added.
- 12:53 PM Changeset in webkit [291812] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo] WCTileGrid should create tiles only for the inside of layer area
https://bugs.webkit.org/show_bug.cgi?id=238317
Reviewed by Don Olmstead.
The coverage rect returned by computeVisibleAndCoverageRect may be
bigger than the layer rect. Tiles should be paved only for the
intersection of the coverage rect and the layer rect.
- WebProcess/WebPage/wc/WCTileGrid.cpp:
(WebKit::WCTileGrid::tileRectFromPixelRect): Take the intersection
with the layer rect. Return an empty rect if the intersection is
empty.
- 12:39 PM Changeset in webkit [291811] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Remove slow codepath matching arithmetics in FontCascade::widthForSimpleText
https://bugs.webkit.org/show_bug.cgi?id=238306
Reviewed by Antti Koivisto.
By now if we measure some text using the fast codepath, we usually stay on this codepath for the rest
of the layout (i.e. preferred width computation uses the same fast codepath, and we also don't dynamically switch between modern and legacy).
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::widthForSimpleText const):
- 12:36 PM Changeset in webkit [291810] by
-
- 6 edits in trunk/Source/WebKit
[iOS] Disable unneeded code when content filtering is running in the Network process
https://bugs.webkit.org/show_bug.cgi?id=238332
Reviewed by Geoffrey Garen.
- Shared/Cocoa/LoadParametersCocoa.mm:
(WebKit::LoadParameters::platformEncode const):
(WebKit::LoadParameters::platformDecode):
- Shared/LoadParameters.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::addPlatformLoadParameters):
- UIProcess/WebProcessProxy.h:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- 11:52 AM Changeset in webkit [291809] by
-
- 6 edits1 add2 deletes in trunk/Source/WebKit
[XCBuild] WebKit: Use native headers + build rules for migrated headers
https://bugs.webkit.org/show_bug.cgi?id=238213
<rdar://problem/90172142>
Reviewed by Alexey Proskuryakov.
Replace the Make-based header migration script phase with a native project-based
representation in WebKit.xcodeproj.
The project now contains a 'Migrated Headers' group which lists the headers from
WebKitLegacy and WebCore that are copied to WebKit.framework during the build process. This
group must be kept in sync with the actual headers in WebKitLegacy, but since new headers
shouldn't really be added to WebKitLegacy this will be low-friction.
The preexisting postprocess-header-rule build rule is refactored to handle the
transformations needed for Migrated headers, which previous came from WebKitLegacy's
postprocess-header-rulescript or from one of the MigrateHeaders*.make files.
- Configurations/WebKit.xcconfig: Use EXCLUDED_SOURCE_FILE_NAMES to customize migrated
headers on mac vs. non-mac platforms.
- Scripts/postprocess-header-rule: Refactored to incorporate WebKitLegacy's postprocessing
steps, and to do less disk I/O, now that it's always invoked as a build rule and can do less
in-place editing. Local testing shows a ~15% speedup.
- Shared/API/Cocoa/WebKitLegacy.h: Added. Xcode's header maps forbid a header's name from
changing during the copy process, so we have to duplicate WebKitLegacy's umbrella header
instead of renaming it WebKit.h -> WebKitLegacy.h during the build.
- WebKit.xcodeproj/project.pbxproj: Added 'Migrated Headers' group and build rule.
Configured headers to always copy using XCBuild. Removed legacy-only header script phases.
- WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm: This file used unqualified
<HEADER.h> imports, which are not supported by Xcode's headermaps. Replaced with "HEADER.h".
- mac/MigrateHeadersFromWebKitLegacy.make: Removed, logic now lives in
mingrate-headers-rule.sh.
- mac/postprocess-framework-headers.sh: Removed.
- mac/replace-webkit-additions-includes.py: Refactored to use stdin and stdout rather than
editing in-place. Corresponds to refactors in postprocess-header-rule.
- 11:50 AM Changeset in webkit [291808] by
-
- 3 edits in trunk/Source/WebCore
FormDataConsumer callback happens more than once with an exception
https://bugs.webkit.org/show_bug.cgi?id=238091
In case of an error, it is not expected for the FormDataConsumer callback to happen
more than once with an exception. To avoid this, we introduce FormDataConsumer::didFail
which cancels/clears everything after reporting an error.
Reviewed by Youenn Fablet.
- Modules/fetch/FormDataConsumer.cpp:
(WebCore::FormDataConsumer::read):
(WebCore::FormDataConsumer::consumeFile):
(WebCore::FormDataConsumer::consumeBlob):
(WebCore::FormDataConsumer::didFail):
(WebCore::FormDataConsumer::cancel):
- Modules/fetch/FormDataConsumer.h:
(WebCore::FormDataConsumer::isCancelled):
- 11:16 AM Changeset in webkit [291807] by
-
- 36 edits4 deletes in trunk
Unreviewed, reverting r291789.
This revision caused 65+ new API failures on iOS debug
Reverted changeset:
"Release assert in Document::updateLayout() via
HTMLTextAreaElement::childrenChanged"
https://bugs.webkit.org/show_bug.cgi?id=224471
https://commits.webkit.org/r291789
- 11:15 AM Changeset in webkit [291806] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Remove reports for some sandbox violations on process launch
https://bugs.webkit.org/show_bug.cgi?id=238324
Reviewed by Geoffrey Garen.
Remove reports for some sandbox violations on process launch on macOS. These violations are not critical,
and are slowing down process launch. This patch also adds access to a mach syscall observed being in use.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 11:08 AM Changeset in webkit [291805] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Fix the watchOS build
https://bugs.webkit.org/show_bug.cgi?id=238337
Unreviewed.
- WebGPU/Texture.mm:
(WebGPU::Device::createTexture):
- 10:57 AM Changeset in webkit [291804] by
-
- 9 edits2 adds in trunk/Tools
[git-webkit] Install git-lfs
https://bugs.webkit.org/show_bug.cgi?id=238270
<rdar://problem/90708032>
Reviewed by Aakash Jain and Wenson Hsieh.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/requests_.py:
(Response.init): Accept binary content or text.
(Response.text): Decode binary content.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git): Add git lfs mocks.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:
(GitHub.init): Mock project release binaries.
(GitHub.request): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py: Add InstallGitLFS.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_git_lfs.py: Added.
(InstallGitLFS):
(InstallGitLFS.url): Return URL specific to the current platform.
(InstallGitLFS.install): Installgit lfsglobally on this machine.
(InstallGitLFS.parser): Installgit lfseven if it is already installed.
(InstallGitLFS.main): Checkgit lfsversion, install it if needed, and then rungit lfs install.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_git_lfs_unittest.py: Added.
(TestInstallGitLFS):
(TestInstallGitLFS.setUp):
(TestInstallGitLFS.test_svn):
(TestInstallGitLFS.test_remote_git):
(TestInstallGitLFS.test_url):
(TestInstallGitLFS.test_install):
(TestInstallGitLFS.test_configure):
(TestInstallGitLFS.test_no_op):
Canonical link: https://commits.webkit.org/248831@main
- 10:30 AM Changeset in webkit [291803] by
-
- 1 edit in branches/safari-613-branch/Source/WebCore/PAL/pal/spi/cocoa/AVFoundationSPI.h
Unreviewed build fix. rdar://problem/89972004
- 10:20 AM Changeset in webkit [291802] by
-
- 5 edits in trunk
PushAPI.firePushEventWithNoPagesTimeout fails in debug builds
https://bugs.webkit.org/show_bug.cgi?id=238309
Reviewed by Youenn Fablet.
Source/WebCore:
Export RegistrationDatabase::schemaVersion for tests to use.
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::databaseFilename):
(WebCore::cleanOldDatabases):
- workers/service/server/RegistrationDatabase.h:
Tools:
This test was dying on an assertion in debug builds because we were calling
terminateNetworkProcessWhileRegistrationIsStored with a brand new WKWebsiteDataStore, which
wasn't associated with an active NetworkProcess connection since it was a brand new object.
Fix this by using the existing data store object instead.
Additionally, terminateNetworkProcessWhileRegistrationIsStored was waiting on the wrong
filename, so I changed the test to reference the correct filename.
- TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
- 10:18 AM Changeset in webkit [291801] by
-
- 4 edits in trunk/LayoutTests
Unreviewed gardening.
- platform/ios-wk2/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 9:55 AM Changeset in webkit [291800] by
-
- 36 edits in trunk
String's find() / reverseFind() / replace() should take in a StringView instead of a String
https://bugs.webkit.org/show_bug.cgi?id=238287
Reviewed by Darin Adler.
Source/WebCore:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::decodeDatabaseName):
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::setValueCommon):
- page/UserContentURLPattern.cpp:
(WebCore::UserContentURLPattern::parse):
- platform/mediastream/CaptureDevice.h:
(WebCore::CaptureDevice::label const):
Source/WebKit:
- WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::searchWithGoogle):
Source/WebKitLegacy/win:
- WebCoreSupport/WebContextMenuClient.cpp:
(WebContextMenuClient::searchWithGoogle):
Source/WTF:
String's find() / reverseFind() / replace() should take in a StringView instead of a String
to avoid unnecessary String construction in many cases. We should probably do the same for
more String functions where we don't really need a String parameter, but those will be
addressed separately.
- wtf/text/AtomString.h:
- wtf/text/StringCommon.h:
(WTF::findCommon): Deleted.
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::find):
(WTF::StringImpl::findIgnoringASCIICase const):
(WTF::StringImpl::reverseFind):
(WTF::StringImpl::replace):
- wtf/text/StringImpl.h:
- wtf/text/StringView.h:
(WTF::findCommon):
(WTF::findIgnoringASCIICase):
(WTF::String::find const):
(WTF::String::findIgnoringASCIICase const):
(WTF::String::reverseFind const):
(WTF::String::contains const):
(WTF::String::containsIgnoringASCIICase const):
(WTF::String::replace):
(WTF::AtomString::find const):
(WTF::AtomString::findIgnoringASCIICase const):
(WTF::AtomString::contains const):
(WTF::AtomString::containsIgnoringASCIICase const):
- wtf/text/WTFString.h:
- 8:55 AM Changeset in webkit [291799] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Do not construct a TextRun for measuring a single whitespace when simplified content measuring can be used
https://bugs.webkit.org/show_bug.cgi?id=238228
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::computeInlineTextItemWidths): Just simply call TextUtil::width
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::spaceWidth):
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::spaceWidth): Deleted.
- layout/formattingContexts/inline/text/TextUtil.h:
- 8:53 AM Changeset in webkit [291798] by
-
- 7 edits in trunk/Source/WebCore
AX: Remove firstChild, lastChild, previousSibling, nextSibling, nextSiblingUnignored, and previousSiblingUnignored from the AXCoreObject interface
https://bugs.webkit.org/show_bug.cgi?id=238267
Reviewed by Andres Gonzalez.
All of these except nextSibling and previousSibling are ASSERT_NOT_REACHED no-ops
in AXIsolatedObject. We do compute next and previous sibling for isolated objects,
but they're only used in one place (appendChildrenToArray). Usage of these functions
in appendChildrenToArray doesn't make sense for isolated objects, as it would require
the isolated object to be ignored for them to be called, and we should never have created an
isolated object from an ignored live object.
Dovetailing from that, this patch also removes AXPropertyName::IsAccessibilityIgnored,
since this should always be false for isolated objects. ASSERTs have been added in a
few places to assure this is the case.
- accessibility/AccessibilityObject.cpp:
(WebCore::Accessibility::appendChildrenToArray):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::firstChild const):
(WebCore::AccessibilityObject::lastChild const):
(WebCore::AccessibilityObject::previousSibling const):
(WebCore::AccessibilityObject::nextSibling const):
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::firstChild const): Deleted.
(WebCore::AXIsolatedObject::lastChild const): Deleted.
(WebCore::AXIsolatedObject::nextSiblingUnignored const): Deleted.
(WebCore::AXIsolatedObject::previousSiblingUnignored const): Deleted.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
Remove AXPropertyName::NextSibling, AXPropertyName::PreviousSibling,
AXPropertyName::IsAccessibilityIgnored.
- 8:50 AM Changeset in webkit [291797] by
-
- 16 edits2 copies40 adds in trunk/LayoutTests
Update css/css-sizing/contain-intrinsic-size tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=238312
Reviewed by Rob Buis.
LayoutTests/imported/w3c:
Update the contain-intrinsic-size tests to wpt commit: 7c61a4594a95682531367b6956d1c37f8b8fd486
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/animation/contain-intrinsic-size-interpolation-expected.txt:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/animation/contain-intrinsic-size-interpolation.html:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-001-expected.txt: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-001.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-002-expected.txt: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-002.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-003-expected.txt: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-003.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-004-expected.txt: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-004.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-005-expected.txt: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-005.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-001-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-002-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-003-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-004-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-005-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-006-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-007-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-008-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-009-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-010-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-011-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-012-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-013-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-014-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-015-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-016-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-017-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-018-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-019-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-020-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-021-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-022-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-023-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-024-ref.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-025-expected.html:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-025-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-025-expected.html.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-026-expected.html:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-026-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-026-expected.html.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-027-expected.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-027.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-001-expected.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-001.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-002-expected.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-logical-002.html: Added.
- web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-computed-expected.txt:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-computed.html:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-invalid-expected.txt:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-invalid.html:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-valid-expected.txt:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-valid.html:
- web-platform-tests/css/css-sizing/contain-intrinsic-size/w3c-import.log:
LayoutTests:
- 8:29 AM Changeset in webkit [291796] by
-
- 2 edits in trunk/Source/WebCore
MatchedDeclarationCache key is already hashed
https://bugs.webkit.org/show_bug.cgi?id=238321
Reviewed by Alan Bujtas.
- style/MatchedDeclarationsCache.h:
- 8:03 AM Changeset in webkit [291795] by
-
- 2 edits in trunk/Tools
Unreviewed, update outdated comment after r291787.
- TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::TEST):
- 7:15 AM Changeset in webkit [291794] by
-
- 3 edits in trunk/Source/WebCore
[IFC][Integration] RenderText::computeCanUseSimplifiedTextMeasuring should take first-line style into account
https://bugs.webkit.org/show_bug.cgi?id=238243
Reviewed by Antti Koivisto.
This is in preparation for using the fast text measuring codepath for legacy line layout content.
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- rendering/RenderText.cpp:
(WebCore::RenderText::computeCanUseSimplifiedTextMeasuring const):
- 6:47 AM Changeset in webkit [291793] by
-
- 5 edits in trunk/Source/WebCore
Devirtualize RenderText::width
https://bugs.webkit.org/show_bug.cgi?id=238285
Reviewed by Antti Koivisto.
RenderCombineText handling is moved to RenderText (we already handle combine text in RenderText::widthFromCache).
- rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::combineTextIfNeeded): These are all non-text-combine callsites.
(WebCore::RenderCombineText::width const): Deleted.
- rendering/RenderCombineText.h:
- rendering/RenderText.cpp:
(WebCore::combineTextWidth): RenderCombineText::combinedTextWidth returns the same value as RenderCombineText::width.
(WebCore::RenderText::widthFromCache const):
(WebCore::RenderText::width const):
- rendering/RenderText.h:
- 6:04 AM Changeset in webkit [291792] by
-
- 4 edits in trunk/Source/WebKit
[GTK] REGRESSION(r291613): Build broken with USE_GTK4 + ENABLE_ACCESSIBILITY
https://bugs.webkit.org/show_bug.cgi?id=238320
Reviewed by Carlos Garcia Campos.
Guard remaning uses of ATK when building with GTK4, where ATK is not used at all.
- UIProcess/API/glib/WebKitWebViewAccessible.cpp:
- UIProcess/API/glib/WebKitWebViewAccessible.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseDispose):
- 5:44 AM Changeset in webkit [291791] by
-
- 4 edits in trunk
REGRESSION (r287807): WEBGL_multi_draw validation rejecting valid arguments
https://bugs.webkit.org/show_bug.cgi?id=238239
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-24
Reviewed by Darin Adler.
Source/WebCore:
Fix off-by-one error causing full buffer multidraws to be
marked as invalid.
Enable the newer WebGL conformance tests that test this.
- html/canvas/WebGLMultiDraw.cpp:
(WebCore::WebGLMultiDraw::validateOffset):
LayoutTests:
Enable the newer WebGL conformance tests that test this, marked
Slow as they take a while to run.
- 5:18 AM Changeset in webkit [291790] by
-
- 5 edits in trunk/Source/WebCore
Allow styles with appearance in matched declaration cache
https://bugs.webkit.org/show_bug.cgi?id=238247
Reviewed by Antoine Quint.
Improve cache efficiency by allowing styles with appearance (typically form controls) to be cached.
In Speedometer this improves the cache hit rate ~75% -> 94%.
- style/MatchedDeclarationsCache.cpp:
(WebCore::Style::MatchedDeclarationsCache::isCacheable):
Remove appearance check.
(WebCore::Style::MatchedDeclarationsCache::add):
Also cache the UA style for styles with appearance.
(WebCore::Style::MatchedDeclarationsCache::remove):
- style/MatchedDeclarationsCache.h:
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::applyMatchedProperties):
Also simplify the case where inherited properties affect resolution of other properties by
kicking out the existing entry. This also makes the second attempt cacheable.
- style/StyleResolver.h:
- 1:33 AM Changeset in webkit [291789] by
-
- 36 edits1 copy4 adds in trunk
Release assert in Document::updateLayout() via HTMLTextAreaElement::childrenChanged
https://bugs.webkit.org/show_bug.cgi?id=224471
Reviewed by Ryosuke Niwa.
Source/WebCore:
Executing some editing commands in a text area might force the recomputation of things
like caret or the visible selection position and extent. Under some circumstances (like
when the text area has no content and children) we might end up trying to update layout
when it is not safe as a side effect of updating the caret.
In order to fix that, we can switch to a model in which we update the selection asynchronously
in the case of having a non-user triggered change. That way we don't do it inside
a restricted layout scope.
The App Highlight restoration code had to be tuned as well (when restoring and scrolling to reveal
a Quick Note on iOS MacOS). It uses TemporarySelectionChange to select and scroll to reveal the highlight
range; the code assumed that this scrolling happens synchronously, since it reverts the selection to
the original range at the end ofAppHighlightStorage::attemptToRestoreHighlightAndScrollwhen the
TemporarySelectionChange falls out of scope. That is however no longer the case. Actually no scrolling
happened after this patch because we end up only scheduling the appearance update timer before setting
the selection back to the original state withSelectionRevealMode::DoNotReveal. Since this only happens
when the user interacts in the Notes app, it seems sensible to consider it as a user triggered event.
- Modules/highlight/AppHighlightStorage.cpp:
(WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll): Consider the selection change
as user triggered so scrolling actually happens.
- editing/Editor.cpp:
(WebCore::TemporarySelectionChange::setSelection): Check the UserTriggered flags for default options.
- editing/Editor.h: Added a new UserTriggered flag.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelection): Call scheduleAppearanceUpdateAfterStyleChange() for
IsUserTriggered changes.
(WebCore::FrameSelection::updateSelectionAppearanceNow): Renamed from updateSelectionByUpdatingLayoutOrStyle.
It does not need the Document& attribute because it was always called with m_document.
(WebCore::FrameSelection::absoluteCaretBounds): Replaced updateSelectionByUpdatingLayoutOrStyle with
updateSelectionAppearanceNow().
(WebCore::FrameSelection::setCaretVisibility): Ditto.
(WebCore::FrameSelection::selectionBounds const): Ditto.
(WebCore::FrameSelection::revealSelection): Call updateSelectionAppearanceNow().
(WebCore::FrameSelection::updateAppearanceIfRevealingSelectionIsNeeded): New method.
(WebCore::updateSelectionByUpdatingLayoutOrStyle): Deleted.
- editing/FrameSelection.h:
- page/EventHandler.cpp:
(WebCore::setSelectionIfNeeded): Set the UserTriggered flag for calling setSelection().
- page/Page.cpp:
(WebCore::Page::doAfterUpdateRendering): Call updateAppearanceAfterLayout().
LayoutTests:
Moved some tests out of the text-based-repaint.js model because selection is now updated
and revealed asynchronously in the case of non-user triggered changes. The problem is that
by the time the repaint rects are queried the update has not happened yet. That's why
the tests were modified so that we wait until the repaint happens.
Same situation for other tests that do not involve repaint rects but trigger accesibility
tree updates. We must ensure that we let the notification be thrown before checking whether or
not has been emited. As it's done asynchronously we must let the main thread run before checking.
Last but not least, some of the tests are using setTimeout() instead of requestAnimationFrame()
because the results with the latter were not as reliable under stress/debug conditions.
- accessibility/mac/selection-boundary-userinfo.html:
- accessibility/mac/selection-change-userinfo.html:
- accessibility/mac/selection-value-changes-for-aria-textbox.html:
- editing/selection-with-absolute-positioned-empty-content.html:
- fast/forms/textarea-scrolled-endline-caret.html:
- fast/repaint/selection-gap-absolute-child-expected.txt:
- fast/repaint/selection-gap-absolute-child.html:
- fast/repaint/selection-gap-flipped-absolute-child-expected.txt:
- fast/repaint/selection-gap-flipped-absolute-child.html:
- fast/repaint/selection-gap-transformed-absolute-child-expected.txt:
- fast/repaint/selection-gap-transformed-absolute-child.html:
- fast/repaint/selection-gap-transformed-fixed-child-expected.txt:
- fast/repaint/selection-gap-transformed-fixed-child.html:
- fast/repaint/selection-paint-invalidation-expected.txt:
- fast/repaint/selection-ruby-rl-expected.txt:
- fast/repaint/selection-ruby-rl.html:
- fast/repaint/text-selection-overflow-hidden-expected.txt:
- fast/repaint/text-selection-overflow-hidden.html:
- platform/gtk/TestExpectations:
- platform/gtk/fast/repaint/selection-ruby-rl-expected.txt: Copied from LayoutTests/fast/repaint/selection-ruby-rl-expected.txt.
- platform/gtk/fast/repaint/text-selection-overflow-hidden-expected.txt:
- platform/mac-catalina-wk1/fast/repaint/focus-setting-selection-syncronizing-not-clearing-expected.txt: Added.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk1/fast/repaint/4776765-expected.txt: Added.
- platform/mac-wk1/accessibility/mac/focus-setting-selection-syncronizing-not-clearing-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005-expected.txt:
- platform/mac/TestExpectations:
- platform/win/fast/repaint/4776765-expected.txt: Added.
- platform/win/fast/repaint/selection-gap-fixed-child-expected.txt:
- platform/win/fast/repaint/selection-ruby-rl-expected.txt:
- platform/win/fast/repaint/text-selection-overflow-hidden-expected.txt:
Mar 23, 2022:
- 11:32 PM Changeset in webkit [291788] by
-
- 48 edits in trunk/Source/WebCore
setNeedsLayout() should not be called when changing the SVG properties
https://bugs.webkit.org/show_bug.cgi?id=230296
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-23
Reviewed by Said Abou-Hallawa.
Make SVG not call setNeedsLayout() from outside RenderTreeUpdater::updateRenderTree() when an attribute changes.
This ensures there will not be a dirty rendering tree immediately after updating it.
The patch also tries to avoid invalidate wording since this is quite generic.
Based on the initial patch by Said Abou-Hallawa.
- dom/ElementData.h:
(WebCore::ElementData::svgResourcesInAncestorChainAreDirty const):
(WebCore::ElementData::setSVGResourcesInAncestorChainAreDirty const):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRenderTree):
- svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::applyResultsToTarget):
- svg/SVGClipPathElement.cpp:
(WebCore::SVGClipPathElement::svgAttributeChanged):
(WebCore::SVGClipPathElement::childrenChanged):
- svg/SVGComponentTransferFunctionElement.cpp:
(WebCore::SVGComponentTransferFunctionElement::svgAttributeChanged):
- svg/SVGElement.cpp:
(WebCore::SVGElement::setSVGResourcesInAncestorChainAreDirty):
(WebCore::SVGElement::invalidateSVGResourcesInAncestorChainIfNeeded):
- svg/SVGElement.h:
- svg/SVGElementInlines.h:
(WebCore::SVGElement::setPresentationalHintStyleIsDirty):
- svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::svgAttributeChanged):
- svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::svgAttributeChanged):
- svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::svgAttributeChanged):
- svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::setOrder):
(WebCore::SVGFEConvolveMatrixElement::setKernelUnitLength):
(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):
- svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
- svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
- svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::setStdDeviation):
(WebCore::SVGFEDropShadowElement::svgAttributeChanged):
- svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::setStdDeviation):
(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::buildPendingResource):
(WebCore::SVGFEImageElement::svgAttributeChanged):
- svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::childrenChanged):
- svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::svgAttributeChanged):
- svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::setRadius):
(WebCore::SVGFEMorphologyElement::svgAttributeChanged):
- svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::svgAttributeChanged):
- svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::svgAttributeChanged):
- svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::svgAttributeChanged):
- svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::childrenChanged):
- svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
(WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilterPrimitiveParent):
(WebCore::invalidateFilterPrimitiveParent): Deleted.
- svg/SVGFilterPrimitiveStandardAttributes.h:
(WebCore::SVGFilterPrimitiveStandardAttributes::invalidate): Deleted.
- svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
- svg/SVGGeometryElement.cpp:
(WebCore::SVGGeometryElement::svgAttributeChanged):
- svg/SVGGradientElement.cpp:
(WebCore::SVGGradientElement::svgAttributeChanged):
(WebCore::SVGGradientElement::childrenChanged):
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::svgAttributeChanged):
- svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged):
- svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
- svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::svgAttributeChanged):
- svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::svgAttributeChanged):
(WebCore::SVGMarkerElement::childrenChanged):
- svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::childrenChanged):
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
- svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::childrenChanged):
- svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::svgAttributeChanged):
- svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::svgAttributeChanged):
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::updateCurrentTranslate):
(WebCore::SVGSVGElement::svgAttributeChanged):
- svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::svgAttributeChanged):
- svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::svgAttributeChanged):
- svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::svgAttributeChanged):
- svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::svgAttributeChanged):
- svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::svgAttributeChanged):
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged):
- svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::svgAttributeChanged):
- 11:27 PM Changeset in webkit [291787] by
-
- 10 edits in trunk
Inline String(ASCIILiteral) constructor so the compiler can optimize out strlen()
https://bugs.webkit.org/show_bug.cgi?id=238162
Reviewed by Geoffrey Garen.
I have verified using a profiler that strlen() is no longer called under String::String(WTF::ASCIILiteral)
or StringImpl::createFromLiteral(WTF::ASCIILiteral) when running Speedometer.
- wtf/text/StringImpl.cpp:
- wtf/text/StringImpl.h:
(WTF::StringImpl::createFromLiteral):
- wtf/text/WTFString.cpp:
- wtf/text/WTFString.h:
(WTF::String::String):
- 11:25 PM Changeset in webkit [291786] by
-
- 7 edits in trunk/Source
Add logging for LocalStorage and IndexedDB data migration
https://bugs.webkit.org/show_bug.cgi?id=238169
Reviewed by Chris Dumez.
Source/WebCore:
- platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::moveDatabaseFile):
- platform/sql/SQLiteFileSystem.h:
Source/WebKit:
- NetworkProcess/storage/IDBStorageManager.cpp:
(WebKit::migrateOriginDataImpl):
(WebKit::IDBStorageManager::migrateOriginData):
- NetworkProcess/storage/IDBStorageManager.h:
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath):
- 10:33 PM Changeset in webkit [291785] by
-
- 4 edits in trunk
[JSC] Fix remoteFunctionCallGenerator on MIPS
https://bugs.webkit.org/show_bug.cgi?id=238274
Patch by Geza Lore <Geza Lore> on 2022-03-23
Reviewed by Yusuke Suzuki.
JSTests:
- stress/shadow-realm-evaluate.js:
Source/JavaScriptCore:
Eliminate register conflict (nonArgGPR0 == regT4, which is used in
valueRegs)
- jit/ThunkGenerators.cpp:
(JSC::remoteFunctionCallGenerator):
- 9:35 PM Changeset in webkit [291784] by
-
- 16 edits in trunk
Have MiniBrowser shows the GPU Process pid in its title bar
https://bugs.webkit.org/show_bug.cgi?id=238286
Reviewed by Tim Horton.
Source/WebKit:
Expose _gpuProcessIdentifier on WKWebView as SPI. In order to support KVO for this, we need
to pass gpuProcessDidFinishLaunching() all the way from
GPUProcessProxy::didFinishLaunching() to PageClientImplCocoa. This KVO isn't accurate (the
"willChange" fires after the new pid is available) but for SPI it's good enough.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _gpuProcessIdentifier]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::gpuProcessDidFinishLaunching):
(WebKit::PageClientImplCocoa::gpuProcessDidExit):
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didFinishLaunching):
- UIProcess/PageClient.h:
(WebKit::PageClient::gpuProcessDidFinishLaunching):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::gpuProcessIdentifier const):
(WebKit::WebPageProxy::gpuProcessDidFinishLaunching):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::gpuProcessDidFinishLaunching):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::gpuProcessDidFinishLaunching):
- UIProcess/WebProcessProxy.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::gpuProcessDidExit):
Tools:
KVO-observe the WKWebView's _gpuProcessIdentifier property and include it in the
window title.
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController updateTitle:]):
(-[WK2BrowserWindowController observeValueForKeyPath:ofObject:change:context:]):
- 9:17 PM Changeset in webkit [291783] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Bump up fuzzy tolerance on css-backgrounds/background-gradient-subpixel-fills-area.html
https://bugs.webkit.org/show_bug.cgi?id=238307
Unreviewed test gardening.
- web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html:
- 8:45 PM Changeset in webkit [291782] by
-
- 6 edits in trunk
Add off-by-default experimental feature for app store attribution
https://bugs.webkit.org/show_bug.cgi?id=238294
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-23
Reviewed by John Wilander.
Source/WebCore:
In r291735 I landed a way to give SKAdNetwork a way to private report app purchase attribution
which isn't implemented yet. Turn it off in WebKit until the time is right.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurementForSKAdNetwork const):
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- 7:48 PM Changeset in webkit [291781] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Fix the non-macOS build
https://bugs.webkit.org/show_bug.cgi?id=238304
Unreviewed.
Some texture formats are only available on macOS.
- WebGPU/Texture.mm:
(WebGPU::pixelFormat):
- 7:28 PM Changeset in webkit [291780] by
-
- 4 edits in trunk/Source/WebKit
REGRESSION (248692@main?): [iOS] ASSERTION FAILED: m_layer->owner()->platformCALayerDelegatesDisplay(m_layer) in WebKit::RemoteLayerBackingStore::paintContents()
https://bugs.webkit.org/show_bug.cgi?id=238277
<rdar://problem/90715046>
Reviewed by Tim Horton.
Empty backing store (height or width of zero) never need display; ImageBuffer allocation
with empty sizes always returns null anyway.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::needsDisplay const):
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay):
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay):
- 6:40 PM Changeset in webkit [291779] by
-
- 453 edits in trunk/Source
Prepare JSC for making the String(const char*) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=238264
Reviewed by Geoff Garen.
Source/JavaScriptCore:
Prepare JSC for making the String(const char*) constructor explicit. Making this constructor
explicit helps catch many instances where we're constructing a String from a literal but we
are missing the ""_s suffix.
- API/JSAPIGlobalObject.cpp:
- API/JSAPIGlobalObject.mm:
(JSC::computeValidImportSpecifier):
(JSC::JSAPIGlobalObject::moduleLoaderFetch):
- API/JSAPIValueWrapper.cpp:
- API/JSAPIWrapperObject.mm:
- API/JSCallbackConstructor.cpp:
- API/JSCallbackFunction.cpp:
- API/JSCallbackObject.cpp:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
- API/JSScript.mm:
(-[JSScript readCache]):
- API/JSTypedArray.cpp:
(JSObjectMakeTypedArrayWithArrayBuffer):
(JSObjectMakeTypedArrayWithArrayBufferAndOffset):
- API/JSValue.mm:
(createStructHandlerMap):
(handerForStructTag):
- API/JSWrapperMap.mm:
(allocateConstructorForCustomClass):
- API/ObjCCallbackFunction.mm:
(JSC::ObjCCallbackFunctionImpl::name):
- API/glib/JSAPIWrapperGlobalObject.cpp:
- API/glib/JSAPIWrapperObjectGLib.cpp:
- API/glib/JSCCallbackFunction.cpp:
- API/tests/JSONParseTest.cpp:
(testJSONParse):
- bindings/ScriptFunctionCall.cpp:
(Deprecated::ScriptCallArgumentHandler::appendArgument):
- bytecode/CodeBlock.cpp:
- bytecode/EvalCodeBlock.cpp:
- bytecode/ExecutableToCodeBlockEdge.cpp:
- bytecode/ExitKind.cpp:
(JSC::exitKindToString):
- bytecode/ExitKind.h:
- bytecode/FunctionCodeBlock.cpp:
- bytecode/ModuleProgramCodeBlock.cpp:
- bytecode/ProgramCodeBlock.cpp:
- bytecode/UnlinkedCodeBlock.cpp:
- bytecode/UnlinkedEvalCodeBlock.cpp:
- bytecode/UnlinkedFunctionCodeBlock.cpp:
- bytecode/UnlinkedFunctionExecutable.cpp:
- bytecode/UnlinkedModuleProgramCodeBlock.cpp:
- bytecode/UnlinkedProgramCodeBlock.cpp:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitHasPrivateBrand):
(JSC::BytecodeGenerator::emitCheckPrivateBrand):
(JSC::BytecodeGenerator::emitReturn):
- bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitSaveComputedFieldName):
(JSC::BaseDotNode::emitGetPropertyValue):
(JSC::BaseDotNode::emitPutProperty):
(JSC::PostfixNode::emitDot):
(JSC::DeleteBracketNode::emitBytecode):
(JSC::DeleteDotNode::emitBytecode):
(JSC::PrefixNode::emitDot):
(JSC::InstanceOfNode::emitBytecode):
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::functionName const):
- debugger/DebuggerScope.cpp:
- heap/HeapSnapshotBuilder.cpp:
(JSC::HeapSnapshotBuilder::json):
- heap/RootMarkReason.cpp:
(JSC::rootMarkReasonDescription):
- heap/RootMarkReason.h:
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::getInternalProperties):
- inspector/JSInjectedScriptHostPrototype.cpp:
- inspector/JSJavaScriptCallFrame.cpp:
- inspector/JSJavaScriptCallFramePrototype.cpp:
- inspector/agents/InspectorAuditAgent.cpp:
(Inspector::InspectorAuditAgent::run):
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::getScriptSource):
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::getRemoteObject):
- jit/ExecutableAllocator.cpp:
(JSC::dumpJITMemory):
- jit/JITCode.cpp:
(JSC::JITCode::typeName):
- jit/JITCode.h:
- jit/JITOperations.cpp:
(JSC::getWrappedValue):
- jsc.cpp:
(toCString):
(JSC_DEFINE_HOST_FUNCTION):
(runWithOptions):
(CommandLine::parseArguments):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleVarargsCheckpoint):
- parser/Lexer.cpp:
(JSC::Lexer<T>::scanRegExp):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parsePrimaryExpression):
- runtime/AbstractModuleRecord.cpp:
- runtime/AggregateErrorConstructor.cpp:
- runtime/ArrayConstructor.cpp:
- runtime/ArrayIteratorPrototype.cpp:
- runtime/ArrayPrototype.cpp:
- runtime/AsyncFromSyncIteratorPrototype.cpp:
- runtime/AsyncFunctionConstructor.cpp:
- runtime/AsyncFunctionPrototype.cpp:
- runtime/AsyncGeneratorFunctionConstructor.cpp:
- runtime/AsyncGeneratorFunctionPrototype.cpp:
- runtime/AsyncGeneratorPrototype.cpp:
- runtime/AsyncIteratorPrototype.cpp:
- runtime/AtomicsObject.cpp:
- runtime/BigIntConstructor.cpp:
- runtime/BigIntObject.cpp:
- runtime/BigIntPrototype.cpp:
- runtime/BooleanConstructor.cpp:
- runtime/BooleanObject.cpp:
- runtime/BooleanPrototype.cpp:
- runtime/BytecodeCacheError.cpp:
(JSC::BytecodeCacheError::StandardError::message const):
- runtime/CallData.cpp:
(JSC::call):
- runtime/CallData.h:
- runtime/ClassInfo.h:
- runtime/ClonedArguments.cpp:
- runtime/CodeCache.cpp:
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
- runtime/Completion.cpp:
(JSC::checkModuleSyntax):
(JSC::createSymbolForEntryPointModule):
- runtime/ConsoleObject.cpp:
- runtime/ConstructData.cpp:
(JSC::construct):
- runtime/ConstructData.h:
- runtime/CustomGetterSetter.cpp:
- runtime/DOMAttributeGetterSetter.cpp:
- runtime/DateConstructor.cpp:
- runtime/DateInstance.cpp:
- runtime/DatePrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/DirectArguments.cpp:
- runtime/Error.h:
(JSC::throwVMError):
- runtime/ErrorConstructor.cpp:
- runtime/ErrorInstance.cpp:
- runtime/ErrorPrototype.cpp:
- runtime/EvalExecutable.cpp:
- runtime/Exception.cpp:
- runtime/ExceptionHelpers.cpp:
(JSC::notAFunctionSourceAppender):
(JSC::invalidParameterInSourceAppender):
(JSC::invalidParameterInstanceofSourceAppender):
(JSC::invalidPrototypeSourceAppender):
(JSC::createTDZError):
(JSC::createInvalidPrivateNameError):
(JSC::createRedefinedPrivateNameError):
(JSC::createPrivateMethodAccessError):
(JSC::createReinstallPrivateMethodError):
- runtime/ExecutableBase.cpp:
- runtime/FinalizationRegistryConstructor.cpp:
- runtime/FinalizationRegistryPrototype.cpp:
- runtime/FunctionConstructor.cpp:
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::toStringSlow):
- runtime/FunctionPrototype.cpp:
- runtime/FunctionRareData.cpp:
- runtime/GeneratorFunctionConstructor.cpp:
- runtime/GeneratorFunctionPrototype.cpp:
- runtime/GeneratorPrototype.cpp:
- runtime/GetterSetter.cpp:
- runtime/GlobalExecutable.cpp:
- runtime/HashMapImpl.cpp:
- runtime/InternalFunction.cpp:
- runtime/IntlCollator.cpp:
(JSC::IntlCollator::initializeCollator):
- runtime/IntlCollatorConstructor.cpp:
- runtime/IntlCollatorPrototype.cpp:
- runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
- runtime/IntlDateTimeFormatConstructor.cpp:
- runtime/IntlDateTimeFormatPrototype.cpp:
- runtime/IntlDisplayNames.cpp:
- runtime/IntlDisplayNamesConstructor.cpp:
- runtime/IntlDisplayNamesPrototype.cpp:
- runtime/IntlListFormat.cpp:
- runtime/IntlListFormatConstructor.cpp:
- runtime/IntlListFormatPrototype.cpp:
- runtime/IntlLocale.cpp:
(JSC::IntlLocale::initializeLocale):
- runtime/IntlLocaleConstructor.cpp:
- runtime/IntlLocalePrototype.cpp:
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):
- runtime/IntlNumberFormatConstructor.cpp:
- runtime/IntlNumberFormatPrototype.cpp:
- runtime/IntlObject.cpp:
(JSC::intlStringOption):
- runtime/IntlObject.h:
- runtime/IntlPluralRules.cpp:
- runtime/IntlPluralRulesConstructor.cpp:
- runtime/IntlPluralRulesPrototype.cpp:
- runtime/IntlRelativeTimeFormat.cpp:
(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
- runtime/IntlRelativeTimeFormatConstructor.cpp:
- runtime/IntlRelativeTimeFormatPrototype.cpp:
- runtime/IntlSegmentIterator.cpp:
- runtime/IntlSegmentIteratorPrototype.cpp:
- runtime/IntlSegmenter.cpp:
- runtime/IntlSegmenterConstructor.cpp:
- runtime/IntlSegmenterPrototype.cpp:
- runtime/IntlSegments.cpp:
- runtime/IntlSegmentsPrototype.cpp:
- runtime/IteratorPrototype.cpp:
- runtime/JSArray.cpp:
(JSC::JSArray::tryCreateUninitializedRestricted):
- runtime/JSArrayBuffer.cpp:
- runtime/JSArrayBufferConstructor.cpp:
- runtime/JSArrayBufferPrototype.cpp:
- runtime/JSArrayBufferView.cpp:
- runtime/JSArrayIterator.cpp:
- runtime/JSAsyncFunction.cpp:
- runtime/JSAsyncGenerator.cpp:
- runtime/JSAsyncGeneratorFunction.cpp:
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::parseInt):
- runtime/JSBoundFunction.cpp:
- runtime/JSCallee.cpp:
- runtime/JSCell.cpp:
(JSC::JSCell::dumpToStream):
(JSC::JSCell::className const):
- runtime/JSCell.h:
- runtime/JSCustomGetterFunction.cpp:
- runtime/JSCustomSetterFunction.cpp:
- runtime/JSDataView.cpp:
- runtime/JSDataViewPrototype.cpp:
(JSC::JSC_DEFINE_CUSTOM_GETTER):
- runtime/JSFinalizationRegistry.cpp:
(JSC::JSFinalizationRegistry::runFinalizationCleanup):
- runtime/JSFunction.cpp:
- runtime/JSGenerator.cpp:
- runtime/JSGeneratorFunction.cpp:
- runtime/JSGenericTypedArrayViewInlines.h:
(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::validateRange):
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
(JSC::speciesConstruct):
(JSC::genericTypedArrayViewProtoFuncSet):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
- runtime/JSGlobalLexicalEnvironment.cpp:
- runtime/JSGlobalObject.cpp:
- runtime/JSImmutableButterfly.cpp:
- runtime/JSInternalPromise.cpp:
- runtime/JSInternalPromiseConstructor.cpp:
- runtime/JSInternalPromisePrototype.cpp:
- runtime/JSLexicalEnvironment.cpp:
- runtime/JSMap.cpp:
- runtime/JSMapIterator.cpp:
- runtime/JSModuleEnvironment.cpp:
- runtime/JSModuleLoader.cpp:
- runtime/JSModuleNamespaceObject.cpp:
- runtime/JSModuleRecord.cpp:
- runtime/JSNativeStdFunction.cpp:
- runtime/JSONObject.cpp:
- runtime/JSObject.cpp:
(JSC::JSObject::markAuxiliaryAndVisitOutOfLineProperties):
- runtime/JSPromise.cpp:
- runtime/JSPromiseConstructor.cpp:
- runtime/JSPromisePrototype.cpp:
- runtime/JSPropertyNameEnumerator.cpp:
- runtime/JSProxy.cpp:
- runtime/JSRemoteFunction.cpp:
(JSC::wrapArgument):
(JSC::wrapReturnValue):
(JSC::JSRemoteFunction::finishCreation):
- runtime/JSScope.cpp:
- runtime/JSScriptFetchParameters.cpp:
- runtime/JSScriptFetcher.cpp:
- runtime/JSSegmentedVariableObject.cpp:
- runtime/JSSet.cpp:
- runtime/JSSetIterator.cpp:
- runtime/JSSourceCode.cpp:
- runtime/JSString.cpp:
(JSC::JSString::dumpToStream):
- runtime/JSStringIterator.cpp:
- runtime/JSSymbolTableObject.cpp:
- runtime/JSTemplateObjectDescriptor.cpp:
- runtime/JSTypedArrayConstructors.cpp:
- runtime/JSTypedArrayPrototypes.cpp:
- runtime/JSTypedArrayViewConstructor.cpp:
- runtime/JSTypedArrayViewPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSTypedArrays.cpp:
- runtime/JSWeakMap.cpp:
- runtime/JSWeakObjectRef.cpp:
- runtime/JSWeakSet.cpp:
- runtime/JSWithScope.cpp:
- runtime/LiteralParser.cpp:
(JSC::LiteralParser<CharType>::parsePrimitiveValue):
- runtime/MapConstructor.cpp:
- runtime/MapIteratorPrototype.cpp:
- runtime/MapPrototype.cpp:
- runtime/MathObject.cpp:
- runtime/ModuleProgramExecutable.cpp:
- runtime/NativeErrorConstructor.cpp:
- runtime/NativeExecutable.cpp:
- runtime/NullGetterFunction.cpp:
- runtime/NullSetterFunction.cpp:
- runtime/NumberConstructor.cpp:
- runtime/NumberObject.cpp:
- runtime/NumberPrototype.cpp:
(JSC::toStringWithRadix):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::numberToStringInternal):
(JSC::int52ToString):
- runtime/ObjectConstructor.cpp:
- runtime/ObjectPrototype.cpp:
- runtime/Operations.h:
(JSC::arithmeticBinaryOp):
(JSC::shift):
(JSC::bitwiseBinaryOp):
- runtime/ProgramExecutable.cpp:
- runtime/PropertyTable.cpp:
- runtime/ProxyConstructor.cpp:
(JSC::ProxyConstructor::finishCreation):
- runtime/ProxyObject.cpp:
- runtime/ProxyRevoke.cpp:
- runtime/ReflectObject.cpp:
- runtime/RegExp.cpp:
- runtime/RegExpCache.cpp:
(JSC::RegExpCache::ensureEmptyRegExpSlow):
- runtime/RegExpConstructor.cpp:
- runtime/RegExpObject.cpp:
- runtime/RegExpPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/RegExpStringIteratorPrototype.cpp:
- runtime/ScopedArguments.cpp:
- runtime/ScopedArgumentsTable.cpp:
- runtime/ScriptExecutable.cpp:
- runtime/SetConstructor.cpp:
- runtime/SetIteratorPrototype.cpp:
- runtime/SetPrototype.cpp:
- runtime/ShadowRealmConstructor.cpp:
- runtime/ShadowRealmObject.cpp:
- runtime/ShadowRealmPrototype.cpp:
- runtime/SparseArrayValueMap.cpp:
- runtime/StrictEvalActivation.cpp:
- runtime/StringConstructor.cpp:
- runtime/StringIteratorPrototype.cpp:
- runtime/StringObject.cpp:
- runtime/StringPrototype.cpp:
(JSC::toLocaleCase):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/Structure.cpp:
- runtime/StructureChain.cpp:
- runtime/StructureRareData.cpp:
- runtime/Symbol.cpp:
- runtime/SymbolConstructor.cpp:
- runtime/SymbolObject.cpp:
- runtime/SymbolPrototype.cpp:
- runtime/SymbolTable.cpp:
- runtime/TemporalCalendar.cpp:
- runtime/TemporalCalendarConstructor.cpp:
- runtime/TemporalCalendarPrototype.cpp:
- runtime/TemporalDuration.cpp:
(JSC::TemporalDuration::total const):
- runtime/TemporalDurationConstructor.cpp:
- runtime/TemporalDurationPrototype.cpp:
- runtime/TemporalInstant.cpp:
- runtime/TemporalInstantConstructor.cpp:
- runtime/TemporalInstantPrototype.cpp:
- runtime/TemporalNow.cpp:
- runtime/TemporalObject.cpp:
(JSC::temporalLargestUnit):
(JSC::temporalSmallestUnit):
- runtime/TemporalPlainDate.cpp:
- runtime/TemporalPlainDateConstructor.cpp:
- runtime/TemporalPlainDatePrototype.cpp:
- runtime/TemporalPlainTime.cpp:
- runtime/TemporalPlainTimeConstructor.cpp:
- runtime/TemporalPlainTimePrototype.cpp:
- runtime/TemporalTimeZone.cpp:
- runtime/TemporalTimeZoneConstructor.cpp:
- runtime/TemporalTimeZonePrototype.cpp:
- runtime/TypeProfiler.cpp:
(JSC::TypeProfiler::logTypesForTypeLocation):
- runtime/TypeSet.cpp:
(JSC::StructureShape::propertyHash):
- runtime/WeakMapConstructor.cpp:
- runtime/WeakMapPrototype.cpp:
(JSC::WeakMapPrototype::finishCreation):
- runtime/WeakObjectRefConstructor.cpp:
- runtime/WeakObjectRefPrototype.cpp:
- runtime/WeakSetConstructor.cpp:
- runtime/WeakSetPrototype.cpp:
(JSC::WeakSetPrototype::finishCreation):
- testRegExp.cpp:
- tools/FunctionAllowlist.cpp:
(JSC::FunctionAllowlist::FunctionAllowlist):
- tools/FunctionOverrides.cpp:
(JSC::initializeOverrideInfo):
- tools/JSDollarVM.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES):
- tools/SigillCrashAnalyzer.cpp:
(JSC::SigillCrashAnalyzer::analyze):
- tools/VMInspector.cpp:
(JSC::VMInspector::dumpRegisters):
(JSC::VMInspector::dumpCellMemoryToStream):
- wasm/WasmExceptionType.h:
(JSC::Wasm::errorMessageForExceptionType):
- wasm/WasmFormat.h:
(JSC::Wasm::typeToString):
- wasm/WasmGlobal.cpp:
(JSC::Wasm::Global::set):
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- wasm/js/JSToWasmICCallee.cpp:
- wasm/js/JSWebAssembly.cpp:
- wasm/js/JSWebAssemblyException.cpp:
- wasm/js/JSWebAssemblyGlobal.cpp:
(JSC::JSWebAssemblyGlobal::type):
- wasm/js/JSWebAssemblyHelpers.h:
(JSC::fromJSValue):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::createPrivateModuleKey):
(JSC::JSWebAssemblyInstance::tryCreate):
- wasm/js/JSWebAssemblyMemory.cpp:
- wasm/js/JSWebAssemblyModule.cpp:
- wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::type):
- wasm/js/JSWebAssemblyTag.cpp:
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
- wasm/js/WebAssemblyCompileErrorPrototype.cpp:
- wasm/js/WebAssemblyExceptionConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyExceptionPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyFunction.cpp:
- wasm/js/WebAssemblyFunctionBase.cpp:
- wasm/js/WebAssemblyGlobalConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyGlobalPrototype.cpp:
- wasm/js/WebAssemblyInstanceConstructor.cpp:
- wasm/js/WebAssemblyInstancePrototype.cpp:
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
- wasm/js/WebAssemblyLinkErrorPrototype.cpp:
- wasm/js/WebAssemblyMemoryConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyMemoryPrototype.cpp:
- wasm/js/WebAssemblyModuleConstructor.cpp:
- wasm/js/WebAssemblyModulePrototype.cpp:
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::initializeExports):
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
- wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
- wasm/js/WebAssemblyTableConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- wasm/js/WebAssemblyTablePrototype.cpp:
- wasm/js/WebAssemblyTagConstructor.cpp:
- wasm/js/WebAssemblyTagPrototype.cpp:
- wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::create):
- yarr/RegularExpression.cpp:
(JSC::Yarr::RegularExpression::Private::compile):
- yarr/YarrErrorCode.cpp:
(JSC::Yarr::errorMessage):
- yarr/YarrErrorCode.h:
Source/WebCore:
- bindings/js/JSDOMGlobalObject.cpp:
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSDOMWindowProperties.cpp:
- bindings/js/JSFileSystemDirectoryHandleIterator.cpp:
- bindings/js/JSIDBSerializationGlobalObject.cpp:
- bindings/js/JSRemoteDOMWindowBase.cpp:
- bindings/js/JSShadowRealmGlobalScopeBase.cpp:
- bindings/js/JSWindowProxy.cpp:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bridge/objc/ObjCRuntimeObject.mm:
- bridge/objc/objc_instance.mm:
(JSC::Bindings::ObjcInstance::getMethod):
- bridge/objc/objc_runtime.mm:
- bridge/runtime_array.cpp:
- bridge/runtime_method.cpp:
- bridge/runtime_object.cpp:
Source/WTF:
- wtf/ResourceUsage.h:
- wtf/cocoa/ResourceUsageCocoa.cpp:
(WTF::displayNameForVMTag):
- wtf/text/WTFString.cpp:
(WTF::String::numberToStringFixedPrecision):
(WTF::String::number):
(WTF::String::numberToStringFixedWidth):
- wtf/text/WTFString.h:
- 6:25 PM Changeset in webkit [291778] by
-
- 10 edits in trunk/Source/WebKit
[ BigSur+ Debug wk2 EWS ] imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=237165
<rdar://problem/89443602>
Reviewed by Chris Dumez.
The test is hitting an assertion in StorageAreaBase::addListener. The assertion is used to verify that one
connection will not be added to a StorageArea twice, i.e. one web process will not have two StorageAreaMaps
pointing to the same StorageArea in network process. With our current implementation, there is an edge case that
we load a.com, navigate to b.com and go back to a.com. In this case, we would create a StorageAreaMap for a.com,
destroy it on navigation, and create another StorageAreaMap for a.com on going back. Because we don't remove
listener during destruction of StorageAreaMap (we do it when web process receives reply from network process),
the assertion is hit for two StorageAreaMaps from one connection pointing to the same StorageArea. We can fix
it by sending a cancelConnectToStorage message to remove listener during destruction.
The edge case is a bit hard to reproduce with auto test since we need to ensure web process sends the second
ConnectionToStorageArea message before receiving the reply of the first ConnectionToStorageArea message, so I
manually tested it by adding delay in NetworkStorageManager::connectToStorageArea.
- NetworkProcess/storage/LocalStorageManager.cpp:
(WebKit::LocalStorageManager::cancelConnectToLocalStorageArea):
(WebKit::LocalStorageManager::cancelConnectToTransientLocalStorageArea):
- NetworkProcess/storage/LocalStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::cancelConnectToStorageArea):
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.messages.in:
- NetworkProcess/storage/SessionStorageManager.cpp:
(WebKit::SessionStorageManager::cancelConnectToSessionStorageArea):
- NetworkProcess/storage/SessionStorageManager.h:
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::computeStorageType const):
(WebKit::StorageAreaMap::clientOrigin const):
(WebKit::StorageAreaMap::sendConnectMessage):
(WebKit::StorageAreaMap::didConnect):
(WebKit::StorageAreaMap::disconnect):
- WebProcess/WebStorage/StorageAreaMap.h:
- 6:03 PM Changeset in webkit [291777] by
-
- 6 edits in trunk
[WebGPU] Implement Device::createTexture() according to the spec
https://bugs.webkit.org/show_bug.cgi?id=238251
Reviewed by Darin Adler.
Source/WebGPU:
Simply type in the spec into the computer, in C++ form.
All functionality has links to the spec to describe its origins.
Test: api/validation/createTexture.spec.ts
- WebGPU/Device.h:
- WebGPU/Texture.h:
(WebGPU::Texture::create):
(WebGPU::Texture::descriptor const):
- WebGPU/Texture.mm:
(WebGPU::featureRequirementForFormat):
(WebGPU::isCompressedFormat):
(WebGPU::isDepthOrStencilFormat):
(WebGPU::texelBlockWidth):
(WebGPU::texelBlockHeight):
(WebGPU::isRenderableFormat):
(WebGPU::supportsMultisampling):
(WebGPU::maximumMiplevelCount):
(WebGPU::hasStorageBindingCapability):
(WebGPU::Device::validateCreateTexture):
(WebGPU::usage):
(WebGPU::pixelFormat):
(WebGPU::storageMode):
(WebGPU::Device::createTexture):
(WebGPU::Texture::Texture):
Tools:
Document the behavior of fastLog2().
- TestWebKitAPI/Tests/WTF/MathExtras.cpp:
(TestWebKitAPI::TEST):
- 5:32 PM Changeset in webkit [291776] by
-
- 9 edits in branches/safari-613.1.17.1-branch/Source
Versioning.
WebKit-7613.1.17.1.12
- 5:22 PM Changeset in webkit [291775] by
-
- 6 edits in trunk/Source
[Cocoa] Adopt new AVCapture SPI
https://bugs.webkit.org/show_bug.cgi?id=238289
rdar://90576101
Reviewed by Jer Noble.
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WebKit:
Call AVCapture SPI once the GPU process sandbox has been expanded to allow capture.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::updateSandboxAccess):
- GPUProcess/GPUProcess.h:
- GPUProcess/cocoa/GPUProcessCocoa.mm:
(WebKit::GPUProcess::dispatchSimulatedNotificationsForPreferenceChange):
(WebKit::GPUProcess::sandboxWasUpatedForCapture):
- 5:11 PM Changeset in webkit [291774] by
-
- 2 edits in branches/safari-613-branch/Tools
Cherry-pick r291773. rdar://problem/90716064
[Cocoa] Make IPCTestingAPI.CGColorInNSSecureCoding more robust
https://bugs.webkit.org/show_bug.cgi?id=238300
<rdar://problem/90124325>
Unreviewed test gardening.
Round-tripping a CGColor through CFData on iOS can turn extended sRGB color spaces
into regular sRGB color spaces, if the color is common to both.
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291773 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:03 PM Changeset in webkit [291773] by
-
- 2 edits in trunk/Tools
[Cocoa] Make IPCTestingAPI.CGColorInNSSecureCoding more robust
https://bugs.webkit.org/show_bug.cgi?id=238300
<rdar://problem/90124325>
Unreviewed test gardening.
Round-tripping a CGColor through CFData on iOS can turn extended sRGB color spaces
into regular sRGB color spaces, if the color is common to both.
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
- 4:07 PM Changeset in webkit [291772] by
-
- 16 edits in trunk/Tools
[commits.webkit.org] Sync tags
https://bugs.webkit.org/show_bug.cgi?id=238144
<rdar://problem/90594915>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/init.py: Bump version.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/checkout.py:
(Checkout): Make 'origin' a global variable.
(Checkout.init): Ditto.
(Checkout.is_updated): Ditto.
(Checkout.push_update): Support pushing a tag.
(Checkout.fetch): Fetch a specific remote.
(Checkout.update_for): Make 'origin' a global variable.
(Checkout.update_all): Add tag syncing.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/hooks.py:
(HookProcessor):
(HookProcessor.process_worker_hook): Update tags as well as branches.
- Tools/Scripts/libraries/reporelaypy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.tags): List tags for remote.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.tags): Remove @property tag.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git.init): List tags for remote.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:
(BitBucket.tags): Remove @property tag.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.tags): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/svn.py:
(Svn.tags): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
(ScmBase.tags): Ditto.
(ScmBase.find): tags is a function instead of a property.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
(TestGit.test_tags):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:
(TestLocalSvn.test_tags):
(TestRemoteSvn.test_tags):
Canonical link: https://commits.webkit.org/248802@main
- 3:50 PM Changeset in webkit [291771] by
-
- 4 edits in trunk/Source/WebCore
[GPU Process] Ensure DisplayList::Recorder and its base class are initialized with the same GraphicsContextState
https://bugs.webkit.org/show_bug.cgi?id=238278
rdar://84602660
Reviewed by Simon Fraser.
DisplayList::RecorderImpl passes the initial GraphicsContextState to its
base class DisplayList::Recorder which pushes it on its stack. But
DisplayList::Recorder does not pass this initial GraphicsContextState to
its base class which is GraphicsContext. So DisplayList::Recorder ends up
having the initial state but the GraphicsContext ends up having the default
state.
DisplayList::Recorder::drawGlyphs() calls DrawGlyphsRecorder::drawGlyphs()
which stores the original fillBrush, strokeBrush and dropShadow. It uses
these original values to restore the owner GraphicsContext when it finishes.
The problem is DrawGlyphsRecorder::drawGlyphs() stores the values in the
state of the GraphicsContext which are the default. So in some cases we
may restore the default state to the drawing GraphicsContext.
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
- platform/graphics/GraphicsContext.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::Recorder):
- 3:07 PM Changeset in webkit [291770] by
-
- 6 edits in trunk
[iOS] Mail compose web view no longer scrolls to reveal selection upon showing the keyboard
https://bugs.webkit.org/show_bug.cgi?id=238271
rdar://89821087
Reviewed by Tim Horton.
Source/WebKit:
When a certain UIKit feature is enabled on certain builds of iOS, Mail compose no longer scrolls to reveal the
selection range or caret. This is because we have logic to defer scrolling/zooming to reveal the selection after
focusing the body element, for reasons outlined in trac.webkit.org/r288178. However, when the feature flag is
enabled, UIKeyboardWillShowNotification is no longer fired synchronously underneath the call to
-reloadInputViews, which means thatisKeyboardAnimatingIn()will (most of the time) return false upon
calling-_zoomToRevealFocusedElementwhen receiving the next post-layout editor state update.
To mitigate this, add a new boolean flag,
_waitingForKeyboardToStartAnimatingInAfterElementFocus, that's set
right before we reload input views when focusing an element that requires the keyboard (either software or
hardware), and unset when we observe the "WillShow" notification. In addition to checking
_page->isKeyboardAnimatingIn()when determining whether to defer zooming, we check this new flag as well.
Covered by an existing layout test (which currently fails when the aforementioned UIKit feature is enabled):
editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _keyboardWillShow:]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _keyboardWillShow]):
(-[WKContentView _zoomToRevealFocusedElement]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
LayoutTests:
While I'm here, adjust the test to ensure that the keyboard is hidden afterwards. When running this test back to
back with the relevant UIKit feature flag enabled, it sometimes fails without this adjustment, due to keyboard
disappearance notifications triggered from prior test invocations being fired in subsequent test invocations.
- editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html:
- 2:57 PM Changeset in webkit [291769] by
-
- 4 edits in trunk/Source/WebCore
ITM: Lazy caching of HelpText property that results in a call to textUnderElement().
https://bugs.webkit.org/show_bug.cgi?id=237923
<rdar://problem/90332779>
Reviewed by Chris Fleizach.
Caching HelpText in the initialization of an IsolatedObject properties
for all objects often results in a call to AXRenderObject::textUnderElement,
which can be expensive and makes the creation and update of the isolated
tree costly. With this patch we cache HelpText on first request.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::getOrRetrievePropertyValue):
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::initializePlatformProperties):
(WebCore::AXIsolatedObject::helpTextAttributeValue const):
- 2:55 PM Changeset in webkit [291768] by
-
- 6 edits in trunk/LayoutTests
ITM: Fix for accessibility/table-attributes.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=238258
<rdar://problem/90707533>
Reviewed by Chris Fleizach.
- Modified this test to build the output in memory and log it at the end
in one call. This makes the test to run faster and not timeout in
isolated tree mode. In addition, we now retrieve the table element by
ID instead of setting focus to the body and getting the first child of
the focused element, which is not ITM friendly.
- Added the axDebug helper function which unlike debug causes minimum
side effects by modifying the innerText of the console element instead
of adding span children to it. Adding children to the console element
causes event notifications that affect the behavior of the test in both
ITM on and off.
- accessibility/table-attributes-expected.txt:
- accessibility/table-attributes.html:
- platform/glib/accessibility/table-attributes-expected.txt:
- resources/accessibility-helper.js:
(axDebug): Added.
- resources/js-test.js:
(getOrCreate): Exposes this function.
- 2:27 PM Changeset in webkit [291767] by
-
- 19 edits in trunk/LayoutTests
Unreviewed fuzzy gardening.
LayoutTests/imported/mozilla:
- svg/filters/feImage-1.svg:
- svg/text/simple-fill-gradient.svg:
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html:
- web-platform-tests/css/css-backgrounds/background-repeat-space-6.html:
- web-platform-tests/css/css-backgrounds/background-rounded-image-clip.html:
- web-platform-tests/css/css-backgrounds/border-bottom-right-radius-005.xht:
- web-platform-tests/css/css-backgrounds/border-top-left-radius-005.xht:
- web-platform-tests/css/css-backgrounds/border-top-right-radius-005.xht:
- web-platform-tests/css/css-backgrounds/css-box-shadow-001.html:
- web-platform-tests/css/css-transforms/2d-rotate-001.html:
- web-platform-tests/css/css-transforms/css-skew-002.html:
LayoutTests:
- fast/multicol/columns-on-body.html:
- http/tests/images/draw-pattern-slow-load-large-image.html:
- imported/blink/fast/gradients/gradient-transparency.html:
- imported/blink/fast/text/international/rtl-space-in-ltr-element.html:
- svg/custom/hidpi-masking-clipping.svg:
- 2:21 PM Changeset in webkit [291766] by
-
- 2 edits4 adds in trunk/Tools/Scripts/libraries/resultsdbpy/resultsdbpy
[results.webkit.org] Add file bugzilla button
https://bugs.webkit.org/show_bug.cgi?id=237802
Reviewed by Jonathan Bedard.
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/bug_trackers/init.py: Added.
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/bug_trackers/bug_description.py: Added.
(translate_selected_dots_to_bug_title_and_description):
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/bug_trackers/bugzilla.py: Added.
(Bugzilla):
(Bugzilla.init):
(Bugzilla.create_bug):
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/controller/api_routes.py:
(APIRoutes.init):
- Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:
(TimelineFromEndpoint.prototype._renderSelectedDotsButtonGroup):
(TimelineFromEndpoint):
Canonical link: https://commits.webkit.org/248796@main
- 1:26 PM Changeset in webkit [291765] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] editing/deleting/insert-in-orphaned-selection-crash.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238282
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 1:23 PM Changeset in webkit [291764] by
-
- 2 edits in trunk/LayoutTests
[ EWS iOS ] editing/spelling/spellcheck-async-remove-frame.html is a crash
https://bugs.webkit.org/show_bug.cgi?id=238284
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 1:20 PM Changeset in webkit [291763] by
-
- 3 edits in trunk/LayoutTests
Make fast/text/emoji-num-glyphs.html more robust
https://bugs.webkit.org/show_bug.cgi?id=238283
<rdar://problem/88842010>
Unreviewed test gardening.
Remove the U+26F9 PERSON WITH BALL without the U+FE0F emoji variation selector.
- fast/text/emoji-num-glyphs-expected.txt:
- fast/text/emoji-num-glyphs.html:
- 1:01 PM Changeset in webkit [291762] by
-
- 6 edits in trunk
[Cocoa] MSE-backed videos fail to play in Captive Portal mode
https://bugs.webkit.org/show_bug.cgi?id=237787
<rdar://89318047>
Reviewed by Eric Carlson.
Source/WebCore:
Updated test: media/media-source/media-source-allowed-codecs.html
When generating the "codecs" string for a given MSE track, we were previously casting
the FourCC code (a uint32) to a string, and passing that across the GPU process boundary,
and reconstituting the string on the WebContent process side. This caused the codec entry
to be "reversed", (e.g., 'aac ' turned into ' caa'), and fail codec validation.
Instead, use the FourCharCode class to properly create a string from the codec ID.
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
LayoutTests:
- media/media-source/media-source-allowed-codecs-expected.txt:
- media/media-source/media-source-allowed-codecs.html:
- 12:24 PM Changeset in webkit [291761] by
-
- 2 edits in trunk/Source/WebKit
[WebAuthn] Specify correct ASCPublicKeyCredentialKind in configureAssertionOptions
https://bugs.webkit.org/show_bug.cgi?id=238272
rdar://problem/90710080
Reviewed by Brent Fulgham.
There was a typo when refactoring code into this method. The kind passed to the function
should be used, instead of always ASCPublicKeyCredentialKindPlatform.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::configureAssertionOptions):
- 12:22 PM Changeset in webkit [291760] by
-
- 6 edits in branches/safari-614.1.7-branch/Source/WebKit
Cherry-pick r291691. rdar://problem/90654598
Prefer WK_EXTERN to WK_EXPORT in Cocoa API headers
https://bugs.webkit.org/show_bug.cgi?id=238129
Reviewed by Wenson Hsieh.
- UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h:
- UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
- UIProcess/API/Cocoa/_WKElementAction.h:
- UIProcess/API/Cocoa/_WKErrorRecoveryAttempting.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: WK_EXPORT comes from WKDeclarationSpecifiers.h, which is a legacy C SPI header. WK_EXTERN comes from WKFoundation.h, part of the modern public API. We should prefer the modern version in Cocoa-only headers (even in private headers).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:21 PM Changeset in webkit [291759] by
-
- 16 edits2 adds in trunk
[iOS] WebKit app is sometimes not "Now Playing" during initial playback
https://bugs.webkit.org/show_bug.cgi?id=236993
<rdar://88827167>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/audio-session-category-at-most-recent-playback.html
Recently, we have added the concept of "preparingToPlay" to PlatformMediaSession to allow
the correct category to be set if updateSessionState() is called after playback is allowed
by the MediaSessionManager, but before playback is actually started by the media element.
However, this depends on updateSessionState() being called synchronously during playback.
We disabled this synchronous update in r269077 due to the large runtime cost when a large
number of media elements are created (but not used) at once.
Relax this asynchronous update in the case where the state is moving to "Playing", which
ensures that the correct AudioSessionCategory is set before playback starts, rather than
immediately afterward.
To support testing that the category was correctly set before playback started, add an
ivar to HTMLMediaElement that is set to the current AudioSessionCategory immediately before
the media element instructs the MediaPlayer to start playback. Expose this ivar to Internals.
Drive-by fixes: AudioSession::CategoryType cannot be forward declared, as it is a public
member of a class. Allow the enum to be forward declared by moving the declaration outside
the class, but allow current uses of the enum to continue by typedefing it inside the class
to the original enum name. Add an IDL enumeration matching the AudioSession one in Interals.idl
and convert the existing audioSessionCategory() call to use the new enumeration.
(Unforunately in the case where USE_AUDIO_SESSION is not set, the enumeration must be re-
declared. This can be removed and the entire implementation wrapped in a USE() check, once
the bindings generator is extended to allow "Conditional="-style attributes for USE checks.)
The added test is flakey due to a previous change which would keep the MediaSession category
in "MediaPlayback" for up to 2s after playback ends. To counteract this flakiness, reset the
state of the PlatformMediaSessionManager between tests.
- html/HTMLMediaElement.cpp:
(WebCore::m_categoryAtMostRecentPlayback):
(WebCore::HTMLMediaElement::playPlayer):
(WebCore::m_logIdentifier): Deleted.
- html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::categoryAtMostRecentPlayback const):
- platform/audio/AudioSession.h:
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionStateChanged):
- platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::resetSessionState):
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::resetSessionState):
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
- testing/Internals.cpp:
(WebCore::Internals::audioSessionCategory const):
(WebCore::Internals::categoryAtMostRecentPlayback const):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Fix the audio-session-category test. Creating the oscilator actually does change the
AudioSession category to "Ambient", but (previously) only in the next run loop, so a
synchronous test that the AudioSession category is "None" succeeds. Now that starting
playback (as happens when creating an audio node) changes the AudioSession synchronously,
the test begins failing.
- media/audio-session-category-at-most-recent-playback-expected.txt: Added.
- media/audio-session-category-at-most-recent-playback.html: Added.
- media/audio-session-category-expected.txt:
- media/audio-session-category.html:
- 11:58 AM Changeset in webkit [291758] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Clean up implementation of Device::createSampler()
https://bugs.webkit.org/show_bug.cgi?id=238250
Reviewed by Darin Adler.
Refactor repeated code into reusable functions.
- WebGPU/Sampler.mm:
(WebGPU::addressMode):
(WebGPU::minMagFilter):
(WebGPU::mipFilter):
(WebGPU::compareFunction):
(WebGPU::Device::createSampler):
- 11:53 AM Changeset in webkit [291757] by
-
- 303 edits8 adds4 deletes in trunk/Source/ThirdParty/ANGLE
Roll ANGLE to 2022-03-22 (e7f29440f02514126f30350dcd7132b68f7954d7)
https://bugs.webkit.org/show_bug.cgi?id=238171
Large autogenerated ChangeLog elided.
Tested locally with Minibrowser on M1, with test cases from the
following recent bugs:
https://bugs.webkit.org/show_bug.cgi?id=237006
https://bugs.webkit.org/show_bug.cgi?id=237906
https://bugs.webkit.org/show_bug.cgi?id=238022
and confirmed all render correctly.
Patch by Kenneth Russell <kbr@chromium.org> on 2022-03-23
Reviewed by Kimmo Kinnunen.
- 11:47 AM Changeset in webkit [291756] by
-
- 6 edits in trunk/Source/JavaScriptCore
[JSC][MSVC] custom getter creation needs to include classInfo since MSVC ICF is not "safe" variant
https://bugs.webkit.org/show_bug.cgi?id=238030
Reviewed by Alexey Shvayka.
MSVC performs very aggressive ICF (identical code folding) and it even merges the identical two functions
into one even though a pointer to this function is used. This means MSVC's ICF is not "safe"[1], and custom
function weakmap is broken on MSVC since it is assuming function pointers are different for different functions.
Unfortunately, it seems that there is no attribute / annotation to prevent this behavior, so we need to workaround it.
Since JSCustomGetterFunction does separate thing based on attached DOMAttribute, we need to include const ClassInfo*
into a key of JSCustomGetterFunction weakmap to ensure that two identical functions with different const ClassInfo*
do not get the same JSCustomGetterFunction.
[1]: https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36912.pdf
- runtime/JSCustomGetterFunction.h:
- runtime/JSCustomSetterFunction.h:
- runtime/JSGlobalObject.h:
- runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::WeakCustomGetterOrSetterHash<T>::hash):
- runtime/JSObject.cpp:
(JSC::WeakCustomGetterOrSetterHashTranslator::hash):
(JSC::WeakCustomGetterOrSetterHashTranslator::equal):
(JSC::createCustomGetterFunction):
(JSC::createCustomSetterFunction):
- 11:37 AM Changeset in webkit [291755] by
-
- 2 edits in trunk/Source/JavaScriptCore
Avoid unnecessary String constructor under FunctionExecutable::toStringSlow()
https://bugs.webkit.org/show_bug.cgi?id=238263
Reviewed by Darin Adler.
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::toStringSlow):
- 11:31 AM Changeset in webkit [291754] by
-
- 2 edits in trunk/Source/WebCore
WBR element should set Clear property to None
https://bugs.webkit.org/show_bug.cgi?id=238275
Reviewed by Alan Bujtas.
WBR elements need to have their Clear property automatically set to None.
BR elements do not need this change.
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- 11:17 AM Changeset in webkit [291753] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r291721.
Bug has been fixed
Reverted changeset:
"[ EWS iOS ] fast/text/emoji-num-glyphs.html is a flaky text
failure"
https://bugs.webkit.org/show_bug.cgi?id=238233
https://commits.webkit.org/r291721
- 10:58 AM Changeset in webkit [291752] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix DataIC's slowPathJump handling
https://bugs.webkit.org/show_bug.cgi?id=231224
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileInById):
- 10:56 AM Changeset in webkit [291751] by
-
- 5 edits in trunk
Turn DOM in GPU Process on by default on iOS layout tests
https://bugs.webkit.org/show_bug.cgi?id=236547
rdar://88863036
Reviewed by Geoffrey Garen.
Tools:
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
LayoutTests:
- gpu-process/TestExpectations: Transfer expectations.
- platform/ios-wk2/TestExpectations:
- 10:39 AM Changeset in webkit [291750] by
-
- 2 edits in branches/safari-614.1.7-branch/Source/WebCore
Cherry-pick r291566. rdar://problem/90346629
Accessing WebGL content crashes in macOS Recovery OS
https://bugs.webkit.org/show_bug.cgi?id=238139
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-21
Reviewed by Antti Koivisto.
Add a quick fix trying to circumvent a Recovery OS crash.
Parts of this will be reverted once the true source is found.
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::platformSupportsMetal):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291566 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:12 AM Changeset in webkit [291749] by
-
- 10 edits in trunk
After losing context due to too many contexts, getError() does not return CONTEXT_LOST_WEBGL
https://bugs.webkit.org/show_bug.cgi?id=236965
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-23
Reviewed by Kenneth Russell.
Source/WebCore:
After generating context lost, getError() is specified to return:
- CONTEXT_LOST_WEBGL for first call
- NO_ERROR for all the next calls.
WEBGL_lose_context is specified to add INVALID_OPERATION errors
even after context lost.
Change the code so that CONTEXT_LOST_WEBGL and WEBGL_lose_context induced
INVALID_OPERATION errors go to error vector in context lost -specific state.
Previously, these errors went into the m_context error vector. This is problematic
especially in the case where context loss happens where the m_context gets destroyed --
the error vector would be gone. This kind of loss happens for example when contexts
get lost due to the process having too many active contexts (least active context is "recycled").
Previously, any synthetized error was potentially obtainable after context lost. This is problematic
as it is not as specified. As mentioned above, only errors allowed after context lost is
- CONTEXT_LOST_WEBGL first after context lost
- WEBGL_lose_context.loseContext() and WEBGL_lose_context.restoreContext() induced INVALID_OPERATIONs
Changes the behavior to not report INVALID_OPERATION error in the theoretical case where we fail to
instantiate a new context. This is not allowed by the spec. Instead, just print an error to the console.
No new tests, updates the expectations of old ones with less failures.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::getError):
(WebCore::WebGLRenderingContextBase::isContextLost const):
(WebCore::WebGLRenderingContextBase::isContextLostOrPending):
(WebCore::WebGLRenderingContextBase::forceLostContext):
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::forceRestoreContext):
(WebCore::WebGLRenderingContextBase::isContextUnrecoverablyLost const):
(WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::synthesizeGLError):
(WebCore::WebGLRenderingContextBase::synthesizeLostContextGLError):
- html/canvas/WebGLRenderingContextBase.h:
(WebCore::WebGLRenderingContextBase::ContextLostState::ContextLostState):
Source/WebKit:
Remove recording of synthetic webgl context lost error from the proxy.
This is now recorded in the WebGLRenderingContextBase.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::synthesizeGLError):
(WebKit::RemoteGraphicsContextGLProxy::getError):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
LayoutTests:
- fast/canvas/webgl/lose-context-on-status-failure-expected.txt:
- webgl/lose-context-after-context-lost-expected.txt:
- webgl/max-active-contexts-webglcontextlost-prevent-default-expected.txt:
- 10:05 AM Changeset in webkit [291748] by
-
- 8 edits in trunk
Context2D drawImage(img, x, y, w, h) should not throw IndexSizeError when width == 0 or height == 0
https://bugs.webkit.org/show_bug.cgi?id=238195
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-23
Reviewed by Simon Fraser.
Source/WebCore:
When drawing HTMLImageElement with width == 0 or height==0, do nothing as per spec.
When drawing HTMLCanvasElement with source rectangle width == 0 or height == 0,
do nothing as per spec.
Previously these would throw IndexSizeError. The CanvasDrawImage methods do not throw these.
Spec:
HTML Living Standard — Last Updated 17 March 2022
https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-drawimage
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
LayoutTests:
- fast/canvas/canvas-overloads-drawImage-expected.txt:
- fast/canvas/canvas-overloads-drawImage.html:
- fast/canvas/drawImage-with-invalid-args-expected.txt:
- fast/canvas/drawImage-with-invalid-args.html:
- 10:00 AM Changeset in webkit [291747] by
-
- 8 edits3 adds in trunk
AccessibilityRenderObject::nextSibling should allow parent differences in the presence of display: contents
https://bugs.webkit.org/show_bug.cgi?id=238184
Reviewed by Andres Gonzalez.
Source/WebCore:
AccessibilityRenderObject::nextSibling currently has this logic to
return nullptr if the computed sibling has a parent different fromthis:
auto* nextObject = objectCache->getOrCreate(nextSibling);
if (nextObject && nextObject->parentObject() != this->parentObject())
return nullptr;
This is problematic in the presence of display: contents since we expect
parent object differences due to the way this property affects the render tree.
Concretely, this breaks the firstChild(), nextSibling() iteration we do throughout
WebKit (e.g. in AccessibilityRenderObject::addChildren), as when we get to an element
with display: contents we get a parent mismatch and iteration stops unnecessarily.
This patch fixes the issue by allowing a parent mismatch when either
object has display: contents, as we account for this difference in the
appropriate places (e.g. AccessibilityObject::insertChild).
Test: accessibility/display-contents-search-traversal.html
- accessibility/AXLogger.cpp:
(WebCore::operator<<):
Log when an object has display: contents. This property affects the
render tree and AX tree, so it's useful to log.
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::hasDisplayContents const): Added.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::nextSibling const):
LayoutTests:
- accessibility/display-contents-search-traversal-expected.txt: Added.
- accessibility/display-contents-search-traversal.html: Added.
- platform/glib/TestExpectations: Skip new test.
- platform/ios/TestExpectations: Enable new test.
- platform/ios/accessibility/display-contents-search-traversal-expected.txt: Added.
- platform/win/TestExpectations: Skip new test.
- 9:40 AM Changeset in webkit [291746] by
-
- 7 edits2 adds in trunk
No breakpoints hit on github.com, and some are invalid
https://bugs.webkit.org/show_bug.cgi?id=235607
Reviewed by Yusuke Suzuki.
JSTests:
Add test for multi-line parsing errors.
- stress/regress-88440831.js: Added.
Source/JavaScriptCore:
New test: JSTests/stress/regress-88440831.js
Added test case in: inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html
Previously not all line terminations resulted in setting the
m_lineStartto the current m_code, which meant
that the location for pause-able locations and stack traces were inaccurate when they were on a line that
terminated multi-line comments, strings, or template strings. We now always update m_lineStart when shifting for
a line terminator, instead of only when the terminator appears outside a string or comment.
- debugger/Breakpoint.cpp:
(JSC::Breakpoint::resolve):
- The existing assertions were somewhat in conflict with each other. If we permit the line number to increase,
there is no guarantee that the column number will remain the same or increase, which can now more easily occur
with multi-line strings. Instead, we should make sure that the overall offset has increased.
- parser/Lexer.cpp:
(JSC::Lexer<T>::shiftLineTerminator):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
(JSC::Lexer<T>::scanTemplateString):
LayoutTests:
Add test cases for resolving breakpoints on lines that begin with the end of multi-line strings, comments, and
template strings.
- inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
- inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html:
- inspector/debugger/breakpoints/resources/dump-multiline.js: Added.
(test):
- 7:12 AM Changeset in webkit [291745] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Add DoNotHaveTagRegisters mode to unboxDouble
https://bugs.webkit.org/show_bug.cgi?id=238018
Patch by Xan Lopez <Xan Lopez> on 2022-03-23
Reviewed by Yusuke Suzuki.
Wasm cannot use unboxDouble as-is because
GPRInfo::numberTagRegister is not available. Add a
DoNotHaveTagRegister mode so we can get rid of some duplicated
code.
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::add64):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::unboxDoubleWithoutAssertions):
(JSC::AssemblyHelpers::unboxDouble):
- wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
- 6:54 AM Changeset in webkit [291744] by
-
- 11 edits1 add in trunk/Source/WebCore
VideoFrame does not need to inherit from MediaSample
https://bugs.webkit.org/show_bug.cgi?id=238071
Reviewed by Eric Carlson.
Update MediaSample, MediaSampleAVFObjC and VideoFrame according the separation.
This is a refactoring, covered by existing tests.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/MediaSample.h:
- platform/VideoFrame.cpp:
- platform/VideoFrame.h:
- platform/VideoFrame.mm: Added.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/gstreamer/VideoFrameGStreamer.cpp:
- platform/graphics/gstreamer/VideoFrameGStreamer.h:
- 6:10 AM Changeset in webkit [291743] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r291611): Fix GTK/WPE build
https://bugs.webkit.org/show_bug.cgi?id=238248
Unreviewed build fix.
- platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::OnFrame):
- platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoFrameAvailable):
- 4:52 AM Changeset in webkit [291742] by
-
- 18 edits1 copy in trunk
[InputElement] Add HTMLInputElement::showPicker() method
https://bugs.webkit.org/show_bug.cgi?id=237192
LayoutTests/imported/w3c:
Reviewed by Darin Adler.
Update test expectations as more tests are now passing.
- web-platform-tests/html/dom/idlharness.https-expected.txt:
- web-platform-tests/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe-expected.txt:
- web-platform-tests/html/semantics/forms/the-input-element/show-picker-expected.txt:
Source/WebCore:
Reviewed by Darin Adler.
At https://github.com/whatwg/html/issues/6909, it proposes to add a
new HTMLInputElement::showPicker() method to show a brower picker for
temporal, color and file input elements.
Chromium has introduced this feature at
https://bugs.chromium.org/p/chromium/issues/detail?id=939561.
This CL imports the changes from Chromium CLs at
https://chromium-review.googlesource.com/c/chromium/src/+/3056920
and
https://chromium-review.googlesource.com/c/chromium/src/+/3310677
The support for temporal input element is not included in this CL. We might
need a bit more investigation on it and hopefully will addess at a later stage.
- html/ColorInputType.cpp:
(WebCore::ColorInputType::handleDOMActivateEvent):
(WebCore::ColorInputType::showPicker):
(WebCore::ColorInputType::allowsShowPickerAcrossFrames):
- html/ColorInputType.h:
- html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::showPicker):
(WebCore::FileInputType::allowsShowPickerAcrossFrames):
- html/FileInputType.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::showPicker):
- html/HTMLInputElement.h:
- html/HTMLInputElement.idl:
- html/InputType.cpp:
(WebCore::InputType::allowsShowPickerAcrossFrames):
(WebCore::InputType::showPicker):
- html/InputType.h:
LayoutTests:
Reviewed by Darin Adler .
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe-expected.txt.
- 2:04 AM Changeset in webkit [291741] by
-
- 6 edits5 adds in trunk
Computation of Document siteForCookies is buggy in case document is created by window.open
https://bugs.webkit.org/show_bug.cgi?id=238202
<rdar://88979099>
Reviewed by John Wilander.
Source/WebCore:
For top level navigations, we need to use the security origin to compute siteForCookies as the document
may have the opener security origin.
Add a Document routine to handle this case.
Tests: http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form.html
http/tests/cookies/same-site/popup-same-site-with-post-form.html
- dom/Document.cpp:
- dom/Document.h:
- loader/FrameLoader.cpp:
LayoutTests:
- http/tests/cookies/resources/testharness-helpers.js:
- http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form-expected.txt: Added.
- http/tests/cookies/same-site/popup-from-iframe-same-site-with-post-form.html: Added.
- http/tests/cookies/same-site/popup-same-site-with-post-form-expected.txt: Added.
- http/tests/cookies/same-site/popup-same-site-with-post-form.html: Added.
- http/tests/cookies/same-site/resources/popup-iframe.html: Added.
- 1:40 AM Changeset in webkit [291740] by
-
- 5 edits in trunk
Web Inspector: Styles panel: Unwanted extra dash when autocompleting CSS variable names
https://bugs.webkit.org/show_bug.cgi?id=237676
Reviewed by Patrick Angle.
Source/WebInspectorUI:
The CSS-mode tokenizer provided by CodeMirror and used in Web Inspector matches strictly conforming
CSS variable names, i.e. prefixed with two dahses,--.
An identifier like
-namegets split into two tokens-andname.
The token at the cursor position becomes justname.
This token's value is used as a query string for autocompletion.
When a completion suggestion is picked, the query string gets replaced with the suggestion text in
WI.SpreadsheetTextField._updatePendingValueWithCompletionText().
But because it was split from the query, the dash ends up prepended to the replaced string.
This patch adds a special case in
WI.CSSKeywordCompletions.forPartialPropertyValue()
to account for this aspect of the tokenizer.
- UserInterface/Models/CSSKeywordCompletions.js:
LayoutTests:
Add tests for special cases of matching incomplete CSS variable names in autocompletion.
- inspector/unit-tests/css-keyword-completions-expected.txt:
- inspector/unit-tests/css-keyword-completions.html:
- 1:09 AM Changeset in webkit [291739] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo] Unreviewed build fix after r291733
- WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h:
- 1:02 AM Changeset in webkit [291738] by
-
- 1 edit8 adds in trunk/LayoutTests/imported/w3c
Import calc() infinite/nan tests
https://bugs.webkit.org/show_bug.cgi?id=238237
Unreviewed, test import.
- web-platform-tests/css/css-values/calc-catch-divide-by-0-expected.txt: Added.
- web-platform-tests/css/css-values/calc-catch-divide-by-0.html: Added.
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle-expected.txt: Added.
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-angle.html: Added.
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-length-expected.txt: Added.
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-length.html: Added.
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-time-expected.txt: Added.
- web-platform-tests/css/css-values/calc-infinity-nan-serialize-time.html: Added.
Mar 22, 2022:
- 11:47 PM Changeset in webkit [291737] by
-
- 19 edits1 copy3 adds in trunk
Only show notification permission prompt on transient activation
https://bugs.webkit.org/show_bug.cgi?id=238188
Reviewed by Youenn Fablet.
Source/WebCore:
In r291427, we changed Notification.requestPermission and PushManager.subscribe to only show
a permission prompt when processing a user gesture. This ended up being too restrictive and
causes compatibility problems with some large sites.
Instead, match Chrome and Firefox by allowing these prompts after a transient activiation,
i.e. a user gesture within the past second.
Per Maciej's suggestion, we also consume the activation to help combat prompt spam.
Covered by new and existing layout tests.
- Modules/notifications/Notification.cpp:
(WebCore::Notification::requestPermission):
- Modules/push-api/PushManager.cpp:
(WebCore::PushManager::subscribe):
Tools:
Add an internal API denyWebNotificationPermissionOnPrompt to WebKitTestRunner that allows a
notification permission prompt to first be displayed and then rejected. This differs from
the existing denyNotificationPermission call, which denied notification permissions before
prompting.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::denyWebNotificationPermission):
(WTR::TestRunner::denyWebNotificationPermissionOnPrompt):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::originUserVisibleName):
(WTR::TestController::denyNotificationPermissionOnPrompt):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::decidePolicyForNotificationPermissionRequest):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Add test cases to make sure that showing a permission prompt consumes a user gesture.
- http/tests/notifications/notification-request-permission-no-callback.html:
- http/tests/notifications/notification-request-permission.html:
- http/tests/notifications/request-consumes-activation-expected.txt: Added.
- http/tests/notifications/request-consumes-activation.html: Added.
- http/tests/push-api/resources/subscribe-tests.js:
(async testDocumentSubscribeWithUserGesture):
(async testDocumentSubscribeWithoutUserGesture):
(async testDocumentSubscribeImpl):
- http/tests/push-api/subscribe-deny-permissions-expected.txt:
- http/tests/push-api/subscribe-deny-permissions-on-prompt-expected.txt:
- http/tests/push-api/subscribe-deny-permissions-on-prompt.html: Added.
- http/tests/push-api/subscribe-deny-permissions.html:
- platform/gtk/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 11:45 PM Changeset in webkit [291736] by
-
- 17 edits in trunk
[JSC] Test DFG / FTL DataIC
https://bugs.webkit.org/show_bug.cgi?id=231224
Reviewed by Saam Barati.
JSTests:
- microbenchmarks/deltablue-varargs.js:
- microbenchmarks/richards-try-catch.js:
Source/JavaScriptCore:
This patch revives DataIC in DFG and FTL, and re-enable testing to make it usable
for unlinked DFG. Currently, only x64 / ARM64 are supported.
- bytecode/InlineAccess.cpp:
(JSC::InlineAccess::isCacheableArrayLength):
(JSC::InlineAccess::isCacheableStringLength):
(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileInById):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::cachedPutById):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/JITCode.h:
(JSC::JITCode::useDataIC):
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITByIdGenerator::generateFastCommon):
(JSC::generateGetByIdInlineAccess):
(JSC::JITGetByIdGenerator::generateFastPath):
(JSC::JITGetByIdWithThisGenerator::generateFastPath):
(JSC::generatePutByIdInlineAccess):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITPutByIdGenerator::generateFastPath):
(JSC::JITDelByValGenerator::generateFastPath):
(JSC::JITDelByIdGenerator::generateFastPath):
(JSC::JITInByValGenerator::generateFastPath):
(JSC::generateInByIdInlineAccess):
(JSC::JITInByIdGenerator::generateFastPath):
(JSC::JITInByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITInstanceOfGenerator::generateFastPath):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITPutByValGenerator::generateFastPath):
(JSC::JITPrivateBrandAccessGenerator::generateFastPath):
- jit/JITInlineCacheGenerator.h:
(JSC::JITInlineCacheGenerator::reportSlowPathCall):
(JSC::JITInlineCacheGenerator::slowPathBegin const):
(JSC::JITByIdGenerator::slowPathJump const):
(JSC::JITInByValGenerator::slowPathJump const):
- runtime/Options.cpp:
(JSC::Options::recomputeDependentOptions):
- runtime/OptionsList.h:
Tools:
- Scripts/run-jsc-stress-tests:
- 10:26 PM Changeset in webkit [291735] by
-
- 19 edits1 add in trunk
Implement PCM to SKAdNetwork bridge
https://bugs.webkit.org/show_bug.cgi?id=237969
<rdar://82988054>
Reviewed by John Wilander.
Source/WebCore:
When clicking on an app store link that has been decorated with the necessary PCM attributes,
we give information about the click to SKAdNetwork to send an anonymous attribution report later
if the user buys the app because of the click. That part has not been implemented yet, so to test
we simply report the information that we are giving to SKAdNetwork in an API test which uses an HTTPS
proxy so we don't actually connect to apps.apple.com when running the test.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::attributionDestinationURLForPCM const):
(WebCore::HTMLAnchorElement::mainDocumentRegistrableDomainForPCM const):
(WebCore::HTMLAnchorElement::attributionSourceNonceForPCM const):
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurementForSKAdNetwork const):
(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):
(WebCore::HTMLAnchorElement::handleClick):
- html/HTMLAnchorElement.h:
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::appStoreURLAdamID):
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::adamID const):
(WebCore::PrivateClickMeasurement::setAdamID):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
Source/WebKit:
The WebKit parts of this just introduce a new information flow to SKAdNetwork to send the app purchase attribution
kind of like WebKit sends a PCM attribution report 24-48 hours after a non-app-purchase click with attribution.
- Configurations/WebKit.xcconfig:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::storePrivateClickMeasurement):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::donateToSKAdNetwork):
- NetworkProcess/cocoa/AppStoreDaemonSPI.h: Added.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::donateToSKAdNetwork):
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Scripts/process-entitlements.sh:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/PlatformHave.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- 9:25 PM Changeset in webkit [291734] by
-
- 6 edits in trunk/Source/WebCore
Add a few more WEBCORE_EXPORT macros
https://bugs.webkit.org/show_bug.cgi?id=238214
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-22
Reviewed by Eric Carlson.
These are needed to successfully link when building with -fsanitize=fuzzer,address
- dom/Document.h:
- html/HTMLCollection.h:
- html/HTMLOptionsCollection.h:
- platform/Pasteboard.h:
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- 7:06 PM Changeset in webkit [291733] by
-
- 14 edits1 add in trunk/Source/WebKit
Swap all RemoteLayerBackingStore buffers in a single IPC
https://bugs.webkit.org/show_bug.cgi?id=238210
Reviewed by Tim Horton.
PrepareBuffersForDisplay is a sync IPC (since we need the result before painting), and sync
IPC per-layer has performance impact. So group all the swapping into a single IPC with the
GPU Process.
The PrepareBuffersForDisplay message now takes a vector of
PrepareBackingStoreBuffersInputData, and returns a vector of
PrepareBackingStoreBuffersOutputData. Swapped buffers are applied to the
RemoteLayerBackingStore as before, with a minor change in the place that setNeedsDisplay()
is called in the case where we need a full display.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::prepareBuffersForDisplay):
(WebKit::RemoteRenderingBackend::prepareLayerBuffersForDisplay):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Scripts/webkit/messages.py:
(headers_for_type):
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::performDelegatedLayerDisplay):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
(WebKit::operator<<): Deleted.
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::prepareBackingStoreBuffers): Deleted.
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::prepareBackingStoresForDisplay):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::prepareBackingStoreBuffers): Deleted.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h: Added.
(WebKit::PrepareBackingStoreBuffersInputData::encode const):
(WebKit::PrepareBackingStoreBuffersInputData::decode):
(WebKit::PrepareBackingStoreBuffersOutputData::encode const):
(WebKit::PrepareBackingStoreBuffersOutputData::decode):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::prepareBuffersForDisplay):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- 6:39 PM Changeset in webkit [291732] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (248499@main): [iOS] ASSERTION FAILED: Completion handler should always be called under WebKit::NetworkProcess::prepareToSuspend()
https://bugs.webkit.org/show_bug.cgi?id=238234
<rdar://problem/90665237>
Reviewed by Chris Dumez.
Invoke completion handler on early return.
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::suspend):
- 6:27 PM Changeset in webkit [291731] by
-
- 5 edits in trunk/Source
Use ASCIILiteral in a few more places where it is useful
https://bugs.webkit.org/show_bug.cgi?id=238235
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::toStringSlow):
Source/WebCore:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::setValueCommon):
- platform/animation/TimingFunction.cpp:
(WebCore::TimingFunction::cssText const):
- 5:58 PM Changeset in webkit [291730] by
-
- 6 edits in trunk/Source
Add URL::stringWithoutFragmentIdentifier() overload which returns a String instead of a StringView
https://bugs.webkit.org/show_bug.cgi?id=238221
Reviewed by Geoffrey Garen.
Source/WebCore:
- page/History.cpp:
(WebCore::History::stateObjectAdded):
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::getBlobDataFromURL const):
(WebCore::BlobRegistryImpl::registerBlobURLHandle):
(WebCore::BlobRegistryImpl::unregisterBlobURLHandle):
(WebCore::blobURLWithoutFragment): Deleted.
Source/WTF:
- wtf/URL.cpp:
(WTF::URL::viewWithoutQueryOrFragmentIdentifier const):
(WTF::URL::viewWithoutFragmentIdentifier const):
(WTF::URL::stringWithoutFragmentIdentifier const):
(WTF::equalIgnoringFragmentIdentifier):
(WTF::URL::stringWithoutQueryOrFragmentIdentifier const): Deleted.
- wtf/URL.h:
- 5:19 PM Changeset in webkit [291729] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements tab: selection variable not displayed after losing focus
https://bugs.webkit.org/show_bug.cgi?id=238226
Reviewed by Devin Rousso.
When rebuilding the underlying
DOMTreeElements, we should make sure the inspected node is marked as such,
otherwise we won't update this until a different element becomes the inspected node.
- UserInterface/Views/DOMTreeOutline.js:
(WI.DOMTreeOutline.prototype.update):
- 5:11 PM Changeset in webkit [291728] by
-
- 2 edits in trunk/Source/WebKit
Expand autocorrect context for more accurate results.
https://bugs.webkit.org/show_bug.cgi?id=237990
rdar://87353381
Expand autocorrect context to at least 10 words instead of 3, and with a min/max length of 40/100 instead of 12/30
and start context at the beginning of sentences to help with having more accurate autocorrect suggestions.
Reviewed by Tim Horton.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::autocorrectionContext):
- 5:00 PM Changeset in webkit [291727] by
-
- 2 edits in trunk/LayoutTests
Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168
Patch by Tyler Wilcock <Tyler Wilcock> on 2022-03-22
Reviewed by Chris Fleizach.
- accessibility/mac/iframe-pdf-expected.txt: Added.
- accessibility/mac/iframe-pdf.html: Added.
- platform/mac-wk1/TestExpectations:
Skip new test as it always times out in WK1 (similar to
accessibility/mac/basic-embed-pdf-accessibility.html)
- 4:53 PM Changeset in webkit [291726] by
-
- 6 edits in trunk
Check if origin can access storage in Storage API
https://bugs.webkit.org/show_bug.cgi?id=238158
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/file-system-access/opaque-origin.https.window-expected.txt:
- web-platform-tests/storage/opaque-origin.https.window-expected.txt:
Source/WebCore:
According to spec https://storage.spec.whatwg.org/#obtain-a-storage-key, origin should not access Storage API if
it's opaque. Also, origin should not access storage if it's blocked by storage policy, so we use
SecurityOrigin::canAccessStorage to perform the origin check, like what we do for the other storage APIs.
Updated expectation for imported tests.
- Modules/storage/StorageManager.cpp:
(WebCore::connectionInfo):
- page/SecurityOrigin.h:
(WebCore::SecurityOrigin::canAccessStorageManager const):
- 4:46 PM Changeset in webkit [291725] by
-
- 3 edits1 move in trunk/Source/WebCore
[IFC][Integration] Rename InlineIteratorLine.cpp to InlineIteratorLineBox.cpp
https://bugs.webkit.org/show_bug.cgi?id=238219
Unreviewed.
r291548 should have included this rename.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/integration/InlineIteratorLineBox.cpp: Renamed from Source/WebCore/layout/integration/InlineIteratorLine.cpp.
(WebCore::InlineIterator::LineBoxIterator::LineBoxIterator):
(WebCore::InlineIterator::LineBoxIterator::atEnd const):
(WebCore::InlineIterator::LineBoxIterator::traverseNext):
(WebCore::InlineIterator::LineBoxIterator::traversePrevious):
(WebCore::InlineIterator::LineBoxIterator::operator== const):
(WebCore::InlineIterator::firstLineBoxFor):
(WebCore::InlineIterator::lastLineBoxFor):
(WebCore::InlineIterator::LineBox::next const):
(WebCore::InlineIterator::LineBox::previous const):
(WebCore::InlineIterator::LineBox::firstLeafBox const):
(WebCore::InlineIterator::LineBox::lastLeafBox const):
(WebCore::InlineIterator::closestBoxForHorizontalPosition):
- 4:37 PM Changeset in webkit [291724] by
-
- 4 edits2 adds in trunk
Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168
Reviewed by Chris Fleizach.
Source/WebKit:
Given this markup:
<iframe src="/path/to/paystub.pdf">
An accessibility tree is built for paystub.pdf, but we don't expose it
to AX clients, making the PDF entirely inaccessible.
This happens because we were setting the AX parent to be the webpage
for full-frame PDF plugins (which an iframe with this markup is).
This behavior is correct only for main-frame (i.e. not iframe)
full-frame plugins, so this patch adds an extra condition to that logic.
Test: accessibility/mac/iframe-pdf.html
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
LayoutTests:
- accessibility/mac/iframe-pdf-expected.txt: Added.
- accessibility/mac/iframe-pdf.html: Added.
- platform/mac-wk1/TestExpectations:
Skip new test as it always times out in WK1 (similar to
accessibility/mac/basic-embed-pdf-accessibility.html)
- 4:25 PM Changeset in webkit [291723] by
-
- 2 edits in trunk/LayoutTests
[macOS WK2] LayoutTest webaudio/silent-audio-interrupted-in-background.html is a flaky timeout on older OSes (El Capitan / Sierra) (172201)
https://bugs.webkit.org/show_bug.cgi?id=172201
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:24 PM Changeset in webkit [291722] by
-
- 1 copy in tags/Safari-614.1.6.2
Tag Safari-614.1.6.2.
- 4:22 PM Changeset in webkit [291721] by
-
- 2 edits in trunk/LayoutTests
[ EWS iOS ] fast/text/emoji-num-glyphs.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=238233
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 4:19 PM Changeset in webkit [291720] by
-
- 6 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291691. rdar://problem/90654598
Prefer WK_EXTERN to WK_EXPORT in Cocoa API headers
https://bugs.webkit.org/show_bug.cgi?id=238129
Reviewed by Wenson Hsieh.
- UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h:
- UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
- UIProcess/API/Cocoa/_WKElementAction.h:
- UIProcess/API/Cocoa/_WKErrorRecoveryAttempting.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h: WK_EXPORT comes from WKDeclarationSpecifiers.h, which is a legacy C SPI header. WK_EXTERN comes from WKFoundation.h, part of the modern public API. We should prefer the modern version in Cocoa-only headers (even in private headers).
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:13 PM Changeset in webkit [291719] by
-
- 1 copy in tags/Safari-611.3.10.1.16
Tag Safari-611.3.10.1.16.
- 4:09 PM Changeset in webkit [291718] by
-
- 1 copy in tags/Safari-609.4.1.1.1
Tag Safari-609.4.1.1.1.
- 4:01 PM Changeset in webkit [291717] by
-
- 9 edits in branches/safari-614.1.6-branch/Source
Versioning.
WebKit-7614.1.6.2
- 4:00 PM Changeset in webkit [291716] by
-
- 5 edits in trunk/Tools
[git-webkit] Do not re-prompt configuration options during setup
https://bugs.webkit.org/show_bug.cgi?id=237571
<rdar://problem/89940351>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.git): Skip already configured options by default.
(Setup.parser): Add option to re-prompt for previously configured options.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
Canonical link: https://commits.webkit.org/248753@main
- 3:34 PM Changeset in webkit [291715] by
-
- 2 edits in trunk/LayoutTests
[ EWS iOS ] imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-050.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=238229
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 3:34 PM Changeset in webkit [291714] by
-
- 2 edits in branches/safari-614.1.7-branch/Source/ThirdParty/libwebrtc
Cherry-pick r291713. rdar://problem/90604028
REGRESSION(r291455): libwebrtc has the wrong install name when using override frameworks directory
https://bugs.webkit.org/show_bug.cgi?id=238212
rdar://90604028
Reviewed by Alexey Proskuryakov.
r291455 introduced a default definition of DYLIB_INSTALL_NAME_BASE for non-macOS platforms that
stays defined as /S/L/PF/WebCore.framework/Frameworks. This explicit definition (rather than
falling back to the build system default of $INSTALL_PATH) is fine for those platforms but
clashes with the macOS definition of this variable when building with an override frameworks path:
DYLIB_INSTALL_NAME_BASE_USE_OVERRIDE_FRAMEWORKS_DIR_YES = $(DYLIB_INSTALL_NAME_BASE);
Because of the new default definition of
DYLIB_INSTALL_NAME_BASE, the semantics of this line
were changed from "use the install path as the install name when there's an override frameworks
directory" to "use /S/L/PF/WebCore.frameworks/Frameworks as the install name when there's an
override frameworks directory", which completely bypasses the point of the *override* directory.
Resolve this by redefining DYLIB_INSTALL_NAME_BASE_USE_OVERRIDE_FRAMEWORKS_DIR_YES to explicitly
use the INSTALL_PATH as the base of the install name, which was the original intent before
r291455 changed the behavior of falling back to DYLIB_INSTALL_NAME_BASE.
- Configurations/libwebrtc.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:28 PM Changeset in webkit [291713] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
REGRESSION(r291455): libwebrtc has the wrong install name when using override frameworks directory
https://bugs.webkit.org/show_bug.cgi?id=238212
rdar://90604028
Reviewed by Alexey Proskuryakov.
r291455 introduced a default definition of DYLIB_INSTALL_NAME_BASE for non-macOS platforms that
stays defined as /S/L/PF/WebCore.framework/Frameworks. This explicit definition (rather than
falling back to the build system default of $INSTALL_PATH) is fine for those platforms but
clashes with the macOS definition of this variable when building with an override frameworks path:
DYLIB_INSTALL_NAME_BASE_USE_OVERRIDE_FRAMEWORKS_DIR_YES = $(DYLIB_INSTALL_NAME_BASE);
Because of the new default definition of
DYLIB_INSTALL_NAME_BASE, the semantics of this line
were changed from "use the install path as the install name when there's an override frameworks
directory" to "use /S/L/PF/WebCore.frameworks/Frameworks as the install name when there's an
override frameworks directory", which completely bypasses the point of the *override* directory.
Resolve this by redefining DYLIB_INSTALL_NAME_BASE_USE_OVERRIDE_FRAMEWORKS_DIR_YES to explicitly
use the INSTALL_PATH as the base of the install name, which was the original intent before
r291455 changed the behavior of falling back to DYLIB_INSTALL_NAME_BASE.
- Configurations/libwebrtc.xcconfig:
- 3:22 PM Changeset in webkit [291712] by
-
- 5 edits in trunk
Source/WebInspectorUI:
Web Inspector:console.logformat strings containing invalid specifiers results in[Object object]replacing the specifier instead of ignoring the invalid specifier
https://bugs.webkit.org/show_bug.cgi?id=235061
Reviewed by Devin Rousso.
Logged console messages previously allows an specifier, even invalid ones, to be replaced with values. We should
instead ignore the invalid specifier to match Firefox's behavior. (Chrome's behavior currently is to remove the
invalid specifier from the result without replacing it with the first next available substitution value.)
Other call sites using
String.formatare handling localized strings or other backend-provided strings that
should always be well-formatted, so falling back to handling a format specifier as a string is not a particularly
useful behavior.
- UserInterface/Base/Utilities.js:
(value):
LayoutTests:
Web Inspector: console.log print strings contains '%_' result is Object
https://bugs.webkit.org/show_bug.cgi?id=235061
Reviewed by Devin Rousso.
- inspector/unit-tests/string-utilities-expected.txt:
- inspector/unit-tests/string-utilities.html:
- 3:18 PM Changeset in webkit [291711] by
-
- 24 edits in branches/safari-613-branch/Source
Fix build on safari-613-branch
Source/WebCore:
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::addToLine):
- rendering/LegacyLineLayout.cpp:
(WebCore::repaintSelfPaintInlineBoxes):
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
- pal/spi/cocoa/AVFoundationSPI.h:
Source/WebKit:
Most of this is just merging most of https://github.com/WebKit/WebKit/commit/ecdbbe0b667c3231bbbf93ab3a5d4df29a6df985
for rdar://problem/89972004
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
- NetworkProcess/NetworkSocketChannel.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
- NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask):
- NetworkProcess/soup/NetworkSessionSoup.h:
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::handleAXPreferenceChange):
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::connect):
Source/WebKitLegacy/mac:
- Plugins/WebBasePluginPackage.mm:
(-[WebBasePluginPackage isNativeLibraryData:]):
- 3:18 PM Changeset in webkit [291710] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r291523-r291501): [ iOS ] fast/dom/intersection-observer-document-leak.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=238227
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 3:04 PM Changeset in webkit [291709] by
-
- 2 edits in trunk/LayoutTests
[iOS] editing/spelling/editing-word-with-marker-1.html causes the subsequent test to time out
https://bugs.webkit.org/show_bug.cgi?id=237812
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 2:52 PM Changeset in webkit [291708] by
-
- 1 copy in tags/Safari-614.1.5.16
Tag Safari-614.1.5.16.
- 2:51 PM Changeset in webkit [291707] by
-
- 6 edits in branches/safari-614.1.5-branch/Source
Revert r291458. rdar://problem/90655518
- 2:50 PM Changeset in webkit [291706] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/text/text-shadow-ink-overflow-missing.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=238211
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 2:47 PM Changeset in webkit [291705] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r291679.
Expectation should be ImageOnlyFailure
Reverted changeset:
"[ iOS EWS ] fast/text/text-shadow-ink-overflow-missing.html
is a flaky image failure"
https://bugs.webkit.org/show_bug.cgi?id=238211
https://commits.webkit.org/r291679
- 2:27 PM Changeset in webkit [291704] by
-
- 2 edits in trunk/LayoutTests
[ Debug wk2 ] ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) (223750)
https://bugs.webkit.org/show_bug.cgi?id=223750
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Removing no longer needed test expectation.
- 2:16 PM Changeset in webkit [291703] by
-
- 2 edits5 adds in trunk/LayoutTests
[ BigSur+ ] imported/w3c/web-platform-t ests/media-source/mediasour ce-addsourcebuffer.html (layout-test) is consistently failing (221230)
https://bugs.webkit.org/show_bug.cgi?id=221230
Unreviewed test gardening. Rebaseline for test.
- platform/mac-bigsur-wk1/imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-expected.txt: Added.
- platform/mac-wk2/imported/w3c/web-platform-tests/media-source/mediasource-addsourcebuffer-expected.txt: Added.
- platform/mac/TestExpectations: Removing old expectations.
- 2:15 PM Changeset in webkit [291702] by
-
- 3 edits in trunk/LayoutTests
Disable remaining HEIC tests
https://bugs.webkit.org/show_bug.cgi?id=238191
<rdar://88980849>
Reviewed by Simon Fraser.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 2:11 PM Changeset in webkit [291701] by
-
- 7 edits in trunk/Source/WebGPU
[WebGPU] Allocating a buffer of size 0 crashes
https://bugs.webkit.org/show_bug.cgi?id=238165
Reviewed by Kimmo Kinnunen.
Metal requires buffer sizes to be > 0, but WebGPU allows for = 0.
This patch simply clamps all buffer sizes to 1. In the future, if this
causes performance problems, we could consider some more invasive change
where the MTLBuffer member of a WebGPU::Buffer is nil. But, for now,
just clamping the size to 1 is enough to get the test to stop crashing.
Test: api/validation/buffer/mapping.spec.ts. (We can't actually enable the test
until WebCore links with WebGPU.)
- WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
- WebGPU/Buffer.mm:
(WebGPU::Device::safeCreateBuffer const):
(WebGPU::Device::createBuffer):
- WebGPU/ComputePipeline.mm:
- WebGPU/Device.h:
- WebGPU/Instance.mm:
(wgpuGetProcAddress):
- WebGPU/ShaderModule.mm:
(WebGPU::ShaderModule::createLibrary):
- 2:09 PM Changeset in webkit [291700] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.16
- 2:09 PM Changeset in webkit [291699] by
-
- 6 edits in trunk/Source
[WinCairo] RemoteGraphicsContextGL.h(78): error C2027: use of undefined type 'WebCore::GraphicsContextGL'
https://bugs.webkit.org/show_bug.cgi?id=238223
Unreviewed build fix.
r291610 renamed GraphicsContextGLTextureMapper to GraphicsContextGLTextureMapperANGLE.
Source/WebCore:
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:
(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:
Source/WebKit:
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGLWin.cpp:
(WebKit::RemoteGraphicsContextGLWin::platformWorkQueueInitialize):
- 1:45 PM Changeset in webkit [291698] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r289402-r289376): [ Debug iOS ] webgl/1.0.3/conformance/uniforms/uniform-samplers-test.html is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=237694
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 1:38 PM Changeset in webkit [291697] by
-
- 1 edit4 adds in trunk/LayoutTests
imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html fails (221819)
https://bugs.webkit.org/show_bug.cgi?id=221819
Unreviewed test gardening. Re-baseline for wk1.
- platform/mac-wk1/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt: Added.
- 1:37 PM Changeset in webkit [291696] by
-
- 19 edits in trunk/Source
[GPU Process] Make GraphicsContextState a class
https://bugs.webkit.org/show_bug.cgi?id=238192
Reviewed by Simon Fraser.
Source/WebCore:
This will make the members be private so we have to provide getters for
all of them. This change will prevent changing the members without going
through the setters.
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::fillBrush const):
(WebCore::GraphicsContext::fillColor const):
(WebCore::GraphicsContext::fillGradient const):
(WebCore::GraphicsContext::fillGradientSpaceTransform const):
(WebCore::GraphicsContext::fillPattern const):
(WebCore::GraphicsContext::fillRule const):
(WebCore::GraphicsContext::strokeBrush const):
(WebCore::GraphicsContext::strokeColor const):
(WebCore::GraphicsContext::strokeGradient const):
(WebCore::GraphicsContext::strokeGradientSpaceTransform const):
(WebCore::GraphicsContext::strokePattern const):
(WebCore::GraphicsContext::strokeThickness const):
(WebCore::GraphicsContext::strokeStyle const):
(WebCore::GraphicsContext::dropShadow const):
(WebCore::GraphicsContext::compositeMode const):
(WebCore::GraphicsContext::alpha const):
(WebCore::GraphicsContext::textDrawingMode const):
(WebCore::GraphicsContext::imageInterpolationQuality const):
(WebCore::GraphicsContext::shouldAntialias const):
(WebCore::GraphicsContext::shouldSmoothFonts const):
(WebCore::GraphicsContext::shouldSubpixelQuantizeFonts const):
(WebCore::GraphicsContext::shadowsIgnoreTransforms const):
(WebCore::GraphicsContext::drawLuminanceMask const):
(WebCore::GraphicsContext::useDarkAppearance const):
- platform/graphics/GraphicsContextState.cpp:
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextState::containsOnlyInlineChanges const):
(WebCore::GraphicsContextState::mergeChanges):
(WebCore::GraphicsContextState::didBeginTransparencyLayer):
(WebCore::GraphicsContextState::didEndTransparencyLayer):
(WebCore::GraphicsContextState::dump const):
- platform/graphics/GraphicsContextState.h:
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextState::changes const):
(WebCore::GraphicsContextState::didApplyChanges):
(WebCore::GraphicsContextState::fillBrush const):
(WebCore::GraphicsContextState::setFillBrush):
(WebCore::GraphicsContextState::setFillColor):
(WebCore::GraphicsContextState::setFillGradient):
(WebCore::GraphicsContextState::setFillPattern):
(WebCore::GraphicsContextState::fillRule const):
(WebCore::GraphicsContextState::setFillRule):
(WebCore::GraphicsContextState::strokeBrush const):
(WebCore::GraphicsContextState::setStrokeBrush):
(WebCore::GraphicsContextState::setStrokeColor):
(WebCore::GraphicsContextState::setStrokeGradient):
(WebCore::GraphicsContextState::setStrokePattern):
(WebCore::GraphicsContextState::strokeThickness const):
(WebCore::GraphicsContextState::setStrokeThickness):
(WebCore::GraphicsContextState::strokeStyle const):
(WebCore::GraphicsContextState::setStrokeStyle):
(WebCore::GraphicsContextState::compositeMode const):
(WebCore::GraphicsContextState::setCompositeMode):
(WebCore::GraphicsContextState::dropShadow const):
(WebCore::GraphicsContextState::setDropShadow):
(WebCore::GraphicsContextState::alpha const):
(WebCore::GraphicsContextState::setAlpha):
(WebCore::GraphicsContextState::imageInterpolationQuality const):
(WebCore::GraphicsContextState::setImageInterpolationQuality):
(WebCore::GraphicsContextState::textDrawingMode const):
(WebCore::GraphicsContextState::setTextDrawingMode):
(WebCore::GraphicsContextState::shouldAntialias const):
(WebCore::GraphicsContextState::setShouldAntialias):
(WebCore::GraphicsContextState::shouldSmoothFonts const):
(WebCore::GraphicsContextState::setShouldSmoothFonts):
(WebCore::GraphicsContextState::shouldSubpixelQuantizeFonts const):
(WebCore::GraphicsContextState::setShouldSubpixelQuantizeFonts):
(WebCore::GraphicsContextState::shadowsIgnoreTransforms const):
(WebCore::GraphicsContextState::setShadowsIgnoreTransforms):
(WebCore::GraphicsContextState::drawLuminanceMask const):
(WebCore::GraphicsContextState::setDrawLuminanceMask):
(WebCore::GraphicsContextState::useDarkAppearance const):
(WebCore::GraphicsContextState::setUseDarkAppearance):
(WebCore::GraphicsContextState::setProperty):
(WebCore::GraphicsContextState::encode const):
(WebCore::GraphicsContextState::decode):
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::FillSource::FillSource):
(WebCore::Cairo::StrokeSource::StrokeSource):
(WebCore::Cairo::ShadowState::ShadowState):
- platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::drawGlyphs):
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContextCairo::drawNativeImage):
(WebCore::GraphicsContextCairo::didUpdateState):
(WebCore::GraphicsContextCairo::drawGlyphs):
- platform/graphics/cairo/ImageBufferCairoBackend.cpp:
(WebCore::ImageBufferCairoBackend::draw):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::coreInterpolationQuality):
(WebCore::GraphicsContextCG::GraphicsContextCG):
(WebCore::GraphicsContextCG::didUpdateState):
(WebCore::GraphicsContextCG::strokeRect):
(WebCore::GraphicsContextCG::canUseShadowBlur const):
- platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:
(WebCore::DrawGlyphsRecorder::populateInternalState):
(WebCore::DrawGlyphsRecorder::populateInternalContext):
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::shouldDumpForFlags):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::endTransparencyLayer):
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::applySetStateItem):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::didUpdateState):
(Nicosia::CairoOperationRecorder::fillRect):
(Nicosia::CairoOperationRecorder::fillRoundedRect):
(Nicosia::CairoOperationRecorder::drawGlyphs):
(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawRect):
(Nicosia::CairoOperationRecorder::drawLine):
(Nicosia::CairoOperationRecorder::drawLinesForText):
(Nicosia::CairoOperationRecorder::drawEllipse):
Source/WebKit:
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::setState):
- Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::paint):
- WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::convertCairoSurfaceToShareableBitmap):
- 1:33 PM Changeset in webkit [291695] by
-
- 2 edits in trunk/LayoutTests
[ iOS GPUP arm64 ] 5 webaudio/* are constant text failures since being unskipped.
https://bugs.webkit.org/show_bug.cgi?id=238220
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 1:24 PM Changeset in webkit [291694] by
-
- 8 edits in trunk/Source/WebCore
REGRESSION(r288307): instanceof value wrong in MutationObserver callback for Safari extensions
https://bugs.webkit.org/show_bug.cgi?id=237912
<rdar://90333276>
Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-03-22
Reviewed by Saam Barati.
ScriptExecutionContext::globalObject() returns stray global object if called on an object
that was created inside a Safari extension. I am unsure whether this is a bug, and if so,
how to promptly fix it, so this patch changes the way callback functions / interfaces
resolve lexical global object, which is used to create DOM wrappers.
Now they rely only on their JSCallbackData, which was proven to return correct
global object for Safari extensions.
For [IsWeakCallback] interfaces, liveness of the callback object is guaranteed
by the canInvokeCallback() check above.
No new tests: Safari extensions are covered in internal repo.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackImplementationContent):
- bindings/scripts/test/JS/*: Updated.
- 1:17 PM Changeset in webkit [291693] by
-
- 2 edits in trunk/LayoutTests
[ macOS Debug ] inspector/console/queryInstances.html is a flaky failure (215814)
https://bugs.webkit.org/show_bug.cgi?id=215814
Unreviewed test gardening.
- platform/mac/TestExpectations: Removing no longer needed test expectation.
- 1:11 PM Changeset in webkit [291692] by
-
- 2 edits in trunk/LayoutTests
inspector/canvas/setRecordingAutoCaptureFrameCount.html is flaky failing (228011)
https://bugs.webkit.org/show_bug.cgi?id=228011
Unreviewed test gardening.
- platform/mac/TestExpectations: Removing no longer needed test expectation.
- 1:03 PM Changeset in webkit [291691] by
-
- 6 edits in trunk/Source/WebKit
Prefer WK_EXTERN to WK_EXPORT in Cocoa API headers
https://bugs.webkit.org/show_bug.cgi?id=238129
Reviewed by Wenson Hsieh.
- UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h:
- UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
- UIProcess/API/Cocoa/_WKElementAction.h:
- UIProcess/API/Cocoa/_WKErrorRecoveryAttempting.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
WK_EXPORT comes from WKDeclarationSpecifiers.h, which is a legacy C SPI header.
WK_EXTERN comes from WKFoundation.h, part of the modern public API.
We should prefer the modern version in Cocoa-only headers (even in private headers).
- 12:54 PM Changeset in webkit [291690] by
-
- 9 edits2 deletes in trunk
Unreviewed, reverting r291546.
https://bugs.webkit.org/show_bug.cgi?id=238218
7% regression in Speedometer2/jQuery-TodoMVC
Reverted changeset:
"Fix CSS cascade regarding logical properties"
https://bugs.webkit.org/show_bug.cgi?id=236199
https://commits.webkit.org/r291546
- 12:51 PM Changeset in webkit [291689] by
-
- 6 edits2 adds in trunk
REGRESSION (iOS 15.1 / r280824) QuickLook - model not loading when passing extra parameters
https://bugs.webkit.org/show_bug.cgi?id=236069
<rdar://problem/88461772>
Reviewed by Darin Adler.
Source/WebCore:
To extend the lifetime of Blob objects while loading/downloading is pending, we rely to
BlobURLHandle objects, which tell the NetworkProcess that we still need this blob data,
even if the corresponding Blob object gets GC'd by JS. The issue here is that the load
was not using the vanilla blob URL but was intead appending a fragment to the URL. As
a result, BlobRegistryImpl::registerBlobURLHandle() would fail to look up the
corresponding blob data and would fail to extend its lifetime.
To address the issue, BlobRegistryImpl::registerBlobURLHandle() / unregisterBlobURLHandle()
now strip fragments from the blob URL, similarly to what was already done inside
BlobRegistryImpl::getBlobDataFromURL().
Test: fast/files/blob-with-fragment-as-frame-url.html
- platform/network/BlobRegistryImpl.cpp:
(WebCore::blobURLWithoutFragment):
(WebCore::BlobRegistryImpl::registerBlobURLHandle):
(WebCore::BlobRegistryImpl::unregisterBlobURLHandle):
Source/WebKit:
Fix theoretical blob data leak. A WebContent process could create several BlobURLHandles for
the same blob URL. This would result in several calls to NetworkConnectionToWebProcess::registerBlobURLHandle()
for the same URL and several calls to to BlobRegistryImpl::registerBlobURLHandle() for the
same URL as well. BlobRegistryImpl is using a HashCountedSet for m_blobReferences in order
to deal with this fact. However, NetworkConnectionToWebProcess was using a simple HashSet
for m_blobURLHandles. As a result, if the WebContent process would exit and didClose()
would get called, the NetworkConnectionToWebProcess may call BlobRegistryImpl::unregisterBlobURLHandle()
only once even though the WebContent process had several handles for this URL, which would
not fully remove the URL from BlobRegistryImpl's HashCountedSet. To address the issue,
NetworkConnectionToWebProcess::m_blobURLHandles is now a HashCountedSet too and we call
BlobRegistryImpl::unregisterBlobURLHandle() as many times as needed in didClose().
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
- NetworkProcess/NetworkConnectionToWebProcess.h:
LayoutTests:
Add layout test coverage.
- fast/files/blob-with-fragment-as-frame-url-expected.txt: Added.
- fast/files/blob-with-fragment-as-frame-url.html: Added.
- 12:45 PM Changeset in webkit [291688] by
-
- 5 edits in trunk/Source/WebGPU
[WebGPU] Implement Queue::writeBuffer()
https://bugs.webkit.org/show_bug.cgi?id=238194
Reviewed by Kimmo Kinnunen.
The semantics of writeBuffer() are that the data should be written, but specifically
at the current point in the queue. So, we can't just naively memcpy(), for 2 reasons:
- If the buffer is in-use, memcpy() will clobber its current contents, leading to
corruption. Instead, it's supposed to populate the buffer at the current point
in the queue, as-if it was a queue item.
- If the buffer is a private buffer, we can't memcpy() to it anyway
So, the implementation of this function first tries to see if we can memcpy(): if the
buffer is shared or managed, and if the queue is idle. If it can, then it does so, but
if it can't, it creates a temporary buffer and enqueues a queue command to copy the
contents of the temporary buffer into the destination buffer.
That copy command is part of a lazily created command buffer.
Test: api/validation/queue/writeBuffer.spec.ts
- WebGPU/Buffer.h:
(WebGPU::Buffer::state const):
- WebGPU/Device.h:
(WebGPU::Device::device const):
- WebGPU/Queue.h:
(WebGPU::Queue::isIdle const):
- WebGPU/Queue.mm:
(WebGPU::Queue::~Queue):
(WebGPU::Queue::ensureBlitCommandEncoder):
(WebGPU::Queue::finalizeBlitCommandEncoder):
(WebGPU::Queue::onSubmittedWorkDone):
(WebGPU::Queue::commitMTLCommandBuffer):
(WebGPU::Queue::submit):
(WebGPU::validateWriteBufferInitial):
(WebGPU::Queue::validateWriteBuffer const):
(WebGPU::Queue::writeBuffer):
- 12:04 PM Changeset in webkit [291687] by
-
- 48 edits in trunk/Source/WebGPU
[WebGPU] Remove the double pointer indirection in front of all objects
https://bugs.webkit.org/show_bug.cgi?id=238001
Reviewed by Kimmo Kinnunen.
Instead of doing
class Buffer {
...
};
struct WGPUBufferImpl {
Ref<Buffer> buffer;
}
we can instead do
struct WGPUBufferImpl {
};
struct Buffer : public WGPUBufferImpl {
...
};
so we don't have to do pointer chasing to interact with objects.
- WebGPU/APIConversions.h:
(WebGPU::fromAPI):
(WebGPU::releaseToAPI):
- WebGPU/Adapter.h:
- WebGPU/Adapter.mm:
(wgpuAdapterRelease):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
- WebGPU/BindGroup.h:
- WebGPU/BindGroup.mm:
(wgpuBindGroupRelease):
- WebGPU/BindGroupLayout.h:
- WebGPU/BindGroupLayout.mm:
(wgpuBindGroupLayoutRelease):
- WebGPU/Buffer.h:
- WebGPU/Buffer.mm:
(wgpuBufferRelease):
- WebGPU/CommandBuffer.h:
- WebGPU/CommandBuffer.mm:
(wgpuCommandBufferRelease):
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(wgpuCommandEncoderRelease):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderFinish):
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePassEncoder.mm:
(wgpuComputePassEncoderRelease):
- WebGPU/ComputePipeline.h:
- WebGPU/ComputePipeline.mm:
(WebGPU::ComputePipeline::getBindGroupLayout):
(wgpuComputePipelineRelease):
(wgpuComputePipelineGetBindGroupLayout):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(wgpuDeviceRelease):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceGetQueue):
- WebGPU/Instance.h:
- WebGPU/Instance.mm:
(wgpuInstanceRelease):
(wgpuCreateInstance):
(wgpuInstanceCreateSurface):
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):
- WebGPU/PipelineLayout.h:
- WebGPU/PipelineLayout.mm:
(wgpuPipelineLayoutRelease):
- WebGPU/QuerySet.h:
- WebGPU/QuerySet.mm:
(wgpuQuerySetRelease):
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
(wgpuQueueRelease):
- WebGPU/RenderBundle.h:
- WebGPU/RenderBundle.mm:
(wgpuRenderBundleRelease):
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
(wgpuRenderBundleEncoderRelease):
(wgpuRenderBundleEncoderFinish):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
(wgpuRenderPassEncoderRelease):
- WebGPU/RenderPipeline.h:
- WebGPU/RenderPipeline.mm:
(WebGPU::RenderPipeline::getBindGroupLayout):
(wgpuRenderPipelineRelease):
(wgpuRenderPipelineGetBindGroupLayout):
- WebGPU/Sampler.h:
- WebGPU/Sampler.mm:
(wgpuSamplerRelease):
- WebGPU/ShaderModule.h:
- WebGPU/ShaderModule.mm:
(WebGPU::earlyCompileShaderModule):
(wgpuShaderModuleRelease):
- WebGPU/Surface.h:
- WebGPU/Surface.mm:
(wgpuSurfaceRelease):
- WebGPU/SwapChain.h:
- WebGPU/SwapChain.mm:
(WebGPU::SwapChain::getCurrentTextureView):
(wgpuSwapChainRelease):
(wgpuSwapChainGetCurrentTextureView):
- WebGPU/Texture.h:
- WebGPU/Texture.mm:
(wgpuTextureRelease):
(wgpuTextureCreateView):
- WebGPU/TextureView.h:
- WebGPU/TextureView.mm:
(wgpuTextureViewRelease):
- 11:58 AM Changeset in webkit [291686] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Implement GPUBufferDescriptor.mappedAtCreation
https://bugs.webkit.org/show_bug.cgi?id=238190
Reviewed by Kimmo Kinnunen.
On Macs, we can use MTLStorageModeManaged to implement mappedAtCreation.
On non-Macs, all resources are shared, so they're already mapped.
This patch turned out to be surprisingly easy to write, because Metal has
already implemented all the heavy lifting.
Test: api/validation/buffer/mapping.spec.ts
- WebGPU/Buffer.mm:
(WebGPU::storageMode):
(WebGPU::Device::createBuffer):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::unmap):
- 11:54 AM Changeset in webkit [291685] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Lifetime of CommandEncoder's internal MTLBlitCommandEncoder is not managed correctly
https://bugs.webkit.org/show_bug.cgi?id=238167
Reviewed by Kimmo Kinnunen.
We lazily create a MTLBlitCommandEncoder inside CommandEncoder to service a few various calls
which require one. Metal has some state tracking inside it, such that when objects are destroyed,
they have to be in the right state. This patch aligns WebGPU's state tracking and Metal's state
tracking.
Test: api/validation/encoding/programmable/pipeline_bind_group_compat.spec.ts
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::~CommandEncoder):
(WebGPU::CommandEncoder::finalizeBlitCommandEncoder):
- 11:49 AM Changeset in webkit [291684] by
-
- 2 edits in trunk/Source/WebKit
LibWebRTCCodecsProxy.mm and SharedVideoFrame.cpp do not need to be built as part of WebContent executable
https://bugs.webkit.org/show_bug.cgi?id=238002
Reviewed by Eric Carlson.
- WebKit.xcodeproj/project.pbxproj:
- 11:37 AM Changeset in webkit [291683] by
-
- 3 edits2 adds in branches/safari-614.1.7-branch
Cherry-pick r291629. rdar://problem/89495774
YouTube.com - Clicking anywhere on the progress bar pauses the video
https://bugs.webkit.org/show_bug.cgi?id=237750
<rdar://problem/90364846>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-unexpected-pause.html
When calling play() or pause() on a MediaPlayerPrivateMediaSourceAVFObjC, the object will
respond by calling m_player->playbackStateChanged(), which will in turn call
HTMLMediaElement::mediaPlayerPlaybackStateChanged() with the new state. However, HTMLMediaElement
expects this to be called only for unanticipated state changes, not expected state changes. And
when that method is called and the reported state does not match the element's own expected state,
the element calls its own play() or pause() function to update its own state to match the player's.
And because MediaPlayerPrivateMediaSourceAVFObjC calls this method on the next run loop, there is
an opportunity for those states to get out of sync, which happens when YouTube responds to a tap
in its timeline.
- Remove the unnecessary "call on next run loop" behavior of …
- play() and ::pause(). Also, remove the unnecessary notification that the play state has changed. In the future, this can be accomplished by adding a callback parameter to MediaPlayer::play() rather than relying on a state change notification.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playAtHostTime): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseAtHostTime):
LayoutTests:
- media/media-source/media-source-unexpected-pause-expected.txt: Added.
- media/media-source/media-source-unexpected-pause.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:37 AM Changeset in webkit [291682] by
-
- 6 edits in branches/safari-614.1.7-branch
Cherry-pick r291606. rdar://problem/89616625
Website policies are not respected when doing COOP based process swap
https://bugs.webkit.org/show_bug.cgi?id=238036
<rdar://89616625>
Reviewed by Chris Dumez.
Source/WebKit:
In case of normal process swap, we make use of website policies so everything is fine.
For COOP based process swap, this happens later on, at a point where we lost website policies.
To overcome this, we store the website policies used by a navigation inside the API::Navigation object.
It is used by continueNavigationInNewProcess to correctly initialize the new WebPage website policies.
We then set the website policies in the navigation object just before continuing the load in the same process,
as process swap may happen later when inspecting the response.
Minor refactoring in continueNavigationInNewProcess to get the policies directly from the given Navigation object.
Minor refactoring in receivedNavigationPolicyDecision to make the code doing process swap clearer.
Covered by API test.
- UIProcess/API/APINavigation.h: (API::Navigation::setWebsitePoliciesForProcessSwap): (API::Navigation::takeWebsitePoliciesForProcessSwap):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::receivedNavigationPolicyDecision): (WebKit::WebPageProxy::receivedPolicyDecision): (WebKit::WebPageProxy::continueNavigationInNewProcess): (WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291606 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:27 AM Changeset in webkit [291681] by
-
- 3 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r291598. rdar://problem/89972004
Adjust when _setPrivacyProxyFailClosedForUnreachableNonMainHosts is called
https://bugs.webkit.org/show_bug.cgi?id=237735
Reviewed by Geoff Garen.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (WebKit::NetworkSessionCocoa::createWebSocketTask):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:27 AM Changeset in webkit [291680] by
-
- 19 edits in branches/safari-613-branch/Source
Cherry-pick r289134. rdar://problem/89972004
Remember whether cached main resources used private relay when considering whether to call _setPrivacyProxyFailClosed
https://bugs.webkit.org/show_bug.cgi?id=236125
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-04
Reviewed by Geoffrey Garen.
Source/WebCore:
Use an unused bit on disk to remember whether the response was originally received over private relay.
Also, instead of remembering on the main frame's DocumentLoader, remember on the WebProcess.
This makes it so if you enter the same URL twice, which loads from the MemoryCache from different WebCore::Pages, it still remembers.
If you load a different domain, it will load in a different WebProcess anyways, at which point you will not be using the same MemoryCache.
- loader/DocumentLoader.h: (WebCore::DocumentLoader::setMainResourceWasPrivateRelayed): Deleted. (WebCore::DocumentLoader::mainResourceWasPrivateRelayed const): Deleted.
Source/WebKit:
- NetworkProcess/NetworkLoadParameters.h:
- NetworkProcess/NetworkResourceLoadParameters.cpp: (WebKit::NetworkResourceLoadParameters::encode const): (WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::retrieveCacheEntry): (WebKit::NetworkResourceLoader::didReceiveResponse): (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry): (WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::makeEntry): (WebKit::NetworkCache::Cache::store): (WebKit::NetworkCache::Cache::update):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheEntry.cpp: (WebKit::NetworkCache::Entry::Entry): (WebKit::NetworkCache::Entry::encodeAsStorageRecord const): (WebKit::NetworkCache::Entry::decodeStorageRecord):
- NetworkProcess/cache/NetworkCacheEntry.h: (WebKit::NetworkCache::Entry::privateRelayed const):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse): (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
- NetworkProcess/cache/PrefetchCache.cpp: (WebKit::PrefetchCache::Entry::Entry): (WebKit::PrefetchCache::store):
- NetworkProcess/cache/PrefetchCache.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::addParametersShared):
- WebProcess/Network/WebResourceLoader.cpp: (WebKit::WebResourceLoader::didReceiveResponse):
- WebProcess/WebProcess.h: (WebKit::WebProcess::setHadMainFrameMainResourcePrivateRelayed): (WebKit::WebProcess::hadMainFrameMainResourcePrivateRelayed const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:27 AM Changeset in webkit [291679] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] fast/text/text-shadow-ink-overflow-missing.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=238211
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 11:27 AM Changeset in webkit [291678] by
-
- 40 edits1 add in branches/safari-613-branch/Source
Cherry-pick r289018. rdar://problem/89972004
This reverts r289843.
- 11:17 AM Changeset in webkit [291677] by
-
- 2 edits in trunk
REGRESSION(r291587): Unintentionally removed contributors change
https://bugs.webkit.org/show_bug.cgi?id=238204
Unreviewed, partial revert of r291587.
- metadata/contributors.json:
- 10:57 AM Changeset in webkit [291676] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r291573. rdar://problem/89964344
[watchOS] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=238117
<rdar://89964344>
Reviewed by Brent Fulgham.
Add rarely used syscall on watchOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291573 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [291675] by
-
- 3 edits in branches/safari-613-branch
Cherry-pick r291527. rdar://problem/88857731
Dialog element only animates once
https://bugs.webkit.org/show_bug.cgi?id=236274
rdar://88857731
Reviewed by Dean Jackson, Tim Nguyen and Antti Koivisto.
LayoutTests/imported/w3c:
Import relevant WPT tests that had already been upstreamed in a previous, reverted
version of this patch.
- web-platform-tests/css/css-animations/dialog-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-animation.html: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation.html: Added.
- web-platform-tests/css/css-animations/support/testcommon.js: (addElement): (addDiv):
Source/WebCore:
Two issues related to CSS Animation surfaced in this bug which animates both <dialog>
and its ::backdrop as the dialog is open and eventually re-opened.
The first issue was that we didn't clear all CSS Animations state when a <dialog> was
closed and its style was set todisplay: none. We now call setAnimationsCreatedByMarkup
to correctly clear such state both when we identify a Styleable is newly getting
display: none. We do the same when cancelDeclarativeAnimations() is called, but also
call setCSSAnimationList() on the associated effect stack since that wasn't done either.
Now both functions do similar cleanup.
This allows us to remove removeCSSAnimationCreatedByMarkup() which did a fair bit of work
to clear CSS Animation state per-animation when we only ever used that function for
_all_ animations.
The second issue was that we never called cancelDeclarativeAnimations() for ::backdrop.
We now do that inside of Element::removeFromTopLayer() at a point where the code in
Styleable::fromRenderer() will still work as the element will still be contained in
Document::topLayerElements().
Finally, we need to be sure that calling Element::setAnimationsCreatedByMarkup() with an
empty list doesn't end up creating an ElementAnimationRareData object if there was no
pre-existing object and the list of animations are empty.
Tests: imported/w3c/web-platform-tests/css/css-animations/dialog-animation.html
imported/w3c/web-platform-tests/css/css-animations/dialog-backdrop-animation.html
- dom/Element.cpp: (WebCore::Element::removeFromTopLayer): (WebCore::Element::setAnimationsCreatedByMarkup):
- style/Styleable.cpp: (WebCore::Styleable::cancelDeclarativeAnimations const): (WebCore::Styleable::updateCSSAnimations const): (WebCore::removeCSSAnimationCreatedByMarkup): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291527 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [291674] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r291522. rdar://problem/90124325
Fix the build (hopefully)
- Shared/Cocoa/ArgumentCodersCocoa.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [291673] by
-
- 7 edits in branches/safari-613-branch
Cherry-pick r291518. rdar://problem/90124325
[Cocoa] Teach WebKit how to serialize CGColors
https://bugs.webkit.org/show_bug.cgi?id=238069
<rdar://problem/90124325>
Reviewed by Dean Jackson and Tim Horton.
Source/WebKit:
We have 2 ways of serializing Cocoa objects: NS type handling in ArgumentCodersCocoa.mm,
and CF type handling in ArgumentCodersCF.mm. CGColors are CF types, so this patch adds
direct support in ArgumentCodersCF to serialize them, by round-tripping them through
WebCore::Colors. However, NS containers (like font descriptor attribute dictionaries)
can contain CGColors, so this patch also teaches ArgumentCodersCocoa that there may be
CF types inside NS containers. If one is present, ArgumentCodersCocoa has to call into
ArgumentCodersCF to serialize it.
This patch doesn't add support for the reverse path, where an NS object is contained
within a CF container. I intentionally omitted implementing this because I wasn't sure
if it would be a layering violation; ArgumentCodersCococa.mm already #includes
ArgumentCodersCF.h, but ArgumentCodersCF.mm doesn't #include ArgumentCodersCocoa.h.
This path isn't actually necessary to solve my problem at hand, so someone else can
add support if necessary in the future. I also added a comment at the site where the
code would fail, describing what the problem is and a potential workaround.
This patch also adds support for our NSSecureCoding implementation for CGColors. This
is necessary because sometimes we want to serialize things like NSAttributedStrings,
which we don't have direct support for, so we use NSSecureCoding to serialize them
instead. NSAttributedStrings can contain fonts whose descriptor dictionaries contain
CGColors, so this path needs to work with CGColors too. Support is implemented using
NSKeyedArchiverDelegate and NSKeyedUnarchiverDelegate.
Test: IPCTestingAPI.CGColorInNSSecureCoding
The non-NSSecureCoding parts of this patch are tested by our regular LayoutTests
when DOM GPU Process rendering is enabled.
- Shared/Cocoa/ArgumentCodersCocoa.mm: (-[WKSecureCodingArchivingDelegate archiver:willEncodeObject:]): (-[WKSecureCodingArchivingDelegate unarchiver:didDecodeObject:]): (-[WKSecureCodingCGColorWrapper wrappedColor]): (+[WKSecureCodingCGColorWrapper supportsSecureCoding]): (-[WKSecureCodingCGColorWrapper encodeWithCoder:]): (-[WKSecureCodingCGColorWrapper initWithCoder:]): (-[WKSecureCodingCGColorWrapper initWithCGColor:]): (IPC::typeFromObject): (IPC::decodeSecureCodingInternal): (IPC::encodeCFInternal): (IPC::decodeCFInternal): (IPC::encodeObject): (IPC::decodeObject):
- Shared/cf/ArgumentCodersCF.cpp: (IPC::typeFromCFTypeRef): (IPC::ArgumentCoder<CFTypeRef>::encode): (IPC::ArgumentCoder<RetainPtr<CFTypeRef>>::decode): (IPC::ArgumentCoder<CGColorRef>::encode): (IPC::ArgumentCoder<RetainPtr<CGColorRef>>::decode):
- Shared/cf/ArgumentCodersCF.h:
Tools:
- Scripts/webkitpy/style/checkers/cpp.py:
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [291672] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r291451. rdar://problem/89940620
[Apple Pay] REGRESSION(r283431):
HAVE_PASSKIT_PAYMENT_METHOD_BILLING_ADDRESSwas removed without also removing where it was used
https://bugs.webkit.org/show_bug.cgi?id=238056
<rdar://problem/89940620>
Reviewed by Tim Horton.
- Modules/applepay/cocoa/PaymentMethodCocoa.mm: (WebCore::convert):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291451 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [291671] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r291330. rdar://problem/90320701
REGRESSION (r282737):
text-shadowis clipped
https://bugs.webkit.org/show_bug.cgi?id=237898
<rdar://problem/90320701>
Reviewed by Darin Adler.
Source/WebCore:
Inflate the ink overflow rect with the text shadow values (note that here, in the display builder we work with physical coordinates).
Test: fast/text/text-shadow-ink-overflow-missing.html
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp: (WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):
- rendering/style/RenderStyle.h: (WebCore::RenderStyle::getTextShadowHorizontalExtent const): (WebCore::RenderStyle::getTextShadowVerticalExtent const):
LayoutTests:
- fast/text/text-shadow-ink-overflow-missing-expected.html: Added.
- fast/text/text-shadow-ink-overflow-missing.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [291670] by
-
- 13 edits in branches/safari-613-branch/Source
Cherry-pick r291326. rdar://problem/85551863
Video poster disappears prematurely on play, leaving transparent video element.
https://bugs.webkit.org/show_bug.cgi?id=226960
<rdar://problem/79315114>
Reviewed by Jer Noble.
Source/WebCore:
If a media file has an enabled video track, don't advance readyState to
HAVE_ENOUGH_DATA until we have the first frame so we won't hide the poster image
until AVFoundation has something to render.
Tested manually.
- html/HTMLVideoElement.cpp: (WebCore::HTMLVideoElement::mediaPlayerFirstVideoFrameAvailable): Always log.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Move the test for the first video frame above the player item status check. If a file has a video track, don't advance to HAVE_ENOUGH_DATA unless we have the first video frame.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_cachedHasEnabledVideo.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): Remove unneeded
local variable.
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformSetVisible): Minro cleanup.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Set
hasVideoif AVPlayerItem.hasEnabledVideo is true, because it remains stable while AVAssetTracks sometimes disappear and reappear. (WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Add logging. (WebCore::MediaPlayerPrivateAVFoundationObjC::hasEnabledAudioDidChange): Ditto (WebCore::MediaPlayerPrivateAVFoundationObjC::hasEnabledVideoDidChange): New, cache AVPlayerItem.hasEnabledVideo. (WebCore::itemKVOProperties): (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Respond to @"hasEnabledVideo". - platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
Source/WebKit:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote): Always log. (WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote): Ditto. (WebKit::MediaPlayerPrivateRemote::prepareForPlayback): Pass the player's content rect box to createVideoLayerRemote so it can be sized correctly even before it becomes visible. (WebKit::MediaPlayerPrivateRemote::firstVideoFrameAvailable): Always log. (WebKit::MediaPlayerPrivateRemote::renderingModeChanged): Ditto.
- WebProcess/GPU/media/VideoLayerRemote.h:
- WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm: (WebKit::createVideoLayerRemote): Set the new layer's frame so its children will be positioned correctly when the are made visible.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291326 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291669] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r291324. rdar://problem/45607220
Crash under HTMLDocumentParser::didBeginYieldingParser()
https://bugs.webkit.org/show_bug.cgi?id=237930
<rdar://45607220>
Reviewed by Geoffrey Garen.
Add null pointer check.
No new tests, unable to reproduce.
- html/parser/HTMLDocumentParser.cpp: (WebCore::HTMLDocumentParser::didBeginYieldingParser): (WebCore::HTMLDocumentParser::didEndYieldingParser):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291324 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291668] by
-
- 3 edits3 adds in branches/safari-613-branch
Cherry-pick r291303. rdar://problem/72432683
background-clip:text doesn't work with display:flex
https://bugs.webkit.org/show_bug.cgi?id=169125
<rdar://problem/72432683>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex-expected.html: Added.
- web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex-ref.html: Added.
- web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex.html
- rendering/RenderElement.cpp: (WebCore::RenderElement::paintAsInlineBlock):
Flexbox children paint as inline blocks. This path didn't support text clip paint phase.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291667] by
-
- 5 edits4 adds in branches/safari-613-branch
Cherry-pick r291282. rdar://problem/88857731
Dialog element only animates once
https://bugs.webkit.org/show_bug.cgi?id=236274
Reviewed by Dean Jackson, Tim Nguyen and Antti Koivisto.
LayoutTests/imported/w3c:
Import relevant WPT tests that had already been upstreamed in a previous, reverted
version of this patch.
- web-platform-tests/css/css-animations/dialog-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-animation.html: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation.html: Added.
- web-platform-tests/css/css-animations/support/testcommon.js: (addElement): (addDiv):
Source/WebCore:
Two issues related to CSS Animation surfaced in this bug which animates both <dialog>
and its ::backdrop as the dialog is open and eventually re-opened.
The first issue was that we didn't clear all CSS Animations state when a <dialog> was
closed and its style was set todisplay: none. We now call setAnimationsCreatedByMarkup
to correctly clear such state both when we identify a Styleable is newly getting
display: none. We do the same when cancelDeclarativeAnimations() is called, but also
call setCSSAnimationList() on the associated effect stack since that wasn't done either.
Now both functions do similar cleanup.
This allows us to remove removeCSSAnimationCreatedByMarkup() which did a fair bit of work
to clear CSS Animation state per-animation when we only ever used that function for
_all_ animations.
The second issue was that we never called cancelDeclarativeAnimations() for ::backdrop.
We now do that inside of Element::removeFromTopLayer() at a point where the code in
Styleable::fromRenderer() will still work as the element will still be contained in
Document::topLayerElements().
Tests: imported/w3c/web-platform-tests/css/css-animations/dialog-animation.html
imported/w3c/web-platform-tests/css/css-animations/dialog-backdrop-animation.html
- dom/Element.cpp: (WebCore::Element::removeFromTopLayer):
- style/Styleable.cpp: (WebCore::Styleable::cancelDeclarativeAnimations const): (WebCore::Styleable::updateCSSAnimations const): (WebCore::removeCSSAnimationCreatedByMarkup): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291666] by
-
- 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Cherry-pick r291218. rdar://problem/89382320
REGRESSION (iOS 15.4 beta) - WebGL yields incorrect results when using preserveDrawingBuffer on iOS 15.4 Beta
https://bugs.webkit.org/show_bug.cgi?id=237113
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-14
Reviewed by Myles C. Maxfield.
Cherry-pick without tests conflicting tests.
Cherry-pick ANGLE commit: 74f3270214394c896154e4bf9338e7d75002de61
From: Gregg Tavares <Gregg Tavares>
Date: Thu, 3 Mar 2022 13:13:34 -0800
Subject: [PATCH] Metal: Fix for mulitsampled buffers losing their contents
Fixes tst included as well as WebGL CTS
Both fail on M1 without this fix.
Also fixes WebKit bug https://bugs.webkit.org/show_bug.cgi?id=237113
Bug: angleproject:7073
- src/libANGLE/renderer/metal/FrameBufferMtl.mm: (rx::FramebufferMtl::setLoadStoreActionOnRenderPassFirstStart):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291218 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291665] by
-
- 2 edits in branches/safari-613-branch/Source/bmalloc
Cherry-pick r291199. rdar://problem/89984164
Unreviewed, ASan specific build fix
https://bugs.webkit.org/show_bug.cgi?id=237572
- libpas/src/libpas/pas_utils.h: (pas_zero_memory):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291199 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291664] by
-
- 10 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r291182. rdar://problem/88226412
Delay responsiveness checks for the Network Process until it has finished initialization
https://bugs.webkit.org/show_bug.cgi?id=237782
<rdar://88226412>
Reviewed by Geoffrey Garen.
Delay responsiveness checks for the Network Process until it has finished initialization.
Network process initialization can be slow but we have evidence that it is not truly
hung since we see network process terminations right as the network process is initiating
the WebProcess connection later on.
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching): (WebKit::AuxiliaryProcessProxy::beginResponsivenessChecks): (WebKit::AuxiliaryProcessProxy::startResponsivenessTimer):
- UIProcess/AuxiliaryProcessProxy.h:
- UIProcess/GPU/GPUProcessProxy.cpp: (WebKit::GPUProcessProxy::didFinishLaunching):
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp: (WebKit::WebAuthnProcessProxy::didFinishLaunching):
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291663] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r291175. rdar://problem/88549631
Fix WebContent jetsam that occurs when selecting text in a large e-mail
https://bugs.webkit.org/show_bug.cgi?id=237698
Reviewed by Simon Fraser.
When selecting text in a large e-mail in MobileMail, we often jetsam. This is due to this
chain of events:
- If the selection extends enough to start causing the content to pan (which is easy to do when zoomed in on the mail content), then AutoscrollController ends up changing the scroll position of the FrameView to perform the pan.
- FrameView::requestScrollPositionUpdate tries to prepopulate tiles around the endpoint of the pan by calling TileController::prepopulateRect with visibleContentRect's size.
The problem is that MobileMail resizes their web view (and therefore FrameView) to match
the size of the content. This causes FrameView's visibleContentRect to be very large (>100k
pts high for some emails). As a result, we end up prepopulating every single tile in the
email, causing a huge spike in IOSurface memory usage that leads to a jetsam.
To fix this, we make FrameView::requestScrollPositionUpdate act more like
RenderLayerCompositor::visibleRectForLayerFlushing. In particular, on iOS, we now use
exposedContentRect instead of visibleContentRect. Since exposedContentRect is derived from
contentOffset/contentSize of the scroll view in the UIProcess, it's more correct and is much
smaller than visibleContentRect in this case.
- page/FrameView.cpp: (WebCore::FrameView::requestScrollPositionUpdate):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291175 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291662] by
-
- 6 edits3 adds in branches/safari-613-branch
Cherry-pick r291141. rdar://problem/90035071
Main document is leaking on haaretz.co.il due to lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=237660
<rdar://problem/90035071>
Reviewed by Geoffrey Garen.
Source/WebCore:
When an HTML image uses
loading=lazy, ImageLoader::updateFromElement() may get
called twice. If the image is outside the viewport, the first time ImageLoader::updateFromElement()
is called, we'll request a CachedImage but we'll set m_lazyImageLoadState to LazyImageLoadState::Deferred
and not ask the CachedImage to load. Then, later on, if the HTML image approaches the viewport,
ImageLoader::loadDeferredImage() will get called. It will set m_lazyImageLoadState to LazyImageLoadState::LoadImmediately
and call updateFromElement() again. This time however, updateFromElement() will actually ask the CachedImage
to load.
The issue was that the first time ImageLoader::updateFromElement(), we would set m_lazyImageLoadState to Deferred
and not ask the CachedImage to load but still set m_hasPendingLoadEvent to true. This is problematic if the CachedImage
is not already loaded since no was was started and thus no load event is coming (and no load event may ever come if the
image never approaches the viewport). When updatedHasPendingEvent() is called, it will protect the HTMLImageElement if
m_hasPendingLoadEvent is true, to make sure the image element stays alive long enough for us to dispatch the load event.
With lazy loading, this meant that we would protect the HTMLImageElement right away and undefinitely since no load event
may ever come. This meant that when navigating away from a page with images that are lazily loaded (and not loaded yet),
we would leak the HTMLImageElements (and ImageLoaders), which in turn would keep the Document alive too.
To address the issue, we now make sure that m_hasPendingLoadEvent is no longer set to true when updateFromElement()
is called but the CachedImage is not already loaded and not loading (lazy loading case). When updateFromElement() gets
called the second time (when the lazily loaded image approaches the viewport), we make sure that the m_hasPendingLoadEvent
flag gets set to true then.
Test: fast/dom/lazy-image-loading-document-leak.html
- loader/ImageLoader.cpp: (WebCore::ImageLoader::ImageLoader): (WebCore::ImageLoader::updateFromElement): (WebCore::ImageLoader::didUpdateCachedImage): (WebCore::ImageLoader::didStartLoading):
- loader/ImageLoader.h:
- loader/cache/CachedImage.cpp: (WebCore::CachedImage::load):
- loader/cache/CachedImageClient.h: (WebCore::CachedImageClient::didStartLoading):
LayoutTests:
Add layout test coverage.
- fast/dom/lazy-image-loading-document-leak-expected.txt: Added.
- fast/dom/lazy-image-loading-document-leak.html: Added.
- fast/dom/resources/lazy-image-loading-document-leak-popup.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291141 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291661] by
-
- 4 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r291127. rdar://problem/90050632
Document is leaking on haaretz.co.il due to an async script
https://bugs.webkit.org/show_bug.cgi?id=237672
<rdar://problem/90050632>
Reviewed by Geoffrey Garen.
I haven't been able to reproduce this in the context of a layout test, however,
I see the https://acdn.adnxs.com/dmp/async_usersync.html document flakily leaking
on haaretz.co.il due to an async script (sometimes the top document too).
From a memgraph, I can see that the cycle is:
HTMLDocument -> ScriptRunner -> PendingScript (via m_scriptsToExecuteSoon) -> HTMLScriptElement -> HTMLDocument (again)
To address the issue, I updated Document::commonTeardown() to clear all its ScriptRunner's pending scripts, right after
we stop all ActiveDOMObjects. At this point, we no longer want to run script and clearing any pending scripts is critical
since they hold a strong reference to the Document.
I have validated the fix on haaretz.co.il since I wasn't able to write an automated
test for this.
- dom/Document.cpp: (WebCore::Document::commonTeardown):
- dom/ScriptRunner.cpp: (WebCore::ScriptRunner::clearPendingScripts):
- dom/ScriptRunner.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291127 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291660] by
-
- 2 edits in branches/safari-613-branch/Source/bmalloc
Cherry-pick r291097. rdar://problem/89116983
[libpas] We should gurantee that in-flux-stash is fully baked when pointing table is set
https://bugs.webkit.org/show_bug.cgi?id=237697
rdar://89116983
Reviewed by Mark Lam.
To support enumerating hashtable which can be in the middle of resizing, we have in-flux-stash: this
small stash is used to keep old table and size while resizing. However, Mark pointed that
pas_tiny_large_map_hashtable_for_each_entry_remote's assertion is firing, which is ensuring that table's
underlying pointer should be NULL when the size is 0. But in-flux-stash, we did not guarantee that
in-flux-stash data is consistent when it is exposed to the enumerator (when setting hashtable_being_resized).
This patch inserts pas_compiler_fence when exposing and unexposing in-flux-stash. pas_compiler_fence is
enough (pas_store_store_fence is not necessary) because pas_enumerator runs after suspending the process.
Thus, data structure's consistency between instruction boundary is enough.
- libpas/src/libpas/pas_hashtable.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291097 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291659] by
-
- 5 edits3 adds in branches/safari-613-branch
Cherry-pick r291030. rdar://problem/89989815
IntersectionObserver is causing massive document leaks on haaretz.co.il
https://bugs.webkit.org/show_bug.cgi?id=237619
<rdar://problem/89989815>
Reviewed by Simon Fraser.
Source/WebCore:
On haaretz.co.il, many of the iframe documents (for Google ad frames) were leaking due to
IntersectionObserver. In particular, IntersectionObserver::isReachableFromOpaqueRoots()
was returning true because m_targetsWaitingForFirstObservation was non-empty. This indicates
that the IntersectionObserver is waiting for its first observation since that target was
added. However, the observation is not coming because we navigated away from the document.
To address the issue, I updated Document::commonTeardown() to disconnect all
IntersectionObservers (and the very similar ResizeObservers), right after stopping all
ActiveDOMObject.
Test: fast/dom/intersection-observer-document-leak.html
- dom/Document.cpp: (WebCore::Document::commonTeardown):
- dom/Document.h:
- page/IntersectionObserver.cpp: (WebCore::IntersectionObserver::disconnect): No longer return early if hasObservationTargets() returns false. This is because
LayoutTests:
Add layout test coverage.
- fast/dom/intersection-observer-document-leak-expected.txt: Added.
- fast/dom/intersection-observer-document-leak.html: Added.
- fast/dom/resources/intersection-observer-document-leak-popup.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291658] by
-
- 5 edits2 adds in branches/safari-613-branch
Cherry-pick r291029. rdar://problem/88690874
[Cocoa] metadata cue endTime may not be updated
https://bugs.webkit.org/show_bug.cgi?id=237630
rdar://88690874
Reviewed by Jer Noble.
Source/WebCore:
Data cues have a start time but not an explicit duration, a data cue ends when
the next data cue from the same track starts. This means we don’t know the
duration of cue #1 until cue #2 is delivered, so when cue #1 is delivered it is
given the end time of the media file’s duration and the actual end time is updated
when cue #2 arrives.
http://webkit.org/b/229924 refactored text, audio, and video tracks to not depend
on HTMLMediaElement. Because InbandDataTextTrack could no longer access the
HTMLMediaElement to get its duration, a duration property was added to TextTrackList
that InbandDataTextTrack uses to set the duration of temporary cues.
TextTrackList.duration is set when it is created and updated when the media player
reports a duration change.
This means that if the media file’s duration is not known when the text track list
is created, and the file's duration never changes, the text track list never has a
valid duration and data cues were not added to the temporary list.
Fix this by updating TextTrackList.duration when a HTMLMediaElement reaches HAVE_METADATA.
Test: http/tests/media/hls/track-in-band-hls-metadata-cue-duration.html
- html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::durationChanged): Update m_textTracks.duration and post the 'durationchange' event. (WebCore::HTMLMediaElement::setReadyState): Call durationChanged. (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): Ditto.
- html/HTMLMediaElement.h:
- html/track/InbandDataTextTrack.cpp: (WebCore::InbandDataTextTrack::addDataCue): Add cues to the incomplete cue map even if the track list doesn't have duration.
LayoutTests:
- http/tests/media/hls/track-in-band-hls-metadata-cue-duration-expected.txt: Added.
- http/tests/media/hls/track-in-band-hls-metadata-cue-duration.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291029 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291657] by
-
- 3 edits2 adds in branches/safari-613-branch
Cherry-pick r291009. rdar://problem/89952347
AX: Speech Synthesis no longer returning list of voices in macOS 12.3
https://bugs.webkit.org/show_bug.cgi?id=237584
<rdar://problem/89952347>
Reviewed by Andres Gonzalez.
Source/WTF:
The minimum macOS version was meant to be 13 and above, but we started including 12.x releases inadvertently.
- wtf/PlatformHave.h:
LayoutTests:
- fast/speechsynthesis/voices-non-mock-expected.txt: Added.
- fast/speechsynthesis/voices-non-mock.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291009 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [291656] by
-
- 13 edits in branches/safari-613-branch/Source/bmalloc
Cherry-pick r291007. rdar://problem/89984164
[libpas] Report more actionable crash in pas_enumerator
https://bugs.webkit.org/show_bug.cgi?id=237572
Reviewed by Saam Barati.
- Adds PAS_ASSERT_WITH_DETAIL, which can report more detailed crash information than PAS_ASSERT while it is not efficient as much as PAS_ASSERT. We use it only in pas_enumerator related code to report more actionable crash from these code. It is OK since pas_enumerator is not used usually, which will be used only when vmmap is attached.
- Extract enumerate_large_map, enumerate_small_large_map, and enumerate_tiny_large_map to report which part of these functions can crash (in very rare case).
- Ensure pas_thread_local_cache_create's thread_local_cache is exposed after setting up all the data.
- libpas/src/libpas/pas_enumerable_range_list.c: (pas_enumerable_range_list_append): (pas_enumerable_range_list_iterate): (pas_enumerable_range_list_iterate_remote):
- libpas/src/libpas/pas_enumerate_bitfit_heaps.c: (view_callback): (enumerate_bitfit_heap_callback):
- libpas/src/libpas/pas_enumerate_initially_unaccounted_pages.c: (range_list_iterate_add_unaccounted_callback): (range_list_iterate_exclude_accounted_callback):
- libpas/src/libpas/pas_enumerate_large_heaps.c: (range_list_iterate_add_large_payload_callback): (record_span): (large_map_hashtable_entry_callback): (small_large_map_hashtable_entry_callback): (tiny_large_map_hashtable_entry_callback): (enumerate_large_map): (enumerate_small_large_map): (enumerate_tiny_large_map): (pas_enumerate_large_heaps):
- libpas/src/libpas/pas_enumerate_segregated_heaps.c: (local_allocator_map_entry_is_empty_or_deleted): (local_allocator_map_entry_is_empty): (local_allocator_map_entry_is_deleted): (collect_shared_page_directories_heap_callback): (enumerate_exclusive_view): (enumerate_shared_view): (enumerate_partial_view): (shared_page_directory_view_callback): (size_directory_view_callback): (consider_allocator): (pas_enumerate_segregated_heaps):
- libpas/src/libpas/pas_enumerate_unaccounted_pages_as_meta.c: (pas_enumerate_unaccounted_pages_as_meta):
- libpas/src/libpas/pas_enumerator.c: (pas_enumerator_create): (pas_enumerator_read_compact): (pas_enumerator_read): (pas_enumerator_add_unaccounted_pages): (pas_enumerator_exclude_accounted_page): (pas_enumerator_exclude_accounted_pages): (pas_enumerator_record): (pas_enumerator_record_page_payload_and_meta):
- libpas/src/libpas/pas_enumerator.h: (pas_enumerator_record_kind_get_string):
- libpas/src/libpas/pas_enumerator_region.c: (pas_enumerator_region_allocate):
- libpas/src/libpas/pas_thread_local_cache.c: (pas_thread_local_cache_create):
- libpas/src/libpas/pas_utils.c: (pas_assertion_failed_no_inline):
- libpas/src/libpas/pas_utils.h: (pas_zero_memory):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291007 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291655] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r291006. rdar://problem/85361911
The accessibility library should be soft linked optionally
https://bugs.webkit.org/show_bug.cgi?id=236513
Reviewed by Geoffrey Garen.
The accessibility library should be soft linked optionally, since it is not always present.
- Shared/Cocoa/AuxiliaryProcessCocoa.mm: (WebKit::handleAXPreferenceChange): (WebKit::AuxiliaryProcess::handlePreferenceChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291006 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291654] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290999. rdar://problem/89218299
UniqueIDBDatabase::didFireVersionChangeEvent should capture identifier of UniqueIDBDatabaseConnection
https://bugs.webkit.org/show_bug.cgi?id=236950
rdar://problem/89218299
Reviewed by Chris Dumez.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::didFireVersionChangeEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290999 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291653] by
-
- 3 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290994. rdar://problem/89923867
REGRESSION (r290853): CrashTracer: com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::FrameLoader::clear
https://bugs.webkit.org/show_bug.cgi?id=237565
<rdar://problem/88356074>
Reviewed by Chris Dumez.
No new tests. Fixes crashing test: accessibility/mac/value-change/value-change-user-info-textarea.html
newDocument may be the frame's document. We should make it a RefPtr
because it could get set to null in this function.
- loader/FrameLoader.cpp: (WebCore::FrameLoader::clear):
- loader/FrameLoader.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290994 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291652] by
-
- 3 edits1 add in branches/safari-613-branch
Cherry-pick r290981. rdar://problem/83326232
Remove invalid ASSERT in LocaleIDBuilder::overrideLanguageScriptRegion().
https://bugs.webkit.org/show_bug.cgi?id=237573
<rdar://problem/83326232>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/handle-empty-localeID-in-localeIDBufferForLanguageTagWithNullTerminator.js: Added.
Source/JavaScriptCore:
The ASSERT(length) in LocaleIDBuilder::overrideLanguageScriptRegion() is simply
incorrect. The length can be 0 if uloc_forLanguageTag returns a 0 length in
localeIDBufferForLanguageTagWithNullTerminator(). LocaleIDBuilder::overrideLanguageScriptRegion()
already handles this scenario correctly. We just need to remove this incorrect ASSERT.
Also verified that we're producing the same result on the attached test case as
Chrome and Firefox produces.
- runtime/IntlObject.cpp: (JSC::localeIDBufferForLanguageTagWithNullTerminator):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290981 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291651] by
-
- 10 edits in branches/safari-613-branch/Source
Cherry-pick r290969. rdar://problem/89638872
Preconnecting after process swap is a page load time improvement on some devices
https://bugs.webkit.org/show_bug.cgi?id=237055
<rdar://problem/89638872>
Reviewed by Geoffrey Garen.
Source/WebCore:
Export method.
- platform/network/NetworkLoadMetrics.h:
Source/WebKit:
On some devices we see that doing a second preconnect on HTTP/1.1 is a significant page load time improvement.
This is due to the fact that most page loads on HTTP/1.1 will open several connections, and having two
preconnected connections instead of one, will speed up page load time. This patch implements this by starting
a second preconnect after the first has finished. It is important to wait until the first preconnect has
finished, otherwise the second preconnect will go to waste, since the underlying network layer does not yet
know if this is HTTP/1.1 or not. Since we do not see page load time improvement on iOS with this behavior,
it is currently only enabled for macOS. The next step is to investigate why it does not seem to be a page
load time improvement on iOS. We probably need to make sure the main resource load has started before we
start the second preconect. This will avoid that the second preconnect returns immediately.
- NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::sendH2Ping): (WebKit::NetworkConnectionToWebProcess::preconnectTo):
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::preconnectTo):
- NetworkProcess/PreconnectTask.cpp: (WebKit::PreconnectTask::PreconnectTask): (WebKit::PreconnectTask::didFinishLoading): (WebKit::PreconnectTask::didFailLoading): (WebKit::PreconnectTask::didFinish):
- NetworkProcess/PreconnectTask.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):
Source/WTF:
Add ENABLE guard for this behavior.
- wtf/PlatformEnableCocoa.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290969 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291650] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290878. rdar://problem/89000777
Release_Assert | WebCore::Document::addTopLayerElement()
https://bugs.webkit.org/show_bug.cgi?id=237307
Patch by Frédéric Wang <fwang@igalia.com> on 2022-03-07
Reviewed by Chris Dumez.
setBooleanAttribute() call in HTMLDialogElement::showModal() dispatches a DOMSubtreeModified
event. Postpone it so that listeners cannot disconnect the dialog element.
- html/HTMLDialogElement.cpp: (WebCore::HTMLDialogElement::showModal): Add a queue to postpone event.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291649] by
-
- 2 edits in branches/safari-613-branch/Source/JavaScriptCore
Cherry-pick r290873. rdar://problem/89770507
Fix JITOperationList::addPointers() to support JIT_OPERATION_VALIDATION_ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=237504
<rdar://problem/89770507>
Reviewed by Saam Barati.
According to tagJSCCodePtrImpl(), we will only use an operation's validation entry
if Options::useJITCage(). Make JITOperationList::addPointers() conform to this.
- assembler/JITOperationList.cpp: (JSC::JITOperationList::addPointers):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291648] by
-
- 16 edits in branches/safari-613-branch/Source
Cherry-pick r290856. rdar://problem/89569036
REGRESSION (r284472): [ Monterey ] http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is failing
https://bugs.webkit.org/show_bug.cgi?id=237280
Reviewed by Devin Rousso.
Source/WebCore:
Covered by existing http/tests/websocket/tests/hybi/inspector/* test cases.
On macOS Monterey we use NSURLSession-based WebSockets by default, unlike earlier versions of macOS. The channel
for these sockets is implemented inWebKit::WebSocketChannel. The non-NSURLSession WebSockets channel (at
least on Cocoa platforms) is implemented inWebCore::WebSocketChannel.
As of r284472 the logic to delay the dispatch of received WebSocket message on platforms using
NSURLSession-based WebSockets is handled byWebCore::WebSocket, not theWebKit::WebSocketChannel.
WebKit::WebSocketChannelnow immediately does the work it needs to, and only the delegated work toWebSocket
is queued and taken care of when the socket has resumed. This resulted in some of the instrumentation in
WebKit::WebSocketChannelbeing able to be called while the socket was suspended leading to events being logged
in the frontend "in the future" (e.g. before the paused script would have been able to be aware of them). To
correct this theWebKit::WebSocketChannelnow provides a hook into its helperWebSocketChannelInspector
object to allow theWebCore::WebSocketto notify Web Inspector of events at the same time it is being
logically handled by the page.
Other
ThreadableWebSocketChannelimplementations will instead providenullptrin place of a pointer to a
WebInspectorChannelInspector.WebCore::WebSocketChannelwas not affected by the changes in r284472 as it has
a different way to guarantee that the methods containing InspectorInstrumentation were not called while the
channel was suspended (and enforced with numerousASSERT(!m_suspended)checks).
- Modules/websockets/ThreadableWebSocketChannel.h: (WebCore::ThreadableWebSocketChannel::channelInspector const):
- Modules/websockets/WebSocketChannelClient.h:
- Add
reasonfor error messages so they can be sent to Web Inspector.
- Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveMessage): (WebCore::WebSocket::didReceiveBinaryData): (WebCore::WebSocket::didReceiveMessageError): (WebCore::WebSocket::didClose):
- Modules/websockets/WebSocket.h:
- Move inspector instrumentation calls from
WebKit::WebSocketChannelto here so that they are not called until the socket is resumed. - We also now wrap these instrumentation calls in an unlikely check for frontends to avoid allocating the simulated call frames when Web Inspector isn't even open.
- Modules/websockets/WebSocketChannelInspector.cpp: (WebCore::WebSocketChannelInspector::WebSocketChannelInspector): (WebCore::WebSocketChannelInspector::didCreateWebSocket const): (WebCore::WebSocketChannelInspector::willSendWebSocketHandshakeRequest const): (WebCore::WebSocketChannelInspector::didReceiveWebSocketHandshakeResponse const): (WebCore::WebSocketChannelInspector::didCloseWebSocket const): (WebCore::WebSocketChannelInspector::didReceiveWebSocketFrame const): (WebCore::WebSocketChannelInspector::didSendWebSocketFrame const): (WebCore::WebSocketChannelInspector::didReceiveWebSocketFrameError const): (WebCore::WebSocketChannelInspector::createFrame): (WebCore::WebSocketChannelInspector::didCreateWebSocket): Deleted. (WebCore::WebSocketChannelInspector::willSendWebSocketHandshakeRequest): Deleted. (WebCore::WebSocketChannelInspector::didReceiveWebSocketHandshakeResponse): Deleted. (WebCore::WebSocketChannelInspector::didCloseWebSocket): Deleted. (WebCore::WebSocketChannelInspector::didReceiveWebSocketFrame): Deleted. (WebCore::WebSocketChannelInspector::didSendWebSocketFrame): Deleted. (WebCore::WebSocketChannelInspector::didReceiveWebSocketFrameError): Deleted.
- Modules/websockets/WebSocketChannelInspector.h:
- Update to keep a WeakRef to the
Documentto reduce the amount of plumbing necessary to call these methods fromWebSocket. - Move static utility method
createFramehere fromWebKit::WebSocketChannelsince it is only used for inspector instrumentation.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp: (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError): (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp: (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
- Modules/websockets/WebSocketChannel.cpp: (WebCore::WebSocketChannel::fail): (WebCore::WebSocketChannel::didFailSocketStream):
- Modules/websockets/WebSocketChannel.h:
- Update these classes to pass along a reason, if available, for errors.
Source/WebKit:
Move inspector instrumentation for things that should be delayed until the websocket has resumed (in general,
these are instrumentation points for receiving messages) into WebCore::WebSocket so that they are sent at the
expected time in the frontend, not "in the future" when script execution is suspended (e.g. while debugging).
- WebProcess/Network/WebSocketChannel.cpp: (WebKit::WebSocketChannel::notifySendFrame): (WebKit::WebSocketChannel::connect): (WebKit::WebSocketChannel::close): (WebKit::WebSocketChannel::fail): (WebKit::WebSocketChannel::disconnect): (WebKit::WebSocketChannel::didReceiveText): (WebKit::WebSocketChannel::didReceiveBinaryData): (WebKit::WebSocketChannel::didClose): (WebKit::WebSocketChannel::didReceiveMessageError): (WebKit::WebSocketChannel::didSendHandshakeRequest): (WebKit::WebSocketChannel::didReceiveHandshakeResponse): (WebKit::createWebSocketFrameForWebInspector): Deleted.
- WebProcess/Network/WebSocketChannel.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291647] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290855. rdar://problem/82814846
Web Inspector: [Cocoa] Continually opening and closing Web Inspector sometimes crashes
https://bugs.webkit.org/show_bug.cgi?id=237484
Reviewed by Darin Adler.
We need to handle operations on the main queue because
webView:stopURLSchemeTask:will be called from the main
queue, and we must not be in middle the operation when we get the request to stop said operation, otherwise we
may attempt to call[urlSchemeTask did*], which is not permitted after we have been asked to stop that task.
If we add the operation for theWKURLSchemeTaskto a different queue it is possible we will have already
started the operation on a background queue while at the same time are receiving a request to stop that same
WKURLSchemeTask.
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm: (-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]): (-[WKInspectorResourceURLSchemeHandler webView:stopURLSchemeTask:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290855 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291646] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290847. rdar://problem/89402338
Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
https://bugs.webkit.org/show_bug.cgi?id=237478
<rdar://89072235>
Reviewed by Alan Bujtas.
Crash data show that r290109 failed to fix this crash; the actual cause of the crash is a
null m_page on TiledCoreAnimationScrollingCoordinator, diagnosed by noting that the crash
offset corresponds to the offset of m_renderingUpdateRemainingSteps in Page.
- WebProcess/WebPage/mac/TiledCoreAnimationScrollingCoordinator.mm: (WebKit::TiledCoreAnimationScrollingCoordinator::hasNodeWithAnimatedScrollChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291645] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290832. rdar://problem/89758344
Top layers should not be moved
https://bugs.webkit.org/show_bug.cgi?id=237305
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-04
Reviewed by Tim Nguyen.
Top layers are always children of RenderView and should not be moved.
- rendering/RenderElement.cpp: (WebCore::RenderElement::moveLayers):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291644] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r290830. rdar://problem/89081463
CSP report does not get sent to the document in the case of a detached element
https://bugs.webkit.org/show_bug.cgi?id=237440
<rdar://problem/89081463>
Reviewed by Chris Dumez.
Source/WebCore:
Test: http/tests/security/contentSecurityPolicy/report-violation-to-document-after-element-has-been-detached.html
Only send a violation report to the element if it is connected. Check
right before dispatching in case the element gets detached after the
security policy violation has been created. If the element is not
connected in this case, we send the report to the document.
- dom/Element.cpp: (WebCore::Element::enqueueSecurityPolicyViolationEvent):
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::reportViolation const): Also sets the composed value on the violation event as per the spec.
LayoutTests:
- http/tests/security/contentSecurityPolicy/report-violation-to-document-after-element-has-been-detached-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/report-violation-to-document-after-element-has-been-detached.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290830 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291643] by
-
- 4 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290820. rdar://problem/88301613
AVVideoCaptureSource should reuse CaptureDevice label
https://bugs.webkit.org/show_bug.cgi?id=237363
<rdar://88301613>
Reviewed by Eric Carlson.
We are getting AV device name through AVCaptureDevice.localizedName, first in UIProcess, then in GPUProcess.
To make sure we always use the ones from UIProcess (which are the ones exposed through mediaDevices.enumerateDevices),
We make sure to use CaptureDevice.label when creating an AVVideoCaptureSource.
Manually tested.
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm: (WebCore::AVVideoCaptureSource::create): (WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290820 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291642] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290744. rdar://problem/81609371
[WebAuthn] Ensure presenter gets dismissed on iOS
https://bugs.webkit.org/show_bug.cgi?id=237336
rdar://81609371
Reviewed by Brent Fulgham.
Always call [m_presenter dismissWithError] to ensure presenter gets dismissed.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm: (WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290744 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291641] by
-
- 7 edits4 adds in branches/safari-613-branch
Cherry-pick r290676. rdar://problem/83831093
[Cocoa] HLS stream currentTime sometimes jumps backwards
https://bugs.webkit.org/show_bug.cgi?id=235087
rdar://83831093
Reviewed by Dean Jackson.
Source/WebCore:
Test: http/tests/media/hls/hls-non-zero-start-time.html
- html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by: pass log identifier to lambda so the method name will be logged correctly. (WebCore::HTMLMediaElement::currentMediaTime const): Remove LOG_CACHED_TIME_WARNINGS build flag, always log time drift warnings when log level is DEBUG.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Log when periodic time observer is passed unexpected values. (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Use NSKeyValueObservingOptionInitial KVO option for "@duration" property because we sometimes don't get a duration changed event for HLS streams, so m_cachedDuration remains invalid. (WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTimeDidChange const): Drive-by: fix use-after-move.
Source/WebKit:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::currentTimeChanged): Always notify player when time jumps backwards.
LayoutTests:
- http/tests/media/hls/hls-non-zero-start-time-expected.txt: Added.
- http/tests/media/hls/hls-non-zero-start-time.html: Added.
- http/tests/media/resources/hls/bip-bop-live.m3u8: Added.
- http/tests/media/resources/hls/bipbop/start-offset.m3u8: Added.
- http/tests/media/resources/hls/bipbop/start-offset.ts: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290676 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [291640] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290675. rdar://problem/89585043
Remove release assert when UI process is blocking IOSurface IOKit access
https://bugs.webkit.org/show_bug.cgi?id=237278
<rdar://problem/89585043>
Unreviewed, address review comments.
Log error instead of creating CrashTracer reports.
- platform/graphics/cocoa/IOSurface.mm: (WebCore::IOSurface::bytesPerRowAlignment):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291639] by
-
- 6 edits2 adds in branches/safari-613-branch
Cherry-pick r290645. rdar://problem/89180092
REGRESSION (r273129): Text contents in <span> with opacity not repainting/updating when sibling element has "will-change: transform"
https://bugs.webkit.org/show_bug.cgi?id=236876
<rdar://problem/89180092>
Reviewed by Simon Fraser.
Source/WebCore:
This patch implements a slightly naive repaint for inline boxes with self painting layers.
- Mark the line when it gains an inline box (RenderInline) with self painting layer (e.g. <span style="position: relative">this has dedicated layer</span>)
- Issue repaint at the end of the line layout on such renderers.
Test: fast/repaint/inline-box-with-self-paint-layer.html
- rendering/LegacyInlineFlowBox.cpp: (WebCore::LegacyInlineFlowBox::addToLine):
- rendering/LegacyInlineFlowBox.h: (WebCore::LegacyInlineFlowBox::LegacyInlineFlowBox): (WebCore::LegacyInlineFlowBox::hasSelfPaintInlineBox const):
- rendering/LegacyLineLayout.cpp: (WebCore::repaintSelfPaintInlineBoxes): (WebCore::LegacyLineLayout::layoutRunsAndFloats):
- rendering/RenderInline.cpp: (WebCore::RenderInline::clippedOverflowRect const): expand the ASSERT to enclsing inline boxes too.
LayoutTests:
- fast/repaint/inline-box-with-self-paint-layer-expected.html: Added.
- fast/repaint/inline-box-with-self-paint-layer.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290645 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291638] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290618. rdar://problem/89585043
Remove release assert when UI process is blocking IOSurface IOKit access
https://bugs.webkit.org/show_bug.cgi?id=237278
Reviewed by Darin Adler.
Remove release assert in IOSurface::bytesPerRowAlignment() when UI process is blocking IOSurface IOKit access.
Instead, log this event, and return an appropriate value.
- platform/graphics/cocoa/IOSurface.mm: (WebCore::IOSurface::bytesPerRowAlignment):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290618 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291637] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r290615. rdar://problem/87919197
Handle widow relayout differently
https://bugs.webkit.org/show_bug.cgi?id=235519
Patch by Rob Buis <rbuis@igalia.com> on 2022-02-28
Reviewed by Alan Bujtas.
Source/WebCore:
Handle widow relayout differently to prevent function call recursion.
Test: fast/multicol/widow-many-relayouts-crash.html
- rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::layoutBlock): (WebCore::RenderBlockFlow::relayoutToAvoidWidows): Deleted.
- rendering/RenderBlockFlow.h: (WebCore::RenderBlockFlow::didBreakAtLineToAvoidWidow const):
LayoutTests:
- fast/multicol/widow-many-relayouts-crash-expected.txt: Added.
- fast/multicol/widow-many-relayouts-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290615 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291636] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r290539. rdar://problem/88767812
[WebAuthn] Fallback to attestation=none whenever attestation fails
https://bugs.webkit.org/show_bug.cgi?id=237223
rdar://88767812
Reviewed by Brent Fulgham.
Source/WebKit:
Whenever attestation is requested by a RP and it fails to complete,
we previously errored out of the registration. The more correct platform
behavior in this case is to provide attestation=none.
Created API test for this behavior.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
Tools:
Add test for local authenticator attestation fallback behavior.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290539 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291635] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290526. rdar://problem/89372801
[Cocoa] HLS + Modern EME key rotation causes playback to stall indefinitely
https://bugs.webkit.org/show_bug.cgi?id=237214
<rdar://89372801>
Reviewed by Eric Carlson.
In r275916, Ref was changed to perform pointer equality in its operator==. This caused
takeUnexpectedKeyRequestForInitializationData() to fail to find key requests matching
the initData passed in through MediaKeySession.
Fix the equality test by calling .get() on the Ref, which causes the
==to resolve to
FragmentedSharedBuffer::operator==().
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm: (WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290526 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291634] by
-
- 18 edits15 adds in branches/safari-613-branch
Cherry-pick r290519. rdar://problem/89148022
Re-add YouTubePluginReplacement, removed in r285252
https://bugs.webkit.org/show_bug.cgi?id=237182
Source/WebCore:
<rdar://89148022>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
Tests: security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html
Its removal broke webpages that work in Chrome and Firefox, so back it comes.
- Headers.cmake:
- Modules/plugins: Copied from Source/WebCore/Modules/plugins.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSPluginElementFunctions.cpp: (WebCore::pluginScriptObject):
- bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::JSTestPluginInterface::visitChildrenImpl):
- html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::createElementRenderer): (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): (WebCore::registrar): (WebCore::pluginReplacementForType): (WebCore::HTMLPlugInElement::requestObject): (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement):
- html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::pluginReplacementScriptObject):
- html/shadow/ShadowPseudoIds.cpp: (WebCore::ShadowPseudoIds::webkitPluginReplacement):
- html/shadow/ShadowPseudoIds.h:
- html/shadow/YouTubeEmbedShadowElement.cpp:
- html/shadow/YouTubeEmbedShadowElement.h:
- page/Settings.yaml:
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:
LayoutTests:
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/win/TestExpectations:
- security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html.
- security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290519 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291633] by
-
- 4 edits1 add in branches/safari-613-branch
Cherry-pick r290517. rdar://problem/89428235
operationMaterializeObjectInOSR should DeferTerminationForAWhile instead of just DeferTermination.
https://bugs.webkit.org/show_bug.cgi?id=237173
rdar://problem/89450245
Reviewed by Yusuke Suzuki.
JSTests:
- stress/termination-exception-in-operationMaterializeObjectInOSR2.js: Added.
Source/JavaScriptCore:
DeferTermination can throw the TerminationException on destruction of the scope
object. operationMaterializeObjectInOSR() was using DeferTermination, resulting
in the TerminationException being thrown on exit. This trips up
validateDFGExceptionHandling testing (which is enabled on Debug builds) because the
TerminationException is unexpected. The solution is simply to use
DeferTerminationForAWhile instead, and let a more natural trap checkpoint throw
the TerminationException later.
Also refactored notifyDebuggerOfUnwinding() to return early if a debugger is not
present. This avoids unnecessarily entering and exiting a DeferTermination scope
in notifyDebuggerOfUnwinding(). This was observed while testing this change on
the attached test case.
- ftl/FTLOperations.cpp: (JSC::FTL::operationMaterializeObjectInOSR):
- interpreter/Interpreter.cpp: (JSC::notifyDebuggerOfUnwinding):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291632] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290328. rdar://problem/88567612
Fix GPUP WebGL generator script wrt uninitialised sized span
https://bugs.webkit.org/show_bug.cgi?id=235889
<rdar://problem/88567612>
Reviewed by Chris Dumez.
Even though we check if the synchronous message was received successfully before using it,
if we didn't check then we might have a problem with pointing to uninitialized memory, which we then wouldn't use for anything.
To fix this hypothetical problem, I start out by pointing to initialized memory.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp: (WebKit::RemoteGraphicsContextGLProxy::getShaderPrecisionFormat):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290328 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [291631] by
-
- 9 edits in branches/safari-613-branch/Source
Cherry-pick r288662. rdar://problem/89582442
[WP] Avoid calling IOSurfaceAlignProperty
https://bugs.webkit.org/show_bug.cgi?id=235659
Reviewed by Simon Fraser.
Source/WebCore:
Add information about alignment of bytes per row to IOSurface class.
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/cocoa/IOSurface.mm: (WebCore::surfaceBytesPerRowAlignment): (WebCore::IOSurface::bytesPerRowAlignment): (WebCore::IOSurface::setBytesPerRowAlignment):
Source/WebKit:
Avoid calling IOSurfaceAlignProperty in the WebContent process, since it requires IOKit access.
Information about the alignment of bytes per row of IOSurface will be retrieved in the UI process,
and sent to the WebContent process, where it will be stored.
- Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- Shared/cg/ShareableBitmapCG.cpp: (WebKit::ShareableBitmap::calculateBytesPerRow):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:43 AM Changeset in webkit [291630] by
-
- 23 edits in trunk/Source
Enable content filtering in the Network process
https://bugs.webkit.org/show_bug.cgi?id=238156
Reviewed by Geoffrey Garen.
Source/WebCore:
There is no need for sandbox extensions in the WebContent process when content filtering
is taking place in the Network process.
- platform/cocoa/NetworkExtensionContentFilter.h:
- platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::enabled):
Source/WebKit:
Remove code associated with Network extension sandbox extensions.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- Shared/Cocoa/LoadParametersCocoa.mm:
(WebKit::LoadParameters::platformEncode const):
(WebKit::LoadParameters::platformDecode):
- Shared/LoadParameters.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::addPlatformLoadParameters):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::reloadAfterUnblockedContentFilter): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
- UIProcess/WebPageProxy.h:
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::contentFilterDidBlockLoad):
(WebKit::WebResourceLoader::cancelMainResourceLoadForContentFilter): Deleted.
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Network/WebResourceLoader.messages.in:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceivePolicyDecision):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/com.apple.WebProcess.sb.in:
Source/WTF:
Set the feature flag.
- wtf/PlatformEnableCocoa.h:
- 10:42 AM Changeset in webkit [291629] by
-
- 3 edits2 adds in trunk
YouTube.com - Clicking anywhere on the progress bar pauses the video
https://bugs.webkit.org/show_bug.cgi?id=237750
<rdar://problem/90364846>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-unexpected-pause.html
When calling play() or pause() on a MediaPlayerPrivateMediaSourceAVFObjC, the object will
respond by calling m_player->playbackStateChanged(), which will in turn call
HTMLMediaElement::mediaPlayerPlaybackStateChanged() with the new state. However, HTMLMediaElement
expects this to be called only for unanticipated state changes, not expected state changes. And
when that method is called and the reported state does not match the element's own expected state,
the element calls its own play() or pause() function to update its own state to match the player's.
And because MediaPlayerPrivateMediaSourceAVFObjC calls this method on the next run loop, there is
an opportunity for those states to get out of sync, which happens when YouTube responds to a tap
in its timeline.
Remove the unnecessary "call on next run loop" behavior of MediaPlayerPrivateMediaSourceAVFObjC::
play() and ::pause(). Also, remove the unnecessary notification that the play state has changed. In
the future, this can be accomplished by adding a callback parameter to MediaPlayer::play() rather than
relying on a state change notification.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playAtHostTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseAtHostTime):
LayoutTests:
- media/media-source/media-source-unexpected-pause-expected.txt: Added.
- media/media-source/media-source-unexpected-pause.html: Added.
- 10:35 AM Changeset in webkit [291628] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Inline swatch popovers should hide when inline swatches are removed
https://bugs.webkit.org/show_bug.cgi?id=235047
<rdar://problem/87687975>
Reviewed by Patrick Angle.
- UserInterface/Views/InlineSwatch.js:
(WI.InlineSwatch):
(WI.InlineSwatch.prototype.dismissPopover):
(WI.InlineSwatch.prototype._presentPopover):
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype.detached):
(WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
(WI.SpreadsheetStyleProperty.prototype._renderValue):
(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
- 10:30 AM Changeset in webkit [291627] by
-
- 5 edits in trunk/Tools
[Merge-Queue] Add ValidateSquashed
https://bugs.webkit.org/show_bug.cgi?id=238172
<rdar://problem/90602594>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/factories.py:
(MergeQueueFactory.init): Add ValidateSquashed.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps): Ditto.
- Tools/CISupport/ews-build/steps.py:
(VerifyGitHubIntegrity.send_email_for_github_issue):
(ValidateSquashed): Ensure that a pull request only has a single commit.
(ValidateSquashed.init): Do not log environment variables.
(ValidateSquashed.start): Log commits between the HEAD branch and base branch.
(ValidateSquashed.getResultSummary):
(ValidateSquashed.evaluateCommand): Check number of commits between HEAD and base branch.
(ValidateSquashed.doStepIf): Only run step for pull requests.
(ValidateSquashed.hideStepIf): Hide step if we aren't running it.
Canonical link: https://commits.webkit.org/248720@main
- 10:19 AM Changeset in webkit [291626] by
-
- 2 edits in trunk/Source/WebKit
[macOS][WP] Add telemetry for syscalls used during launch
https://bugs.webkit.org/show_bug.cgi?id=235865
<rdar://problem/88228583>
Reviewed by Brent Fulgham.
Add telemetry in the WebContent process' sandbox on macOS to determine which syscalls are used only during launch.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:12 AM Changeset in webkit [291625] by
-
- 8 edits in trunk
[WebAuthn] Pass along timeout to ASA and ignore timeout for conditional mediation requests
https://bugs.webkit.org/show_bug.cgi?id=238147
rdar://90509464
Reviewed by Brent Fulgham.
Source/WebKit:
Currently we don't pass the timeout from the rp into ASA, so the default timeout is always used.
This patch starts passing along the timeout to ASA, and creates a place for ASA to specify the
mediation of the request, so we can ignore the timeout for requests using conditional mediation.
Modified API test.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(toWebCore):
(-[_WKWebAuthenticationPanel makeCredentialWithMediationRequirement:clientDataHash:options:completionHandler:]):
(-[_WKWebAuthenticationPanel makeCredentialWithClientDataHash:options:completionHandler:]):
(-[_WKWebAuthenticationPanel getAssertionWithMediationRequirement:clientDataHash:options:completionHandler:]):
(-[_WKWebAuthenticationPanel getAssertionWithClientDataHash:options:completionHandler:]):
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::initTimeOutTimer):
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::configureRegistrationRequestContext):
(WebKit::configureAssertionOptions):
Tools:
Modify API test to use new SPI.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 9:14 AM Changeset in webkit [291624] by
-
- 10 edits in trunk/Source
[WebAuthn] Support getAssertion for virtual HID authenticators
https://bugs.webkit.org/show_bug.cgi?id=238154
rdar://problem/90593150
Reviewed by Brent Fulgham.
Source/WebCore:
Virtual authenticators for WebAuthn support different transprots: nfc, usb, internal,
and ble. Currently, we only fully support the internal transport and makeCredential for
usb-transport. The default transport for web-platform-tests is usb. This patch implements
getAssertion for hid-based virtual authneticators.
- Modules/webauthn/WebAuthenticationUtils.cpp:
(WebCore::buildUserEntityMap):
(WebCore::buildCredentialDescriptor):
- Modules/webauthn/WebAuthenticationUtils.h:
- Modules/webauthn/fido/FidoConstants.h:
Source/WebKit:
Virtual authenticators for WebAuthn support different transports: nfc, usb, internal,
and ble. Currently, we only fully support the internal transport and makeCredential for
usb-transport. The default transport for web-platform-tests is usb. This patch implements
getAssertion for hid-based virtual authneticators.
Tested via manually creating virtual authenticator and performing create / get.
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:
(WebKit::VirtualAuthenticatorManager::addCredential):
(WebKit::VirtualAuthenticatorManager::credentialsMatchingList):
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h:
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.h:
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.mm:
(WebKit::privateKeyFromBase64):
(WebKit::signatureForPrivateKey):
- UIProcess/WebAuthentication/Virtual/VirtualHidConnection.cpp:
(WebKit::VirtualHidConnection::parseRequest):
- 9:01 AM Changeset in webkit [291623] by
-
- 6 edits in trunk
It should be possible to copy text out of "AutoFilledAndViewable" password fields
https://bugs.webkit.org/show_bug.cgi?id=238160
Patch by Ricky Mondello <Ricky Mondello> on 2022-03-22
Reviewed by Geoffrey Garen.
Source/WebCore:
- editing/Editor.cpp:
(WebCore::Editor::canCopy const): Allow copy in AutoFilledAndViewable password fields.
- editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::isInAutoFilledAndViewableField const): Added.
- editing/VisibleSelection.h: Declare member function.
LayoutTests:
- fast/forms/input-autofilled-and-viewable.html: Test copying.
- 8:45 AM Changeset in webkit [291622] by
-
- 5 edits2 adds in trunk
Fetching a Blob URL with an unbounded Range header do not generate a Content-Range response header
https://bugs.webkit.org/show_bug.cgi?id=238170
Reviewed by Eric Carlson.
Source/WebCore:
Test: fetch/fetch-blob-unbounded-range.html
Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.
- platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
Source/WebKit:
Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.
- NetworkProcess/NetworkDataTaskBlob.cpp:
(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):
LayoutTests:
- fetch/fetch-blob-unbounded-range-expected.txt: Added.
- fetch/fetch-blob-unbounded-range.html: Added.
- 8:37 AM Changeset in webkit [291621] by
-
- 2 edits in trunk/Source/WebKit
Ensure that proxies are invalidated before destroying them.
https://bugs.webkit.org/show_bug.cgi?id=237187
Reviewed by Carlos Garcia Campos.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateSceneState):
- 8:30 AM Changeset in webkit [291620] by
-
- 2 edits in trunk/Source/WebKit
Ensure there is a Network process after launching the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=238080
<rdar://88933565>
Reviewed by Chris Dumez.
After the WebContent process has finished launching, ensure there is a Network process
which will provide the WebContent process with the Launch Services database.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
- 8:25 AM Changeset in webkit [291619] by
-
- 5 edits in trunk/Tools
[Merge-Queue] Add ValidateCommitterAndReviewer
https://bugs.webkit.org/show_bug.cgi?id=238150
<rdar://problem/90587620>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/factories.py:
(CommitQueueFactory.init): Rename ValidateCommiterAndReviewer to ValidateCommiterAndReviewer.
(MergeQueueFactory.init): Add ValidateCommitterAndReviewer, PrintConfiguration, CleanGitRepo,
CheckOutSource, FetchBranches, ShowIdentifier, VerifyGitHubIntegrity, UpdateWorkingDirectory
and CheckOutPullRequest.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps): Add Merge-Queue step names.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.get_pr_json): Retry tied to attempt not index.
(GitHubMixin.get_reviewers): Get list of reviewers for pull-request in repository.
(ValidateCommitterAndReviewer): Renamed from ValidateCommiterAndReviewer, inherit from GitHubMixin.
(ValidateCommitterAndReviewer.init): Rename ValidateCommiterAndReviewer.
(ValidateCommitterAndReviewer.fail_build): Block pull request, differentiate comment for pull
request and patch.
(ValidateCommitterAndReviewer.start): Support pull requests.
(ValidateCommiterAndReviewer): Renamed to ValidateCommitterAndReviewer.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/248712@main
- 8:24 AM Changeset in webkit [291618] by
-
- 5 edits1 add in trunk
-[WKWebView _spellCheckerDocumentTag] is inconsistent with the document tag passed into NSSpellChecker
https://bugs.webkit.org/show_bug.cgi?id=238186
rdar://90591883
Reviewed by Tim Horton.
Source/WebKit:
Currently, WebViewImpl and WebPageProxy both maintain separate spellchecking document tag values, both of which
are derived from-[NSSpellChecker uniqueSpellDocumentTag]. While the former is used for autocorrection as well
as the WKWebView SPI-_spellCheckerDocumentTag, the latter is passed into NSSpellChecker API when performing
spellchecking.
For various reasons, Mail compose (using WebKit2) requires
-_spellCheckerDocumentTagto be consistent with the
value of the spell checker document tag passed into-checkString:range:…:inSpellDocumentWithTag:orthography:.
Address this by simply having WebViewImpl call through into WebPageProxy'sspellDocumentTag, such that the two
now share the same value.
Test: SpellCheckerDocumentTag.SpellCheckerDocumentTagWhenCheckingString
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::spellCheckerDocumentTag):
Tools:
Add a test to verify that the spell checking document tag passed into NSSpellChecker API is consistent with the
document tag reported by WKWebView.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/SpellCheckerDocumentTag.mm: Added.
(TestWebKitAPI::TEST):
- 7:48 AM Changeset in webkit [291617] by
-
- 2 edits in trunk/Tools
[git-webkit] Make radar conditional on authentication (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=238051
<rdar://problem/90384655>
Reviewed by Alexey Proskuryakov.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:
(Tracker.init): Only check for authentication if library exists.
Canonical link: https://commits.webkit.org/248709@main
- 7:48 AM Changeset in webkit [291616] by
-
- 7 edits in trunk/Source/WebCore
Move TextureMapper member variables, types and code out of GraphicsContextGLANGLE
https://bugs.webkit.org/show_bug.cgi?id=238200
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-22
Reviewed by Alejandro G. Castro.
Move member variables and code specific to the TextureMapper-oriented
GraphicsContextGLTextureMapperANGLE class from the parent
GraphicsContextGLANGLE class into GraphicsContextGLTextureMapperANGLE.
This means moving down various member variables and types as well as
friendship declarations. For behavior to remain the same, the
prepareTextureImpl() method is made virtual and overridden in the
TextureMapper class, but otherwise matches the previous behavior.
Nicosia::GCGLANGLELayer is adjusted to operate on a reference to the
derived class, not on the base GraphicsContextGLANGLE.
No new tests as there's no change in behavior.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::prepareTextureImpl):
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareTextureImpl):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::EGLImageBacking):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::~EGLImageBacking):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::format const):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::stride const):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::releaseResources):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::isReleased):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::reset):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::EGLImageBacking): Deleted.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::~EGLImageBacking): Deleted.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::format const): Deleted.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::stride const): Deleted.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::releaseResources): Deleted.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::isReleased): Deleted.
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::reset): Deleted.
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:
- 7:41 AM Changeset in webkit [291615] by
-
- 2 edits in trunk/Tools
[Python 3] Use sys.executable instead of Python
https://bugs.webkit.org/show_bug.cgi?id=238175
<rdar://problem/90604107>
Reviewed by Ryan Haddad.
- Tools/Scripts/webkitpy/common/system/executive_unittest.py:
(ExecutiveTest.test_run_command_with_bad_command):
Canonical link: https://commits.webkit.org/248708@main
- 7:09 AM Changeset in webkit [291614] by
-
- 2 edits in trunk/Source/WebCore
[WPE][GTK] VideoFrameGStreamer missing include after -r291610 refactor
https://bugs.webkit.org/show_bug.cgi?id=238199
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-03-22
Reviewed by Žan Doberšek.
We need to add the define we had in the file before the refactor.
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
- 6:35 AM Changeset in webkit [291613] by
-
- 52 edits4 deletes in trunk
[GTK][WPE] Remove the ATK implementation
https://bugs.webkit.org/show_bug.cgi?id=238198
Reviewed by Adrian Perez de Castro.
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- accessibility/AXObjectCache.h:
- accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::childHasPseudoVisibleListItemMarkers):
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canSetValueAttribute const):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange const):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::indexForVisiblePosition const):
(WebCore::AccessibilityRenderObject::shouldNotifyActiveDescendant const):
- accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored const):
- accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored const):
- accessibility/atk/AXObjectCacheAtk.cpp: Removed.
(WebCore::wrapperParent): Deleted.
(WebCore::AXObjectCache::detachWrapper): Deleted.
(WebCore::AXObjectCache::attachWrapper): Deleted.
(WebCore::AXObjectCache::platformPerformDeferredCacheUpdate): Deleted.
(WebCore::getListObject): Deleted.
(WebCore::notifyChildrenSelectionChange): Deleted.
(WebCore::AXObjectCache::postPlatformNotification): Deleted.
(WebCore::AXObjectCache::nodeTextChangePlatformNotification): Deleted.
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification): Deleted.
(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged): Deleted.
(WebCore::AXObjectCache::handleScrolledToAnchor): Deleted.
- accessibility/atk/AccessibilityObjectAtk.cpp: Removed.
(WebCore::AccessibilityObject::detachPlatformWrapper): Deleted.
(WebCore::AccessibilityObject::accessibilityIgnoreAttachment const): Deleted.
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): Deleted.
(WebCore::AccessibilityObject::allowsTextRanges const): Deleted.
(WebCore::AccessibilityObject::getLengthForTextRange const): Deleted.
- accessibility/atk/WebKitAccessible.cpp: Removed.
(webkitAccessibleGetName): Deleted.
(webkitAccessibleGetDescription): Deleted.
(removeAtkRelationByType): Deleted.
(setAtkRelationSetFromCoreObject): Deleted.
(isRootObject): Deleted.
(webkitAccessibleGetParent): Deleted.
(webkitAccessibleGetNChildren): Deleted.
(webkitAccessibleRefChild): Deleted.
(webkitAccessibleGetIndexInParent): Deleted.
(webkitAccessibleGetAttributes): Deleted.
(atkRole): Deleted.
(webkitAccessibleGetRole): Deleted.
(isTextWithCaret): Deleted.
(setAtkStateSetFromCoreObject): Deleted.
(webkitAccessibleRefStateSet): Deleted.
(webkitAccessibleRefRelationSet): Deleted.
(webkitAccessibleInit): Deleted.
(webkitAccessibleGetObjectLocale): Deleted.
(webkit_accessible_class_init): Deleted.
(roleIsTextType): Deleted.
(interfaceMaskFromObject): Deleted.
(uniqueAccessibilityTypeName): Deleted.
(accessibilityTypeFromObject): Deleted.
(webkitAccessibleNew): Deleted.
(webkitAccessibleGetAccessibilityObject): Deleted.
(webkitAccessibleDetach): Deleted.
(webkitAccessibleIsDetached): Deleted.
(webkitAccessibleCacheAndReturnAtkProperty): Deleted.
- accessibility/atk/WebKitAccessible.h: Removed.
- accessibility/atk/WebKitAccessibleHyperlink.cpp: Removed.
(webkitAccessibleHyperlinkActionDoAction): Deleted.
(webkitAccessibleHyperlinkActionGetNActions): Deleted.
(webkitAccessibleHyperlinkActionGetDescription): Deleted.
(webkitAccessibleHyperlinkActionGetKeybinding): Deleted.
(webkitAccessibleHyperlinkActionGetName): Deleted.
(webkit_accessible_hyperlink_atk_action_interface_init): Deleted.
(webkitAccessibleHyperlinkGetURI): Deleted.
(webkitAccessibleHyperlinkGetObject): Deleted.
(rangeLengthForObject): Deleted.
(webkitAccessibleHyperlinkGetStartIndex): Deleted.
(webkitAccessibleHyperlinkGetEndIndex): Deleted.
(webkitAccessibleHyperlinkIsValid): Deleted.
(webkitAccessibleHyperlinkGetNAnchors): Deleted.
(webkitAccessibleHyperlinkIsSelectedLink): Deleted.
(webkitAccessibleHyperlinkGetProperty): Deleted.
(webkitAccessibleHyperlinkSetProperty): Deleted.
(webkit_accessible_hyperlink_class_init): Deleted.
(webkitAccessibleHyperlinkGetOrCreate): Deleted.
- accessibility/atk/WebKitAccessibleHyperlink.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Removed.
(core): Deleted.
(webkitAccessibleActionDoAction): Deleted.
(webkitAccessibleActionGetNActions): Deleted.
(webkitAccessibleActionGetDescription): Deleted.
(webkitAccessibleActionGetKeybinding): Deleted.
(webkitAccessibleActionGetName): Deleted.
(webkitAccessibleActionInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceAction.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceComponent.cpp: Removed.
(atkToContents): Deleted.
(webkitAccessibleComponentRefAccessibleAtPoint): Deleted.
(webkitAccessibleComponentGetExtents): Deleted.
(webkitAccessibleComponentGrabFocus): Deleted.
(webkitAccessibleComponentScrollTo): Deleted.
(webkitAccessibleComponentScrollToPoint): Deleted.
(webkitAccessibleComponentInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceComponent.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Removed.
(core): Deleted.
(documentAttributeValue): Deleted.
(webkitAccessibleDocumentGetAttributeValue): Deleted.
(webkitAccessibleDocumentGetAttributes): Deleted.
(webkitAccessibleDocumentGetLocale): Deleted.
(webkitAccessibleDocumentInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceDocument.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp: Removed.
(core): Deleted.
(webkitAccessibleEditableTextSetRunAttributes): Deleted.
(webkitAccessibleEditableTextSetTextContents): Deleted.
(webkitAccessibleEditableTextInsertText): Deleted.
(webkitAccessibleEditableTextCopyText): Deleted.
(webkitAccessibleEditableTextCutText): Deleted.
(webkitAccessibleEditableTextDeleteText): Deleted.
(webkitAccessibleEditableTextPasteText): Deleted.
(webkitAccessibleEditableTextInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceEditableText.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp: Removed.
(webkitAccessibleHyperlinkImplGetHyperlink): Deleted.
(webkitAccessibleHyperlinkImplInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp: Removed.
(core): Deleted.
(webkitAccessibleHypertextGetLink): Deleted.
(webkitAccessibleHypertextGetNLinks): Deleted.
(webkitAccessibleHypertextGetLinkIndex): Deleted.
(webkitAccessibleHypertextInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Removed.
(core): Deleted.
(webkitAccessibleImageGetImagePosition): Deleted.
(webkitAccessibleImageGetImageDescription): Deleted.
(webkitAccessibleImageGetImageSize): Deleted.
(webkitAccessibleImageInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceImage.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceSelection.cpp: Removed.
(core): Deleted.
(listObjectForCoreSelection): Deleted.
(optionFromList): Deleted.
(optionFromSelection): Deleted.
(webkitAccessibleSelectionAddSelection): Deleted.
(webkitAccessibleSelectionClearSelection): Deleted.
(webkitAccessibleSelectionRefSelection): Deleted.
(webkitAccessibleSelectionGetSelectionCount): Deleted.
(webkitAccessibleSelectionIsChildSelected): Deleted.
(webkitAccessibleSelectionRemoveSelection): Deleted.
(webkitAccessibleSelectionSelectAllSelection): Deleted.
(webkitAccessibleSelectionInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceSelection.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Removed.
(core): Deleted.
(cell): Deleted.
(cellIndex): Deleted.
(cellAtIndex): Deleted.
(webkitAccessibleTableRefAt): Deleted.
(webkitAccessibleTableGetIndexAt): Deleted.
(webkitAccessibleTableGetColumnAtIndex): Deleted.
(webkitAccessibleTableGetRowAtIndex): Deleted.
(webkitAccessibleTableGetNColumns): Deleted.
(webkitAccessibleTableGetNRows): Deleted.
(webkitAccessibleTableGetColumnExtentAt): Deleted.
(webkitAccessibleTableGetRowExtentAt): Deleted.
(webkitAccessibleTableGetColumnHeader): Deleted.
(webkitAccessibleTableGetRowHeader): Deleted.
(webkitAccessibleTableGetCaption): Deleted.
(webkitAccessibleTableGetColumnDescription): Deleted.
(webkitAccessibleTableGetRowDescription): Deleted.
(webkitAccessibleTableInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceTable.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp: Removed.
(convertToGPtrArray): Deleted.
(core): Deleted.
(webkitAccessibleTableCellGetColumnHeaderCells): Deleted.
(webkitAccessibleTableCellGetRowHeaderCells): Deleted.
(webkitAccessibleTableCellGetColumnSpan): Deleted.
(webkitAccessibleTableCellGetRowSpan): Deleted.
(webkitAccessibleTableCellGetPosition): Deleted.
(webkitAccessibleTableCellGetTable): Deleted.
(webkitAccessibleTableCellInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceTableCell.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceText.cpp: Removed.
(core): Deleted.
(baselinePositionForRenderObject): Deleted.
(getAttributeSetForAccessibilityObject): Deleted.
(compareAttribute): Deleted.
(attributeSetDifference): Deleted.
(accessibilityObjectLength): Deleted.
(getAccessibilityObjectForOffset): Deleted.
(getRunAttributesFromAccessibilityObject): Deleted.
(textExtents): Deleted.
(offsetAdjustmentForListItem): Deleted.
(webCoreOffsetToAtkOffset): Deleted.
(atkOffsetToWebCoreOffset): Deleted.
(getNodeForAccessibilityObject): Deleted.
(getSelectionOffsetsForObject): Deleted.
(webkitAccessibleTextGetText): Deleted.
(emptyTextSelectionAtOffset): Deleted.
(webkitAccessibleTextGetChar): Deleted.
(nextWordStartPosition): Deleted.
(previousWordEndPosition): Deleted.
(wordAtPositionForAtkBoundary): Deleted.
(numberOfReplacedElementsBeforeOffset): Deleted.
(webkitAccessibleTextWordForBoundary): Deleted.
(isSentenceBoundary): Deleted.
(isWhiteSpaceBetweenSentences): Deleted.
(sentenceAtPositionForAtkBoundary): Deleted.
(webkitAccessibleTextSentenceForBoundary): Deleted.
(lineAtPositionForAtkBoundary): Deleted.
(webkitAccessibleTextLineForBoundary): Deleted.
(webkitAccessibleTextGetTextForOffset): Deleted.
(webkitAccessibleTextGetTextAfterOffset): Deleted.
(webkitAccessibleTextGetTextAtOffset): Deleted.
(webkitAccessibleTextGetTextBeforeOffset): Deleted.
(webkitAccessibleTextGetCharacterAtOffset): Deleted.
(webkitAccessibleTextGetCaretOffset): Deleted.
(webkitAccessibleTextGetRunAttributes): Deleted.
(webkitAccessibleTextGetDefaultAttributes): Deleted.
(webkitAccessibleTextGetCharacterExtents): Deleted.
(webkitAccessibleTextGetRangeExtents): Deleted.
(webkitAccessibleTextGetCharacterCount): Deleted.
(webkitAccessibleTextGetOffsetAtPoint): Deleted.
(webkitAccessibleTextGetNSelections): Deleted.
(webkitAccessibleTextGetSelection): Deleted.
(webkitAccessibleTextAddSelection): Deleted.
(webkitAccessibleTextSetSelection): Deleted.
(webkitAccessibleTextRemoveSelection): Deleted.
(webkitAccessibleTextSetCaretOffset): Deleted.
(webkitAccessibleTextGetStringAtOffset): Deleted.
(webkitAccessibleTextInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceText.h: Removed.
- accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Removed.
(core): Deleted.
(webkitAccessibleSetNewValue): Deleted.
(webkitAccessibleGetIncrementValue): Deleted.
(webkitAccessibleGetValueAndText): Deleted.
(webkitAccessibleGetIncrement): Deleted.
(webkitAccessibleSetValue): Deleted.
(webkitAccessibleGetRange): Deleted.
(webkitAccessibleValueGetCurrentValue): Deleted.
(webkitAccessibleValueGetMaximumValue): Deleted.
(webkitAccessibleValueGetMinimumValue): Deleted.
(webkitAccessibleValueSetCurrentValue): Deleted.
(webkitAccessibleValueGetMinimumIncrement): Deleted.
(webkitAccessibleValueInterfaceInit): Deleted.
- accessibility/atk/WebKitAccessibleInterfaceValue.h: Removed.
- accessibility/atk/WebKitAccessibleUtil.cpp: Removed.
(addToAtkAttributeSet): Deleted.
(contentsRelativeToAtkCoordinateType): Deleted.
(titleTagShouldBeUsedInDescriptionField): Deleted.
(accessibilityTitle): Deleted.
(accessibilityDescription): Deleted.
(selectionBelongsToObject): Deleted.
(objectFocusedAndCaretOffsetUnignored): Deleted.
- accessibility/atk/WebKitAccessibleUtil.h: Removed.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::attributes const):
- editing/FrameSelection.h:
- editing/atk/FrameSelectionAtk.cpp: Removed.
(WebCore::emitTextSelectionChange): Deleted.
(WebCore::maybeEmitTextFocusChange): Deleted.
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Deleted.
- page/Settings.yaml:
- platform/graphics/PlatformDisplay.cpp:
- platform/graphics/PlatformDisplay.h:
- platform/graphics/x11/PlatformDisplayX11.cpp:
- platform/graphics/x11/PlatformDisplayX11.h:
Source/WebKit:
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp: Removed.
(coreRootObjectWrapperDetachedCallback): Deleted.
(rootWebAreaWrapper): Deleted.
(accessibilityRootObjectWrapper): Deleted.
(webkitWebPageAccessibilityObjectInitialize): Deleted.
(webkitWebPageAccessibilityObjectGetIndexInParent): Deleted.
(webkitWebPageAccessibilityObjectGetNChildren): Deleted.
(webkitWebPageAccessibilityObjectRefChild): Deleted.
(webkitWebPageAccessibilityObjectRefStateSet): Deleted.
(webkit_web_page_accessibility_object_class_init): Deleted.
(webkitWebPageAccessibilityObjectNew): Deleted.
- WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.h: Removed.
- WebProcess/WebPage/glib/WebPageGLib.cpp:
(WebKit::WebPage::platformInitialize):
- WebProcess/wpe/WebProcessMainWPE.cpp:
(WebKit::initializeAccessibility): Deleted.
Tools:
- DumpRenderTree/AccessibilityController.h:
- DumpRenderTree/AccessibilityUIElement.h:
- Scripts/valgrind/suppressions.txt:
- Scripts/webkit-filter-log:
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testAccessibleChildrenChanged):
(testAccessibleAttributes):
(testAccessibleState):
(testAccessibleStateChanged):
(testAccessibleListMarkers):
(testTextSurrogatePair):
(testTextIterator):
(testTextExtents):
(testTextSelections):
(testTextAttributes):
(testTextStateChanged):
(testTextReplacedObjects):
(testTextListMarkers):
(testHyperlinkBasic):
(testHypertextBasic):
(testActionBasic):
(testDocumentBasic):
(testImageBasic):
(testSelectionMenuList):
(testTableBasic):
- TestWebKitAPI/glib/PlatformGTK.cmake:
- WebKitTestRunner/InjectedBundle/AccessibilityController.h:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp: Removed.
(WTR::AccessibilityController::resetToConsistentState): Deleted.
(WTR::childElementById): Deleted.
(WTR::AccessibilityController::accessibleElementById): Deleted.
(WTR::AccessibilityController::platformName): Deleted.
(WTR::AccessibilityController::injectAccessibilityPreference): Deleted.
(WTR::AccessibilityController::rootElement): Deleted.
(WTR::AccessibilityController::focusedElement): Deleted.
(WTR::AccessibilityController::addNotificationListener): Deleted.
(WTR::AccessibilityController::removeNotificationListener): Deleted.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp: Removed.
(): Deleted.
(WTR::AccessibilityNotificationHandler::AccessibilityNotificationHandler): Deleted.
(WTR::AccessibilityNotificationHandler::~AccessibilityNotificationHandler): Deleted.
(WTR::AccessibilityNotificationHandler::setNotificationFunctionCallback): Deleted.
(WTR::AccessibilityNotificationHandler::removeAccessibilityNotificationHandler): Deleted.
(WTR::AccessibilityNotificationHandler::connectAccessibilityCallbacks): Deleted.
(WTR::AccessibilityNotificationHandler::disconnectAccessibilityCallbacks): Deleted.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.h: Removed.
(WTR::AccessibilityNotificationHandler::create): Deleted.
(WTR::AccessibilityNotificationHandler::setPlatformElement): Deleted.
(WTR::AccessibilityNotificationHandler::platformElement const): Deleted.
(WTR::AccessibilityNotificationHandler::notificationFunctionCallback const): Deleted.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp: Removed.
(): Deleted.
(WTR::AccessibilityUIElement::AccessibilityUIElement): Deleted.
(WTR::AccessibilityUIElement::~AccessibilityUIElement): Deleted.
(WTR::AccessibilityUIElement::isEqual): Deleted.
(WTR::AccessibilityUIElement::getChildren): Deleted.
(WTR::AccessibilityUIElement::getChildrenWithRange): Deleted.
(WTR::AccessibilityUIElement::childrenCount): Deleted.
(WTR::AccessibilityUIElement::elementAtPoint): Deleted.
(WTR::AccessibilityUIElement::indexOfChild): Deleted.
(WTR::AccessibilityUIElement::childAtIndex): Deleted.
(WTR::accessibilityElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::linkedUIElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaOwnsElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaOwnsReferencingElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaFlowToElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaFlowToReferencingElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaControlsElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaControlsReferencingElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaLabelledByElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaLabelledByReferencingElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaDescribedByElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaDescribedByReferencingElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaDetailsReferencingElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::ariaErrorMessageReferencingElementAtIndex): Deleted.
(WTR::AccessibilityUIElement::disclosedRowAtIndex): Deleted.
(WTR::AccessibilityUIElement::rowAtIndex): Deleted.
(WTR::AccessibilityUIElement::selectedChildAtIndex const): Deleted.
(WTR::AccessibilityUIElement::selectedChildrenCount const): Deleted.
(WTR::AccessibilityUIElement::selectedRowAtIndex): Deleted.
(WTR::AccessibilityUIElement::titleUIElement): Deleted.
(WTR::AccessibilityUIElement::parentElement): Deleted.
(WTR::AccessibilityUIElement::disclosedByRow): Deleted.
(WTR::AccessibilityUIElement::attributesOfLinkedUIElements): Deleted.
(WTR::AccessibilityUIElement::attributesOfDocumentLinks): Deleted.
(WTR::AccessibilityUIElement::attributesOfChildren): Deleted.
(WTR::AccessibilityUIElement::allAttributes): Deleted.
(WTR::AccessibilityUIElement::stringDescriptionOfAttributeValue): Deleted.
(WTR::AccessibilityUIElement::stringAttributeValue): Deleted.
(WTR::AccessibilityUIElement::numberAttributeValue): Deleted.
(WTR::AccessibilityUIElement::currentStateValue const): Deleted.
(WTR::AccessibilityUIElement::uiElementArrayAttributeValue const): Deleted.
(WTR::AccessibilityUIElement::rowHeaders const): Deleted.
(WTR::AccessibilityUIElement::columnHeaders const): Deleted.
(WTR::AccessibilityUIElement::uiElementAttributeValue const): Deleted.
(WTR::AccessibilityUIElement::boolAttributeValue): Deleted.
(WTR::AccessibilityUIElement::isAttributeSettable): Deleted.
(WTR::AccessibilityUIElement::isAttributeSupported): Deleted.
(WTR::AccessibilityUIElement::parameterizedAttributeNames): Deleted.
(WTR::AccessibilityUIElement::role): Deleted.
(WTR::AccessibilityUIElement::subrole): Deleted.
(WTR::AccessibilityUIElement::roleDescription): Deleted.
(WTR::AccessibilityUIElement::computedRoleString): Deleted.
(WTR::AccessibilityUIElement::title): Deleted.
(WTR::AccessibilityUIElement::description): Deleted.
(WTR::AccessibilityUIElement::orientation const): Deleted.
(WTR::AccessibilityUIElement::stringValue): Deleted.
(WTR::AccessibilityUIElement::language): Deleted.
(WTR::AccessibilityUIElement::helpText const): Deleted.
(WTR::AccessibilityUIElement::x): Deleted.
(WTR::AccessibilityUIElement::y): Deleted.
(WTR::AccessibilityUIElement::width): Deleted.
(WTR::AccessibilityUIElement::height): Deleted.
(WTR::AccessibilityUIElement::clickPointX): Deleted.
(WTR::AccessibilityUIElement::clickPointY): Deleted.
(WTR::AccessibilityUIElement::intValue const): Deleted.
(WTR::AccessibilityUIElement::minValue): Deleted.
(WTR::AccessibilityUIElement::maxValue): Deleted.
(WTR::AccessibilityUIElement::valueDescription): Deleted.
(WTR::AccessibilityUIElement::insertionPointLineNumber): Deleted.
(WTR::AccessibilityUIElement::isPressActionSupported): Deleted.
(WTR::AccessibilityUIElement::isIncrementActionSupported): Deleted.
(WTR::AccessibilityUIElement::isDecrementActionSupported): Deleted.
(WTR::AccessibilityUIElement::isEnabled): Deleted.
(WTR::AccessibilityUIElement::isRequired const): Deleted.
(WTR::AccessibilityUIElement::isFocused const): Deleted.
(WTR::AccessibilityUIElement::isSelected const): Deleted.
(WTR::AccessibilityUIElement::isSelectedOptionActive const): Deleted.
(WTR::AccessibilityUIElement::isExpanded const): Deleted.
(WTR::AccessibilityUIElement::isChecked const): Deleted.
(WTR::AccessibilityUIElement::isIndeterminate const): Deleted.
(WTR::AccessibilityUIElement::hierarchicalLevel const): Deleted.
(WTR::AccessibilityUIElement::speakAs): Deleted.
(WTR::AccessibilityUIElement::ariaIsGrabbed const): Deleted.
(WTR::AccessibilityUIElement::ariaDropEffects const): Deleted.
(WTR::AccessibilityUIElement::lineForIndex): Deleted.
(WTR::AccessibilityUIElement::rangeForLine): Deleted.
(WTR::AccessibilityUIElement::rangeForPosition): Deleted.
(WTR::AccessibilityUIElement::boundsForRange): Deleted.
(WTR::AccessibilityUIElement::stringForRange): Deleted.
(WTR::AccessibilityUIElement::attributedStringForRange): Deleted.
(WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled): Deleted.
(WTR::AccessibilityUIElement::uiElementCountForSearchPredicate): Deleted.
(WTR::AccessibilityUIElement::uiElementForSearchPredicate): Deleted.
(WTR::AccessibilityUIElement::selectTextWithCriteria): Deleted.
(WTR::AccessibilityUIElement::attributesOfColumnHeaders): Deleted.
(WTR::AccessibilityUIElement::attributesOfRowHeaders): Deleted.
(WTR::AccessibilityUIElement::attributesOfColumns): Deleted.
(WTR::AccessibilityUIElement::attributesOfRows): Deleted.
(WTR::AccessibilityUIElement::attributesOfVisibleCells): Deleted.
(WTR::AccessibilityUIElement::attributesOfHeader): Deleted.
(WTR::AccessibilityUIElement::rowCount): Deleted.
(WTR::AccessibilityUIElement::columnCount): Deleted.
(WTR::AccessibilityUIElement::indexInTable): Deleted.
(WTR::AccessibilityUIElement::rowIndexRange): Deleted.
(WTR::AccessibilityUIElement::columnIndexRange): Deleted.
(WTR::AccessibilityUIElement::cellForColumnAndRow): Deleted.
(WTR::AccessibilityUIElement::horizontalScrollbar const): Deleted.
(WTR::AccessibilityUIElement::verticalScrollbar const): Deleted.
(WTR::AccessibilityUIElement::selectedTextRange): Deleted.
(WTR::AccessibilityUIElement::setSelectedTextRange): Deleted.
(WTR::AccessibilityUIElement::increment): Deleted.
(WTR::AccessibilityUIElement::decrement): Deleted.
(WTR::AccessibilityUIElement::showMenu): Deleted.
(WTR::AccessibilityUIElement::press): Deleted.
(WTR::AccessibilityUIElement::setSelectedChild const): Deleted.
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const): Deleted.
(WTR::AccessibilityUIElement::removeSelectionAtIndex const): Deleted.
(WTR::AccessibilityUIElement::clearSelectedChildren const): Deleted.
(WTR::AccessibilityUIElement::accessibilityValue const): Deleted.
(WTR::AccessibilityUIElement::documentEncoding): Deleted.
(WTR::AccessibilityUIElement::documentURI): Deleted.
(WTR::AccessibilityUIElement::url): Deleted.
(WTR::AccessibilityUIElement::addNotificationListener): Deleted.
(WTR::AccessibilityUIElement::removeNotificationListener): Deleted.
(WTR::AccessibilityUIElement::isFocusable const): Deleted.
(WTR::AccessibilityUIElement::isSelectable const): Deleted.
(WTR::AccessibilityUIElement::isMultiSelectable const): Deleted.
(WTR::AccessibilityUIElement::isVisible const): Deleted.
(WTR::AccessibilityUIElement::isOffScreen const): Deleted.
(WTR::AccessibilityUIElement::isCollapsed const): Deleted.
(WTR::AccessibilityUIElement::isIgnored const): Deleted.
(WTR::AccessibilityUIElement::isSingleLine const): Deleted.
(WTR::AccessibilityUIElement::isMultiLine const): Deleted.
(WTR::AccessibilityUIElement::hasPopup const): Deleted.
(WTR::AccessibilityUIElement::takeFocus): Deleted.
(WTR::AccessibilityUIElement::takeSelection): Deleted.
(WTR::AccessibilityUIElement::addSelection): Deleted.
(WTR::AccessibilityUIElement::removeSelection): Deleted.
(WTR::AccessibilityUIElement::lineTextMarkerRangeForTextMarker): Deleted.
(WTR::AccessibilityUIElement::textMarkerRangeForElement): Deleted.
(WTR::AccessibilityUIElement::textMarkerRangeLength): Deleted.
(WTR::AccessibilityUIElement::previousTextMarker): Deleted.
(WTR::AccessibilityUIElement::nextTextMarker): Deleted.
(WTR::AccessibilityUIElement::stringForTextMarkerRange): Deleted.
(WTR::AccessibilityUIElement::rectsForTextMarkerRange): Deleted.
(WTR::AccessibilityUIElement::textMarkerRangeForMarkers): Deleted.
(WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange): Deleted.
(WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange): Deleted.
(WTR::AccessibilityUIElement::endTextMarkerForBounds): Deleted.
(WTR::AccessibilityUIElement::startTextMarkerForBounds): Deleted.
(WTR::AccessibilityUIElement::textMarkerForPoint): Deleted.
(WTR::AccessibilityUIElement::accessibilityElementForTextMarker): Deleted.
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRange): Deleted.
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions): Deleted.
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute): Deleted.
(WTR::AccessibilityUIElement::indexForTextMarker): Deleted.
(WTR::AccessibilityUIElement::isTextMarkerValid): Deleted.
(WTR::AccessibilityUIElement::textMarkerForIndex): Deleted.
(WTR::AccessibilityUIElement::startTextMarker): Deleted.
(WTR::AccessibilityUIElement::endTextMarker): Deleted.
(WTR::AccessibilityUIElement::setSelectedTextMarkerRange): Deleted.
(WTR::AccessibilityUIElement::scrollToMakeVisible): Deleted.
(WTR::AccessibilityUIElement::scrollToGlobalPoint): Deleted.
(WTR::AccessibilityUIElement::scrollToMakeVisibleWithSubFocus): Deleted.
(WTR::AccessibilityUIElement::supportedActions const): Deleted.
(WTR::AccessibilityUIElement::pathDescription const): Deleted.
(WTR::AccessibilityUIElement::mathPostscriptsDescription const): Deleted.
(WTR::AccessibilityUIElement::mathPrescriptsDescription const): Deleted.
(WTR::AccessibilityUIElement::classList const): Deleted.
(WTR::stringAtOffset): Deleted.
(WTR::AccessibilityUIElement::characterAtOffset): Deleted.
(WTR::AccessibilityUIElement::wordAtOffset): Deleted.
(WTR::AccessibilityUIElement::lineAtOffset): Deleted.
(WTR::AccessibilityUIElement::sentenceAtOffset): Deleted.
(WTR::AccessibilityUIElement::replaceTextInRange): Deleted.
(WTR::AccessibilityUIElement::insertText): Deleted.
(WTR::AccessibilityUIElement::popupValue const): Deleted.
- WebKitTestRunner/PlatformGTK.cmake:
- WebKitTestRunner/PlatformWPE.cmake:
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
LayoutTests:
- accessibility/gtk/aria-modal-state-exposed-expected.txt:
- accessibility/gtk/aria-modal-state-exposed.html:
- accessibility/gtk/name-from-label-expected.txt:
- accessibility/gtk/name-from-label.html:
- accessibility/gtk/object-attributes-expected.txt:
- accessibility/gtk/object-attributes.html:
- accessibility/language-attribute.html:
- 5:33 AM Changeset in webkit [291612] by
-
- 5 edits in trunk/Source/WebCore
[GLIB] Use a static string for default application name
https://bugs.webkit.org/show_bug.cgi?id=238124
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-22
Reviewed by Xabier Rodriguez-Calvar.
- platform/glib/ApplicationGLib.cpp:
(WebCore::getApplicationName):
- platform/glib/ApplicationGLib.h:
- 3:36 AM Changeset in webkit [291611] by
-
- 91 edits in trunk/Source
Move RealtimeMediaSource::VideoSampleObserver::videoSampleAvailable to VideoFrame
https://bugs.webkit.org/show_bug.cgi?id=237884
Reviewed by Eric Carlson.
Source/WebCore:
Refactoring to do the following:
- Renaming of VideoSampleObserver to VideoFrameObserver, videoSampleAvailable to videoFrameAvailable...
- videoFrameAvailable takes a VideoFrame instead of a MediaSample
- Use VideoFrame::rotation and VideoFrame::isMirrored.
- Use VideoFrame::Rotation instead of MediaSample::VideoRotation
Update code according this renaming.
Move from using MediaSample to VideoFrame where it makes sense.
Prepare for removal of MediaSample as parent class of VideoFrame.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
- html/canvas/WebGLRenderingContextBase.cpp:
- platform/MediaSample.h:
- platform/VideoFrame.cpp:
- platform/VideoFrame.h:
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
- platform/graphics/cv/ImageRotationSessionVT.h:
- platform/graphics/cv/ImageRotationSessionVT.mm:
- platform/graphics/cv/ImageTransferSessionVT.h:
- platform/graphics/cv/ImageTransferSessionVT.mm:
- platform/graphics/cv/VideoFrameCV.h:
- platform/graphics/cv/VideoFrameCV.mm:
- platform/graphics/gstreamer/VideoFrameGStreamer.cpp:
- platform/graphics/gstreamer/VideoFrameGStreamer.h:
- platform/mediarecorder/MediaRecorderPrivate.h:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
- platform/mediarecorder/MediaRecorderPrivateMock.cpp:
- platform/mediarecorder/MediaRecorderPrivateMock.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
- platform/mediastream/RealtimeMediaSource.cpp:
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeOutgoingVideoSource.cpp:
- platform/mediastream/RealtimeOutgoingVideoSource.h:
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
- platform/mediastream/RealtimeVideoCaptureSource.h:
- platform/mediastream/RealtimeVideoSource.cpp:
- platform/mediastream/RealtimeVideoSource.h:
- platform/mediastream/VideoPreset.h:
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
- platform/mediastream/ios/ReplayKitCaptureSource.mm:
- platform/mediastream/libwebrtc/VideoFrameLibWebRTC.cpp:
- platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h:
- platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
- platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
- platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:
- platform/mock/MockRealtimeVideoSource.cpp:
- platform/mock/MockRealtimeVideoSource.h:
- testing/Internals.cpp:
- testing/Internals.h:
Source/WebKit:
Move from using MediaSample to VideoFrame directly.
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
- GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
- GPUProcess/media/RemoteVideoFrameObjectHeap.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteMediaRecorder.h:
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
- WebProcess/GPU/media/RemoteVideoFrameProxy.h:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
- WebProcess/cocoa/RemoteRealtimeVideoSource.h:
- 3:18 AM Changeset in webkit [291610] by
-
- 5 edits1 copy in trunk/Source/WebCore
[TextureMapper] Split GraphicsContextGLTextureMapper into two classes
https://bugs.webkit.org/show_bug.cgi?id=238141
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-22
Reviewed by Alejandro G. Castro.
Split GraphicsContextGLTextureMapper into two distinct classes. The
current class unconditionally inherits from GraphicsContextGLOpenGL, and
the new GraphicsContextGLTextureMapperANGLE inherits from
GraphicsContextGLANGLE. This reduces complexity and avoids the
implementation to span across two separate files. The two classes can
also be developed independently, with more changes and cleanups already
planned for the ANGLE variant.
No new tests due to no actual change in behavior.
- platform/TextureMapper.cmake:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::createWebProcessGraphicsContextGL):
(WebCore::GraphicsContextGLTextureMapper::create):
(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):
(WebCore::GraphicsContextGLTextureMapper::layerContentsDisplayDelegate):
(WebCore::GraphicsContextGLTextureMapper::copyTextureFromMedia):
(WebCore::GraphicsContextGLTextureMapper::paintCompositedResultsToVideoFrame):
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
- platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLANGLE::checkGPUStatus):
(WebCore::GraphicsContextGLANGLE::platformReleaseThreadResources):
(WebCore::GraphicsContextGLANGLE::readCompositedResults):
(WebCore::createWebProcessGraphicsContextGL):
(WebCore::GraphicsContextGLTextureMapperANGLE::create):
(WebCore::GraphicsContextGLTextureMapperANGLE::GraphicsContextGLTextureMapperANGLE):
(WebCore::GraphicsContextGLTextureMapperANGLE::~GraphicsContextGLTextureMapperANGLE):
(WebCore::GraphicsContextGLTextureMapperANGLE::layerContentsDisplayDelegate):
(WebCore::GraphicsContextGLTextureMapperANGLE::copyTextureFromMedia):
(WebCore::GraphicsContextGLTextureMapperANGLE::paintCompositedResultsToVideoFrame):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitializeContext):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitialize):
(WebCore::GraphicsContextGLTextureMapperANGLE::setContextVisibility):
(WebCore::GraphicsContextGLTextureMapperANGLE::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareForDisplay):
(WebCore::GraphicsContextGLTextureMapper::platformInitializeContext): Deleted.
(WebCore::GraphicsContextGLTextureMapper::platformInitialize): Deleted.
(WebCore::GraphicsContextGLTextureMapper::setContextVisibility): Deleted.
(WebCore::GraphicsContextGLTextureMapper::prepareForDisplay): Deleted.
(WebCore::GraphicsContextGLTextureMapper::reshapeDisplayBufferBacking): Deleted.
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h: Copied from Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.h.
- 2:43 AM Changeset in webkit [291609] by
-
- 16 edits in trunk
[selection] Change form's selection attribute to unsigned long
https://bugs.webkit.org/show_bug.cgi?id=237951
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Update test expectations as more sub-tests are now passing.
- web-platform-tests/html/semantics/forms/textfieldselection/selection-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:
Source/WebCore:
We should change the type of attribute "selectionStart" and "selectionEnd"
from long to unsigned long. Also "start" and "end" parameters in function
selectionRange() need to be changed correspondingly.
This change is in line with Chromium CL at
https://github.com/chromium/chromium/commit/b6ff6db1c5683b5e564a72b0941ad504b410d1af
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setDefaultSelectionAfterFocus):
(WebCore::HTMLInputElement::selectionStartForBindings const):
(WebCore::HTMLInputElement::setSelectionStartForBindings):
(WebCore::HTMLInputElement::selectionEndForBindings const):
(WebCore::HTMLInputElement::setSelectionEndForBindings):
(WebCore::HTMLInputElement::setSelectionRangeForBindings):
- html/HTMLInputElement.h:
- html/HTMLInputElement.idl:
- html/HTMLTextAreaElement.idl:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::HTMLTextFormControlElement):
(WebCore::HTMLTextFormControlElement::setSelectionStart):
(WebCore::HTMLTextFormControlElement::setSelectionEnd):
(WebCore::HTMLTextFormControlElement::select):
(WebCore::HTMLTextFormControlElement::setSelectionRange):
(WebCore::HTMLTextFormControlElement::selectionStart const):
(WebCore::HTMLTextFormControlElement::computeSelectionStart const):
(WebCore::HTMLTextFormControlElement::selectionEnd const):
(WebCore::HTMLTextFormControlElement::computeSelectionEnd const):
- html/HTMLTextFormControlElement.h:
(WebCore::HTMLTextFormControlElement::cacheSelection):
(WebCore::HTMLTextFormControlElement::hasCachedSelection const):
LayoutTests:
Update test accordingly. This is inline with Chromium.
Note that for selection-start-end-readonly.html, two sub-tests
are now failing. This is the right behaviour since the test assumes
types for selectionStart and selectionEnd as "int". We could modify the
test and make the type as unsigned. Interestingly the test script's
format is strange and it seems having "return" for each line. Simply updating
some lines on the test scripts causes errors when applying the patch. We have
decided to address this test in a separate patch (maybe remove the file and added
a new one with proper format).
- fast/forms/input-appearance-selection.html:
- fast/forms/selection-functions-expected.txt:
- fast/forms/selection-start-end-readonly-expected.txt:
- 1:51 AM Changeset in webkit [291608] by
-
- 4 edits in trunk/Source
Source/WebCore:
Unreviewed, fix non-unified build after r291597
- css/typedom/CSSNumericValue.cpp:
Source/WebKit:
Unreviewed, fix non-unified build after r291589
- NetworkProcess/NetworkBroadcastChannelRegistry.cpp:
- 1:14 AM Changeset in webkit [291607] by
-
- 2 edits in trunk/Tools
Squelch warning message from output of build-jsc
https://bugs.webkit.org/show_bug.cgi?id=238177
Reviewed by Saam Barati.
There was a "prototype mismatch" error.
- Scripts/webkitperl/BuildSubproject.pm:
- 12:44 AM Changeset in webkit [291606] by
-
- 6 edits in trunk
Website policies are not respected when doing COOP based process swap
https://bugs.webkit.org/show_bug.cgi?id=238036
<rdar://89616625>
Reviewed by Chris Dumez.
Source/WebKit:
In case of normal process swap, we make use of website policies so everything is fine.
For COOP based process swap, this happens later on, at a point where we lost website policies.
To overcome this, we store the website policies used by a navigation inside the API::Navigation object.
It is used by continueNavigationInNewProcess to correctly initialize the new WebPage website policies.
We then set the website policies in the navigation object just before continuing the load in the same process,
as process swap may happen later when inspecting the response.
Minor refactoring in continueNavigationInNewProcess to get the policies directly from the given Navigation object.
Minor refactoring in receivedNavigationPolicyDecision to make the code doing process swap clearer.
Covered by API test.
- UIProcess/API/APINavigation.h:
(API::Navigation::setWebsitePoliciesForProcessSwap):
(API::Navigation::takeWebsitePoliciesForProcessSwap):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 12:21 AM Changeset in webkit [291605] by
-
- 3 edits in trunk/Source/WebCore
Adjust anchor/focus nodes after removal when LiveRangeSelection is enabled
https://bugs.webkit.org/show_bug.cgi?id=238004
Patch by Frédéric Wang <fwang@igalia.com> on 2022-03-22
Reviewed by Ryosuke Niwa.
This patch ensures that FrameSelection::nodeWillBeRemoved adjusts m_anchor and m_focus
when corresponding nodes are removed from the DOM tree. There are no behavior changes
when live range is disabled.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::nodeWillBeRemoved): When live range is enabled,
Ensure that anchor nodes are updated even when the selection is none and pass information
about whether anchor or focus are removed by the node removal.
(WebCore::FrameSelection::respondToNodeModification): Adjust anchor and focus if they
are removed, when live range is enabled.
- editing/FrameSelection.h: Add arguments for anchor and focus.
Mar 21, 2022:
- 10:26 PM Changeset in webkit [291604] by
-
- 46 edits2 adds in trunk
[GPU Process] Make GraphicsContextState keep track of changes till they are applied
https://bugs.webkit.org/show_bug.cgi?id=238066
rdar://90585183
Reviewed by Simon Fraser.
Source/WebCore:
A member of type GraphicsContextState::ChangeFlags will be added to
GraphicsContextState to keep track of what has changes since it was last
applied. So we can eliminate the struct GraphicsContextStateChange.
We will have to have a single member for every GraphicsContextState::Change.
- So we will combine the color, the pattern, the gradient and the gradient space transform in one class called 'SourceBrush'.
- We will combine the shadow offset, the shadow blurRadius, the shadow color and the radius mode in one struct called 'DropShadow'
- And we will combine the CompositeOperator and the BledMode in one struct called 'CompositeMode'.
GraphicsContextState will handle setting its members, its encoding and
decoding and its streaming to text.
Adding a transparency layer in CG sets the global alpha to 1. We need to
sync the member GraphicsContextState.alpha with the platform alpha when
we beginTransparencyLayer() and when we endTransparencyLayer().
DisplayList::Recorder will keep its stack of GraphicsContextState. The
difference between the state of GraphicsContext and the state of the
Recorder is we eagerly apply the former to the platform context but we
lazily record the changes of the later. Recorder::didUpdateState()
overrides the base class method to just merge the changes from the base
class GraphicsContext::m_state to Recorder::currentState().state.
Recorder::appendStateChangeItem() records the accumulated changes in the
currentState() since the last drawing.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/BifurcatedGraphicsContext.cpp:
(WebCore::BifurcatedGraphicsContext::beginTransparencyLayer):
(WebCore::BifurcatedGraphicsContext::endTransparencyLayer):
(WebCore::BifurcatedGraphicsContext::didUpdateState):
- platform/graphics/BifurcatedGraphicsContext.h:
- platform/graphics/DrawGlyphsRecorder.h:
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::updateState):
(WebCore::GraphicsContext::getShadow const):
(WebCore::GraphicsContext::setStrokeColor): Deleted.
(WebCore::GraphicsContext::setShadow): Deleted.
(WebCore::GraphicsContext::clearShadow): Deleted.
(WebCore::GraphicsContext::setFillColor): Deleted.
(WebCore::GraphicsContext::setStrokePattern): Deleted.
(WebCore::GraphicsContext::setFillPattern): Deleted.
(WebCore::GraphicsContext::setStrokeGradient): Deleted.
(WebCore::GraphicsContext::setFillGradient): Deleted.
(WebCore::GraphicsContext::setCompositeOperation): Deleted.
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::fillColor const):
(WebCore::GraphicsContext::fillGradient const):
(WebCore::GraphicsContext::fillGradientSpaceTransform const):
(WebCore::GraphicsContext::fillPattern const):
(WebCore::GraphicsContext::setFillBrush):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::setFillGradient):
(WebCore::GraphicsContext::setFillPattern):
(WebCore::GraphicsContext::fillRule const):
(WebCore::GraphicsContext::setFillRule):
(WebCore::GraphicsContext::strokeColor const):
(WebCore::GraphicsContext::strokeGradient const):
(WebCore::GraphicsContext::strokeGradientSpaceTransform const):
(WebCore::GraphicsContext::strokePattern const):
(WebCore::GraphicsContext::setStrokeBrush):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setStrokeGradient):
(WebCore::GraphicsContext::setStrokePattern):
(WebCore::GraphicsContext::strokeThickness const):
(WebCore::GraphicsContext::setStrokeThickness):
(WebCore::GraphicsContext::strokeStyle const):
(WebCore::GraphicsContext::setStrokeStyle):
(WebCore::GraphicsContext::dropShadow const):
(WebCore::GraphicsContext::shadowOffset const):
(WebCore::GraphicsContext::shadowBlur const):
(WebCore::GraphicsContext::shadowColor const):
(WebCore::GraphicsContext::setDropShadow):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::clearShadow):
(WebCore::GraphicsContext::hasVisibleShadow const):
(WebCore::GraphicsContext::hasBlurredShadow const):
(WebCore::GraphicsContext::hasShadow const):
(WebCore::GraphicsContext::compositeMode const):
(WebCore::GraphicsContext::compositeOperation const):
(WebCore::GraphicsContext::blendMode const):
(WebCore::GraphicsContext::setCompositeMode):
(WebCore::GraphicsContext::setCompositeOperation):
(WebCore::GraphicsContext::alpha const):
(WebCore::GraphicsContext::setAlpha):
(WebCore::GraphicsContext::textDrawingMode const):
(WebCore::GraphicsContext::setTextDrawingMode):
(WebCore::GraphicsContext::imageInterpolationQuality const):
(WebCore::GraphicsContext::setImageInterpolationQuality):
(WebCore::GraphicsContext::setShouldAntialias):
(WebCore::GraphicsContext::setShouldSmoothFonts):
(WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
(WebCore::GraphicsContext::shadowsIgnoreTransforms const):
(WebCore::GraphicsContext::setShadowsIgnoreTransforms):
(WebCore::GraphicsContext::setDrawLuminanceMask):
(WebCore::GraphicsContext::setUseDarkAppearance):
(WebCore::GraphicsContext::blendModeOperation const): Deleted.
- platform/graphics/GraphicsContextState.cpp:
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextState::hasOnlyPrimitiveChanges const):
(WebCore::GraphicsContextState::mergeChanges):
(WebCore::GraphicsContextState::didBeginTransparencyLayer):
(WebCore::GraphicsContextState::didEndTransparencyLayer):
(WebCore::stateChangeName):
(WebCore::GraphicsContextState::dump const):
(WebCore::operator<<):
(WebCore::GraphicsContextStateChange::changesFromState const): Deleted.
(WebCore::GraphicsContextStateChange::accumulate): Deleted.
(WebCore::GraphicsContextStateChange::apply const): Deleted.
(WebCore::GraphicsContextStateChange::dump const): Deleted.
- platform/graphics/GraphicsContextState.h:
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextState::changes const):
(WebCore::GraphicsContextState::didApplyChanges):
(WebCore::GraphicsContextState::setFillBrush):
(WebCore::GraphicsContextState::setFillColor):
(WebCore::GraphicsContextState::setFillGradient):
(WebCore::GraphicsContextState::setFillPattern):
(WebCore::GraphicsContextState::setFillRule):
(WebCore::GraphicsContextState::setStrokeBrush):
(WebCore::GraphicsContextState::setStrokeColor):
(WebCore::GraphicsContextState::setStrokeGradient):
(WebCore::GraphicsContextState::setStrokePattern):
(WebCore::GraphicsContextState::setStrokeThickness):
(WebCore::GraphicsContextState::setStrokeStyle):
(WebCore::GraphicsContextState::setCompositeMode):
(WebCore::GraphicsContextState::setDropShadow):
(WebCore::GraphicsContextState::setAlpha):
(WebCore::GraphicsContextState::setImageInterpolationQuality):
(WebCore::GraphicsContextState::setTextDrawingMode):
(WebCore::GraphicsContextState::setShouldAntialias):
(WebCore::GraphicsContextState::setShouldSmoothFonts):
(WebCore::GraphicsContextState::setShouldSubpixelQuantizeFonts):
(WebCore::GraphicsContextState::setShadowsIgnoreTransforms):
(WebCore::GraphicsContextState::setDrawLuminanceMask):
(WebCore::GraphicsContextState::setUseDarkAppearance):
(WebCore::GraphicsContextState::setProperty):
(WebCore::GraphicsContextState::encode const):
(WebCore::GraphicsContextState::decode):
(WebCore::GraphicsContextStateChange::GraphicsContextStateChange): Deleted.
- platform/graphics/GraphicsTypes.cpp:
(WebCore::operator<<):
- platform/graphics/GraphicsTypes.h:
(WebCore::CompositeMode::operator==):
(WebCore::CompositeMode::encode const):
(WebCore::CompositeMode::decode):
(WebCore::DropShadow::isVisible const):
(WebCore::DropShadow::isBlurred const):
(WebCore::DropShadow::hasOutsets const):
(WebCore::operator==):
(WebCore::DropShadow::encode const):
(WebCore::DropShadow::decode):
- platform/graphics/NullGraphicsContext.h:
- platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::ShadowBlur):
- platform/graphics/ShadowBlur.h:
- platform/graphics/SourceBrush.cpp: Added.
(WebCore::SourceBrush::SourceBrush):
(WebCore::SourceBrush::gradientSpaceTransform const):
(WebCore::SourceBrush::gradient const):
(WebCore::SourceBrush::pattern const):
(WebCore::SourceBrush::setGradient):
(WebCore::SourceBrush::setPattern):
(WebCore::operator<<):
- platform/graphics/SourceBrush.h: Added.
(WebCore::SourceBrush::color const):
(WebCore::SourceBrush::setColor):
(WebCore::SourceBrush::brush const):
(WebCore::SourceBrush::setGradient):
(WebCore::SourceBrush::isPrimitive const):
(WebCore::operator==):
(WebCore::SourceBrush::Brush::LogicalGradient::encode const):
(WebCore::SourceBrush::Brush::LogicalGradient::decode):
(WebCore::SourceBrush::Brush::encode const):
(WebCore::SourceBrush::Brush::decode):
(WebCore::SourceBrush::encode const):
(WebCore::SourceBrush::decode):
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::FillSource::FillSource):
(WebCore::Cairo::StrokeSource::StrokeSource):
(WebCore::Cairo::ShadowState::ShadowState):
- platform/graphics/cairo/FontCairo.cpp:
(WebCore::FontCascade::drawGlyphs):
- platform/graphics/cairo/GradientCairo.cpp:
(WebCore::Gradient::fill):
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContextCairo::drawRect):
(WebCore::GraphicsContextCairo::drawLine):
(WebCore::GraphicsContextCairo::drawEllipse):
(WebCore::GraphicsContextCairo::fillRect):
(WebCore::GraphicsContextCairo::drawLinesForText):
(WebCore::GraphicsContextCairo::didUpdateState):
(WebCore::GraphicsContextCairo::drawGlyphs):
- platform/graphics/cairo/GraphicsContextCairo.h:
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::GraphicsContextCG):
(WebCore::GraphicsContextCG::drawNativeImage):
(WebCore::GraphicsContextCG::applyStrokePattern):
(WebCore::GraphicsContextCG::applyFillPattern):
(WebCore::calculateDrawingMode):
(WebCore::GraphicsContextCG::drawPath):
(WebCore::GraphicsContextCG::fillPath):
(WebCore::GraphicsContextCG::strokePath):
(WebCore::GraphicsContextCG::fillRect):
(WebCore::GraphicsContextCG::fillRoundedRectImpl):
(WebCore::GraphicsContextCG::fillRectWithRoundedHole):
(WebCore::GraphicsContextCG::beginTransparencyLayer):
(WebCore::applyShadowOffsetWorkaroundIfNeeded):
(WebCore::setCGShadow):
(WebCore::GraphicsContextCG::didUpdateState):
(WebCore::GraphicsContextCG::strokeRect):
(WebCore::GraphicsContextCG::fillEllipse):
(WebCore::GraphicsContextCG::strokeEllipse):
- platform/graphics/cg/GraphicsContextCG.h:
- platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:
(WebCore::DrawGlyphsRecorder::populateInternalState):
(WebCore::DrawGlyphsRecorder::populateInternalContext):
(WebCore::DrawGlyphsRecorder::concludeInternalContext):
(WebCore::DrawGlyphsRecorder::updateFillBrush):
(WebCore::DrawGlyphsRecorder::updateStrokeBrush):
(WebCore::DrawGlyphsRecorder::updateCTM):
(WebCore::DrawGlyphsRecorder::updateShadow):
(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):
(WebCore::DrawGlyphsRecorder::updateFillColor): Deleted.
(WebCore::DrawGlyphsRecorder::updateStrokeColor): Deleted.
(WebCore::shadowIsCleared): Deleted.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::shouldDumpForFlags):
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::SetState::SetState):
(WebCore::DisplayList::SetState::apply):
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::SetState::state const):
(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):
(WebCore::DisplayList::SetState::stateChange const): Deleted.
(WebCore::DisplayList::SetState::stateChange): Deleted.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::appendStateChangeItem):
(WebCore::DisplayList::Recorder::appendStateChangeItemIfNecessary):
(WebCore::DisplayList::Recorder::state const):
(WebCore::DisplayList::Recorder::didUpdateState):
(WebCore::DisplayList::Recorder::save):
(WebCore::DisplayList::Recorder::restore):
(WebCore::DisplayList::Recorder::beginTransparencyLayer):
(WebCore::DisplayList::Recorder::endTransparencyLayer):
(WebCore::DisplayList::containsOnlyInlineStateChanges): Deleted.
- platform/graphics/displaylists/DisplayListRecorder.h:
(WebCore::DisplayList::Recorder::ContextState::ContextState):
(WebCore::DisplayList::Recorder::ContextState::cloneForTransparencyLayer const):
(WebCore::DisplayList::Recorder::ContextState::cloneForSave const): Deleted.
- platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordSetState):
- platform/graphics/displaylists/DisplayListRecorderImpl.h:
- platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::applySetStateItem):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::didUpdateState):
(Nicosia::CairoOperationRecorder::fillRect):
(Nicosia::CairoOperationRecorder::fillRoundedRect):
(Nicosia::CairoOperationRecorder::drawGlyphs):
(Nicosia::CairoOperationRecorder::drawRect):
(Nicosia::CairoOperationRecorder::drawLine):
(Nicosia::CairoOperationRecorder::drawLinesForText):
(Nicosia::CairoOperationRecorder::drawEllipse):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
- rendering/svg/RenderSVGPath.cpp:
(WebCore::useStrokeStyleToFill):
Source/WebKit:
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::setState):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordSetState):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
Tools:
- TestWebKitAPI/Tests/WebCore/cg/GraphicsContextTestsCG.cpp:
(TestWebKitAPI::TEST):
LayoutTests:
- displaylists/extent-includes-shadow-expected.txt:
- displaylists/extent-includes-transforms-expected.txt:
- displaylists/layer-dispay-list-expected.txt:
- gpu-process/TestExpectations:
- 9:26 PM Changeset in webkit [291603] by
-
- 3 edits1 add in trunk
[JSC] Change Date.parse to stop returning numbers with fractional part
https://bugs.webkit.org/show_bug.cgi?id=238050
Reviewed by Saam Barati.
JSTests:
- stress/date-parse-timeclip.js: Added.
(shouldBe):
Source/JavaScriptCore:
Date.parse should return NaN or integer numbers[1,2]. This patch applies timeClip
to the result of Date.parse to ensure that the returned value is time value.
[1]: https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-date.parse
[2]: https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-time-values-and-time-range
- runtime/DateConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 8:54 PM Changeset in webkit [291602] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix bug in Relationship::mergeImpl
https://bugs.webkit.org/show_bug.cgi?id=238183
<rdar://89822922>
Reviewed by Yusuke Suzuki.
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- 8:52 PM Changeset in webkit [291601] by
-
- 2 edits in trunk/Source/JavaScriptCore
AirFixObviousSpills needs to consider a PreIndex and PostIndex as clobbering the Reg used for indexing
https://bugs.webkit.org/show_bug.cgi?id=238178
<rdar://87345895>
Reviewed by Mark Lam.
Inside AirFixObviousSpills, we run a basic alias analysis for StackSlots and
registers. For example, when we overwrite a register, we clear anything
it's aliased with. However, the way we were doing this was by looking at
each Arg that was Defd. However, this iteration was missing that
PostIndex/PreIndex mutate the register that feeds into the address Arg.
This patch fixes the issue by walking the instruction in such a way that
we visit all the Defs we care about, both Regs and StackSlots.
- b3/air/AirFixObviousSpills.cpp:
- 8:49 PM Changeset in webkit [291600] by
-
- 12 edits3 copies1 move8 adds2 deletes in trunk
AX: AccessibilityObject::visibleCharacterRange is extremely slow when called on objects with lots of text
https://bugs.webkit.org/show_bug.cgi?id=237678
Reviewed by Andres Gonzalez.
Source/WebCore:
AccessibilityObject::visibleCharacterRange is extremely slow when
called on objects with lots of text. For example, trying to enter a
large contenteditable element with VoiceOver causes "Safari not
responding" because WebKit is so slow to return this data.
This patch fixes this in two ways. First, we optimize computation of
the end boundary point by grabbing previous line start positions in
batches and binary searching within each batch to find the correct
value.
I tried to apply this algorithm to the computation of the start
boundary, but that regressed performance for small and medium text
objects, and didn't yield any noticeable improvement for large text
objects. Keeping start boundary computation as-is while changing the
end boundary computation provided the best performance at all text
sizes.
Second, this patch caches visibleCharacterRange results, as the same
inputs to this function will always yield the same output. It's common
for this data to be requested multiple times without any change in
page state (e.g. scrolling), so caching further improves performance
by a lot.
Additional testcases added to accessibility/visible-character-range.html to
ensure behavior is correct.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::previousLineStartBoundaryPoints const): Added.
(WebCore::AccessibilityObject::lastBoundaryPointContainedInRect const): Added.
(WebCore::AccessibilityObject::boundaryPointsContainedInRect const): Added.
(WebCore::AccessibilityObject::visibleCharacterRange const):
Wraps visibleCharacterRangeInternal to handle caching.
(WebCore::AccessibilityObject::visibleCharacterRangeInternal const):
(WebCore::AccessibilityObject::previousLineStartPositionInternal const): Added.
(WebCore::AccessibilityObject::previousLineStartPosition const):
Wraps previousLineStartPositionInternal to return default
VisualPosition if it returns std::nullopt (existing callers expect this behavior)
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::lastBoundaryPointContainedInRect const): Added.
- dom/BoundaryPoint.cpp:
(WebCore::operator<<):
- dom/BoundaryPoint.h:
Added implementation of operator<< to make debugging boundary points easier.
LayoutTests:
Add many new visible character range testcases split across four new tests.
- accessibility/visible-character-range-basic.html: Added.
- accessibility/visible-character-range-height-changes.html: Added.
- accessibility/visible-character-range-scrolling.html: Added.
- accessibility/visible-character-range-width-changes.html: Added.
- platform/glib/TestExpectations: Skip new tests.
- platform/ios-simulator-wk2/TestExpectations:
Mark new tests as crashing since the old test was crashing in
main.
- platform/ios/TestExpectations: Enable new tests.
- platform/ios/accessibility/visible-character-range-basic-expected.txt: Added.
- platform/ios/accessibility/visible-character-range-expected.txt: Removed.
- platform/ios/accessibility/visible-character-range-height-changes-expected.txt: Added.
- platform/ios/accessibility/visible-character-range-scrolling-expected.txt: Added.
- platform/ios/accessibility/visible-character-range-width-changes-expected.txt: Added.
- platform/mac-wk1/TestExpectations: Skip new tests.
- platform/mac/accessibility/visible-character-range-basic-expected.txt: Added.
- platform/mac/accessibility/visible-character-range-expected.txt: Removed.
- platform/mac/accessibility/visible-character-range-height-changes-expected.txt: Added.
- platform/mac/accessibility/visible-character-range-scrolling-expected.txt: Added.
- platform/mac/accessibility/visible-character-range-width-changes-expected.txt: Added.
- platform/win/TestExpectations: Skip new tests.
- resources/accessibility-helper.js:
(visibleRange): Added.
- 8:33 PM Changeset in webkit [291599] by
-
- 9 edits in trunk/Source/WebKit
Do all RemoteLayerBackingStore buffer swapping in one batch
https://bugs.webkit.org/show_bug.cgi?id=238161
Reviewed by Tim Horton.
Previously, RemoteLayerBackingStore buffer swapping happened per-layer in
PlatformCALayerRemote::recursiveBuildTransaction().
To prepare for a single IPC for all buffer swapping, batch all the swapping under
prepareBackingStoresForDisplay() which is called from
RemoteLayerTreeContext::buildTransaction().
RemoteLayerBackingStoreCollection tracks m_backingStoresNeedingDisplay, and
RemoteLayerBackingStore implements needsDisplay() so we only add backing stores to this hash
set that need any buffer swapping.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::layerWillBeDisplayed):
(WebKit::RemoteLayerBackingStore::needsDisplay const):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::takePendingFlushers):
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay):
(WebKit::RemoteLayerBackingStoreCollection::prepareBackingStoresForDisplay):
(WebKit::RemoteLayerBackingStoreCollection::paintReachableBackingStoreContents):
(WebKit::RemoteLayerBackingStoreCollection::willFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed):
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::prepareBackingStoreBuffers):
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::buildTransaction):
- 8:28 PM Changeset in webkit [291598] by
-
- 3 edits in trunk/Source/WebKit
Adjust when _setPrivacyProxyFailClosedForUnreachableNonMainHosts is called
https://bugs.webkit.org/show_bug.cgi?id=237735
Reviewed by Geoff Garen.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
- 8:22 PM Changeset in webkit [291597] by
-
- 28 edits1 delete in trunk
Implement CSSNumericValue.mul, div, add, sub, max, and min
https://bugs.webkit.org/show_bug.cgi?id=238153
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-21
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/arithmetic.tentative-expected.txt:
Source/WebCore:
This implements all except the derived units of multiplication and the unit checking of the others.
They are an off-by-default experimental feature right now, part of css-typed-om which is being implemented.
They are covered by wpt tests.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSCSSStyleValueCustom.cpp:
(WebCore::toJSNewlyCreated):
- css/typedom/CSSKeywordValue.h:
(WebCore::CSSKeywordValue::value const): Deleted.
(WebCore::CSSKeywordValue::CSSKeywordValue): Deleted.
- css/typedom/CSSNumericValue.cpp:
(WebCore::negate):
(WebCore::invert):
(WebCore::operationOnValuesOfSameUnit):
(WebCore::CSSNumericValue::prependItemsOfTypeOrThis):
(WebCore::CSSNumericValue::addInternal):
(WebCore::CSSNumericValue::add):
(WebCore::CSSNumericValue::sub):
(WebCore::CSSNumericValue::multiplyInternal):
(WebCore::CSSNumericValue::mul):
(WebCore::CSSNumericValue::div):
(WebCore::CSSNumericValue::min):
(WebCore::CSSNumericValue::max):
(WebCore::CSSNumericValue::rectifyNumberish):
(WebCore::CSSNumericValue::toSum):
- css/typedom/CSSNumericValue.h:
(isType):
- css/typedom/CSSStyleValue.h:
(WebCore::isCSSNumericValue):
(WebCore::isCSSMathValue):
- css/typedom/CSSUnitValue.h:
(isType):
- css/typedom/numeric/CSSMathInvert.cpp:
(WebCore::CSSMathInvert::CSSMathInvert):
- css/typedom/numeric/CSSMathInvert.h:
(isType):
(WebCore::CSSMathInvert::value const): Deleted.
- css/typedom/numeric/CSSMathMax.cpp:
(WebCore::CSSMathMax::CSSMathMax):
(WebCore::CSSMathMax::create): Deleted.
- css/typedom/numeric/CSSMathMax.h:
(isType):
- css/typedom/numeric/CSSMathMin.cpp:
(WebCore::CSSMathMin::CSSMathMin):
(WebCore::CSSMathMin::create): Deleted.
- css/typedom/numeric/CSSMathMin.h:
(isType):
- css/typedom/numeric/CSSMathNegate.cpp:
(WebCore::CSSMathNegate::CSSMathNegate):
(WebCore::CSSMathNegate::create): Deleted.
- css/typedom/numeric/CSSMathNegate.h:
(isType):
(WebCore::CSSMathNegate::value const): Deleted.
- css/typedom/numeric/CSSMathProduct.cpp:
(WebCore::CSSMathProduct::CSSMathProduct):
(WebCore::CSSMathProduct::create): Deleted.
- css/typedom/numeric/CSSMathProduct.h:
(isType):
- css/typedom/numeric/CSSMathSum.cpp:
(WebCore::CSSMathSum::CSSMathSum):
(WebCore::CSSMathSum::create): Deleted.
(WebCore::CSSMathSum::values const): Deleted.
- css/typedom/numeric/CSSMathSum.h:
(isType):
- css/typedom/numeric/CSSMathValue.cpp: Removed.
- css/typedom/numeric/CSSMathValue.h:
(WebCore::CSSMathValue::getOperator const): Deleted.
(): Deleted.
(isType): Deleted.
- css/typedom/numeric/CSSNumericArray.cpp:
(WebCore::CSSNumericArray::create):
(WebCore::CSSNumericArray::CSSNumericArray):
- css/typedom/numeric/CSSNumericArray.h:
(WebCore::CSSNumericArray::array const):
- css/typedom/numeric/CSSNumericType.h:
- css/typedom/transform/CSSTransformValue.h:
(WebCore::CSSTransformValue::length const): Deleted.
- 7:09 PM Changeset in webkit [291596] by
-
- 1 edit in branches/safari-614.1.6-branch/Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h
Unreviewed logging change. rdar://90517607
- 6:38 PM Changeset in webkit [291595] by
-
- 2 edits in trunk/LayoutTests
[ iOS iPhone 12 ] fast/hidpi & fast/layers/hidpi tests are flaky text/image failing
https://bugs.webkit.org/show_bug.cgi?id=232384
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 6:35 PM Changeset in webkit [291594] by
-
- 6 edits2 adds in trunk
[css-cascade] Let revert-layer roll back to preshints
https://bugs.webkit.org/show_bug.cgi?id=237532
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Add test.
- web-platform-tests/css/css-cascade/presentational-hints-rollback-expected.txt: Added.
- web-platform-tests/css/css-cascade/presentational-hints-rollback.html: Added.
Source/WebCore:
The patch makes presentational hints use a cascade layer priority of 0.
The priority of the lowest layer is then increased to 1.
This allows 'revert-layer' in author origin revert to the presentational
hints origin, which is between user origin and author origin.
Test: imported/w3c/web-platform-tests/css/css-cascade/presentational-hints-rollback.html
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::addElementStyleProperties):
(WebCore::Style::ElementRuleCollector::matchAllRules):
(WebCore::Style::ElementRuleCollector::addElementInlineStyleProperties):
- style/ElementRuleCollector.h:
- style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::updateCascadeLayerPriorities):
- 6:19 PM Changeset in webkit [291593] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] maxAnisotropy > 16 is clamped, rather than illegal
https://bugs.webkit.org/show_bug.cgi?id=238063
Reviewed by Kimmo Kinnunen.
See https://github.com/gpuweb/gpuweb/issues/696#issuecomment-644343897
Let's add a maxAnisotropy value to samplers, and a maxAnisotropy limit(? query?) (likely only
ever 16 or 1), but not to validate that the former is less than the latter.
Test: api/operation/sampling/anisotropy.spec.ts
- WebGPU/Sampler.mm:
(WebGPU::validateCreateSampler):
(WebGPU::Device::createSampler):
- 5:43 PM Changeset in webkit [291592] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Monterey ] imported/w3c/web-platform-tests/html/canvas/element/line-styles/2d.line.width.scaledefault.html is a constant text failure
<rdar://problem/77527575?
Unreviewed test gardening.
- platform/mac/TestExpectations: Removing no longer needed test expectation.
- 5:22 PM Changeset in webkit [291591] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, address post-landing feedback on r291445
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView compareFoundRange:toRange:inDocument:]):
Subtraction to determine ordering is an anti-pattern, due to the
possibility of overflow. Use comparison operators.
- 5:17 PM Changeset in webkit [291590] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.2.4
- 4:46 PM Changeset in webkit [291589] by
-
- 19 edits3 adds in trunk
LayoutTests/imported/w3c:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>
Reviewed by Alex Christensen.
Import web-platform-tests test coverage.
- web-platform-tests/webmessaging/broadcastchannel/opaque-origin-expected.txt: Added.
- web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html: Added.
- web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:
Source/WebCore:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>
Reviewed by Alex Christensen.
The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.
To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.
When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.
Test: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- dom/BroadcastChannel.cpp:
(WebCore::shouldPartitionOrigin):
(WebCore::BroadcastChannel::MainThreadBridge::registerChannel):
(WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel):
(WebCore::BroadcastChannel::MainThreadBridge::postMessage):
- dom/BroadcastChannelRegistry.h:
- loader/EmptyClients.cpp:
- page/PartitionedSecurityOrigin.h: Added.
(WebCore::PartitionedSecurityOrigin::PartitionedSecurityOrigin):
(WebCore::PartitionedSecurityOrigin::isHashTableDeletedValue const):
(WebCore::PartitionedSecurityOrigin::isHashTableEmptyValue const):
(WebCore::operator==):
(WTF::add):
(WTF::PartitionedSecurityOriginHash::hash):
(WTF::PartitionedSecurityOriginHash::equal):
(WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::emptyValue):
(WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::constructEmptyValue):
(WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::isEmptyValue):
(WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::peek):
(WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::take):
Source/WebKit:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>
Reviewed by Alex Christensen.
The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.
To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.
When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.
- WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp:
(WebKit::toClientOrigin):
(WebKit::WebBroadcastChannelRegistry::registerChannel):
(WebKit::WebBroadcastChannelRegistry::unregisterChannel):
(WebKit::WebBroadcastChannelRegistry::postMessage):
(WebKit::WebBroadcastChannelRegistry::postMessageLocally):
(WebKit::WebBroadcastChannelRegistry::postMessageToRemote):
(WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):
- WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:
Source/WebKitLegacy:
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121
Reviewed by Yusuke Suzuki.
- PlatformMac.cmake:
- 4:39 PM Changeset in webkit [291588] by
-
- 7 edits2 adds in trunk
nj.gov: Background color incorrect for 'State Vehicles' section
https://bugs.webkit.org/show_bug.cgi?id=238035
<rdar://problem/84543795>
Reviewed by Aditya Keerthi.
Source/WebCore:
Test: fast/css/non-form-control-element-drop-appearance.html
Update RenderTheme::adjustStyle to drop appearance for non-form
control elements when they are styled by the author.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustAppearanceForElement const):
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::isControlStyled const):
- rendering/RenderTheme.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::borderAndBackgroundEqual const):
- rendering/style/RenderStyle.h:
LayoutTests:
- fast/css/non-form-control-element-drop-appearance-expected.html: Added.
- fast/css/non-form-control-element-drop-appearance.html: Added.
- editing/deleting/insert-in-orphaned-selection-crash.html: Added.
Now that we drop native style for non-form control elements, we need to
add height to the style to make sure this table element is selectable and
successfully tests what it needs to test.
- 4:36 PM Changeset in webkit [291587] by
-
- 4 edits in trunk
Unreviewed, reverting r291055.
https://bugs.webkit.org/show_bug.cgi?id=238145
Invalid test expectations
Reverted changeset:
"[iOS] Hard link AVPictureInPictureController"
https://bugs.webkit.org/show_bug.cgi?id=237227
https://commits.webkit.org/r291055
- 3:44 PM Changeset in webkit [291586] by
-
- 2 edits in branches/safari-614.1.7-branch/Source/WebKit
Cherry-pick r291563. rdar://problem/90448244
Sandbox: Remove telemetry in Network Process sandbox macOS
https://bugs.webkit.org/show_bug.cgi?id=238041
Patch by Adam Mazander <mazander@apple.com> on 2022-03-21
Reviewed by Brent Fulgham.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291563 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:14 PM Changeset in webkit [291585] by
-
- 1 edit in trunk/LayoutTests/ChangeLog
REGRESSION(r290797-r290793): [ iOS Debug ] 4 editing/selection/* tests are constant timeouts
https://bugs.webkit.org/show_bug.cgi?id=238155
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 3:14 PM Changeset in webkit [291584] by
-
- 1 edit in trunk/LayoutTests/platform/ios/TestExpectations
Need a short description (OOPS!).
Need the bug URL (OOPS!).
Reviewed by NOBODY (OOPS!).
- platform/ios/TestExpectations:
- 2:44 PM Changeset in webkit [291583] by
-
- 1 copy in tags/Safari-614.1.5.9.2
Tag Safari-614.1.5.9.2.
- 2:42 PM Changeset in webkit [291582] by
-
- 8 edits2 adds in branches/safari-614.1.7-branch/Source
Cherry-pick r291564. rdar://problem/90463946
Add an addition point for system background color
https://bugs.webkit.org/show_bug.cgi?id=238108
<rdar://problem/90463946>
Reviewed by Aditya Keerthi.
Source/WebCore:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/ios/WebCoreUIColorExtras.h: Added.
- platform/ios/WebCoreUIColorExtras.mm: Added. (WebCore::systemBackgroundColor): Add an addition point.
- rendering/RenderThemeIOS.mm: (WebCore::CSSValueSystemColorInformation::function): (WebCore::cssValueSystemColorInformationList): (WebCore::systemColorFromCSSValueSystemColorInformation): Adopt it for CSS use of system background color.
Source/WebKit:
- UIProcess/API/ios/WKWebViewIOS.mm: (scrollViewBackgroundColor): Adopt systemBackgroundColor().
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::contentViewBackgroundColor):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Move the fallback to systemBackgroundColor into PageClientImpl so that it can realize the web view's trait collection.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:35 PM Changeset in webkit [291581] by
-
- 8 edits2 adds in branches/safari-614.1.5.9-branch/Source
Cherry-pick r291564. rdar://problem/90463946
Add an addition point for system background color
https://bugs.webkit.org/show_bug.cgi?id=238108
<rdar://problem/90463946>
Reviewed by Aditya Keerthi.
Source/WebCore:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/ios/WebCoreUIColorExtras.h: Added.
- platform/ios/WebCoreUIColorExtras.mm: Added. (WebCore::systemBackgroundColor): Add an addition point.
- rendering/RenderThemeIOS.mm: (WebCore::CSSValueSystemColorInformation::function): (WebCore::cssValueSystemColorInformationList): (WebCore::systemColorFromCSSValueSystemColorInformation): Adopt it for CSS use of system background color.
Source/WebKit:
- UIProcess/API/ios/WKWebViewIOS.mm: (scrollViewBackgroundColor): Adopt systemBackgroundColor().
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::contentViewBackgroundColor):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Move the fallback to systemBackgroundColor into PageClientImpl so that it can realize the web view's trait collection.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:32 PM Changeset in webkit [291580] by
-
- 9 edits in branches/safari-614.1.5.9-branch/Source
Versioning.
WebKit-7614.1.5.9.2
- 2:23 PM Changeset in webkit [291579] by
-
- 4 edits in trunk
Disable the <model> element in Captive Portal mode.
https://bugs.webkit.org/show_bug.cgi?id=238148
<rdar://90562002>
Reviewed by Chris Dumez.
Source/WebKit:
When displaying content in a captive portal, we should make sure the experimental
<model> element is unavailable.
Tests: TestWebKitAPI
- WebProcess/WebPage/WebPage.cpp:
(WebKit::adjustSettingsForCaptivePortal): Added. Also turn off <model> support.
(WebKit::WebPage::updatePreferences): Call new helper function.
Tools:
Update tests to check <model> element.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 1:44 PM Changeset in webkit [291578] by
-
- 6 edits in trunk
[WebGPU] Set the WebGPU WKPreference to true in layout tests
https://bugs.webkit.org/show_bug.cgi?id=238130
Reviewed by Sam Weinig.
Tools:
WebGPU isn't ready yet to show up in any Safari menus, so rather than just marking it as an experimental feature,
this patch just enables the preference in DumpRenderTree and WebKitTestRunner.
This doesn't require a linker change, because all of the WebGPU calls are already behind HAS(WEBGPU_IMPLEMENTATION).
Therefore, the immediate behavior change of this patch is that the IDL types are exposed in layout tests, but calling
WebGPU functions in layout tests will return undefined. When we finally link WebCore with WebGPU, then these
functions will automatically start working in layout tests. Outside of layout tests, the IDL types are still not
present, and so therefore the WebGPU functions cannot be called because they are not visible from script.
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
LayoutTests:
- platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
- platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
- 12:57 PM Changeset in webkit [291577] by
-
- 4 edits1 add in trunk
[JSC] ReferenceError when using extra parens in class fields
https://bugs.webkit.org/show_bug.cgi?id=236843
Reviewed by Saam Barati.
JSTests:
- stress/class-field-initializer-should-have-variable-scope.js: Added.
(shouldBe):
(test1.const.a.x.B):
(test1):
(test2.const.a.x.B):
(test2):
(test3.B.prototype.b):
(test3.B):
(test3):
Source/JavaScriptCore:
class field initializer should create its own used-variables set
to capture used variables separately from the other variables since
it becomes independent CodeBlock internally later. The current code
was wrong since,
- Incorrectly using the current set of class-scope.
- Incorrectly marking only the last set while parseAssignmentExpression can create a new set inside it.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):
- parser/Parser.h:
(JSC::Scope::markLastUsedVariablesSetAsCaptured):
- 12:42 PM Changeset in webkit [291576] by
-
- 3 edits in trunk/LayoutTests
Unreviewed test gardening after 246673@main.
- fast/viewport/watchos/viewport-adaptations-after-navigation-expected.txt:
- fast/viewport/watchos/viewport-with-system-minimum-layout-margins.html:
- 12:21 PM Changeset in webkit [291575] by
-
- 2 edits1 copy1 add in trunk/Tools
[WebGPU] Add a build-webgpu script
https://bugs.webkit.org/show_bug.cgi?id=238040
Reviewed by Saam Barati.
This patch adds a build-webgpu script by sharing code with the build-jsc script.
It moves almost all of the contents of the build-jsc script to a shared Perl module,
webkitperl/BuildSubproject.pm, and then has build-jsc and build-webgpu both call
into it to build the relevant projects.
- Scripts/build-jsc:
(buildMyProject): Deleted.
(writeCongrats): Deleted.
- Scripts/build-webgpu: Added.
- Scripts/webkitperl/BuildSubproject.pm: Copied from Tools/Scripts/build-jsc.
(buildMyProject):
(writeCongrats):
- 12:16 PM Changeset in webkit [291574] by
-
- 2 edits in trunk/Source/WebCore
[media-controls] scrubbing on iOS when inline does not work
https://bugs.webkit.org/show_bug.cgi?id=238138
rdar://90046770
Reviewed by Dean Jackson.
This bug is simular to bug 238136. We cannot register pointer events on window on iOS.
- Modules/modern-media-controls/controls/slider.js:
(Slider.prototype._interactionEndTarget):
- 12:11 PM Changeset in webkit [291573] by
-
- 2 edits in trunk/Source/WebKit
[watchOS] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=238117
<rdar://89964344>
Reviewed by Brent Fulgham.
Add rarely used syscall on watchOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 12:00 PM Changeset in webkit [291572] by
-
- 2 edits in trunk/Source/WebCore
[media-controls] tap gesture recognizer sometimes fails to recognize on iOS
https://bugs.webkit.org/show_bug.cgi?id=238136
Reviewed by Dean Jackson.
While on macOS it's fine to register pointer events handlers on the
windowobject,
on iOS it may not be depending on the fullscreen state. However, it's always fine to
use the gesture recognizer's target on iOS, so let's default to that when touches
are supported.
- Modules/modern-media-controls/gesture-recognizers/gesture-recognizer.js:
(GestureRecognizer.prototype.touchesBegan):
(GestureRecognizer.prototype.get _captureTarget):
(GestureRecognizer.prototype._removeTrackingListeners):
- 11:58 AM Changeset in webkit [291571] by
-
- 11 edits in trunk/Source/WebGPU
[WebGPU] Implement error reporting facilities
https://bugs.webkit.org/show_bug.cgi?id=238131
Reviewed by Kimmo Kinnunen.
This patch implements the GPUDevice.pushErrorScope() and GPUDevice.popErrorScope() functions,
according to the spec.
Now that we can report errors, we should be just about able to pass our first CTS test.
- CommandLinePlayground/main.swift:
- WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::unmap):
- WebGPU/CommandEncoder.h:
(WebGPU::CommandEncoder::create):
- WebGPU/CommandEncoder.mm:
(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::CommandEncoder):
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::CommandEncoder::clearBuffer):
(WebGPU::CommandEncoder::finish):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::currentErrorScope):
(WebGPU::Device::generateAValidationError):
(WebGPU::Device::validatePopErrorScope const):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::pushErrorScope):
(WebGPU::Device::setUncapturedErrorCallback):
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
(WebGPU::Queue::submit):
- WebGPU/Sampler.h:
(WebGPU::Sampler::create):
- WebGPU/Sampler.mm:
(WebGPU::Device::createSampler):
(WebGPU::Sampler::Sampler):
- 11:48 AM Changeset in webkit [291570] by
-
- 9 edits9 adds in trunk
AX: Include display: contents elements in the AX tree
https://bugs.webkit.org/show_bug.cgi?id=237834
Reviewed by Chris Fleizach.
Source/WebCore:
Because display: contents intentionally prevents a render object from being
generated for the element it's applied to, we don't add it to the AX tree as
part of our normal render tree walk, making these elements inaccessible.
This patch includes these elements as part of the DOM walk that
addHiddenChildren (now renamed to addNodeOnlyChildren) already does.
Also, because display: contents moves the affected element's children up a
level in the render tree, this patch also special cases:
- AccessibilityRenderObject::parentObject and similar methods to return their display: contents parent instead of their render tree parent
- AccessibilityObject::insertChild to only insert display: contents children to their display: contents parent, rather than their render tree parent
Test: accessibility/display-contents-element-roles.html, accessibility/aria-hidden-display-contents-element.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::getOrCreate):
Allow creation of AX objects from display: contentsNodes.
Also, don't create an object for a renderer that is in the process of
being destroyed (prevents display-contents-element-roles.html from crashing in ITM)
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::displayContentsParent const):
(WebCore::AccessibilityObject::insertChild):
If an object has a display: contents parent, and that parent isn't
this, return early.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::parentObjectIfExists const):
(WebCore::AccessibilityRenderObject::parentObject const):
(WebCore::AccessibilityRenderObject::parentObjectUnignored const):
If an object has a display: contents parent, return that instead of
its render tree parent.
(WebCore::AccessibilityRenderObject::addNodeOnlyChildren):
Renamed from addHiddenChildren.
(WebCore::AccessibilityRenderObject::addChildren):
Don't clear m_subtreeDirty until after all children have been added.
Necessary to make aria-hidden-display-contents-element.html pass, as
we were clearing this too early, causing display: contents subtrees to
not be updated after aria-hidden changes.
(WebCore::AccessibilityRenderObject::addHiddenChildren):
Renamed to addNodeOnlyChildren.
- accessibility/AccessibilityRenderObject.h:
LayoutTests:
- accessibility/aria-hidden-display-contents-element-expected.txt: Added.
- accessibility/aria-hidden-display-contents-element.html: Added.
- accessibility/display-contents-element-roles-expected.txt: Added.
- accessibility/display-contents-element-roles.html: Added.
- platform/glib/accessibility/aria-hidden-display-contents-element-expected.txt: Added.
- platform/glib/accessibility/display-contents-element-roles-expected.txt: Added.
- platform/ios/TestExpectations: Enable new tests.
- platform/ios/accessibility/aria-hidden-display-contents-element-expected.txt: Added.
- platform/ios/accessibility/display-contents-element-roles-expected.txt: Added.
- platform/win/TestExpectations: Skip display-contents-element-roles.html.
- platform/win/accessibility/aria-hidden-display-contents-element-expected.txt: Added.
- 11:01 AM Changeset in webkit [291569] by
-
- 2 edits in branches/safari-614.1.7-branch/Source/WebCore
Cherry-pick r291514. rdar://problem/90500863
[iOS] Fix more build breakage from r291361
https://bugs.webkit.org/show_bug.cgi?id=238097
<rdar://problem/90505371>
Unreviewed build fix.
- platform/ios/WebAVPlayerController.mm: Declare AVAssetTrack.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:00 AM Changeset in webkit [291568] by
-
- 2 edits in trunk/Source/WebCore
[css-cascade] Don't defer applying text decoration properties
https://bugs.webkit.org/show_bug.cgi?id=238126
Reviewed by Darin Adler.
shouldApplyPropertyInParseOrder() was returning true for these:
- webkit-text-decoration
- text-decoration-line
- text-decoration-style
- text-decoration-color
- text-decoration-skip
- text-decoration-skip-ink
- text-underline-position
- text-underline-offset
- text-decoration-thickness
- text-decoration
This was previously needed for text-decoration-line and text-decoration,
since they were implemented as longhands that shared a computed value.
But that's no longer the case, text-decoration became a shorthand in bug
237175.
AFAIK -webkit-text-decoration has always been a shorthand since it was
implemented in bug 92000, so having it in the list it's pointless,
only longhands matter. And text-decoration-skip became a shorthand in
bug 230244, so it's also pointless.
The other longhands seem unnecessary too, since they don't share a
computed style with other properties.
No test since there should be no observable change in behavior.
- style/PropertyCascade.cpp:
(WebCore::Style::shouldApplyPropertyInParseOrder):
- 10:58 AM Changeset in webkit [291567] by
-
- 4 edits in trunk/Source
Remove unneeded quotes in capture attribution string
https://bugs.webkit.org/show_bug.cgi?id=238132
<rdar://88794701>
Reviewed by Eric Carlson.
Source/WebCore:
- en.lproj/Localizable.strings:
Source/WebKit:
Quotes are unneeded and made it less clear to read.
- GPUProcess/cocoa/GPUConnectionToWebProcessCocoa.mm:
(WebKit::GPUConnectionToWebProcess::setCaptureAttributionString):
- 10:53 AM Changeset in webkit [291566] by
-
- 2 edits in trunk/Source/WebCore
Accessing WebGL content crashes in macOS Recovery OS
https://bugs.webkit.org/show_bug.cgi?id=238139
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-21
Reviewed by Antti Koivisto.
Add a quick fix trying to circumvent a Recovery OS crash.
Parts of this will be reverted once the true source is found.
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::platformSupportsMetal):
- 10:47 AM Changeset in webkit [291565] by
-
- 1 copy in branches/safari-614.1.7-branch
New branch.
- 10:44 AM Changeset in webkit [291564] by
-
- 8 edits2 adds in trunk/Source
Add an addition point for system background color
https://bugs.webkit.org/show_bug.cgi?id=238108
<rdar://problem/90463946>
Reviewed by Aditya Keerthi.
Source/WebCore:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/ios/WebCoreUIColorExtras.h: Added.
- platform/ios/WebCoreUIColorExtras.mm: Added.
(WebCore::systemBackgroundColor):
Add an addition point.
- rendering/RenderThemeIOS.mm:
(WebCore::CSSValueSystemColorInformation::function):
(WebCore::cssValueSystemColorInformationList):
(WebCore::systemColorFromCSSValueSystemColorInformation):
Adopt it for CSS use of system background color.
Source/WebKit:
- UIProcess/API/ios/WKWebViewIOS.mm:
(scrollViewBackgroundColor):
Adopt systemBackgroundColor().
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::contentViewBackgroundColor):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::platformUnderPageBackgroundColor const):
Move the fallback to systemBackgroundColor into PageClientImpl
so that it can realize the web view's trait collection.
- 10:37 AM Changeset in webkit [291563] by
-
- 2 edits in trunk/Source/WebKit
Sandbox: Remove telemetry in Network Process sandbox macOS
https://bugs.webkit.org/show_bug.cgi?id=238041
Patch by Adam Mazander <mazander@apple.com> on 2022-03-21
Reviewed by Brent Fulgham.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- 10:20 AM Changeset in webkit [291562] by
-
- 18 edits in trunk/Source
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-21
Reviewed by Yusuke Suzuki.
Source/bmalloc:
- PlatformMac.cmake:
Source/ThirdParty/ANGLE:
- GLESv2.cmake:
- Metal.cmake:
Source/ThirdParty/libwebrtc:
- CMakeLists.txt:
- Source/third_party/libwebm/common/vp9_level_stats.h:
Source/WebCore:
- CMakeLists.txt:
- PlatformMac.cmake:
- SourcesCocoa.txt:
Source/WebCore/PAL:
- pal/PlatformMac.cmake:
Source/WebKit:
- PlatformMac.cmake:
Source/WebKitLegacy:
- PlatformMac.cmake:
- 10:15 AM Changeset in webkit [291561] by
-
- 2 edits in trunk/Source/WebCore
Null check style in Editor::applyParagraphStyle
https://bugs.webkit.org/show_bug.cgi?id=238137
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-21
Reviewed by Wenson Hsieh.
Null check style in Editor::applyParagraphStyle.
- editing/Editor.cpp:
(WebCore::Editor::applyParagraphStyle):
- 9:57 AM Changeset in webkit [291560] by
-
- 2 edits in trunk/Tools
[Merge-Queue] Support multiple reviewers names
https://bugs.webkit.org/show_bug.cgi?id=238095
<rdar://problem/90503503>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(ApplyPatch.start): Only apply the first reviewer name.
(ValidateCommiterAndReviewer.start): Support a list of reviewers.
Canonical link: https://commits.webkit.org/248662@main
- 9:29 AM Changeset in webkit [291559] by
-
- 9 edits3 deletes in trunk/Source
Unreviewed, reverting r291558.
Exceeded GitHub file size limit
Reverted changeset:
"Enable PGO when building for release and production"
https://bugs.webkit.org/show_bug.cgi?id=238119
https://commits.webkit.org/r291558
- 8:25 AM Changeset in webkit [291558] by
-
- 9 edits6 adds in trunk/Source
Enable PGO when building for release and production
https://bugs.webkit.org/show_bug.cgi?id=238119
rdar://90182309
Reviewed by Saam Barati.
Source/JavaScriptCore:
See WebCore/ChangeLog for more details.
- Configurations/Base.xcconfig:
- Configurations/JavaScriptCore.xcconfig:
- Profiling/JavaScriptCore.profdata: Added.
Source/WebCore:
Add LLVM profiles to the WebCore, JavaScriptCore and WebKit frameworks, collected by running certain benchmarks
on ARM macOS. We then use this data for release and production builds by specifying a-fprofile-instr-usein
OTHER_CPLUSPLUSFLAGS. Across various configurations of macOS and iOS, this is an ~8% speedup on Speedometer.
| subtest | ms | ms | b / a | pValue |
| Elm-TodoMVC |101.721667 |99.571667 |0.978864 | 0.000211 (significant) |
| VueJS-TodoMVC |18.643333 |17.196667 |0.922403 | 0.000000 (significant) |
| EmberJS-TodoMVC |108.763333 |103.306667 |0.949830 | 0.000000 (significant) |
| BackboneJS-TodoMVC |37.951667 |34.693333 |0.914145 | 0.000000 (significant) |
| Preact-TodoMVC |13.586667 |12.818333 |0.943449 | 0.053277 |
| AngularJS-TodoMVC |117.130000 |110.755000 |0.945573 | 0.000000 (significant) |
| Vanilla-ES2015-TodoMVC |58.950000 |52.716667 |0.894261 | 0.000000 (significant) |
| Inferno-TodoMVC |52.660000 |49.571667 |0.941353 | 0.000000 (significant) |
| Flight-TodoMVC |51.551667 |46.230000 |0.896770 | 0.000000 (significant) |
| Angular2-TypeScript-TodoMVC |35.753333 |33.698333 |0.942523 | 0.000000 (significant) |
| VanillaJS-TodoMVC |48.400000 |42.670000 |0.881612 | 0.000000 (significant) |
| jQuery-TodoMVC |218.346667 |200.051667 |0.916211 | 0.000000 (significant) |
| EmberJS-Debug-TodoMVC |304.171667 |291.903333 |0.959666 | 0.000000 (significant) |
| React-TodoMVC |75.475000 |72.761667 |0.964050 | 0.000008 (significant) |
| React-Redux-TodoMVC |126.448333 |120.458333 |0.952629 | 0.000000 (significant) |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |55.643333 |49.665000 |0.892560 | 0.000000 (significant) |
a mean = 306.08529
b mean = 330.01548
pValue = 0.0000000000
(Bigger means are better.)
1.078 times better
Results ARE significant
- Configurations/Base.xcconfig:
For now, we additionally ignore errors that arise if profiled symbols differ from built symbols; in the future,
we'll need to implement some kind of strategy to detect when enough symbols in the profile data no longer match
symbols that appear in the built binaries, such that it might begin to negate the performance benefit from PGO.
Note that while the profile data was collected on an ARM Mac, performance tests have shown the profile data to
largely generalize well to other architectures and platforms as well (i.e. macOS x86_64 and iOS arm64e). As
such, instead of limiting this profile to ARM macOS, we can just use it everywhere (and perhaps, add platform-
or architecture-specific profile data later, if needed).
- Configurations/WebCore.xcconfig:
- Profiling/WebCore.profdata: Added.
Source/WebKit:
See WebCore/ChangeLog for more details.
- Configurations/Base.xcconfig:
- Configurations/WebKit.xcconfig:
- Profiling/WebKit.profdata: Added.
- 6:17 AM Changeset in webkit [291557] by
-
- 1 copy in releases/WebKitGTK/webkit-2.36.0
WebKitGTK 2.36.0
- 6:16 AM Changeset in webkit [291556] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.36.0 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.36.0.
- 2:27 AM Changeset in webkit [291555] by
-
- 7 edits in trunk
[selection] HTMLTextFormControlElement::subtreeHasChanged() shouldn't be called in setRangeText
https://bugs.webkit.org/show_bug.cgi?id=237720
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Update test expectations as more sub-tests are now passing.
- web-platform-tests/html/semantics/forms/textfieldselection/selection-value-interactions-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText-expected.txt:
Source/WebCore:
We shouldn't call HTMLTextFormControlElement::subtreeHasChanged() in HTMLTextFormControlElement::setRangeText.
It has been removed in patch for bug 237641. This patch is to further remove unnecessary code.
This change refers and imports some of the changes in chromium CL at
https://codereview.chromium.org/1577243002
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setRangeText):
LayoutTests:
Update test expectation as the test is now passing.
- fast/forms/setrangetext-expected.txt:
- 1:45 AM Changeset in webkit [291554] by
-
- 5 edits2 adds in releases/WebKitGTK/webkit-2.36
Merge r291552 - REGRESSION(r286955): Rendering Links during search: highlighting fails
https://bugs.webkit.org/show_bug.cgi?id=237816
Reviewed by Simon Fraser.
Source/WebCore:
Since r286955 the same coalesced marked text loop is used for painting the foreground text in case of text with
decorations. StyledMarkedText::coalesceAdjacentWithEqualDecorations() doesn't take into account the text style,
so when selected foreground color is different we end up painting the whole decorated text with the same
foreground color for the selected and non-selected parts.
Test: fast/text/selection-with-text-decorations.html
- rendering/StyledMarkedText.cpp:
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualDecorations): Take into account the text styles too.
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintForegroundAndDecorations): Do not call
StyledMarkedText::coalesceAdjacentWithEqualForeground() in case of text with decorations, since it's unused.
LayoutTests:
- fast/text/selection-with-text-decorations-expected.html: Added.
- fast/text/selection-with-text-decorations.html: Added.
- platform/ios/TestExpectations:
- 1:45 AM Changeset in webkit [291553] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore
Merge r291544 - REGRESSION(r289154) [GSTREAMER] webrtc/vp8-then-h264.html is crashing after SDK update to fdo 21.08 and Gstreamer 1.20
https://bugs.webkit.org/show_bug.cgi?id=237872
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-20
Reviewed by Adrian Perez de Castro.
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp:
(WebCore::VP8Decoder::Create): Fix typo in decoder factory test.
- 1:40 AM WebKitGTK/2.36.x edited by
- (diff)
- 1:35 AM Changeset in webkit [291552] by
-
- 5 edits2 adds in trunk
REGRESSION(r286955): Rendering Links during search: highlighting fails
https://bugs.webkit.org/show_bug.cgi?id=237816
Reviewed by Simon Fraser.
Source/WebCore:
Since r286955 the same coalesced marked text loop is used for painting the foreground text in case of text with
decorations. StyledMarkedText::coalesceAdjacentWithEqualDecorations() doesn't take into account the text style,
so when selected foreground color is different we end up painting the whole decorated text with the same
foreground color for the selected and non-selected parts.
Test: fast/text/selection-with-text-decorations.html
- rendering/StyledMarkedText.cpp:
(WebCore::StyledMarkedText::coalesceAdjacentWithEqualDecorations): Take into account the text styles too.
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintForegroundAndDecorations): Do not call
StyledMarkedText::coalesceAdjacentWithEqualForeground() in case of text with decorations, since it's unused.
LayoutTests:
- fast/text/selection-with-text-decorations-expected.html: Added.
- fast/text/selection-with-text-decorations.html: Added.
- platform/ios/TestExpectations:
- 12:41 AM Changeset in webkit [291551] by
-
- 2 edits in trunk/Tools
Unreviewed, fix Debian Stable build after r291543
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(elementSize): Replace RELEASE_ASSERT_NOT_REACHED() for RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT().
- 12:14 AM Changeset in webkit [291550] by
-
- 19 edits in trunk/Source
Remove use of MediaSampleAVFObjC from WebRTC pipelines
https://bugs.webkit.org/show_bug.cgi?id=237706
<rdar://problem/90425391>
Reviewed by Eric Carlson.
Source/WebCore:
Replace MediaSampleAVFObjC by VideoFrameCV when handling CVPixelBuffers.
Covered by existing tests.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/cv/ImageRotationSessionVT.mm:
- platform/graphics/cv/ImageTransferSessionVT.h:
- platform/graphics/cv/ImageTransferSessionVT.mm:
- platform/graphics/cv/VideoFrameCV.h:
- platform/graphics/cv/VideoFrameCV.mm:
- platform/mediastream/RealtimeVideoSource.cpp:
- platform/mediastream/RealtimeVideoSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
Source/WebKit:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
Mar 20, 2022:
- 7:11 PM Changeset in webkit [291549] by
-
- 3 edits in trunk/Source/WebCore
[WPE] Unreviewed, fix non-unified build after r291474 and r291508
- css/CSSToLengthConversionData.h:
- html/parser/AtomHTMLToken.h:
- 5:59 PM Changeset in webkit [291548] by
-
- 31 edits3 moves in trunk/Source/WebCore
[IFC][Integration] Rename InlineIterator::Line to LineBox
https://bugs.webkit.org/show_bug.cgi?id=238128
Reviewed by Antti Koivisto.
- dom/Position.cpp:
(WebCore::Position::upstream const):
(WebCore::Position::downstream const):
(WebCore::Position::rendersInDifferentPosition const):
- editing/RenderedPosition.h:
(WebCore::RenderedPosition::lineBox const):
(WebCore::RenderedPosition::line const): Deleted.
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):
- editing/VisibleUnits.cpp:
(WebCore::startTextOrLineBreakBox):
(WebCore::endTextOrLineBreakBox):
(WebCore::logicallyPreviousBox):
(WebCore::logicallyNextBox):
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
- layout/integration/InlineIteratorBox.cpp:
(WebCore::InlineIterator::Box::lineBox const):
(WebCore::InlineIterator::Box::style const):
(WebCore::InlineIterator::Box::line const): Deleted.
- layout/integration/InlineIteratorBox.h:
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::LineBoxIterator::LineBoxIterator):
(WebCore::InlineIterator::LineBoxIterator::atEnd const):
(WebCore::InlineIterator::LineBoxIterator::traverseNext):
(WebCore::InlineIterator::LineBoxIterator::traversePrevious):
(WebCore::InlineIterator::LineBoxIterator::operator== const):
(WebCore::InlineIterator::firstLineBoxFor):
(WebCore::InlineIterator::lastLineBoxFor):
(WebCore::InlineIterator::LineBox::next const):
(WebCore::InlineIterator::LineBox::previous const):
(WebCore::InlineIterator::LineBox::firstLeafBox const):
(WebCore::InlineIterator::LineBox::lastLeafBox const):
(WebCore::InlineIterator::closestBoxForHorizontalPosition):
(WebCore::InlineIterator::LineIterator::LineIterator): Deleted.
(WebCore::InlineIterator::LineIterator::atEnd const): Deleted.
(WebCore::InlineIterator::LineIterator::traverseNext): Deleted.
(WebCore::InlineIterator::LineIterator::traversePrevious): Deleted.
(WebCore::InlineIterator::LineIterator::operator== const): Deleted.
(WebCore::InlineIterator::firstLineFor): Deleted.
(WebCore::InlineIterator::lastLineFor): Deleted.
(WebCore::InlineIterator::Line::next const): Deleted.
(WebCore::InlineIterator::Line::previous const): Deleted.
(WebCore::InlineIterator::Line::firstLeafBox const): Deleted.
(WebCore::InlineIterator::Line::lastLeafBox const): Deleted.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::LineBox::height const):
(WebCore::InlineIterator::LineBoxIterator::LineBoxIterator):
(WebCore::InlineIterator::LineBoxIterator::operator++):
(WebCore::InlineIterator::LineBoxIterator::operator!= const):
(WebCore::InlineIterator::LineBoxIterator::operator== const):
(WebCore::InlineIterator::LineBoxIterator::operator* const):
(WebCore::InlineIterator::LineBoxIterator::operator-> const):
(WebCore::InlineIterator::previousLineBoxContentBottomOrBorderAndPadding):
(WebCore::InlineIterator::contentStartInBlockDirection):
(WebCore::InlineIterator::LineBox::LineBox):
(WebCore::InlineIterator::LineBox::contentLogicalTop const):
(WebCore::InlineIterator::LineBox::contentLogicalBottom const):
(WebCore::InlineIterator::LineBox::contentLogicalTopAdjustedForPrecedingLineBox const):
(WebCore::InlineIterator::LineBox::contentLogicalBottomAdjustedForFollowingLineBox const):
(WebCore::InlineIterator::LineBox::top const):
(WebCore::InlineIterator::LineBox::bottom const):
(WebCore::InlineIterator::LineBox::contentLogicalLeft const):
(WebCore::InlineIterator::LineBox::contentLogicalRight const):
(WebCore::InlineIterator::LineBox::contentLogicalWidth const):
(WebCore::InlineIterator::LineBox::isHorizontal const):
(WebCore::InlineIterator::LineBox::baselineType const):
(WebCore::InlineIterator::LineBox::containingBlock const):
(WebCore::InlineIterator::LineBox::containingFragment const):
(WebCore::InlineIterator::LineBox::isFirstAfterPageBreak const):
(WebCore::InlineIterator::LineBox::isFirst const):
(WebCore::InlineIterator::Line::lineBoxHeight const): Deleted.
(WebCore::InlineIterator::LineIterator::LineIterator): Deleted.
(WebCore::InlineIterator::LineIterator::operator++): Deleted.
(WebCore::InlineIterator::LineIterator::operator bool const): Deleted.
(WebCore::InlineIterator::LineIterator::operator!= const): Deleted.
(WebCore::InlineIterator::LineIterator::operator== const): Deleted.
(WebCore::InlineIterator::LineIterator::operator* const): Deleted.
(WebCore::InlineIterator::LineIterator::operator-> const): Deleted.
(WebCore::InlineIterator::previousLineContentBottomOrBorderAndPadding): Deleted.
(WebCore::InlineIterator::Line::Line): Deleted.
(WebCore::InlineIterator::Line::contentLogicalTop const): Deleted.
(WebCore::InlineIterator::Line::contentLogicalBottom const): Deleted.
(WebCore::InlineIterator::Line::contentLogicalTopAdjustedForPrecedingLine const): Deleted.
(WebCore::InlineIterator::Line::contentLogicalBottomAdjustedForFollowingLine const): Deleted.
(WebCore::InlineIterator::Line::lineBoxTop const): Deleted.
(WebCore::InlineIterator::Line::lineBoxBottom const): Deleted.
(WebCore::InlineIterator::Line::contentLogicalLeft const): Deleted.
(WebCore::InlineIterator::Line::contentLogicalRight const): Deleted.
(WebCore::InlineIterator::Line::contentLogicalWidth const): Deleted.
(WebCore::InlineIterator::Line::isHorizontal const): Deleted.
(WebCore::InlineIterator::Line::baselineType const): Deleted.
(WebCore::InlineIterator::Line::containingBlock const): Deleted.
(WebCore::InlineIterator::Line::containingFragment const): Deleted.
(WebCore::InlineIterator::Line::isFirstAfterPageBreak const): Deleted.
(WebCore::InlineIterator::Line::isFirst const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::LineBoxIteratorLegacyPath):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::contentLogicalTopAdjustedForPrecedingLineBox const):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::contentLogicalBottomAdjustedForFollowingLineBox const):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::top const):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::bottom const):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::operator== const):
(WebCore::InlineIterator::LineIteratorLegacyPath::LineIteratorLegacyPath): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTop const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalBottom const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTopAdjustedForPrecedingLine const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalBottomAdjustedForFollowingLine const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::lineBoxTop const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::lineBoxBottom const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalLeft const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalRight const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::isHorizontal const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::baselineType const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::containingBlock const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::containingFragment const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::isFirstAfterPageBreak const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::traverseNext): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::traversePrevious): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::operator== const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::atEnd const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::firstLeafBox const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::lastLeafBox const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineBoxIteratorModernPath::LineBoxIteratorModernPath):
(WebCore::InlineIterator::LineBoxIteratorModernPath::top const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::bottom const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::contentLogicalTopAdjustedForPrecedingLineBox const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::contentLogicalBottomAdjustedForFollowingLineBox const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::operator== const):
(WebCore::InlineIterator::LineIteratorModernPath::LineIteratorModernPath): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTop const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalBottom const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::lineBoxTop const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::lineBoxBottom const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopAdjustedForPrecedingLine const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalBottomAdjustedForFollowingLine const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalLeft const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalRight const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::isHorizontal const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::baselineType const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::containingBlock const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::containingFragment const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::isFirstAfterPageBreak const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::traverseNext): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::traversePrevious): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::operator== const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::atEnd const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::firstLeafBox const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::lastLeafBox const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::setAtEnd): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::lines const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::line const): Deleted.
- layout/integration/InlineIteratorLogicalOrderTraversal.cpp:
(WebCore::InlineIterator::makeLineLogicalOrderCache):
(WebCore::InlineIterator::updateLineLogicalOrderCacheIfNeeded):
(WebCore::InlineIterator::firstLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::lastLeafOnLineInLogicalOrder):
(WebCore::InlineIterator::firstLeafOnLineInLogicalOrderWithNode):
(WebCore::InlineIterator::lastLeafOnLineInLogicalOrderWithNode):
- layout/integration/InlineIteratorLogicalOrderTraversal.h:
(WebCore::InlineIterator::leafBoxesInLogicalOrder):
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::TextBox::selectionRect const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::firstLineBox const):
(WebCore::LayoutIntegration::LineLayout::lastLineBox const):
(WebCore::LayoutIntegration::LineLayout::firstLine const): Deleted.
(WebCore::LayoutIntegration::LineLayout::lastLine const): Deleted.
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/integration/LineSelection.h:
(WebCore::LineSelection::logicalTop):
(WebCore::LineSelection::logicalBottom):
(WebCore::LineSelection::logicalRect):
(WebCore::LineSelection::physicalRect):
(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):
(WebCore::LineSelection::selectionState):
- rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForLinePosition):
(WebCore::computeCaretRectForText):
(WebCore::computeCaretRectForLineBreak):
(WebCore::computeCaretRectForBox):
- rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::InlineBoxPainter):
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::style const):
- rendering/InlineBoxPainter.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustEnclosingTopForPrecedingBlock const):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::containsNonZeroBidiLevel const):
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::getLeadingCorner const):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
- rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::TextBoxPainter):
(WebCore::TextBoxPainter::paintBackground):
(WebCore::textPosition):
(WebCore::TextBoxPainter::computePaintRect):
- rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::reorderValueListsToLogicalOrder):
- style/InlineTextBoxStyle.cpp:
(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):
(WebCore::computeUnderlineOffset):
- 9:48 AM Changeset in webkit [291547] by
-
- 9 edits4 adds1 delete in trunk/Tools/buildstream
[Flatpak SDK] Bump to meson 0.60
https://bugs.webkit.org/show_bug.cgi?id=238112
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-20
Reviewed by Adrian Perez de Castro.
- elements/freedesktop-sdk.bst: Update junction and include patches for Meson update and
follow-up recipe updates.
- elements/sdk-platform.bst: Remove shared-mime-info, the same version is shipped by the upstream SDK already.
- elements/sdk/glib.bst: Remove invalid meson options
- elements/sdk/gst-plugins-bad.bst: Ditto.
- elements/sdk/gst-plugins-base.bst: Ditto.
- elements/sdk/gstreamer.bst: Ditto.
- elements/sdk/gtk+-3.bst: Ditto.
- elements/sdk/gtk.bst: Ditto.
- elements/sdk/shared-mime-info.bst: Removed.
- patches/fdo-0001-gdk-pixbuf-Remove-invalid-meson-options.patch: Added.
- patches/fdo-0001-gst-plugins-bad-Remove-invalid-meson-option.patch: Added.
- patches/fdo-0001-meson-Bump-to-0.60.3.patch: Added.
- patches/fdo-0001-shared-mime-info-Backport-meson-0.60-build-fix.patch: Added.
- 9:37 AM Changeset in webkit [291546] by
-
- 9 edits2 adds in trunk
Fix CSS cascade regarding logical properties
https://bugs.webkit.org/show_bug.cgi?id=236199
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Expect animation-004.html to pass.
Add new test logicalprops-with-deferred-writing-mode.html
- web-platform-tests/css/css-logical/animation-004-expected.txt:
- web-platform-tests/css/css-logical/logicalprops-with-deferred-writing-mode-expected.txt: Added.
- web-platform-tests/css/css-logical/logicalprops-with-deferred-writing-mode.html: Added.
Source/WebCore:
The CSS cascade was trying to resolve logical properties into physical
ones too early. This failed if we still didn't know the direction or
writing-mode, e.g. because they were set to a variable or to a CSS-wide
keyword.
This patch keeps logical properties as-is during the cascade. They are
only resolved when finally applied. Also, both logical properties and
their physical equivalents are now set to apply in parse order, since
'height: 0px; block-size: 1px' and 'block-size: 1px; height: 0px' can be
different, the order matters.
Tests: imported/w3c/web-platform-tests/css/css-logical/animation-004.html
imported/w3c/web-platform-tests/css/css-logical/logicalprops-with-deferred-writing-mode.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseValueWithVariableReferences):
- style/PropertyCascade.cpp:
(WebCore::Style::shouldApplyPropertyInParseOrder):
(WebCore::Style::PropertyCascade::PropertyCascade):
(WebCore::Style::PropertyCascade::set):
(WebCore::Style::PropertyCascade::setDeferred):
(WebCore::Style::PropertyCascade::resolveDirectionAndWritingMode const): Deleted.
(WebCore::Style::PropertyCascade::direction const): Deleted.
- style/PropertyCascade.h:
(WebCore::Style::PropertyCascade::areDeferredInOrder const):
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::Builder):
(WebCore::Style::Builder::applyProperty):
(WebCore::Style::directionFromStyle): Deleted.
- 8:52 AM WebKitGTK/2.36.x edited by
- (diff)
- 8:04 AM Changeset in webkit [291545] by
-
- 9 edits in trunk/Source/WebCore
[IFC][Integration] Remove redundant InlineIterator::Line::contentLogicalTopAdjustedForHitTesting
https://bugs.webkit.org/show_bug.cgi?id=238107
Reviewed by Antti Koivisto.
It looks like contentLogicalTopAdjustedForHitTesting is just the combination of
- containingBlock's border and padding before
- LineSelection::logicalTop (which is either the line's content top or the previous line's content bottom)
- line's content top
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::contentStartInBlockDirection):
(WebCore::InlineIterator::Line::contentLogicalTopAdjustedForHitTesting const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopAdjustedForHitTesting const): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint): This seems to be missing the contentLogicalTop check.
- rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
- 7:18 AM Changeset in webkit [291544] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r289154) [GSTREAMER] webrtc/vp8-then-h264.html is crashing after SDK update to fdo 21.08 and Gstreamer 1.20
https://bugs.webkit.org/show_bug.cgi?id=237872
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-20
Reviewed by Adrian Perez de Castro.
- platform/mediastream/libwebrtc/gstreamer/GStreamerVideoDecoderFactory.cpp:
(WebCore::VP8Decoder::Create): Fix typo in decoder factory test.
- 6:37 AM Changeset in webkit [291543] by
-
- 2 edits in trunk/Tools
Fix clang warning after r291229
Unreviewed build fix.
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(elementSize): Move RELEASE_ASSERT_NOT_REACHED() out of the switch to make clang happy.
- 4:46 AM Changeset in webkit [291542] by
-
- 2 edits3 adds in trunk/Tools/buildstream
[Flatpak SDK] Include gi-docgen and its dependencies
https://bugs.webkit.org/show_bug.cgi?id=237681
Reviewed by Philippe Normand.
Import a build element for gi-docgen, which reuses most of the dependencies from the
Freedesktop SDK, except for the python-typogrify element, which is not available there
and this also adds an element for.
- elements/sdk-platform.bst:
- elements/sdk/gi-docgen.bst: Added.
- elements/sdk/python3-smartypants.bst: Added.
- elements/sdk/python3-typogrify.bst: Added.
- 4:40 AM Changeset in webkit [291541] by
-
- 2 edits in trunk/Source/WebCore
[WPE][GStreamer] media playback broken
https://bugs.webkit.org/show_bug.cgi?id=238110
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-20
Reviewed by Philippe Normand.
- platform/graphics/gbm/GBMBufferSwapchain.cpp:
(WebCore::GBMBufferSwapchain::GBMBufferSwapchain):
Fix the assert that's hit when using eight-buffers capacity value. Just
a matter of using the more proper <= operator.
Mar 19, 2022:
- 9:11 PM Changeset in webkit [291540] by
-
- 4 edits in trunk
Vector move constructor and move assignment operator are suboptimal when the vector has an inline buffer
https://bugs.webkit.org/show_bug.cgi?id=238096
Reviewed by Darin Adler.
Source/WTF:
The move constructor (and move assignment operators) for Vector were implemented using Vector::swap(), which
is fine for vectors with out of line buffers because we're just swapping pointers. However, when the vector
has inline capacity, this is suboptimal because it is not cheap to move data from one inline buffer to another
and moving any data to the source buffer is unnecessary.
- wtf/Vector.h:
(WTF::VectorBuffer::VectorBuffer):
(WTF::VectorBuffer::adopt):
(WTF::Malloc>::Vector):
(WTF::=):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):
- 8:46 PM Changeset in webkit [291539] by
-
- 1 edit1 move in trunk/LayoutTests
Rebaseline accessibility/roles-exposed.html for Mac WK1 after https://commits.webkit.org/r291401
https://bugs.webkit.org/show_bug.cgi?id=238099
Reviewed by Chris Fleizach.
- platform/mac-wk1/accessibility/roles-exposed-expected.txt:
- 8:29 PM Changeset in webkit [291538] by
-
- 5 edits in trunk/Source/WebCore
Optimize EventTarget::visitJSEventListeners()
https://bugs.webkit.org/show_bug.cgi?id=238116
Reviewed by Darin Adler.
This was confirmed by A/B bots to be a 1-1.5% progression on Speedometer on
iMac 20,1 (Intel).
- dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::clear):
(WebCore::EventListenerMap::replace):
(WebCore::EventListenerMap::add):
(WebCore::EventListenerMap::remove):
(WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
(WebCore::EventListenerMap::assertNoActiveIterators const): Deleted.
(WebCore::EventListenerMap::EventListenerMap): Deleted.
(WebCore::EventListenerIterator::EventListenerIterator): Deleted.
(WebCore::EventListenerIterator::~EventListenerIterator): Deleted.
(WebCore::EventListenerIterator::nextListener): Deleted.
- dom/EventListenerMap.h:
(WebCore::EventListenerMap::visitJSEventListeners):
(): Deleted.
(WebCore::EventListenerMap::assertNoActiveIterators const): Deleted.
- dom/EventTarget.cpp:
(WebCore::EventTarget::visitJSEventListeners): Deleted.
- dom/EventTarget.h:
(WebCore::EventTarget::visitJSEventListeners):
- 8:18 PM Changeset in webkit [291537] by
-
- 8 edits in trunk
[cssom] Implement border-image serialization
https://bugs.webkit.org/show_bug.cgi?id=238102
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Let the test accept some equivalent serializations.
Expect it to pass.
- web-platform-tests/css/css-backgrounds/parsing/border-image-valid-expected.txt:
- web-platform-tests/css/css-backgrounds/parsing/border-image-valid.html:
Source/WebCore:
Add logic for serializing border-image at specified-value time.
Tests: fast/css/parse-border-image-repeat-null-crash.html
imported/w3c/web-platform-tests/css/css-backgrounds/parsing/border-image-valid.html
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderImagePropertyValue const):
(WebCore::StyleProperties::asText const):
- css/StyleProperties.h:
LayoutTests:
Expect cssText to serialize border-image instead of longhands.
- fast/css/parse-border-image-repeat-null-crash-expected.txt:
- 7:18 PM Changeset in webkit [291536] by
-
- 9 edits2 adds in trunk
Fix hasExplicitlySetBorderRadius flag
https://bugs.webkit.org/show_bug.cgi?id=238062
Reviewed by Darin Adler.
Source/WebCore:
The four border-*-radius longhands were sharing the same flag, so the
behavior was broken when setting longhands individually.
This patch splits the flag into 4 different ones, one for each longhand.
Also makes sure to set it properly when a longhand is set to 'initial'.
It's ugly to have all this boilerplate code for the flags, but
https://webkit.org/b/212506 will make it automatically generated.
Test: fast/css/appearance-apple-pay-button-border-radius-longhands.html
- css/CSSProperties.json:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasExplicitlySetBorderBottomLeftRadius const):
(WebCore::RenderStyle::hasExplicitlySetBorderBottomRightRadius const):
(WebCore::RenderStyle::hasExplicitlySetBorderTopLeftRadius const):
(WebCore::RenderStyle::hasExplicitlySetBorderTopRightRadius const):
(WebCore::RenderStyle::hasExplicitlySetBorderRadius const):
(WebCore::RenderStyle::setHasExplicitlySetBorderBottomLeftRadius):
(WebCore::RenderStyle::setHasExplicitlySetBorderBottomRightRadius):
(WebCore::RenderStyle::setHasExplicitlySetBorderTopLeftRadius):
(WebCore::RenderStyle::setHasExplicitlySetBorderTopRightRadius):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::NonInheritedFlags::copyNonInheritedFrom):
(WebCore::RenderStyle::setHasExplicitlySetBorderRadius): Deleted.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialBorderBottomLeftRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderBottomLeftRadius):
(WebCore::Style::BuilderCustom::applyValueBorderBottomLeftRadius):
(WebCore::Style::BuilderCustom::applyInitialBorderBottomRightRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderBottomRightRadius):
(WebCore::Style::BuilderCustom::applyValueBorderBottomRightRadius):
(WebCore::Style::BuilderCustom::applyInitialBorderTopLeftRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderTopLeftRadius):
(WebCore::Style::BuilderCustom::applyValueBorderTopLeftRadius):
(WebCore::Style::BuilderCustom::applyInitialBorderTopRightRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderTopRightRadius):
(WebCore::Style::BuilderCustom::applyValueBorderTopRightRadius):
LayoutTests:
Add test, skip it except in iOS and Mac.
- TestExpectations:
- fast/css/appearance-apple-pay-button-border-radius-longhands-expected.html: Added.
- fast/css/appearance-apple-pay-button-border-radius-longhands.html: Added.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 5:45 PM Changeset in webkit [291535] by
-
- 10 edits in trunk/Source/WebCore
[IFC][Integration] InlineIterator::Line functions should all return float values
https://bugs.webkit.org/show_bug.cgi?id=238106
Reviewed by Antti Koivisto.
Display structures are supposed to be all float based.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::lineBoxHeight const):
(WebCore::InlineIterator::contentStartInBlockDirection):
(WebCore::InlineIterator::Line::contentLogicalTop const):
(WebCore::InlineIterator::Line::contentLogicalBottom const):
(WebCore::InlineIterator::Line::contentLogicalTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::Line::contentLogicalTopAdjustedForHitTesting const):
(WebCore::InlineIterator::Line::contentLogicalBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::Line::lineBoxTop const):
(WebCore::InlineIterator::Line::lineBoxBottom const):
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTop const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalBottom const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTopAdjustedForHitTesting const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::LineIteratorLegacyPath::lineBoxTop const):
(WebCore::InlineIterator::LineIteratorLegacyPath::lineBoxBottom const):
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTop const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalBottom const):
(WebCore::InlineIterator::LineIteratorModernPath::lineBoxTop const):
(WebCore::InlineIterator::LineIteratorModernPath::lineBoxBottom const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopAdjustedForHitTesting const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalBottomAdjustedForFollowingLine const):
- layout/integration/LineSelection.h:
(WebCore::LineSelection::logicalTop):
(WebCore::LineSelection::logicalBottom):
(WebCore::LineSelection::logicalRect):
(WebCore::LineSelection::physicalRect):
(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustEnclosingTopForPrecedingBlock const):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintBackground):
- 4:22 PM Changeset in webkit [291534] by
-
- 3 edits in trunk/LayoutTests
Make fast/text/emoji-num-glyphs.html more robust
https://bugs.webkit.org/show_bug.cgi?id=238120
<rdar://problem/88842010>
Unreviewed test gardening.
- fast/text/emoji-num-glyphs-expected.txt:
- fast/text/emoji-num-glyphs.html:
- 1:30 PM Changeset in webkit [291533] by
-
- 5 edits in trunk/Source/WebCore
[IFC][Integration] Remove redundant InlineIterator::Line::closestBoxForPoint function
https://bugs.webkit.org/show_bug.cgi?id=238103
Reviewed by Antti Koivisto.
- Rename closestBoxForLogicalLeftPosition to closestBoxForHorizontalPosition and move it off of the Line class.
- Replace InlineIterator::Line::closestBoxForPoint calls with closestBoxForHorizontalPosition.
- Tidy up Line class.
- editing/VisibleUnits.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::closestBoxForHorizontalPosition):
(WebCore::InlineIterator::Line::closestBoxForPoint const): Deleted.
(WebCore::InlineIterator::Line::closestBoxForLogicalLeftPosition const): Deleted.
- layout/integration/InlineIteratorLine.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- 1:24 PM Changeset in webkit [291532] by
-
- 9 edits in trunk/Source/WebCore
[IFC][Integration] Rename InlineIterator::Line::blockDirectionPointInLine to contentStartInBlockDirection
https://bugs.webkit.org/show_bug.cgi?id=238101
Reviewed by Antti Koivisto.
blockDirectionPointInLine returns the position (vertical or horizontal, depending on the writing mode) where the content
starts (which for flipped writing mode is the bottom of the line).
Let's also move this function out of the Line class and have it as a standalone helper function (and move/rename some private Line
functions to public).
- editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::blockDirectionPointInLine const): Deleted.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::contentStartInBlockDirection):
(WebCore::InlineIterator::Line::contentLogicalTopAdjustedForHitTesting const):
(WebCore::InlineIterator::Line::contentLogicalTopForHitTesting const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTopAdjustedForHitTesting const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTopForHitTesting const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopAdjustedForHitTesting const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopForHitTesting const): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
- rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
- 1:05 PM Changeset in webkit [291531] by
-
- 9 edits in trunk/Source/WebCore
[IFC][Integration] Use a more descriptive name for InlineIterator::Line::enclosing* functions
https://bugs.webkit.org/show_bug.cgi?id=238094
Reviewed by Antti Koivisto.
Enlcosing essentially means content logical top/bottom here.
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::blockDirectionPointInLine const):
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::contentLogicalTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::Line::contentLogicalTopForHitTesting const):
(WebCore::InlineIterator::Line::contentLogicalBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::Line::enclosingTopAdjustedForPrecedingLine const): Deleted.
(WebCore::InlineIterator::Line::enclosingTopForHitTesting const): Deleted.
(WebCore::InlineIterator::Line::enclosingBottomAdjustedForFollowingLine const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTopForHitTesting const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::LineIteratorLegacyPath::enclosingTopAdjustedForPrecedingLine const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::enclosingTopForHitTesting const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::enclosingBottomAdjustedForFollowingLine const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTopForHitTesting const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::enclosingTopAdjustedForPrecedingLine const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::enclosingTopForHitTesting const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::enclosingBottomAdjustedForFollowingLine const): Deleted.
- layout/integration/LineSelection.h:
(WebCore::LineSelection::logicalTop):
(WebCore::LineSelection::logicalBottom):
(WebCore::LineSelection::logicalRect):
(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
- rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
- 12:17 PM Changeset in webkit [291530] by
-
- 10 edits in trunk/Source/WebCore
[IFC][Integration] Rename InlineIterator::Line:top/bottom to contentLogicalTop/contentLogicalBottom
https://bugs.webkit.org/show_bug.cgi?id=238085
Reviewed by Antti Koivisto.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::contentLogicalTop const):
(WebCore::InlineIterator::Line::contentLogicalBottom const):
(WebCore::InlineIterator::Line::top const): Deleted.
(WebCore::InlineIterator::Line::bottom const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalTop const):
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalBottom const):
(WebCore::InlineIterator::LineIteratorLegacyPath::top const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::bottom const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalTop const):
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalBottom const):
(WebCore::InlineIterator::LineIteratorModernPath::enclosingTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::enclosingBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::top const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::bottom const): Deleted.
- 11:21 AM Changeset in webkit [291529] by
-
- 6 edits in trunk/Source/WebCore
[IFC][Integration] InlineIterator::Line::enclosingBottom should read enclosingBottomAdjustedForFollowingLine
https://bugs.webkit.org/show_bug.cgi?id=238084
Reviewed by Antti Koivisto.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::enclosingBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::Line::enclosingBottom const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::enclosingBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::LineIteratorLegacyPath::enclosingBottom const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::enclosingBottomAdjustedForFollowingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::enclosingBottom const): Deleted.
- 8:39 AM Changeset in webkit [291528] by
-
- 4 edits in trunk/Source/WebCore
[IFC][Integration] Move selection specific code from InlineIterator::Line to LineSelection
https://bugs.webkit.org/show_bug.cgi?id=238083
Reviewed by Antti Koivisto.
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::enclosingTopAdjustedForPrecedingBlock const): Deleted.
(WebCore::InlineIterator::Line::selectionState const): Deleted.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::enclosingLogicalRect const): Deleted.
(WebCore::InlineIterator::Line::enclosingPhysicalRect const): Deleted.
- layout/integration/LineSelection.h:
(WebCore::LineSelection::logicalRect):
(WebCore::LineSelection::physicalRect):
(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):
(WebCore::LineSelection::selectionState):
- 6:23 AM Changeset in webkit [291527] by
-
- 5 edits4 adds in trunk
Dialog element only animates once
https://bugs.webkit.org/show_bug.cgi?id=236274
rdar://88857731
Reviewed by Dean Jackson, Tim Nguyen and Antti Koivisto.
LayoutTests/imported/w3c:
Import relevant WPT tests that had already been upstreamed in a previous, reverted
version of this patch.
- web-platform-tests/css/css-animations/dialog-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-animation.html: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation.html: Added.
- web-platform-tests/css/css-animations/support/testcommon.js:
(addElement):
(addDiv):
Source/WebCore:
Two issues related to CSS Animation surfaced in this bug which animates both <dialog>
and its ::backdrop as the dialog is open and eventually re-opened.
The first issue was that we didn't clear all CSS Animations state when a <dialog> was
closed and its style was set todisplay: none. We now call setAnimationsCreatedByMarkup
to correctly clear such state both when we identify a Styleable is newly getting
display: none. We do the same when cancelDeclarativeAnimations() is called, but also
call setCSSAnimationList() on the associated effect stack since that wasn't done either.
Now both functions do similar cleanup.
This allows us to remove removeCSSAnimationCreatedByMarkup() which did a fair bit of work
to clear CSS Animation state per-animation when we only ever used that function for
_all_ animations.
The second issue was that we never called cancelDeclarativeAnimations() for ::backdrop.
We now do that inside of Element::removeFromTopLayer() at a point where the code in
Styleable::fromRenderer() will still work as the element will still be contained in
Document::topLayerElements().
Finally, we need to be sure that calling Element::setAnimationsCreatedByMarkup() with an
empty list doesn't end up creating an ElementAnimationRareData object if there was no
pre-existing object and the list of animations are empty.
Tests: imported/w3c/web-platform-tests/css/css-animations/dialog-animation.html
imported/w3c/web-platform-tests/css/css-animations/dialog-backdrop-animation.html
- dom/Element.cpp:
(WebCore::Element::removeFromTopLayer):
(WebCore::Element::setAnimationsCreatedByMarkup):
- style/Styleable.cpp:
(WebCore::Styleable::cancelDeclarativeAnimations const):
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::removeCSSAnimationCreatedByMarkup): Deleted.
- 4:41 AM Changeset in webkit [291526] by
-
- 3 edits2 adds in trunk
REGRESSION (r285529): Flash of missing text when content on https://ahumanfuture.co animates
https://bugs.webkit.org/show_bug.cgi?id=237972
rdar://90385586
Reviewed by Simon Fraser.
Source/WebCore:
Accelerated animations are added to a CALayer in two different ways.
Transform-related animations are added in a CAAnimationGroup so that we can have control of the
way they interact with each other. We added this system when we added support for individual CSS
transform properties on top of the existing "transform" property. All CAAnimationGroup animations
are timed to start at 1s and thus we subtract that same 1s value from all animations contained
within such groups.
All other animations, such as "opacity" animations, are added as simple leaf animations and their
begin time is not subject to that 1s subtraction.
In r285529, when we introduced leaf animations for transform properties other than transform-related
properties, we took an unfortunate approach to deal with that 1s subtraction. We would *always* subtract
1s for all animations, and for leaf animation add that 1s back when we added them in the
addLeafAnimation() lambda.
However, we *did not* check whether that animation was newly started or if we were merely adding it
again. This meant that every time GraphicsLayerCA::updateAnimations() was called, any leaf animation
would have 1s added to their begin time.
So, if for instance a page ran on a given element a "scale" animation for 1s and an "opacity" animation
for 2s, when the "scale" animation would complete, GraphicsLayerCA::updateAnimations() would be called
to remove that animation, and add 1s to the "opacity" animation begin time.
We now set the begin time, if not already set, in two places: in the addLeafAnimation() lambda for
leaf animations, and in the addAnimationsForProperty() lambda for animations added to groups. We
only ever set the begin time if not already set during a previous update and only subtract the
parent group begin time for animations contained within a group.
Additionally, this means we set the begin times when we iterate over remaining animations after culling
finished animations. As such, we no longer need to iterate over *all* known animations to set their
begin time if needed prior to adding them.
Test: webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateAnimations):
LayoutTests:
Add a new test which would fail prior to the source change. In this test we start two animations: a "scale"
animation which lasts for 100ms, and an "opacity" animation which lasts much longer but only visually updates
for the duration of the "scale" animation. When the "scale" animation completes, we stop the test and ensure
that the reference test shows that the "opacity" animation is at the state it should be in at at that time,
and was not rewound due to the bug being fixed.
- webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends-expected.html: Added.
- webanimations/accelerated-animation-opacity-animation-begin-time-after-scale-animation-ends.html: Added.
- 3:36 AM Changeset in webkit [291525] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, WPE clang build fix after r291343.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):
- 2:12 AM Changeset in webkit [291524] by
-
- 6 edits in trunk
[CSS Container Queries] Add Typed OM support for container units
https://bugs.webkit.org/show_bug.cgi?id=238078
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt:
Source/WebCore:
For completeness, Typed OM is not enabled or fully implemented yet.
- css/DOMCSSNamespace+CSSNumericFactory.idl:
- css/typedom/CSSNumericFactory.h:
- css/typedom/CSSStyleValueFactory.cpp:
(WebCore::CSSStyleValueFactory::reifyValue):
- 1:49 AM Changeset in webkit [291523] by
-
- 5 edits in trunk/Source/WebCore
[IFC][Integration] Move enclosingHeightAdjustedForPrecedingBlock off of InlineIterator::Line
https://bugs.webkit.org/show_bug.cgi?id=238081
Reviewed by Antti Koivisto.
This function is way too specific to be on InlineIterator::Line (and has only one callsite).
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::enclosingHeightAdjustedForPrecedingBlock const): Deleted.
- layout/integration/LineSelection.h:
(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):
(WebCore::LineSelection::logicalHeightAdjustedForPrecedingBlock): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
- 1:14 AM Changeset in webkit [291522] by
-
- 2 edits in trunk/Source/WebKit
Fix the build (hopefully)
- Shared/Cocoa/ArgumentCodersCocoa.mm:
Mar 18, 2022:
- 8:46 PM Changeset in webkit [291521] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Further reduce # of registers used in RegExpTestInline
https://bugs.webkit.org/show_bug.cgi?id=238105
Reviewed by Saam Barati.
This patch further reduces # of registers used in RegExpTestInline.
After flushRegisters(), we can use baseGPR for any purpose.
We also remove x64 hack since we have enough registers for x64 even
if we use one callee-save register in unlinked DFG.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
- 8:30 PM Changeset in webkit [291520] by
-
- 2 edits in trunk/Source/WebCore
Fix typo from r291295
https://bugs.webkit.org/show_bug.cgi?id=238087
Patch by Joseph Griego <jgriego@igalia.com> on 2022-03-18
Reviewed by Chris Dumez.
No new tests (changes only comments)
- bindings/scripts/CodeGeneratorJS.pm:
(IsAlwaysExposedOnInterface):
- 8:25 PM Changeset in webkit [291519] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector:
console.screenshothas extra transparent pixels at bottom of screenshot on platforms with viewports that are obscured by browser chrome
https://bugs.webkit.org/show_bug.cgi?id=238060
Reviewed by Devin Rousso.
ScrollView::sizeForVisibleRect includes partially-visible portions of the viewport, including in Safari's case
the part of the viewport under the semi-translucent title bar. Because we force an origin of zero, this meant
that we were overshooting the bottom of the viewport by the height of this area when taking a snapshot for
console.screenshot(). Instead, we should use unobscured viewport rectangle and provide coordinates in
document-space, not view-space toWebCore::snapshotFrameRect.
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::screenshot):
- 7:00 PM Changeset in webkit [291518] by
-
- 7 edits in trunk
[Cocoa] Teach WebKit how to serialize CGColors
https://bugs.webkit.org/show_bug.cgi?id=238069
<rdar://problem/90124325>
Reviewed by Dean Jackson and Tim Horton.
Source/WebKit:
We have 2 ways of serializing Cocoa objects: NS type handling in ArgumentCodersCocoa.mm,
and CF type handling in ArgumentCodersCF.mm. CGColors are CF types, so this patch adds
direct support in ArgumentCodersCF to serialize them, by round-tripping them through
WebCore::Colors. However, NS containers (like font descriptor attribute dictionaries)
can contain CGColors, so this patch also teaches ArgumentCodersCocoa that there may be
CF types inside NS containers. If one is present, ArgumentCodersCocoa has to call into
ArgumentCodersCF to serialize it.
This patch doesn't add support for the reverse path, where an NS object is contained
within a CF container. I intentionally omitted implementing this because I wasn't sure
if it would be a layering violation; ArgumentCodersCococa.mm already #includes
ArgumentCodersCF.h, but ArgumentCodersCF.mm doesn't #include ArgumentCodersCocoa.h.
This path isn't actually necessary to solve my problem at hand, so someone else can
add support if necessary in the future. I also added a comment at the site where the
code would fail, describing what the problem is and a potential workaround.
This patch also adds support for our NSSecureCoding implementation for CGColors. This
is necessary because sometimes we want to serialize things like NSAttributedStrings,
which we don't have direct support for, so we use NSSecureCoding to serialize them
instead. NSAttributedStrings can contain fonts whose descriptor dictionaries contain
CGColors, so this path needs to work with CGColors too. Support is implemented using
NSKeyedArchiverDelegate and NSKeyedUnarchiverDelegate.
Test: IPCTestingAPI.CGColorInNSSecureCoding
The non-NSSecureCoding parts of this patch are tested by our regular LayoutTests
when DOM GPU Process rendering is enabled.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(-[WKSecureCodingArchivingDelegate archiver:willEncodeObject:]):
(-[WKSecureCodingArchivingDelegate unarchiver:didDecodeObject:]):
(-[WKSecureCodingCGColorWrapper wrappedColor]):
(+[WKSecureCodingCGColorWrapper supportsSecureCoding]):
(-[WKSecureCodingCGColorWrapper encodeWithCoder:]):
(-[WKSecureCodingCGColorWrapper initWithCoder:]):
(-[WKSecureCodingCGColorWrapper initWithCGColor:]):
(IPC::typeFromObject):
(IPC::decodeSecureCodingInternal):
(IPC::encodeCFInternal):
(IPC::decodeCFInternal):
(IPC::encodeObject):
(IPC::decodeObject):
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::typeFromCFTypeRef):
(IPC::ArgumentCoder<CFTypeRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CFTypeRef>>::decode):
(IPC::ArgumentCoder<CGColorRef>::encode):
(IPC::ArgumentCoder<RetainPtr<CGColorRef>>::decode):
- Shared/cf/ArgumentCodersCF.h:
Tools:
- Scripts/webkitpy/style/checkers/cpp.py:
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
- 6:03 PM Changeset in webkit [291517] by
-
- 21 edits8 adds in trunk
Web Inspector: REGRESSION(?): Emulate User Gesture doesn't work
https://bugs.webkit.org/show_bug.cgi?id=232584
<rdar://problem/84899576>
Reviewed by Patrick Angle.
Source/JavaScriptCore:
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::evaluateOnCallFrame):
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::evaluate):
(Inspector::InspectorRuntimeAgent::callFunctionOn):
Create overloads for these (protocol) methods so that we can avoid having to fetch the same
InjectedScriptmore than once (i.e. if the subclass fetches theInjectedScriptand then
called into the baseclass, which also fetches the sameInjectedScript).
- debugger/Debugger.h:
(JSC::Debugger::Client::debuggerWillEvaluate):
(JSC::Debugger::Client::debuggerDidEvaluate):
- debugger/Debugger.cpp:
(JSC::Debugger::evaluateBreakpointActions):
Pass along the currentJSGlobalObjectto eventually derive a relevantWebCore::Document.
Source/WebCore:
Recently some new web APIs have gone a step further by using a new way to detect one-time
user interaction called [transient activation](https://html.spec.whatwg.org/multipage/interaction.html#transient-activation).
In order to support invoking these APIs from Web Inspector,UserGestureEmulationScope
needs to be adjusted to support marking the context as having recently been interacted with,
which turns out to just involve plumbing aDocumentthrough to theUserGestureIndicator,
as the rest has already been implemented.
Tests: inspector/debugger/breakpoint-action-emulateUserGesture-hasTransientActiviation.html
inspector/debugger/evaluateOnCallFrame-emulateUserGesture-hasTransientActivation.html
inspector/runtime/callFunctionOn-emulateUserGesture-hasTransientActivation.html
inspector/runtime/evaluate-emulateUserGesture-hasTransientActivation.html
- inspector/agents/page/PageDebuggerAgent.h:
- inspector/agents/page/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::evaluateOnCallFrame):
(WebCore::PageDebuggerAgent::debuggerWillEvaluate):
(WebCore::PageDebuggerAgent::debuggerDidEvaluate):
- inspector/agents/page/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::evaluate):
(WebCore::PageRuntimeAgent::callFunctionOn):
- inspector/agents/page/UserGestureEmulationScope.h:
- inspector/agents/page/UserGestureEmulationScope.cpp:
(WebCore::UserGestureEmulationScope::UserGestureEmulationScope):
Derive aDocumentfrom theJSGlobalObjectof the relevantInjectedScript.
- inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openURLExternally):
- inspector/InspectorFrontendHost.cpp:
(WebCore::FrontendMenuProvider::contextMenuItemSelected):
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):
Drive-by: Pass the relevantDocumentto theUserGestureIndicatorjust in case the Web
Inspector frontend needs it.
- page/DOMWindow.h:
- testing/Internals.idl:
- testing/Internals.h:
- testing/Internals.cpp:
(WebCore::Internals::hasTransientActivation): Added.
ExposeDOMWindow::hasTransientActivationto tests.
LayoutTests:
- inspector/debugger/breakpoint-action-emulateUserGesture-hasTransientActiviation.html: Added.
- inspector/debugger/breakpoint-action-emulateUserGesture-hasTransientActiviation-expected.txt: Added.
- inspector/debugger/evaluateOnCallFrame-emulateUserGesture-hasTransientActivation.html: Added.
- inspector/debugger/evaluateOnCallFrame-emulateUserGesture-hasTransientActivation-expected.txt: Added.
- inspector/runtime/callFunctionOn-emulateUserGesture-hasTransientActivation.html: Added.
- inspector/runtime/callFunctionOn-emulateUserGesture-hasTransientActivation-expected.txt: Added.
- inspector/runtime/evaluate-emulateUserGesture-hasTransientActivation.html: Added.
- inspector/runtime/evaluate-emulateUserGesture-hasTransientActivation-expected.txt: Added.
- 5:59 PM Changeset in webkit [291516] by
-
- 4 edits in trunk/Source/WebCore
Calc() cleanup
https://bugs.webkit.org/show_bug.cgi?id=237982
Reviewed by Simon Fraser.
Small cleanup of CSSCalcExpressionNodeParser and CSSCalcOperationNode needed after
adding more math functions.
- css/calc/CSSCalcExpressionNodeParser.cpp:
(WebCore::CSSCalcExpressionNodeParser::parseCalcFunction):
- css/calc/CSSCalcOperationNode.cpp:
(WebCore::determineCategory):
(WebCore::CSSCalcOperationNode::simplifyNode):
- css/calc/CSSCalcOperationNode.h:
- 5:55 PM Changeset in webkit [291515] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Reduce # of registers used in RegExpTestInline to allow using unlinked DFG in x64
https://bugs.webkit.org/show_bug.cgi?id=238092
Reviewed by Michael Saboff.
This patch reduces # of registers used in RegExpTestInline implementation to make it work
well for x64 unlinked DFG since it can reduce # of registers to use one callee-save register
for constants buffer.
We also add YarrJITRegisters::validate to ensure that used registers meet the invariants in YarrJIT.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
- yarr/YarrJIT.cpp:
(JSC::Yarr::jitCompileInlinedTest):
- yarr/YarrJITRegisters.h:
(JSC::Yarr::YarrJITRegisters::validate):
(JSC::Yarr::YarrJITRegisters::YarrJITRegisters): Deleted.
- 5:46 PM Changeset in webkit [291514] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Fix more build breakage from r291361
https://bugs.webkit.org/show_bug.cgi?id=238097
<rdar://problem/90505371>
Unreviewed build fix.
- platform/ios/WebAVPlayerController.mm: Declare AVAssetTrack.
- 5:43 PM Changeset in webkit [291513] by
-
- 4 edits5 deletes in trunk
Unreviewed, reverting r291476.
https://bugs.webkit.org/show_bug.cgi?id=238098
Caused Gtk js/weakref-finalizationregistry.html failure
Reverted changeset:
"Remove the 1ms minimum for setTimeout"
https://bugs.webkit.org/show_bug.cgi?id=221124
https://commits.webkit.org/r291476
- 5:40 PM Changeset in webkit [291512] by
-
- 6 edits in trunk/Source/WebCore
[IFC][Integration] InlineIterator::Line::enclosingTop is really an enclosingTopAdjustedForPrecedingLine
https://bugs.webkit.org/show_bug.cgi?id=238079
Reviewed by Antti Koivisto.
This is used for selection and hittesting.
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::enclosingTopAdjustedForPrecedingBlock const):
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::enclosingTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::Line::enclosingLogicalRect const):
(WebCore::InlineIterator::Line::enclosingTop const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::enclosingTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorLegacyPath::enclosingTop const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::enclosingTopAdjustedForPrecedingLine const):
(WebCore::InlineIterator::LineIteratorModernPath::enclosingTopForHitTesting const):
(WebCore::InlineIterator::LineIteratorModernPath::enclosingTop const): Deleted.
- layout/integration/LineSelection.h:
(WebCore::LineSelection::logicalTop):
- 5:31 PM Changeset in webkit [291511] by
-
- 4 edits in trunk/Source/WebKit
Update preference location used for CaptivePortal testing.
https://bugs.webkit.org/show_bug.cgi?id=237970
<rdar://problem/88897735>
Patch by Gavin Phillips <gavin.p@apple.com> on 2022-03-18
Reviewed by Brent Fulgham.
Update the location of the setting used to determine whether we should ignore CaptivePortal requests for testing
as well as group the various iterations of preference checking into a single location.
- UIProcess/API/Cocoa/_WKSystemPreferences.mm:
(+[_WKSystemPreferences isCaptivePortalModeEnabled]):
(+[_WKSystemPreferences setCaptivePortalModeEnabled:]):
(+[_WKSystemPreferences isCaptivePortalModeIgnored:]):
(+[_WKSystemPreferences setCaptivePortalModeIgnored:ignore:]):
- UIProcess/API/Cocoa/_WKSystemPreferencesInternal.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::isCaptivePortalModeEnabledBySystemIgnoringCaching):
- 5:30 PM Changeset in webkit [291510] by
-
- 1 copy in tags/Safari-614.1.5.15
Tag Safari-614.1.5.15.
- 5:26 PM Changeset in webkit [291509] by
-
- 12 edits in trunk/LayoutTests/imported/w3c
Update Display P3 canvas drawImage(video) tests to avoid edge case bugs
https://bugs.webkit.org/show_bug.cgi?id=237286
Reviewed by Jer Noble.
This test is intermittently failing, due to the odd single frame
videos causing issues and loadeddata not being guaranteed to mean the
video is ready for drawing. Update the tests to work around these.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-ImageBitmap-video.html:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3-drawImage-video.html:
Use requestVideoFrameCallback if available, since that should be
better than loadeddata to guarantee the pixel data is available. Also
play the videos that are inserted, to avoid issues with the video
frame callback being called a bit late.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-display-p3.js:
Fix the command line in the comment that's used to generate the test
videos.
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.mp4:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-222000000.webm:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.mp4:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/Rec2020-3FF000000.webm:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.mp4:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-BB0000.webm:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.mp4:
- web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/resources/sRGB-FF0100.webm:
Change these videos from being a single frame long to 10s long.
- 5:19 PM Changeset in webkit [291508] by
-
- 2 edits in trunk/Source/WebCore
Optimize AtomHTMLToken::initializeAttributes()
https://bugs.webkit.org/show_bug.cgi?id=238074
Reviewed by Geoffrey Garen.
Use a HashSet to find duplicate attributes instead of doing a linear search.
This is a confirmed 1.2% progression on Speedometer on iMac20,1 via A/B bots.
- html/parser/AtomHTMLToken.h:
(WebCore::AtomHTMLToken::initializeAttributes):
- 5:00 PM Changeset in webkit [291507] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.15
- 4:51 PM Changeset in webkit [291506] by
-
- 2 edits in trunk/LayoutTests
[macOS arm64] webrtc/vp9-profile2.html is consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=238104
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:20 PM Changeset in webkit [291505] by
-
- 1 copy in tags/Safari-614.1.6.1
Tag Safari-614.1.6.1.
- 4:20 PM Changeset in webkit [291504] by
-
- 1 delete in tags/Safari-614.1.6.1
Delete tag.
- 4:18 PM Changeset in webkit [291503] by
-
- 9 edits in branches/safari-614.1.6-branch/Source
Versioning.
WebKit-7614.1.6.1
- 4:13 PM Changeset in webkit [291502] by
-
- 1 copy in tags/Safari-614.1.6.1
Tag Safari-614.1.6.1.
- 4:11 PM Changeset in webkit [291501] by
-
- 11 edits in trunk/Source
[iOS 15.4] Fix unused variables
https://bugs.webkit.org/show_bug.cgi?id=238089
<rdar://problem/90498642 >
Reviewed by Alexey Proskuryakov and Chris Dumez.
- Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess): Declare isSafari as unused for Mac and Catalyst.
- Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
Remove canPanX and canPanY, since they are unused.
- Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant _createSheetWithElementActions:defaultTitle:showLinkTitle:]): Remove titleIsURL.
- Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::addMessageToConsole): Declare respondsToNewSelector as unused on iOS family.
- Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionForPoint const): frameView is only used on Mac.
- Source/WebCore/editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addAttachmentForElement): Declare ignoreOrientation as unused on iOS family.
- Source/WebCore/platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp:
(WebCore::AudioOutputUnitAdaptor::configure): Assert that result is unused.
- Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp:
(WebCore::FontCascade::drawGlyphs): Declare shouldSmoothFonts as unused on iOS family.
Canonical link: https://commits.webkit.org/248613@main
- 3:47 PM Changeset in webkit [291500] by
-
- 8 edits in trunk
[CSS Container Queries] Ensure container style changes are propagated to descendants
https://bugs.webkit.org/show_bug.cgi?id=238072
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt:
Source/WebCore:
- style/StyleChange.cpp:
(WebCore::Style::determineChange):
Ensure we recompute the descendants when container properties change.
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::TreeResolver::updateQueryContainer):
We need to ensure layout is up-to-date also when a query container stops being one.
Remove the unused m_resolvedQueryContainers maps.
- style/StyleTreeResolver.h:
- 3:12 PM Changeset in webkit [291499] by
-
- 30 edits5 copies in trunk
Fix test failures when enabling content filtering in the Network process
https://bugs.webkit.org/show_bug.cgi?id=237217
Reviewed by Brent Fulgham.
Source/WebCore:
This patch addresses test failures when enabling content filtering in the Network process.
When content filtering is running in the Network process, we need to send the mock content
filter and settings to the Network process to support testing. The mock content filter is
moved from the WebCore test support library target to the WebCore framework, since WebKit
now also will reference the mock content filter when sending it to the Network process.
Previously a compile time guard was used to disable the content filtering code in the
document loader. However, we still need to support content filtering in the document
loader for WK1, so this patch changes that to use a runtime check instead. The rest of
this patch addresses test failures seen when running the layout and API tests. This patch
does not enable the feature.
No new tests, covered by existing tests.
- WebCore.xcodeproj/project.pbxproj:
- loader/ContentFilter.cpp:
(WebCore::ContentFilter::startFilteringMainResource):
(WebCore::ContentFilter::continueAfterDataReceived):
(WebCore::ContentFilter::continueAfterNotifyFinished):
(WebCore::ContentFilter::deliverResourceData):
(WebCore::ContentFilter::url):
(WebCore::ContentFilter::continueAfterSubstituteDataRequest):
- loader/ContentFilter.h:
(WebCore::ContentFilter::setBlockedError):
- loader/ContentFilterClient.h:
- loader/DocumentLoader.cpp:
(WebCore::contentFilterInDocumentLoader):
(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::detachFromFrame):
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::clearMainResource):
(WebCore::DocumentLoader::becomeMainResourceClient):
(WebCore::DocumentLoader::dataReceivedThroughContentFilter):
(WebCore::DocumentLoader::contentFilterWillHandleProvisionalLoadFailure):
(WebCore::DocumentLoader::contentFilterHandleProvisionalLoadFailure):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::setBlockedPageURL):
(WebCore::DocumentLoader::setSubstituteDataFromContentFilter):
- loader/PolicyChecker.cpp:
(WebCore::FrameLoader::PolicyChecker::checkNavigationPolicy):
- platform/ContentFilterUnblockHandler.h:
- platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
(WebCore::ContentFilterUnblockHandler::encode const):
(WebCore::ContentFilterUnblockHandler::decode):
(WebCore::ContentFilterUnblockHandler::canHandleRequest const):
(WebCore::ContentFilterUnblockHandler::requestUnblockAsync const):
(WebCore::ContentFilterUnblockHandler::setUnblockedAfterRequest):
- testing/MockContentFilterManager.cpp: Added.
(WebCore::MockContentFilterManager::singleton):
(WebCore::MockContentFilterManager::setClient):
(WebCore::MockContentFilterManager::notifySettingsChanged const):
- testing/MockContentFilterManager.h: Added.
- testing/MockContentFilterSettings.cpp:
(WebCore::MockContentFilterSettings::reset):
(WebCore::MockContentFilterSettings::setEnabled):
(WebCore::MockContentFilterSettings::setBlockedString):
(WebCore::MockContentFilterSettings::setDecisionPoint):
(WebCore::MockContentFilterSettings::setDecision):
(WebCore::MockContentFilterSettings::setUnblockRequestDecision):
(WebCore::MockContentFilterSettings::setModifiedRequestURL):
- testing/MockContentFilterSettings.h:
(WebCore::MockContentFilterSettings::encode const):
(WebCore::MockContentFilterSettings::decode):
(WebCore::MockContentFilterSettings::setBlockedString): Deleted.
(WebCore::MockContentFilterSettings::setDecisionPoint): Deleted.
(WebCore::MockContentFilterSettings::setDecision): Deleted.
(WebCore::MockContentFilterSettings::setUnblockRequestDecision): Deleted.
(WebCore::MockContentFilterSettings::setModifiedRequestURL): Deleted.
- testing/MockContentFilterSettingsClient.h: Added.
(WebCore::MockContentFilterSettingsClient::~MockContentFilterSettingsClient):
Source/WebKit:
Add a WebMockContentFilterManager in the WebContent process, which will be notified
when mock content filter settings are changed from JavaScript, and then send the new
settings to the Network process and install the mock content filter. The other
changes are addressing layout and API test failures.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::installMockContentFilter):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::startContentFiltering):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequestInternal):
(WebKit::NetworkResourceLoader::contentFilterDidBlock):
(WebKit::NetworkResourceLoader::cancelMainResourceLoadForContentFilter):
(WebKit::NetworkResourceLoader::handleProvisionalLoadFailureFromContentFilter):
- NetworkProcess/NetworkResourceLoader.h:
- Shared/WebCoreArgumentCoders.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/WebMockContentFilterManager.cpp: Added.
(WebKit::WebMockContentFilterManager::singleton):
(WebKit::WebMockContentFilterManager::startObservingSettings):
(WebKit::WebMockContentFilterManager::mockContentFilterSettingsChanged):
- WebProcess/Network/WebMockContentFilterManager.h: Added.
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::contentFilterDidBlockLoad):
(WebKit::WebResourceLoader::cancelMainResourceLoadForContentFilter):
(WebKit::WebResourceLoader::handleProvisionalLoadFailureFromContentFilter): Deleted.
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Network/WebResourceLoader.messages.in:
- WebProcess/WebProcess.cpp:
Tools:
TestWebKitAPI needs to link with WebCore now that the mock content filter is compiled into WebCore.
Adjust test expectations, since the content filters are not expected to be loaded in the WebContent
process anymore.
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
- TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig:
- TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/ContentFilteringPlugIn.mm:
- TestWebKitAPI/Tests/mac/ContentFiltering.mm:
- 3:09 PM Changeset in webkit [291498] by
-
- 47 edits in trunk/Source/WebGPU
[WebGPU] Add #pragma marks to strategic places
https://bugs.webkit.org/show_bug.cgi?id=238065
Reviewed by Alexey Proskuryakov.
They help a little bit with Xcode navigation.
- WebGPU/Adapter.h:
- WebGPU/Adapter.mm:
- WebGPU/BindGroup.h:
- WebGPU/BindGroup.mm:
- WebGPU/BindGroupLayout.h:
- WebGPU/BindGroupLayout.mm:
- WebGPU/Buffer.h:
- WebGPU/Buffer.mm:
- WebGPU/CommandBuffer.h:
- WebGPU/CommandBuffer.mm:
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePassEncoder.mm:
- WebGPU/ComputePipeline.h:
- WebGPU/ComputePipeline.mm:
- WebGPU/Device.h:
- WebGPU/Device.mm:
- WebGPU/Instance.h:
- WebGPU/Instance.mm:
- WebGPU/PipelineLayout.h:
- WebGPU/PipelineLayout.mm:
- WebGPU/QuerySet.h:
- WebGPU/QuerySet.mm:
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
- WebGPU/RenderBundle.h:
- WebGPU/RenderBundle.mm:
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
- WebGPU/RenderPipeline.h:
- WebGPU/RenderPipeline.mm:
- WebGPU/Sampler.h:
- WebGPU/Sampler.mm:
- WebGPU/ShaderModule.h:
- WebGPU/ShaderModule.mm:
- WebGPU/Surface.h:
- WebGPU/Surface.mm:
- WebGPU/SwapChain.h:
- WebGPU/SwapChain.mm:
- WebGPU/Texture.h:
- WebGPU/Texture.mm:
- WebGPU/TextureView.h:
- WebGPU/TextureView.mm:
- 2:59 PM Changeset in webkit [291497] by
-
- 5 edits2 adds in trunk
Allow history swipe in scroller with overscroll-behavior
https://bugs.webkit.org/show_bug.cgi?id=235851
Reviewed by Simon Fraser.
Source/WebCore:
Re-add code to allow history swipe. Does so by returning unhandled if a horizontal
swipe is used. Also add test to make sure history swipes are allowed in scrolling nodes
with overscroll-behavior.
Test: scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe-overscroll-behavior.html
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::handleWheelEventWithNode):
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::shouldRubberBand const):
(WebCore::ScrollingTreeScrollingNode::computeScrollPropagation const):
(WebCore::ScrollingTreeScrollingNode::shouldBlockScrollPropagation const): Deleted.
- page/scrolling/ScrollingTreeScrollingNode.h:
LayoutTests:
- scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe-overscroll-behavior-expected.txt: Added.
- scrollingcoordinator/mac/latching/horizontal-overflow-back-swipe-overscroll-behavior.html: Added.
- 2:53 PM Changeset in webkit [291496] by
-
- 5 edits in trunk/Source
Avoid calls to [CLLocationManager authorizationStatus] & [CLLocationManager locationServicesEnabled]
https://bugs.webkit.org/show_bug.cgi?id=237933
<rdar://89931043>
Reviewed by Geoffrey Garen.
Source/WebCore:
Avoid calls to [CLLocationManager authorizationStatus] & [CLLocationManager locationServicesEnabled]
for performance reasons since those are synchronous, potentially slow and called on the UIProcess
main thread.
Instead, rely on the fact that the locationManagerDidChangeAuthorization always gets called
asynchronously right after constructing the CLLocationManager with the actual authorization.
This simplifies our logic a bit too.
We now only call [CLLocationManager requestWhenInUseAuthorization] when locationManagerDidChangeAuthorization
gets called with kCLAuthorizationStatusNotDetermined asynchronously after construction.
If locationManagerDidChangeAuthorization gets called with an authorized enum value, we
call [CLLocationManager startUpdatingLocation] then (if the client is interested in locations, and not
merely in the authorization).
- platform/cocoa/CoreLocationGeolocationProvider.h:
- platform/cocoa/CoreLocationGeolocationProvider.mm:
(-[WebCLLocationManager initWithWebsiteIdentifier:client:mode:]):
(-[WebCLLocationManager locationManagerDidChangeAuthorization:]):
(WebCore::CoreLocationGeolocationProvider::CoreLocationGeolocationProvider):
(isAuthorizationGranted): Deleted.
(-[WebCLLocationManager initWithWebsiteIdentifier:client:]): Deleted.
(-[WebCLLocationManager start]): Deleted.
(-[WebCLLocationManager requestGeolocationAuthorization]): Deleted.
(WebCore::CoreLocationGeolocationProvider::start): Deleted.
(WebCore::CoreLocationGeolocationProvider::stop): Deleted.
Source/WebKit:
Minor changes to reflect API changes for our CoreLocation location manager.
- UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::providerStartUpdating):
(WebKit::WebGeolocationManagerProxy::providerStopUpdating):
- 1:09 PM Changeset in webkit [291495] by
-
- 3 edits in trunk/Source/WebCore
Avoid extra pointer dereference in EventListenerMap::m_entries
https://bugs.webkit.org/show_bug.cgi?id=238075
Reviewed by Geoffrey Garen.
This is a confirmed 0.5-0.8% progression on Speedometer according to A/B
bots.
- dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::clear):
(WebCore::EventListenerMap::add):
(WebCore::EventListenerMap::remove):
(WebCore::EventListenerMap::find):
(WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
(WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
(WebCore::EventListenerIterator::nextListener):
(WebCore::EventListenerMap::find const): Deleted.
- dom/EventListenerMap.h:
(WebCore::EventListenerMap::find const):
- 12:42 PM Changeset in webkit [291494] by
-
- 2 edits in trunk/Source/WebCore
Keep a strong reference to session in [WebCoreNSURLSessionDataTask _restart]
https://bugs.webkit.org/show_bug.cgi?id=238061
<rdar://88242622>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-18
Reviewed by Eric Carlson.
_session is a WeakObjCPtr<WebCoreNSURLSession> and since we're not using ARC self.session
returns a raw pointer to an object that may be deallocated and null out its loader on a different thread.
To prevent null crashes, keep a strong reference to the session when using it.
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession dealloc]):
(-[WebCoreNSURLSessionDataTask _restart]):
- 12:36 PM Changeset in webkit [291493] by
-
- 3 edits3 adds in trunk
REGRESSION (r290628): Scrubber makes a visual trail when scrubbing on tv.youtube.com
https://bugs.webkit.org/show_bug.cgi?id=238047
<rdar://problem/90451319>
Reviewed by Alan Bujtas.
Source/WebCore:
In r290628 I added a call to clearRepaintRects() when changing the backing sharing
target layer for a RenderLayer. However, for a layer using backing sharing, this
gets called twice during a normal compositing update, which has the effect of
clearing the cached repaint rects so that a layer repaint always computes new rects.
Thus, if a layer moved, we'd fail to repaint the old rect.
RenderLayerBacking::setBackingSharingLayers() already has logic to update repaint
rects when state changes, so we don't need this clearing.
Test: compositing/repaint/move-backing-sharing-layer.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setBackingProviderLayer):
LayoutTests:
- compositing/repaint/move-backing-sharing-layer-expected.txt: Added.
- compositing/repaint/move-backing-sharing-layer.html: Added.
- 12:19 PM Changeset in webkit [291492] by
-
- 18 edits in trunk
Remove push subscriptions when associated service worker registrations are removed
https://bugs.webkit.org/show_bug.cgi?id=237983
Reviewed by Youenn Fablet.
Source/WebKit:
When a ServiceWorkerRegistration is removed, we also need to remove its associated
PushSubscription. This can occur when:
- The application calls ServiceWorkerRegistration.unregister. This is implemented by having resolveUnregistrationJobInClient call unsubscribeFromPushService in webpushd. The identifier passed to unsubscribeFromPushService is now optional; if the identifier is not present, then we delete whatever PushSubscription is associated with the given scope URL.
- The user clears website data for a particular origin. This is implemented by having deleteWebsiteDataForOrigins invoke removePushSubscriptionsForOrigin in webpushd.
- The user clears all website data. This is implemented by having deleteWebsiteData invoke removeAllPushSubscriptions in webpushd.
Covered by new API tests.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::hasPushSubscriptionForTesting):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::unsubscribeFromPushService):
(WebKit::NetworkNotificationManager::removeAllPushSubscriptions):
(WebKit::NetworkNotificationManager::removePushSubscriptionsForOrigin):
- NetworkProcess/Notifications/NetworkNotificationManager.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
- Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _scopeURL:hasPushSubscriptionForTesting:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::hasPushSubscriptionForTesting):
- UIProcess/Network/NetworkProcessProxy.h:
- webpushd/PushService.h:
- webpushd/PushService.mm:
(WebPushD::UnsubscribeRequest::UnsubscribeRequest):
(WebPushD::UnsubscribeRequest::startInternal):
(WebPushD::PushService::unsubscribe):
(WebPushD::PushService::incrementSilentPushCount):
(WebPushD::PushService::removeRecordsForBundleIdentifier):
(WebPushD::PushService::removeRecordsForBundleIdentifierAndOrigin):
(WebPushD::PushService::removeRecordsImpl):
- webpushd/WebPushDaemon.h:
- webpushd/WebPushDaemon.mm:
(WebPushD::MessageInfo::removeAllPushSubscriptions::encodeReply):
(WebPushD::MessageInfo::removePushSubscriptionsForOrigin::encodeReply):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::unsubscribeFromPushService):
(WebPushD::Daemon::removeAllPushSubscriptions):
(WebPushD::Daemon::removePushSubscriptionsForOrigin):
Tools:
Add new tests to make sure that we delete push subscriptions when unregistering a service
worker or deleting website data.
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 12:11 PM Changeset in webkit [291491] by
-
- 4 edits in trunk
Trigger PDF download in captive portal mode instead of using PDF viewer
https://bugs.webkit.org/show_bug.cgi?id=237245
rdar://problem/89525531
Reviewed by Chris Dumez.
Source/WebKit:
This is a stopgap solution since PDF.js needs more cycles to polish.
Added API test WKDownload.CaptivePortalPDF.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForResponseShared):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
Add API test for captive portal pdf behavior.
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(tempPDFThatDoesNotExist):
- 11:48 AM Changeset in webkit [291490] by
-
- 7 edits in trunk/Tools
[git-webkit] Make radar conditional on authentication
https://bugs.webkit.org/show_bug.cgi?id=238051
<rdar://problem/90384655>
Reviewed by Aakash Jain.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:
(Tracker.init): Only instantiate client with valid authentication.
(Tracker.authentication): Catch exceptions from failed authentication.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.init): Only instantiate Radar as a tracker with valid authentication.
Canonical link: https://commits.webkit.org/248602@main
- 11:06 AM Changeset in webkit [291489] by
-
- 3 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291437. rdar://problem/90445115
Unreviewed, reverting r290835.
https://bugs.webkit.org/show_bug.cgi?id=238044
Disruptive change
Reverted changeset:
"[iOS] Hard link AVPictureInPictureController"
https://bugs.webkit.org/show_bug.cgi?id=237227
https://commits.webkit.org/r290835
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291437 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:06 AM Changeset in webkit [291488] by
-
- 3 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291429. rdar://problem/90445115
Unreviewed, reverting r291352.
https://bugs.webkit.org/show_bug.cgi?id=238039
Disruptive change
Reverted changeset:
"Incorrect header name used in has_include"
https://bugs.webkit.org/show_bug.cgi?id=237914
https://commits.webkit.org/r291352
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:45 AM Changeset in webkit [291487] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Add stop position to the range request
https://bugs.webkit.org/show_bug.cgi?id=238028
Reviewed by Philippe Normand.
Currently, the range requests performed by WebKitWebSourceGStreamer indicate a range
start position but not a range stop one, even though it's set in the internal
members->stopPosition attribute.
This may not be a problem when WebKitWebSrc is used as a source for the whole video,
but certainly is when it's used as an embedded source inside adaptive demux
(replacing SoupHttpSrc). It causes decoding errors in some MPEG-DASH streams.
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/issues/813
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/814
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: Apply stopPosition to the range request when it's valid.
- 8:39 AM Changeset in webkit [291486] by
-
- 2 edits in trunk/Tools
[Flatpak] Pass extra webkit-flatpak args to sub-command
https://bugs.webkit.org/show_bug.cgi?id=238027
Reviewed by Carlos Garcia Campos.
This adds the abillity to run something like:
webkit-flatpak --command=echo -- --help
Where our script doesn't parse anything after
--and it gets passed to the subcommand.
- flatpak/flatpakutils.py:
(extract_extra_command_args):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.setup_dev_env):
- 8:08 AM Changeset in webkit [291485] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r290356-r290351?): [ iOS EWS ] 3 imported/w3c/web-platform-tests/service-workers/service-worker/* tests are constant text failures.
https://bugs.webkit.org/show_bug.cgi?id=237160
<rdar://problem/89440067>
Reviewed by Chris Dumez.
When we try reusing a resource in the MemoryCache that was provided by a service worker, we might need to revalidate it.
In that case, we might add revalidation headers that will show up in service workers fetch event request.
To prevent this, we reload instead of revalidating at document level.
The service worker will then be able to revalidate itself the resource since it is probably in its memory cache.
Covered by test that is no longer flaky.
- loader/cache/CachedResourceLoader.cpp:
- 7:31 AM Changeset in webkit [291484] by
-
- 4 edits in trunk
[GStreamer] Migrate gst-full support to 1.20
https://bugs.webkit.org/show_bug.cgi?id=237772
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-18
Reviewed by Xabier Rodriguez-Calvar.
.:
- Source/cmake/GStreamerChecks.cmake:
Source/WebCore:
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::registerWebKitGStreamerElements): GStreamer 1.20 no longer requires manual
initialization of gst-full. It is done during the gst_init().
- 7:27 AM Changeset in webkit [291483] by
-
- 34 edits50 adds in trunk
[GStreamer] Initial import of the GstWebRTC backend
https://bugs.webkit.org/show_bug.cgi?id=236540
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-18
Reviewed by Carlos Garcia Campos and Xabier Rodriguez-Calvar.
.:
Enable GstWebRTC by default if a recent-enough (>= 1.20) version is available.
- Source/cmake/FindGStreamer.cmake:
- Source/cmake/GStreamerChecks.cmake:
- Source/cmake/GStreamerDefinitions.cmake:
- Source/cmake/GStreamerDependencies.cmake:
Source/WebCore:
Initial GstWebRTC backend. A lot of features unimplemented still, but we will incrementally
improve the layout test coverage in follow-up patches. Most notable short-comings currently:
- DataChannel support is incomplete (bug 235879)
- Network traffic not routed through Network process yet
- Stats support incomplete
- DTMF support unimplemented
- ICE restarts not supported yet
- Re-negotiation unlikely to work
- Simulcast not handled yet
- Balanced bundle not supported
- RTX and FEC un-tested, but shouldn't be hard to fix
- Modules/mediastream/MediaDevices.cpp:
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::generateCertificate):
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
- Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp: Added.
(WebCore::GStreamerDataChannelHandler::fromRTCDataChannelInit):
(WebCore::GStreamerDataChannelHandler::channelEvent):
(WebCore::GStreamerDataChannelHandler::GStreamerDataChannelHandler):
(WebCore::GStreamerDataChannelHandler::~GStreamerDataChannelHandler):
(WebCore::GStreamerDataChannelHandler::setClient):
(WebCore::GStreamerDataChannelHandler::sendStringData):
(WebCore::GStreamerDataChannelHandler::sendRawData):
(WebCore::GStreamerDataChannelHandler::close):
(WebCore::GStreamerDataChannelHandler::checkState):
(WebCore::GStreamerDataChannelHandler::readyStateChanged):
(WebCore::GStreamerDataChannelHandler::onMessageData):
(WebCore::GStreamerDataChannelHandler::onMessageString):
(WebCore::GStreamerDataChannelHandler::onError):
(WebCore::GStreamerDataChannelHandler::onBufferedAmountLow):
(WebCore::GStreamerDataChannelHandler::postTask):
- Modules/mediastream/gstreamer/GStreamerDataChannelHandler.h: Added.
- Modules/mediastream/gstreamer/GStreamerDtlsTransportBackend.cpp: Added.
(WebCore::GStreamerDtlsTransportBackend::GStreamerDtlsTransportBackend):
(WebCore::GStreamerDtlsTransportBackend::~GStreamerDtlsTransportBackend):
(WebCore::GStreamerDtlsTransportBackend::iceTransportBackend):
(WebCore::GStreamerDtlsTransportBackend::registerClient):
(WebCore::GStreamerDtlsTransportBackend::unregisterClient):
(WebCore::GStreamerDtlsTransportBackend::stateChanged):
- Modules/mediastream/gstreamer/GStreamerDtlsTransportBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerIceTransportBackend.cpp: Added.
(WebCore::GStreamerIceTransportBackend::GStreamerIceTransportBackend):
(WebCore::GStreamerIceTransportBackend::~GStreamerIceTransportBackend):
(WebCore::GStreamerIceTransportBackend::iceTransportChanged):
(WebCore::GStreamerIceTransportBackend::registerClient):
(WebCore::GStreamerIceTransportBackend::unregisterClient):
(WebCore::GStreamerIceTransportBackend::stateChanged):
(WebCore::GStreamerIceTransportBackend::gatheringStateChanged):
- Modules/mediastream/gstreamer/GStreamerIceTransportBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp: Added.
(WebCore::GStreamerMediaEndpoint::GStreamerMediaEndpoint):
(WebCore::GStreamerMediaEndpoint::initializePipeline):
(WebCore::GStreamerMediaEndpoint::~GStreamerMediaEndpoint):
(WebCore::GStreamerMediaEndpoint::teardownPipeline):
(WebCore::GStreamerMediaEndpoint::handleMessage):
(WebCore::GStreamerMediaEndpoint::disposeElementChain):
(WebCore::GStreamerMediaEndpoint::setConfiguration):
(WebCore::GStreamerMediaEndpoint::restartIce):
(WebCore::fetchDescription):
(WebCore::fetchSignalingState):
(WebCore::descriptionsFromWebRTCBin):
(WebCore::GStreamerMediaEndpoint::doSetLocalDescription):
(WebCore::GStreamerMediaEndpoint::setRemoteDescriptionSucceeded):
(WebCore::GStreamerMediaEndpoint::doSetRemoteDescription):
(WebCore::SetDescriptionCallData::SetDescriptionCallData):
(WebCore::GStreamerMediaEndpoint::setDescription):
(WebCore::GStreamerMediaEndpoint::storeRemoteMLineInfo):
(WebCore::GStreamerMediaEndpoint::configureAndLinkSource):
(WebCore::GStreamerMediaEndpoint::requestPad):
(WebCore::GStreamerMediaEndpoint::addTrack):
(WebCore::GStreamerMediaEndpoint::removeTrack):
(WebCore::GStreamerMediaEndpoint::doCreateOffer):
(WebCore::GStreamerMediaEndpoint::doCreateAnswer):
(WebCore::GStreamerMediaEndpoint::initiate):
(WebCore::GStreamerMediaEndpoint::getStats):
(WebCore::GStreamerMediaEndpoint::mediaStreamFromRTCStream):
(WebCore::GStreamerMediaEndpoint::addRemoteStream):
(WebCore::GStreamerMediaEndpoint::removeRemoteStream):
(WebCore::GStreamerMediaEndpoint::createTransceiverBackends):
(WebCore::GStreamerMediaEndpoint::addTransceiver):
(WebCore::GStreamerMediaEndpoint::createSourceForTrack):
(WebCore::GStreamerMediaEndpoint::setSenderSourceFromTrack):
(WebCore::GStreamerMediaEndpoint::transceiverBackendFromSender):
(WebCore::GStreamerMediaEndpoint::addIceCandidate):
(WebCore::GStreamerMediaEndpoint::createDataChannel):
(WebCore::GStreamerMediaEndpoint::onDataChannel):
(WebCore::GStreamerMediaEndpoint::close):
(WebCore::GStreamerMediaEndpoint::stop):
(WebCore::GStreamerMediaEndpoint::suspend):
(WebCore::GStreamerMediaEndpoint::resume):
(WebCore::GStreamerMediaEndpoint::onNegotiationNeeded):
(WebCore::GStreamerMediaEndpoint::onIceConnectionChange):
(WebCore::GStreamerMediaEndpoint::onIceGatheringChange):
(WebCore::GStreamerMediaEndpoint::onIceCandidate):
(WebCore::GStreamerMediaEndpoint::createSessionDescriptionSucceeded):
(WebCore::GStreamerMediaEndpoint::createSessionDescriptionFailed):
(WebCore::GStreamerMediaEndpoint::collectTransceivers):
(WebCore::GStreamerMediaEndpoint::gatherStatsForLogging):
(WebCore::RTCStatsLogger::RTCStatsLogger):
(WebCore::RTCStatsLogger::toJSONString const):
(WebCore::GStreamerMediaEndpoint::processStats):
(WebCore::GStreamerMediaEndpoint::onStatsDelivered):
(WebCore::GStreamerMediaEndpoint::startLoggingStats):
(WebCore::GStreamerMediaEndpoint::stopLoggingStats):
(WebCore::GStreamerMediaEndpoint::logChannel const):
(WebCore::GStreamerMediaEndpoint::statsLogInterval const):
(WebCore::GStreamerMediaEndpoint::gatherDecoderImplementationName):
(WTF::LogArgument<WebCore::RTCStatsLogger>::toString):
- Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h: Added.
(WebCore::GStreamerMediaEndpoint::create):
(WebCore::GStreamerMediaEndpoint::isStopped const):
(WebCore::GStreamerMediaEndpoint::isNegotiationNeeded const):
(WebCore::GStreamerMediaEndpoint::pipeline const):
- Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp: Added.
(WebCore::createGStreamerPeerConnectionBackend):
(WebCore::PeerConnectionBackend::receiverCapabilities):
(WebCore::PeerConnectionBackend::senderCapabilities):
(WebCore::GStreamerPeerConnectionBackend::GStreamerPeerConnectionBackend):
(WebCore::GStreamerPeerConnectionBackend::suspend):
(WebCore::GStreamerPeerConnectionBackend::resume):
(WebCore::GStreamerPeerConnectionBackend::restartIce):
(WebCore::GStreamerPeerConnectionBackend::setConfiguration):
(WebCore::GStreamerPeerConnectionBackend::getStats):
(WebCore::backendFromRTPSender):
(WebCore::GStreamerPeerConnectionBackend::doSetLocalDescription):
(WebCore::GStreamerPeerConnectionBackend::doSetRemoteDescription):
(WebCore::GStreamerPeerConnectionBackend::doCreateOffer):
(WebCore::GStreamerPeerConnectionBackend::doCreateAnswer):
(WebCore::GStreamerPeerConnectionBackend::close):
(WebCore::GStreamerPeerConnectionBackend::doStop):
(WebCore::GStreamerPeerConnectionBackend::doAddIceCandidate):
(WebCore::GStreamerPeerConnectionBackend::createReceiver):
(WebCore::GStreamerPeerConnectionBackend::createDataChannelHandler):
(WebCore::findExistingSender):
(WebCore::GStreamerPeerConnectionBackend::addTrack):
(WebCore::GStreamerPeerConnectionBackend::addTransceiverFromTrackOrKind):
(WebCore::GStreamerPeerConnectionBackend::addTransceiver):
(WebCore::GStreamerPeerConnectionBackend::setSenderSourceFromTrack):
(WebCore::backendFromRTPTransceiver):
(WebCore::GStreamerPeerConnectionBackend::existingTransceiver):
(WebCore::GStreamerPeerConnectionBackend::newRemoteTransceiver):
(WebCore::GStreamerPeerConnectionBackend::collectTransceivers):
(WebCore::GStreamerPeerConnectionBackend::removeTrack):
(WebCore::GStreamerPeerConnectionBackend::applyRotationForOutgoingVideoSources):
(WebCore::GStreamerPeerConnectionBackend::gatherDecoderImplementationName):
(WebCore::GStreamerPeerConnectionBackend::isNegotiationNeeded const):
- Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerRtpReceiverBackend.cpp: Added.
(WebCore::GStreamerRtpReceiverBackend::getParameters):
(WebCore::GStreamerRtpReceiverBackend::getContributingSources const):
(WebCore::GStreamerRtpReceiverBackend::getSynchronizationSources const):
(WebCore::GStreamerRtpReceiverBackend::createSource):
(WebCore::GStreamerRtpReceiverBackend::rtcRtpTransformBackend):
(WebCore::GStreamerRtpReceiverBackend::dtlsTransportBackend):
- Modules/mediastream/gstreamer/GStreamerRtpReceiverBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerRtpReceiverTransformBackend.cpp: Added.
(WebCore::mediaTypeFromReceiver):
(WebCore::GStreamerRtpReceiverTransformBackend::GStreamerRtpReceiverTransformBackend):
(WebCore::GStreamerRtpReceiverTransformBackend::~GStreamerRtpReceiverTransformBackend):
(WebCore::GStreamerRtpReceiverTransformBackend::setTransformableFrameCallback):
(WebCore::GStreamerRtpReceiverTransformBackend::requestKeyFrame):
- Modules/mediastream/gstreamer/GStreamerRtpReceiverTransformBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp: Added.
(WebCore::updateTrackSource):
(WebCore::GStreamerRtpSenderBackend::startSource):
(WebCore::GStreamerRtpSenderBackend::stopSource):
(WebCore::GStreamerRtpSenderBackend::replaceTrack):
(WebCore::GStreamerRtpSenderBackend::getParameters const):
(WebCore::GStreamerRtpSenderBackend::setParameters):
(WebCore::GStreamerRtpSenderBackend::createDTMFBackend):
(WebCore::GStreamerRtpSenderBackend::rtcRtpTransformBackend):
(WebCore::GStreamerRtpSenderBackend::setMediaStreamIds):
(WebCore::GStreamerRtpSenderBackend::dtlsTransportBackend):
- Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerRtpSenderTransformBackend.cpp: Added.
(WebCore::mediaTypeFromSender):
(WebCore::GStreamerRtpSenderTransformBackend::GStreamerRtpSenderTransformBackend):
(WebCore::GStreamerRtpSenderTransformBackend::~GStreamerRtpSenderTransformBackend):
(WebCore::GStreamerRtpSenderTransformBackend::setTransformableFrameCallback):
(WebCore::GStreamerRtpSenderTransformBackend::requestKeyFrame):
- Modules/mediastream/gstreamer/GStreamerRtpSenderTransformBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp: Added.
(WebCore::GStreamerRtpTransceiverBackend::GStreamerRtpTransceiverBackend):
(WebCore::GStreamerRtpTransceiverBackend::createReceiverBackend):
(WebCore::GStreamerRtpTransceiverBackend::createSenderBackend):
(WebCore::GStreamerRtpTransceiverBackend::direction const):
(WebCore::GStreamerRtpTransceiverBackend::currentDirection const):
(WebCore::GStreamerRtpTransceiverBackend::setDirection):
(WebCore::GStreamerRtpTransceiverBackend::mid):
(WebCore::GStreamerRtpTransceiverBackend::stop):
(WebCore::GStreamerRtpTransceiverBackend::stopped const):
(WebCore::GStreamerRtpTransceiverBackend::setCodecPreferences):
- Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerRtpTransformBackend.cpp: Added.
(WebCore::GStreamerRtpTransformBackend::setInputCallback):
(WebCore::GStreamerRtpTransformBackend::clearTransformableFrameCallback):
(WebCore::GStreamerRtpTransformBackend::processTransformedFrame):
- Modules/mediastream/gstreamer/GStreamerRtpTransformBackend.h: Added.
(WebCore::GStreamerRtpTransformBackend::GStreamerRtpTransformBackend):
- Modules/mediastream/gstreamer/GStreamerSctpTransportBackend.cpp: Added.
(WebCore::toRTCSctpTransportState):
(WebCore::GStreamerSctpTransportBackend::GStreamerSctpTransportBackend):
(WebCore::GStreamerSctpTransportBackend::~GStreamerSctpTransportBackend):
(WebCore::GStreamerSctpTransportBackend::dtlsTransportBackend):
(WebCore::GStreamerSctpTransportBackend::registerClient):
(WebCore::GStreamerSctpTransportBackend::unregisterClient):
(WebCore::GStreamerSctpTransportBackend::stateChanged):
- Modules/mediastream/gstreamer/GStreamerSctpTransportBackend.h: Added.
- Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp: Added.
(WebCore::fillRTCStats):
(WebCore::fillRTCRTPStreamStats):
(WebCore::fillRTCCodecStats):
(WebCore::fillInboundRTPStreamStats):
(WebCore::fillOutboundRTPStreamStats):
(WebCore::fillRTCPeerConnectionStats):
(WebCore::fillRTCTransportStats):
(WebCore::fillReportCallback):
(WebCore::CallbackHolder::CallbackHolder):
(WebCore::GStreamerStatsCollector::getStats):
- Modules/mediastream/gstreamer/GStreamerStatsCollector.h: Added.
(WebCore::GStreamerStatsCollector::create):
(WebCore::GStreamerStatsCollector::setElement):
- Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp: Added.
(WebCore::toRTCIceComponent):
(WebCore::toRTCIceProtocol):
(WebCore::toRTCIceTcpCandidateType):
(WebCore::toRTCIceCandidateType):
(WebCore::toRTCError):
(WebCore::toWebRTCBitRatePriority):
(WebCore::fromRTCEncodingParameters):
(WebCore::fromWebRTCBitRatePriority):
(WebCore::toRTCEncodingParameters):
(WebCore::toRTCRtpSendParameters):
(WebCore::ensureDebugCategoryInitialized):
(WebCore::parseIceCandidateSDP):
(WebCore::x509Serialize):
(WebCore::privateKeySerialize):
(WebCore::generateCertificate):
(WebCore::sdpMediaHasAttributeKey):
- Modules/mediastream/gstreamer/GStreamerWebRTCUtils.h: Added.
(WebCore::toRTCRtpTransceiverDirection):
(WebCore::fromRTCRtpTransceiverDirection):
(WebCore::toSessionDescriptionType):
(WebCore::fromSessionDescriptionType):
(WebCore::toSignalingState):
(WebCore::toRTCIceConnectionState):
(WebCore::toRTCDtlsTransportState):
(WebCore::toRTCIceTransportState):
(WebCore::toRTCIceGatheringState):
(WebCore::bundlePolicyFromConfiguration):
(WebCore::iceTransportPolicyFromConfiguration):
(WebCore::toRTCErrorDetailType):
- platform/GStreamer.cmake:
- platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::handleNewDeinterleavePad):
- platform/audio/gstreamer/GStreamerAudioStreamDescription.h:
- platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::adoptGRef):
(WTF::refGPtr<GstWebRTCRTPReceiver>):
(WTF::derefGPtr<GstWebRTCRTPReceiver>):
(WTF::refGPtr<GstWebRTCRTPSender>):
(WTF::derefGPtr<GstWebRTCRTPSender>):
(WTF::refGPtr<GstWebRTCRTPTransceiver>):
(WTF::derefGPtr<GstWebRTCRTPTransceiver>):
(WTF::refGPtr<GstWebRTCDataChannel>):
(WTF::derefGPtr<GstWebRTCDataChannel>):
(WTF::refGPtr<GstWebRTCDTLSTransport>):
(WTF::derefGPtr<GstWebRTCDTLSTransport>):
(WTF::refGPtr<GstWebRTCICETransport>):
(WTF::derefGPtr<GstWebRTCICETransport>):
- platform/graphics/gstreamer/GRefPtrGStreamer.h:
- platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::capsMediaType):
- platform/graphics/gstreamer/GUniquePtrGStreamer.h:
- platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::createAudioSourceProvider):
- platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp:
(WebCore::GStreamerAudioCapturer::GStreamerAudioCapturer):
(WebCore::GStreamerAudioCapturer::createConverter):
- platform/mediastream/gstreamer/GStreamerCapturer.cpp:
(WebCore::GStreamerCapturer::createSource):
- platform/mediastream/gstreamer/GStreamerDTMFSenderBackend.cpp: Added.
(WebCore::GStreamerDTMFSenderBackend::GStreamerDTMFSenderBackend):
(WebCore::GStreamerDTMFSenderBackend::~GStreamerDTMFSenderBackend):
(WebCore::GStreamerDTMFSenderBackend::canInsertDTMF):
(WebCore::GStreamerDTMFSenderBackend::playTone):
(WebCore::GStreamerDTMFSenderBackend::tones const):
(WebCore::GStreamerDTMFSenderBackend::duration const):
(WebCore::GStreamerDTMFSenderBackend::interToneGap const):
(WebCore::GStreamerDTMFSenderBackend::onTonePlayed):
- platform/mediastream/gstreamer/GStreamerDTMFSenderBackend.h: Added.
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(webkitMediaStreamSrcAddTrack):
- platform/mediastream/gstreamer/GStreamerVideoEncoder.cpp:
(webkit_webrtc_video_encoder_class_init):
- platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp: Added.
(WebCore::RealtimeIncomingAudioSourceGStreamer::RealtimeIncomingAudioSourceGStreamer):
(WebCore::RealtimeIncomingAudioSourceGStreamer::~RealtimeIncomingAudioSourceGStreamer):
(WebCore::RealtimeIncomingAudioSourceGStreamer::startProducingData):
(WebCore::RealtimeIncomingAudioSourceGStreamer::stopProducingData):
(WebCore::RealtimeIncomingAudioSourceGStreamer::capabilities):
(WebCore::RealtimeIncomingAudioSourceGStreamer::settings):
(WebCore::RealtimeIncomingAudioSourceGStreamer::dispatchSample):
- platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.h: Added.
(WebCore::RealtimeIncomingAudioSourceGStreamer::create):
(isType):
- platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp: Added.
(WebCore::RealtimeIncomingSourceGStreamer::RealtimeIncomingSourceGStreamer):
(WebCore::RealtimeIncomingSourceGStreamer::lockValve const):
(WebCore::RealtimeIncomingSourceGStreamer::releaseValve const):
(WebCore::RealtimeIncomingSourceGStreamer::registerClient):
- platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.h: Added.
(WebCore::RealtimeIncomingSourceGStreamer::bin):
(WebCore::RealtimeIncomingSourceGStreamer::dispatchSample):
- platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp: Added.
(WebCore::RealtimeIncomingVideoSourceGStreamer::RealtimeIncomingVideoSourceGStreamer):
(WebCore::RealtimeIncomingVideoSourceGStreamer::startProducingData):
(WebCore::RealtimeIncomingVideoSourceGStreamer::stopProducingData):
(WebCore::RealtimeIncomingVideoSourceGStreamer::capabilities):
(WebCore::RealtimeIncomingVideoSourceGStreamer::settings):
(WebCore::RealtimeIncomingVideoSourceGStreamer::settingsDidChange):
(WebCore::RealtimeIncomingVideoSourceGStreamer::dispatchSample):
- platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.h: Added.
(WebCore::RealtimeIncomingVideoSourceGStreamer::create):
(isType):
- platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp: Added.
(WebCore::RealtimeOutgoingAudioSourceGStreamer::RealtimeOutgoingAudioSourceGStreamer):
(WebCore::RealtimeOutgoingAudioSourceGStreamer::setPayloadType):
- platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.h: Added.
- platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp: Added.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::RealtimeOutgoingMediaSourceGStreamer):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::~RealtimeOutgoingMediaSourceGStreamer):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setSource):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::start):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::stop):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::sourceMutedChanged):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::sourceEnabledChanged):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::initializeFromTrack):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::link):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setSinkPad):
- platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.h: Added.
(WebCore::RealtimeOutgoingMediaSourceGStreamer::source const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::allowedCaps const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::pad const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::sender const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::bin const):
(WebCore::RealtimeOutgoingMediaSourceGStreamer::setPayloadType):
- platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp: Added.
(WebCore::RealtimeOutgoingVideoSourceGStreamer::RealtimeOutgoingVideoSourceGStreamer):
(WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType):
- platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.h: Added.
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setWebRTCH265Support):
(WebCore::Internals::setWebRTCVP9Support):
(WebCore::Internals::setWebRTCVP9VTBSupport):
(WebCore::Internals::setEnableWebRTCEncryption):
(WebCore::Internals::setUseDTLS10):
Source/WTF:
- Scripts/Preferences/WebPreferences.yaml: Unconditionally enable WebRTC when GstWebRTC is
enabled. We don't have a runtime Provider yet.
- Scripts/Preferences/WebPreferencesExperimental.yaml: Disable encoded transforms unless libwebrtc is enabled.
- wtf/glib/GRefPtr.cpp: Add GArray handling.
(WTF::refGPtr):
(WTF::derefGPtr):
- wtf/glib/GRefPtr.h:
Tools:
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox): Allow libnice debug log environment variable in runtime sandbox.
LayoutTests:
- platform/glib/TestExpectations: Flag most WebRTC as failing. During this first development
cycle I focused mostly on fixing crashes and only fixed a few failures. The remaining ones
will be adressed in follow-up patches.
- platform/glib/fast/mediastream/RTCPeerConnection-localDescription-expected.txt: Added.
- platform/glib/fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt: Added.
- platform/glib/fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt: Added.
- platform/glib/fast/mediastream/RTCPeerConnection-stable-expected.txt: Added.
- 7:19 AM Changeset in webkit [291482] by
-
- 5 edits1 add in trunk
[GLIB] Make it possible to call GRefPtr::outPtr() multiple times wihtout an explicit clear
https://bugs.webkit.org/show_bug.cgi?id=238070
Reviewed by Adrian Perez de Castro.
Source/WTF:
Clear the GRefPtr before returning the value in outPtr(), similar to what GUniqueOutPtr does, since it's easy to
forget to explicitly call clear from the callers.
- wtf/glib/GRefPtr.h:
(WTF::GRefPtr::outPtr):
Tools:
Add a unit tests for GRefPtr.
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/Tests/WTF/glib/GRefPtr.cpp: Added.
(TestWebKitAPI::GWeakPtr::GWeakPtr):
(TestWebKitAPI::GWeakPtr::~GWeakPtr):
(TestWebKitAPI::GWeakPtr::set):
(TestWebKitAPI::TEST):
- 6:49 AM Changeset in webkit [291481] by
-
- 17 edits in trunk/Source/WebCore
[IFC][Integration] Rename InlineIterator::Line::closestRun* to closestBoxFor*
https://bugs.webkit.org/show_bug.cgi?id=238064
Reviewed by Antti Koivisto.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::localCaretRectForCharacterOffset):
- dom/Position.cpp:
(WebCore::Position::upstream const):
(WebCore::Position::downstream const):
(WebCore::Position::rendersInDifferentPosition const):
(WebCore::Position::inlineBoxAndOffset const):
(WebCore::searchAheadForBetterMatch):
(WebCore::Position::inlineRunAndOffset const): Deleted.
- dom/Position.h:
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::directionOfSelection):
- editing/InlineRunAndOffset.h:
- editing/RenderedPosition.cpp:
(WebCore::RenderedPosition::RenderedPosition):
(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):
(WebCore::RenderedPosition::isEquivalent const):
(WebCore::RenderedPosition::bidiLevelOnLeft const):
(WebCore::RenderedPosition::bidiLevelOnRight const):
(WebCore::RenderedPosition::leftBoundaryOfBidiRun):
(WebCore::RenderedPosition::rightBoundaryOfBidiRun):
(WebCore::RenderedPosition::atLeftBoundaryOfBidiRun const):
(WebCore::RenderedPosition::atRightBoundaryOfBidiRun const):
(WebCore::RenderedPosition::absoluteRect const):
- editing/RenderedPosition.h:
(WebCore::RenderedPosition::line const):
(WebCore::RenderedPosition::atLeftmostOffsetInBox const):
(WebCore::RenderedPosition::atRightmostOffsetInBox const):
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::inlineBoxAndOffset const):
(WebCore::VisiblePosition::localCaretRect const):
(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):
(WebCore::VisiblePosition::inlineRunAndOffset const): Deleted.
- editing/VisiblePosition.h:
- editing/VisibleUnits.cpp:
(WebCore::isTextOrLineBreakBox):
(WebCore::previousTextOrLineBreakBox):
(WebCore::nextTextOrLineBreakBox):
(WebCore::startTextOrLineBreakBox):
(WebCore::endTextOrLineBreakBox):
(WebCore::logicallyPreviousBox):
(WebCore::logicallyNextBox):
(WebCore::wordBreakIteratorForMinOffsetBoundary):
(WebCore::wordBreakIteratorForMaxOffsetBoundary):
(WebCore::visualWordPosition):
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
(WebCore::isTextOrLineBreakRun): Deleted.
(WebCore::previousTextOrLineBreakRun): Deleted.
(WebCore::nextTextOrLineBreakRun): Deleted.
(WebCore::startTextOrLineBreakRun): Deleted.
(WebCore::endTextOrLineBreakRun): Deleted.
(WebCore::logicallyPreviousRun): Deleted.
(WebCore::logicallyNextRun): Deleted.
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::closestBoxForPoint const):
(WebCore::InlineIterator::Line::closestBoxForLogicalLeftPosition const):
(WebCore::InlineIterator::Line::closestRunForPoint const): Deleted.
(WebCore::InlineIterator::Line::closestRunForLogicalLeftPosition const): Deleted.
- layout/integration/InlineIteratorLine.h:
- rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForText):
(WebCore::computeCaretRectForLineBreak):
(WebCore::computeCaretRectForSVGInlineText):
(WebCore::computeCaretRectForBox):
(WebCore::computeCaretRectForBlock):
(WebCore::computeLocalCaretRect):
- rendering/CaretRectComputation.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::positionForRun):
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderObject.h:
- 6:30 AM Changeset in webkit [291480] by
-
- 5 edits in trunk/Source/WebCore
[Linux] GBMDevice as a thread-specific object is problematic
https://bugs.webkit.org/show_bug.cgi?id=237758
<rdar://problem/90476889>
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-18
Reviewed by Alejandro G. Castro.
Per-thread GBMDevice instances (and the internal gbm_device objects) can
end up causing trouble if the gbm_bo objects spawned from it are moved
across threads and used after the originating thread (and that thread's
GBMDevice instance) is destroyed. This can happen with a GStreamer
pipeline where repeated playback is possibly moved across different
threads.
The original intention was to preemptively avoid any thread-safety
issues in the libgbm implementations but we haven't seen any yet. That
might change down the line once we adapt against implementations from
different vendors, at which point the most sensible solution would be
to deploy a specific thread on which all libgbm operations would be
handled.
- platform/graphics/gbm/GBMBufferSwapchain.cpp:
(WebCore::GBMBufferSwapchain::getBuffer):
- platform/graphics/gbm/GBMDevice.cpp:
(WebCore::GBMDevice::singleton):
(WebCore::GBMDevice::GBMDevice):
(WebCore::GBMDevice::~GBMDevice):
(WebCore::threadSpecificDevice): Deleted.
(WebCore::GBMDevice::get): Deleted.
- platform/graphics/gbm/GBMDevice.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(WebCore::GraphicsContextGLANGLE::EGLImageBacking::reset):
- 5:59 AM Changeset in webkit [291479] by
-
- 3 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Merge r291475 - [WPE][GTK] Fix a crash after r290360
https://bugs.webkit.org/show_bug.cgi?id=237917
Reviewed by Youenn Fablet.
When AuxiliaryProcess::shutDown is called for the WebProcess there might be pages not closed yet, for example
when swapping process on navigation, the close message is sent to the page after the shutdown. In the case of
GTK and WPE ports the pages are closed before stopping the run loop to ensure associated resources (like GPU
resources) are released. Closing the last page makes the process termination allowed, which ends up calling
AuxiliaryProcess::terminate again. Also, when the shutdown message is received we don't want to ask again the UI
process whether the process can be terminated, since the UI process asked it.
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::enableTermination): Return early if m_isInShutDown is true.
(WebKit::AuxiliaryProcess::shutDown): Set m_isInShutDown for the scope.
- Shared/AuxiliaryProcess.h:
- 5:59 AM Changeset in webkit [291478] by
-
- 7 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Merge r291472 - Remove AuxiliaryProcess termination timeout
https://bugs.webkit.org/show_bug.cgi?id=238012
Reviewed by Chris Dumez.
It was only used by the plugin process, now it's always set to 0 for all processes, so it's useless.
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::AuxiliaryProcess):
(WebKit::AuxiliaryProcess::disableTermination):
(WebKit::AuxiliaryProcess::enableTermination):
(WebKit::AuxiliaryProcess::terminationTimerFired): Deleted.
- Shared/AuxiliaryProcess.h:
(WebKit::AuxiliaryProcess::setTerminationTimeout): Deleted.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- 5:18 AM Changeset in webkit [291477] by
-
- 21 edits in trunk
Recycling a webgl context when it has been lost and restored causes a crash
https://bugs.webkit.org/show_bug.cgi?id=238024
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-18
Reviewed by Geoffrey Garen.
Source/WebCore:
Simulated context lost makes WebGLRenderingContextBase::m_context = nullptr
Real context lost preserves WebGLRenderingContextBase::m_context.
WebGLRenderingContextBase::maybeRestoreContext() used m_context.
The intention was that simulated context lost never invokes maybeRestoreContext()
as the timer to run maybeRestoreContext() is started only on real context lost.
However, it is possible to invoke simulated context lost after a real context lost,
but before the timer triggers maybeRestoreContext().
The sequence would be:
- Lose the context somehow
- Wait for webglcontextlost, use event.preventDefault() to request a restore.
- Before restore happens, lose the context via simulated context lost. This can be done by creating many contexts or via the WEBGL_lose_context.loseContext().
- maybeRestoreContext() would query m_context->getGraphicsResetStatusARB() for console log reasons, trying to explain to the developer why the context was lost. In case simulated context lost set the m_context == nullptr, this would crash.
getGraphicsResetStatusARB() has likely not been accurate for any platform ever.
For ANGLE, it is unimplemented and cannot pinpoint which context caused the context lost.
Just remove getGraphicsResetStatusARB() use from maybeRestoreContext(), this prevents
the crash. Remove it also from WebKit use altogether, it is never used for anything.
Adds the case to webgl/max-active-contexts-webglcontextlost-prevent-default.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
- loader/FrameLoaderClient.h:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
- platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:
- platform/graphics/opengl/ExtensionsGLOpenGLES.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Source/WebKit:
Remove GraphicsContextGL::getGraphicsResetStatusARB(), it's unused now.
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
(getActiveUniformBlockiv):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::markContextLost):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
LayoutTests:
Creating excessive amount of contexts will lose the oldest context via
"simulated context lost" logic, making the contexts non-restorable.
Previously the test tried to test that requesting a restore on a context that
had simulated context lost would not restore. However, the test was invalid,
as it asserted that the context is still lost immediately after preventDefault():
event.preventDefault();
if (!contexts[0].isContextLost())
document.getElementById("result").textContent = "FAIL";
This is not correct, as the preventDefault() only informs the browser
that the context should be restored. The restore happens asynchronously.
Fix the test logic and add extra cases. Make the logic as such:
- Lose the context in some way
- Wait for context lost event, request restore
- Optionally do something that would trigger another way of losing the context
- Run assertions about context being still expectedly lost
The failures in the test expectation:
FAIL getError expected: INVALID_OPERATION. Was NO_ERROR :
FAIL getError expected: CONTEXT_LOST_WEBGL. Was NO_ERROR :
bug 236965
FAIL Expected restore be ignored, but it was not.
bug 238034
- webgl/max-active-contexts-webglcontextlost-prevent-default.html:
- 4:58 AM Changeset in webkit [291476] by
-
- 3 edits5 adds in trunk
Remove the 1ms minimum for setTimeout
https://bugs.webkit.org/show_bug.cgi?id=221124
<rdar://problem/73852354>
Reviewed by Sam Weinig.
The HTML spec makes no mention of a 1ms minimum for timers. Removing
the 1ms minimum for setTimeout results in a 0.7-2.1% improvement on
Speedometer, depending on platform and hardware.
The WPT added here demonstrates how this change can affect pages: if a
page schedules a 1ms and then a 0ms timeout in the same turn of the
event loop, then with this patch they will now be fired in the reverse
order. Firefox and Chrome do not impose a 1ms minimum, which reduces
the risk of this being a problem.
Not addressing the setTimeout 1ms minimum here, which should likely also
be removed.
While we're here, settle on "one shot" rather rather than "single
shot" as the term for timers that fire once.
Tests: imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.html
imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker.html
- page/DOMTimer.h:
- page/DOMTimer.cpp:
(WebCore::DOMTimer::DOMTimer): We must pass oneShot into
intervalClampedToMinimum, since the way isOneShot determines whether
we are a one shot timer is by checking repeatInterval, which is only
set once startRepeating is called.
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):
(WebCore::DOMTimer::updateTimerIntervalIfNecessary):
(WebCore::DOMTimer::isOneShot const):
(WebCore::DOMTimer::intervalClampedToMinimum const):
- 2:51 AM Changeset in webkit [291475] by
-
- 3 edits in trunk/Source/WebKit
[WPE][GTK] Fix a crash after r290360
https://bugs.webkit.org/show_bug.cgi?id=237917
Reviewed by Youenn Fablet.
When AuxiliaryProcess::shutDown is called for the WebProcess there might be pages not closed yet, for example
when swapping process on navigation, the close message is sent to the page after the shutdown. In the case of
GTK and WPE ports the pages are closed before stopping the run loop to ensure associated resources (like GPU
resources) are released. Closing the last page makes the process termination allowed, which ends up calling
AuxiliaryProcess::terminate again. Also, when the shutdown message is received we don't want to ask again the UI
process whether the process can be terminated, since the UI process asked it.
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::enableTermination): Return early if m_isInShutDown is true.
(WebKit::AuxiliaryProcess::shutDown): Set m_isInShutDown for the scope.
- Shared/AuxiliaryProcess.h:
- 2:01 AM Changeset in webkit [291474] by
-
- 22 edits in trunk
[CSS Container Queries] Basic support for container units
https://bugs.webkit.org/show_bug.cgi?id=238021
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-basic-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-small-viewport-fallback-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt:
Source/WebCore:
Container Relative Lengths: the cqw, cqh, cqi, cqb, cqmin, cqmax units
https://drafts.csswg.org/css-contain-3/#container-lengths
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
Resolve container units by resolving the query container and computing the value against it.
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::isLength):
- css/CSSToLengthConversionData.cpp:
(WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
- css/CSSToLengthConversionData.h:
(WebCore::CSSToLengthConversionData::element const):
- css/CSSUnits.cpp:
(WebCore::unitCategory):
(WebCore::operator<<):
- css/CSSUnits.h:
- css/ContainerQuery.h:
- css/calc/CSSCalcCategoryMapping.cpp:
(WebCore::calcUnitCategory):
(WebCore::calculationCategoryForCombination):
(WebCore::hasDoubleValue):
- css/parser/CSSParserToken.cpp:
(WebCore::cssPrimitiveValueUnitFromTrie):
Parsing support.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::LengthRawKnownTokenTypeDimensionConsumer::consume):
- style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
(WebCore::Style::ContainerQueryEvaluator::selectContainer):
Factor container selection into static function that can be used from the unit resolution code.
- style/ContainerQueryEvaluator.h:
- style/SelectorMatchingState.h:
- 1:35 AM Changeset in webkit [291473] by
-
- 22 edits in trunk
Add a public build option for PDF.js
https://bugs.webkit.org/show_bug.cgi?id=238023
Reviewed by Michael Catanzaro.
.:
PDF.js increases the binary size of the library quite a bit, so embedders might want to disable it if they know
they don't need PDF support at all.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/WebCore:
- dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
- html/PDFDocument.cpp:
- html/PDFDocument.h:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::isPDFJSResourceLoad const):
- page/SecurityOrigin.cpp:
(WebCore::shouldTreatAsUniqueOrigin):
- platform/LegacySchemeRegistry.cpp:
(WebCore::builtinSecureSchemes):
Source/WebKit:
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::objectContentType):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::canShowMIMEType const):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::shouldUsePDFPlugin const):
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
- wtf/PlatformEnable.h:
- 1:32 AM Changeset in webkit [291472] by
-
- 7 edits in trunk/Source/WebKit
Remove AuxiliaryProcess termination timeout
https://bugs.webkit.org/show_bug.cgi?id=238012
Reviewed by Chris Dumez.
It was only used by the plugin process, now it's always set to 0 for all processes, so it's useless.
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::AuxiliaryProcess):
(WebKit::AuxiliaryProcess::disableTermination):
(WebKit::AuxiliaryProcess::enableTermination):
(WebKit::AuxiliaryProcess::terminationTimerFired): Deleted.
- Shared/AuxiliaryProcess.h:
(WebKit::AuxiliaryProcess::setTerminationTimeout): Deleted.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- 1:30 AM Changeset in webkit [291471] by
-
- 4 edits in trunk
[ATSPI] accessibility/dropdown-value.html is timing out since added in 248145@main
https://bugs.webkit.org/show_bug.cgi?id=237803
<rdar://problem/90193311>
Reviewed by Andres Gonzalez.
Tools:
The test expects the combo box to expose the selected element name as the string value.
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::stringValue): Handle combo boxes as special case and return the selected element
name.
LayoutTests:
- platform/gtk/TestExpectations: Unskip the test.
- 1:10 AM Changeset in webkit [291470] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix non-unified build after r291467
- workers/service/context/ServiceWorkerInspectorProxy.cpp:
- 12:52 AM Changeset in webkit [291469] by
-
- 2 edits6 adds in trunk/LayoutTests
REGRESSION(r291129-r291128): [WK1 EWS] 3 imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/* tests are a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238054
<rdar://problem/90458721>
Unreviewed test gardening.
The scroll-behavior property is not enabled on WK1 so we must have specific test expectations for these tests.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt: Added.
- 12:35 AM Changeset in webkit [291468] by
-
- 20 edits in trunk/Source
Remove MediaSample usage from canvas capture code
https://bugs.webkit.org/show_bug.cgi?id=238015
Reviewed by Eric Carlson.
Source/WebCore:
Refactoring to use VideoFrame as interface/wrapper around video frames instead of the more generic MediaSample.
Coverd by existing tests.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::captureCanvas):
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toVideoFrame):
(WebCore::HTMLCanvasElement::toMediaSample): Deleted.
- html/HTMLCanvasElement.h:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::paintCompositedResultsToVideoFrame):
(WebCore::WebGLRenderingContextBase::paintCompositedResultsToMediaSample): Deleted.
- html/canvas/WebGLRenderingContextBase.h:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::paintCompositedResultsToVideoFrame):
(WebCore::GraphicsContextGLCocoa::paintCompositedResultsToMediaSample): Deleted.
- platform/graphics/cv/VideoFrameCV.h:
- platform/graphics/cv/VideoFrameCV.mm:
(WebCore::VideoFrameCV::createFromPixelBuffer):
Source/WebKit:
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToVideoFrame):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToMediaSample): Deleted.
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToVideoFrame):
(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToMediaSample): Deleted.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- 12:33 AM Changeset in webkit [291467] by
-
- 19 edits in trunk
Keep service workers alive when they are inspected even though they should be terminated
https://bugs.webkit.org/show_bug.cgi?id=237827
<rdar://88313935>
Reviewed by Alex Christensen.
Source/WebCore:
Store in SWServerWorker whether a worker is inspected or is processing push events.
In that case, we delay termination of workers until it is no longer inspected or no longer processing push events.
Two code paths are happening:
- A service worker was triggered with service worker clients, and all service worker clients are removed. At that point, we were previously terminating service workers after a delay. Instead, we now only terminate workers that are no longer inspected or no longer processing push events. We reschedule the timer to continue trying removing the context connection.
- A service worker is not stopped by removal of service worker clients. In that case, we need to terminate the service workers when inspected and/or push counter gets back to regular (not inspected, no push counter). When terminating such a service worker, we try removing the context connection as well.
To make sure SWServerWorker knows whether inspectable or not, we add connection support to transmit whether inspected from WebProcess.
ServiceWorkerInspectorProxy is responsible to update the inspectable value.
Introduce internals API to set inspected state of a service worker.
Covered by new API tests.
- testing/ServiceWorkerInternals.cpp:
- testing/ServiceWorkerInternals.h:
- testing/ServiceWorkerInternals.idl:
- workers/service/context/SWContextManager.cpp:
- workers/service/context/SWContextManager.h:
- workers/service/context/ServiceWorkerInspectorProxy.cpp:
- workers/service/server/SWServer.cpp:
- workers/service/server/SWServer.h:
- workers/service/server/SWServerToContextConnection.cpp:
- workers/service/server/SWServerToContextConnection.h:
- workers/service/server/SWServerWorker.cpp:
- workers/service/server/SWServerWorker.h:
Source/WebKit:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
Mar 17, 2022:
- 9:23 PM Changeset in webkit [291466] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r287753): Settings: checkboxes are smaller and no longer vertically align with related text
https://bugs.webkit.org/show_bug.cgi?id=237745
<rdar://problem/90129658>
Reviewed by Devin Rousso.
After r287753,
font-sizeno longer affects the size of the checkboxes.
Usewidthandheightto make the checkbox the expected size.
- UserInterface/Views/SettingsTabContentView.css:
(.content-view.tab.settings > .settings-view > .container > .editor-group > .setting-editor input[type="checkbox"]):
- 8:17 PM Changeset in webkit [291465] by
-
- 2 edits in trunk/Source/WebKit
Call doDailyActivityInManager on main thread in adattributiond
https://bugs.webkit.org/show_bug.cgi?id=238059
<rdar://90335028>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-17
Reviewed by Tim Horton.
It turns out that xpc activities don't happen on the main thread.
Everything else in adattributiond happens on the main thread (except database operations)
and to be thread safe this also needs to happen on the main thread.
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
(WebKit::registerScheduledActivityHandler):
- 7:33 PM Changeset in webkit [291464] by
-
- 5 edits2 adds in trunk
Subgrid items should always be stretched.
https://bugs.webkit.org/show_bug.cgi?id=237628
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/subgrid/subgrid-stretch-expected.html: Added.
- web-platform-tests/css/css-grid/subgrid/subgrid-stretch.html: Added.
Added new WPT test covering various width/height and alignement contraints that should be
ignored since subgrids are always stretched.
Source/WebCore:
Fixes https://drafts.csswg.org/css-grid-2/#subgrid-box-alignment
Test: imported/w3c/web-platform-tests/css/css-grid/subgrid/subgrid-stretch.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalWidthInFragment const):
(WebCore::RenderBox::hasStretchedLogicalHeight const):
(WebCore::RenderBox::hasStretchedLogicalWidth const):
- rendering/RenderBox.h:
Makes computeLogicalWidthInFragment use the override logical width for grid items
if it's been set, as we already do for height. We don't early return, so that margins
still get computed relative to this width.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching const):
(WebCore::RenderGrid::alignSelfForChild const):
(WebCore::RenderGrid::justifySelfForChild const):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::applySubgridStretchAlignmentToChildIfNeeded):
- rendering/RenderGrid.h:
Sets the required override width/height size on subgrid items so that they get
stretched.
- 7:30 PM Changeset in webkit [291463] by
-
- 12 edits1 add in trunk/Source/WebCore
[IFC][Integration] Introduce LineSelection
https://bugs.webkit.org/show_bug.cgi?id=237997
Reviewed by Antti Koivisto.
Use LineSelection to retrieve line based selection information.
This is in preparation for removing selection/hittesting related functions from InlineIterator::Line.
- WebCore.xcodeproj/project.pbxproj:
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):
- layout/integration/InlineIteratorLine.h:
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::TextBox::selectionRect const):
- layout/integration/LineSelection.h: Added.
(WebCore::LineSelection::logicalTop):
(WebCore::LineSelection::logicalBottom):
(WebCore::LineSelection::logicalRect):
(WebCore::LineSelection::physicalRect):
(WebCore::LineSelection::logicalTopAdjustedForPrecedingBlock):
(WebCore::LineSelection::logicalHeightAdjustedForPrecedingBlock):
(WebCore::LineSelection::selectionState):
- rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForLinePosition):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustEnclosingTopForPrecedingBlock const):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
- rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintBackground):
- 6:39 PM Changeset in webkit [291462] by
-
- 1 copy in tags/Safari-614.1.6
Tag Safari-614.1.6.
- 6:39 PM Changeset in webkit [291461] by
-
- 1 delete in tags/Safari-614.1.6
Delete tag.
- 6:26 PM Changeset in webkit [291460] by
-
- 6 edits in branches/safari-614.1.6-branch/Source
Cherry-pick r291455. rdar://problem/90449608
libANGLE-shared.dylib, libwebrtc.dylib & WebGPU install names are prefixed with the system content path
https://bugs.webkit.org/show_bug.cgi?id=238058
Reviewed by Mark Lam.
Source/ThirdParty/ANGLE:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/libwebrtc.xcconfig:
Source/WebGPU:
We need to set DYLIB_INSTALL_NAME_BASE for WK_USE_ALTERNATE_FRAMEWORKS_DIR installs without the
system content path prefix.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/WebGPU.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:19 PM Changeset in webkit [291459] by
-
- 1 copy in tags/Safari-614.1.5.14
Tag Safari-614.1.5.14.
- 6:18 PM Changeset in webkit [291458] by
-
- 6 edits in branches/safari-614.1.5-branch/Source
Cherry-pick r291455. rdar://problem/90449608
libANGLE-shared.dylib, libwebrtc.dylib & WebGPU install names are prefixed with the system content path
https://bugs.webkit.org/show_bug.cgi?id=238058
Reviewed by Mark Lam.
Source/ThirdParty/ANGLE:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/libwebrtc.xcconfig:
Source/WebGPU:
We need to set DYLIB_INSTALL_NAME_BASE for WK_USE_ALTERNATE_FRAMEWORKS_DIR installs without the
system content path prefix.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/WebGPU.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291455 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:15 PM Changeset in webkit [291457] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.14
- 5:48 PM Changeset in webkit [291456] by
-
- 2 edits in trunk/Source/WTF
tryReserveUncommittedAligned should round up to alignment not bytes requested
https://bugs.webkit.org/show_bug.cgi?id=238052
Reviewed by Yusuke Suzuki.
- wtf/posix/OSAllocatorPOSIX.cpp:
(WTF::OSAllocator::tryReserveUncommittedAligned):
- 5:46 PM Changeset in webkit [291455] by
-
- 6 edits in trunk/Source
libANGLE-shared.dylib, libwebrtc.dylib & WebGPU install names are prefixed with the system content path
https://bugs.webkit.org/show_bug.cgi?id=238058
Reviewed by Mark Lam.
Source/ThirdParty/ANGLE:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
We need to create a default value for DYLIB_INSTALL_NAME_BASE for iOS builds.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/libwebrtc.xcconfig:
Source/WebGPU:
We need to set DYLIB_INSTALL_NAME_BASE for WK_USE_ALTERNATE_FRAMEWORKS_DIR installs without the
system content path prefix.
We want to allow executables to use the framework via the symlink from the old location.
- Configurations/WebGPU.xcconfig:
- 5:18 PM Changeset in webkit [291454] by
-
- 2 edits in trunk/Tools
configure-xcode-for-embedded-development fails with Xcode 13.3
https://bugs.webkit.org/show_bug.cgi?id=237994
<rdar://problem/90455614>
Reviewed by Ryan Haddad.
- Tools/Scripts/configure-xcode-for-embedded-development: Handle different xcspec locations in XCode 13.3.
Canonical link: https://commits.webkit.org/248576@main
- 5:14 PM Changeset in webkit [291453] by
-
- 1 copy in tags/Safari-614.1.6
Tag Safari-614.1.6.
- 5:10 PM Changeset in webkit [291452] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r291129-r291128): [WK1 EWS] 3 imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/* tests are a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=238054
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 5:08 PM Changeset in webkit [291451] by
-
- 2 edits in trunk/Source/WebCore
[Apple Pay] REGRESSION(r283431):
HAVE_PASSKIT_PAYMENT_METHOD_BILLING_ADDRESSwas removed without also removing where it was used
https://bugs.webkit.org/show_bug.cgi?id=238056
<rdar://problem/89940620>
Reviewed by Tim Horton.
- Modules/applepay/cocoa/PaymentMethodCocoa.mm:
(WebCore::convert):
- 4:48 PM Changeset in webkit [291450] by
-
- 5 edits in trunk/LayoutTests
Make Emoji gender tests more robust
https://bugs.webkit.org/show_bug.cgi?id=238057
<rdar://problem/88842010>
Unreviewed.
U+26F9 PERSON WITH BALL might have a non-emoji glyph, so we can't expect it to
always render in its emoji form without a variation selector.
- fast/text/emoji-gender-2-3-expected.html:
- fast/text/emoji-gender-2-3.html:
- fast/text/emoji-gender-fe0f-3-expected.html:
- fast/text/emoji-gender-fe0f-3.html:
- 4:41 PM Changeset in webkit [291449] by
-
- 2 edits in trunk/LayoutTests
Make fast/text/emoji-num-glyphs.html more robust
https://bugs.webkit.org/show_bug.cgi?id=238055
<rdar://problem/88842010>
Unreviewed.
U+26F9 PERSON WITH BALL might have a non-emoji glyph. If it has one, and the OS prefers it over the
emoji glyph, then this test will fail. The solution is to use the emoji-style variation selector
to specifically request the emoji form.
- fast/text/emoji-num-glyphs.html:
- 4:34 PM Changeset in webkit [291448] by
-
- 4 edits in trunk/Source
Fix crash in Bleacher Report due to bad JSObjectRef passed to API
https://bugs.webkit.org/show_bug.cgi?id=238048
<rdar://88766464>
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Prior to the StructureID overhaul the JSObjectGetArrayBufferByteLength would
automatically check if the JSObjectRef passed to that function was null before
short circuiting to the non-typed array return value, 0. While technically valid
since derefencing null is UB, this meant the Clang was covering up this crash.
To fix this I'm adding an app specific workaround for the time being so Bleacher
Report can fix their code to no longer pass this nullptr.
- API/JSTypedArray.cpp:
(isBleecherReport):
(JSObjectGetArrayBufferByteLength):
Source/WTF:
- wtf/cocoa/RuntimeApplicationChecksCocoa.h:
- 3:55 PM Changeset in webkit [291447] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Fix the 32-bit build
https://bugs.webkit.org/show_bug.cgi?id=238053
Unreviewed.
- WebGPU/Buffer.mm:
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::mapAsync):
- 3:07 PM Changeset in webkit [291446] by
-
- 2 edits in trunk/Source/WebCore
Microsoft Teams fails to launch from Safari
https://bugs.webkit.org/show_bug.cgi?id=238045
<rdar://90434296>
Reviewed by Geoffrey Garen.
Extend MS Teams quirk to teams.microsoft.com, not just teams.live.com.
- page/Quirks.cpp:
(WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):
- 2:57 PM Changeset in webkit [291445] by
-
- 4 edits in trunk/Source/WebKit
[iOS] Support PDF search when using a find interaction
https://bugs.webkit.org/show_bug.cgi?id=237408
rdar://89437334
Reviewed by Wenson Hsieh.
Ensure that PDFs can be searched when using a _UIFindInteraction by
making WKPDFView conform to _UITextSearching.
The implementation is a thin wrapper around existing find SPI on
PDFHostViewController. Found ranges in PDFs are uniquely identified
by an index, as more detailed range information is not exposed. Unlike
web content, there is currently no requirement to support restorable
found ranges for PDFs, making indexes safe to use.
- UIProcess/API/ios/WKWebViewIOS.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
Use WKPDFView or WKContentView as the searchable object, depending on
the loaded content.
(-[WKWebView _didCommitLoadForMainFrame]):
(-[WKWebView _searchableObject]):
(-[WKWebView _setFindInteractionEnabled:]):
- UIProcess/ios/WKPDFView.mm:
(+[WKPDFFoundTextRange foundTextRangeWithIndex:]):
(-[WKPDFFoundTextRange start]):
(-[WKPDFFoundTextRange end]):
(-[WKPDFFoundTextRange isEmpty]):
(+[WKPDFFoundTextPosition textPositionWithIndex:]):
(-[WKPDFView dealloc]):
(-[WKPDFView pdfHostViewController:findStringUpdate:done:]):
(-[WKPDFView selectedTextRange]):
(-[WKPDFView compareFoundRange:toRange:inDocument:]):
(-[WKPDFView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKPDFView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKPDFView clearAllDecoratedFoundText]):
- 2:41 PM Changeset in webkit [291444] by
-
- 1 copy in tags/Safari-614.1.5.13
Tag Safari-614.1.5.13.
- 2:28 PM Changeset in webkit [291443] by
-
- 4 edits in trunk
Disable push features in CaptivePortal mode
https://bugs.webkit.org/show_bug.cgi?id=237981
<rdar://88897228>
Reviewed by Chris Dumez.
We should not support push features when running in a Captive Portal.
Source/WebKit:
Tests: TestWebKitAPI
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 2:21 PM Changeset in webkit [291442] by
-
- 5 edits in trunk/Source/WebCore
[GTK][WPE] m_compositorThread ASSERT in TextureMapper classes can just be used in debug mode
https://bugs.webkit.org/show_bug.cgi?id=238020
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-03-17
Reviewed by Michael Catanzaro.
This is a build fix for the case where someone compiles release
with asserts activated.
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:
(WebCore::TextureMapperPlatformLayerProxyDMABuf::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::invalidate):
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h:
- platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp:
(WebCore::TextureMapperPlatformLayerProxyGL::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate):
- platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.h:
- 2:19 PM Changeset in webkit [291441] by
-
- 7 edits4 adds in trunk
PerformanceNavigationTiming Response Start unavailable when using Service Worker Cache
https://bugs.webkit.org/show_bug.cgi?id=237317
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-17
Reviewed by Youenn Fablet.
Source/WebCore:
- Modules/cache/DOMCache.cpp:
(WebCore::createResponse):
- page/PerformanceNavigationTiming.cpp:
(WebCore::PerformanceNavigationTiming::navigationFinished):
- platform/network/NetworkLoadMetrics.cpp:
(WebCore::NetworkLoadMetrics::updateFrom):
(WebCore::NetworkLoadMetrics::NetworkLoadMetrics): Deleted.
- platform/network/NetworkLoadMetrics.h:
LayoutTests:
Test that these values are reasonable after loading the main resource from a service worker's cache.
- http/wpt/service-workers/navigation-timing.https-expected.txt: Added.
- http/wpt/service-workers/navigation-timing.https.html: Added.
- http/wpt/service-workers/navigation-timing.js: Added.
(event.event.waitUntil.caches.open.string_appeared_here.then):
(event.event.respondWith.caches.open.string_appeared_here.then):
- http/wpt/service-workers/resources/navigation-timing-part-2.html: Added.
- 2:12 PM Changeset in webkit [291440] by
-
- 2 edits in trunk/Tools
[Merge-Queue] Remove merge-queue labels when blocking PR
https://bugs.webkit.org/show_bug.cgi?id=237964
<rdar://problem/90372805>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.add_label): Renamed from modify_label, only handle add case
because removal case requires 'get' request first.
(GitHubMixin.remove_labels): Remove list of labels from PR.
(BlockPullRequest.start): Remove merge-queue labels.
(BlockPullRequest.getResultSummary): Add label name in results summary.
(GitHubMixin.modify_label): Renamed add_label.
Canonical link: https://commits.webkit.org/248564@main
- 1:56 PM Changeset in webkit [291439] by
-
- 4 edits in trunk/Source/WebGPU
[WebGPU] Fix 32-bit build
https://bugs.webkit.org/show_bug.cgi?id=238046
Unreviewed.
- WebGPU/Buffer.h:
(WebGPU::Buffer::size const):
- WebGPU/Buffer.mm:
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::clearBuffer):
- 1:34 PM Changeset in webkit [291438] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Fix build breakage from r291361
https://bugs.webkit.org/show_bug.cgi?id=238043
rdar://90447279
Unreviewed build fix.
- platform/ios/WebAVPlayerController.mm: Declare AVMetadataItem.
- 1:25 PM Changeset in webkit [291437] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r290835.
https://bugs.webkit.org/show_bug.cgi?id=238044
Disruptive change
Reverted changeset:
"[iOS] Hard link AVPictureInPictureController"
https://bugs.webkit.org/show_bug.cgi?id=237227
https://commits.webkit.org/r290835
- 1:22 PM Changeset in webkit [291436] by
-
- 2 edits in trunk/Tools
compare-results should break down sync vs async time in Speedometer2
https://bugs.webkit.org/show_bug.cgi?id=237993
Reviewed by Alexey Shvayka.
- Scripts/compare-results:
(speedometer2Breakdown):
(speedometer2BreakdownSyncAsync):
(dumpBreakdowns):
(getOptions):
(main):
- 1:19 PM Changeset in webkit [291435] by
-
- 7 edits in trunk
Avoid calling connectionClosedFromServer on a connection twice when a version change is active
https://bugs.webkit.org/show_bug.cgi?id=215271
Reviewed by Sihui Liu.
Source/WebCore:
Since bug 203690, all IDB work is done on a single background thread.
A consequence of this change is that there are states when
UniqueIDBDatabase::m_versionChangeDatabaseConnection is also in
m_openDatabaseConnections. We should avoid calling
connectionClosedFromServer on the same connection twice, since that
can result in a spurious second error event being sent to the
IDBDatabase JS object if connections are closed while a version chnge
is in progress.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::immediateClose):
LayoutTests:
- platform/ios-wk2/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
Remove test flakiness annotations.
- 1:18 PM Changeset in webkit [291434] by
-
- 2 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291433. rdar://problem/90431433
Removed telemetry from Networking.sb
https://bugs.webkit.org/show_bug.cgi?id=238026
Patch by Adam Mazander <mazander@apple.com> on 2022-03-17
Reviewed by Per Arne Vollan.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:14 PM Changeset in webkit [291433] by
-
- 2 edits in trunk/Source/WebKit
Removed telemetry from Networking.sb
https://bugs.webkit.org/show_bug.cgi?id=238026
Patch by Adam Mazander <mazander@apple.com> on 2022-03-17
Reviewed by Per Arne Vollan.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 1:12 PM Changeset in webkit [291432] by
-
- 2 edits1 delete in trunk/Tools
Delete Tools/jsc-cli in favor of the jsc target in JavaScriptCore itself
https://bugs.webkit.org/show_bug.cgi?id=238042
Rubber-stamped by Saam Barati.
The last time jsc-cli was substantively modified was 8 years ago. On the other
hand, the jsc target in JavaScriptCore serves the same purpose, and is actively
maintained.
- Scripts/build-jsc:
- jsc-cli/jsc-cli.xcodeproj/project.pbxproj: Removed.
- jsc-cli/jsc-cli/CLIInstance.h: Removed.
- jsc-cli/jsc-cli/CLIInstance.m: Removed.
- jsc-cli/jsc-cli/JSModule.h: Removed.
- jsc-cli/jsc-cli/JSModule.m: Removed.
- jsc-cli/jsc-cli/JSRunLoopThread.h: Removed.
- jsc-cli/jsc-cli/JSRunLoopThread.m: Removed.
- jsc-cli/jsc-cli/ReadEvalPrintLoop.h: Removed.
- jsc-cli/jsc-cli/ReadEvalPrintLoop.m: Removed.
- jsc-cli/jsc-cli/RunLoopThread.h: Removed.
- jsc-cli/jsc-cli/RunLoopThread.m: Removed.
- jsc-cli/jsc-cli/ScriptInputSource.h: Removed.
- jsc-cli/jsc-cli/ScriptInputSource.m: Removed.
- jsc-cli/jsc-cli/main.m: Removed.
- 1:09 PM Changeset in webkit [291431] by
-
- 2 edits in trunk/Source/WebKit
[model] loading spinner doesn't show on iOS
https://bugs.webkit.org/show_bug.cgi?id=238029
rdar://89698998
Reviewed by Dean Jackson.
We must wait until a WKModelView has non-zero bounds to create the backing ASVInlinePreview
so that the ARQL views are all sized to display the loading spinner correctly.
- UIProcess/ios/WKModelView.mm:
(-[WKModelView initWithModel:]):
(-[WKModelView createPreview]):
(-[WKModelView layoutSubviews]):
(-[WKModelView updateBounds]):
- 1:08 PM Changeset in webkit [291430] by
-
- 1 copy in tags/Safari-613.2.3
Tag Safari-613.2.3.
- 1:00 PM Changeset in webkit [291429] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r291352.
https://bugs.webkit.org/show_bug.cgi?id=238039
Disruptive change
Reverted changeset:
"Incorrect header name used in has_include"
https://bugs.webkit.org/show_bug.cgi?id=237914
https://commits.webkit.org/r291352
- 12:56 PM Changeset in webkit [291428] by
-
- 7 edits2 adds in trunk
Source/WebKit:
Add read and write methods to JSIPCStreamConnectionBuffer
https://bugs.webkit.org/show_bug.cgi?id=237730
rdar://problem/89676460
Patch by Simon Lewis <simon.lewis@apple.com> on 2022-03-17
Reviewed by Kimmo Kinnunen.
When using IPCTestingAPI, this change enables the underlying bytes
of a StreamClientConnection buffer to be modified.
Test: ipc/stream-buffer-read-write.html
- Platform/IPC/StreamClientConnection.cpp:
(IPC::StreamClientConnection::bufferForTesting):
- Platform/IPC/StreamClientConnection.h:
- Platform/IPC/StreamConnectionBuffer.cpp:
(IPC::StreamConnectionBuffer::headerForTesting):
(IPC::StreamConnectionBuffer::dataForTesting):
- Platform/IPC/StreamConnectionBuffer.h:
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::readHeaderBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::readDataBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::readBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::writeHeaderBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::writeDataBytes):
(WebKit::IPCTestingAPI::JSIPCStreamConnectionBuffer::writeBytes):
LayoutTests:
Functional tests for read and write methods of JSIPCStreamConnectionBuffer
https://bugs.webkit.org/show_bug.cgi?id=237730
rdar://problem/89676460
Patch by Simon Lewis <simon.lewis@apple.com> on 2022-03-17
Reviewed by Kimmo Kinnunen.
- ipc/stream-buffer-read-write-expected.txt: Added.
- ipc/stream-buffer-read-write.html: Added.
- 12:04 PM Changeset in webkit [291427] by
-
- 2 edits in trunk/Tools
Only show notification permission prompt on user gesture
https://bugs.webkit.org/show_bug.cgi?id=237946
Unreviewed build fix for r291414.
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 12:02 PM Changeset in webkit [291426] by
-
- 3 edits6 adds in trunk
When a “autofilled and obscured” field becomes empty, turn “autofilled and obscured” off
https://bugs.webkit.org/show_bug.cgi?id=235256
Patch by Ellie Epskamp-Hunt <eepskamphunt@apple.com> on 2022-03-17
Reviewed by Devin Rousso.
Source/WebCore:
Tests: fast/forms/input-autofilled-and-obscured-clear-field-programatically.html
fast/forms/input-autofilled-and-obscured-clear-form-programatically.html
fast/forms/input-autofilled-and-obscured.html
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue):
Turn off the property if the page's JavaScript deletes all the text in the field.
(WebCore::HTMLInputElement::setValueFromRenderer):
Turn off the property if the user deletes all the text in the field.
LayoutTests:
Add tests to verify that when a text field becomes empty, the autofilled-and-obscured
property is removed from that field.
- fast/forms/input-autofilled-and-obscured-clear-field-programatically-expected.txt: Added.
- fast/forms/input-autofilled-and-obscured-clear-field-programatically.html: Added.
Delete the text by setting the input's value to an empty string.
- fast/forms/input-autofilled-and-obscured-clear-form-programatically-expected.txt: Added.
- fast/forms/input-autofilled-and-obscured-clear-form-programatically.html: Added.
Delete the text by calling reset on the form.
- fast/forms/input-autofilled-and-obscured-expected.txt: Added.
- fast/forms/input-autofilled-and-obscured.html: Added.
Delete the text as a user would.
- 11:55 AM Changeset in webkit [291425] by
-
- 2 edits in trunk/Source/WebKit
Fix the build when LOG_DISABLED is 0 in release builds
https://bugs.webkit.org/show_bug.cgi?id=237999
Reviewed by Tim Horton.
- WebProcess/Plugins/PDF/PDFPlugin.h:
- 11:48 AM Changeset in webkit [291424] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.13
- 11:28 AM Changeset in webkit [291423] by
-
- 13 edits3 copies2 adds in trunk/Source
[WebAuthn] Support makeCredential for virtual HID authenticators
https://bugs.webkit.org/show_bug.cgi?id=237984
rdar://problem/90393676
Reviewed by Brent Fulgham.
Virtual authenticators for WebAuthn supports different transports: nfc,usb,internal,ble.
Currently, we support the internal transport, but the default transport used in web platform
tests is usb. This patch implements makeCredential for hid-based virtual authenticators. Virtual
credential information is stored in the VirtualCredential struct as suggested by the spec.
Source/WebCore:
- Modules/webauthn/WebAuthenticationUtils.cpp:
(WebCore::buildAttestationMap):
(WebCore::buildAttestationObject):
- Modules/webauthn/WebAuthenticationUtils.h:
- Modules/webauthn/fido/FidoConstants.h:
Source/WebKit:
Tested manually via creating virtual authenticator and performing create and via wpt tests.
- UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:
(WebKit::MockHidConnection::parseRequest):
(WebKit::MockHidConnection::feedReports):
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:
(WebKit::VirtualAuthenticatorManager::createAuthenticator):
(WebKit::VirtualAuthenticatorManager::addCredential):
(WebKit::VirtualAuthenticatorManager::createService const):
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h:
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.h.
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorUtils.mm: Added.
(WebKit::flagsForConfig):
(WebKit::createPrivateKey):
(WebKit::credentialIdAndCosePubKeyForPrivateKey):
(WebKit::base64PrivateKey):
- UIProcess/WebAuthentication/Virtual/VirtualCredential.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.h.
- UIProcess/WebAuthentication/Virtual/VirtualHidConnection.cpp: Added.
(WebKit::VirtualHidConnection::VirtualHidConnection):
(WebKit::VirtualHidConnection::initialize):
(WebKit::VirtualHidConnection::terminate):
(WebKit::VirtualHidConnection::sendSync):
(WebKit::VirtualHidConnection::send):
(WebKit::VirtualHidConnection::assembleRequest):
(WebKit::VirtualHidConnection::receiveHidMessage):
(WebKit::VirtualHidConnection::recieveResponseCode):
(WebKit::VirtualHidConnection::parseRequest):
- UIProcess/WebAuthentication/Virtual/VirtualHidConnection.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h.
- UIProcess/WebAuthentication/Virtual/VirtualService.h:
- UIProcess/WebAuthentication/Virtual/VirtualService.mm:
(WebKit::VirtualService::VirtualService):
(WebKit::VirtualService::createVirtual):
(WebKit::authenticatorInfoForConfig):
(WebKit::VirtualService::startDiscoveryInternal):
- WebKit.xcodeproj/project.pbxproj:
- 11:15 AM Changeset in webkit [291422] by
-
- 3 edits in trunk/Source/WebGPU
[WebGPU] Fix the 32-bit build
https://bugs.webkit.org/show_bug.cgi?id=238031
Unreviewed.
- WebGPU/Buffer.mm:
(WebGPU::validateCreateBuffer):
(WebGPU::Device::createBuffer):
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::copyBufferToBuffer):
- 11:08 AM Changeset in webkit [291421] by
-
- 14 edits in trunk/Source
Make SharedVideoFrameReader use VideoFrameCV instead of MediaSample
https://bugs.webkit.org/show_bug.cgi?id=237596
Reviewed by Eric Carlson.
Source/WebCore:
Update media recorder and display layer to use pixel buffers instead of MediaSample.
This allows migrating to VideoFrameCV.
No change of behavior.
- platform/cocoa/MediaUtilities.cpp:
- platform/cocoa/MediaUtilities.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
- platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:
Source/WebKit:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.h:
- 10:44 AM Changeset in webkit [291420] by
-
- 9 edits in trunk
REGRESSION (iOS 15.4 / r287669): Mobile app stopped working due to CSS / angular animation
https://bugs.webkit.org/show_bug.cgi?id=237920
LayoutTests/imported/w3c:
<rdar://problem/90335275>
Reviewed by Antti Koivisto.
Add a test that looks at the default computed style for the "transition" and "animation"
shorthands.
- web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
- web-platform-tests/css/css-animations/parsing/animation-computed.html:
- web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
- web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-computed-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-computed.html:
Source/WebCore:
Reviewed by Antti Koivisto.
We refactored the computed style output for the "transition" and "animation" shorthand
properties in r287669 and always returned a CSSValueList, even when the list of transitions
or animations was empty. This meant that for an element without any transition or animation
properties, we'd return the empty string for those properties.
Now we return the computed style for a default animation instead.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::animationShorthandValue):
- 10:21 AM Changeset in webkit [291419] by
-
- 6 edits4 deletes in trunk/Source/WebGPU
[WebGPU] Delete unnecessary C files from CommandLinePlayground
https://bugs.webkit.org/show_bug.cgi?id=238005
Reviewed by Kimmo Kinnunen.
The reason the C files existed was because Swift wouldn't import a block within
a struct if the block didn't have the unsafe_unretained attribute. This patch
adds the attribute and moves the C code to be in the same file as the rest of the
playground.
- CommandLinePlayground/CommandLinePlayground-Bridging-Header.h: Removed.
- CommandLinePlayground/Utilities.c: Removed.
- CommandLinePlayground/Utilities.h: Removed.
- CommandLinePlayground/config.h: Removed.
- CommandLinePlayground/main.swift:
(dispatchWork(_:)):
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/Buffer.mm:
- WebGPU/CommandEncoder.mm:
- WebGPU/WebGPUExt.h:
- 10:19 AM Changeset in webkit [291418] by
-
- 2 edits in trunk/Source/WebCore
PiP on Vimeo freezes when toggled
https://bugs.webkit.org/show_bug.cgi?id=237985
Patch by Peng Liu <peng.liu6@icloud.com> on 2022-03-17
Reviewed by Jer Noble.
Add a quirk for vimeo.com to disable the "webkitendfullscreen" event when a video enters
picture-in-picture from fullscreen.
Tested manually.
- page/Quirks.cpp:
(WebCore::Quirks::shouldDisableEndFullscreenEventWhenEnteringPictureInPictureFromFullscreenQuirk const):
- 10:07 AM EnvironmentVariables edited by
- Documented the MSE_MAX_BUFFER_SIZE, WPE_SHELL_DISABLE_MEDIA_DISK_CACHE … (diff)
- 10:01 AM Changeset in webkit [291417] by
-
- 8 edits in trunk/Source/JavaScriptCore
Unreviewed, non-unified build fix
https://bugs.webkit.org/show_bug.cgi?id=237929
- dfg/DFGCapabilities.cpp:
- jit/JITDisassembler.cpp:
- jit/JITPlan.cpp:
- llint/LLIntEntrypoint.cpp:
- runtime/FileBasedFuzzerAgentBase.cpp:
- runtime/ShadowRealmObject.cpp:
- runtime/ShadowRealmPrototype.cpp:
- 9:54 AM Changeset in webkit [291416] by
-
- 8 edits in trunk/Source/WebCore
Stop returning NodeVector from functions
https://bugs.webkit.org/show_bug.cgi?id=237988
Reviewed by Darin Adler.
Stop returning NodeVector from functions and use a out-parameter instead. While this doesn't look
as modern, this is actually more efficient. This is because NodeVector has a fairly large inline
buffer and is thus not that cheap to "move".
This was causing functions like
ContainerNode::parserAppendChild(Node&)to spend unnecessary
time under:
VectorBuffer<Ref<Node, RawPtrTraits<Node>>, 11, FastMalloc>::swap(VectorBuffer<Ref<Node, RawPtrTraits<Node>>, 11, FastMalloc>&, unsigned long, unsigned long)
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion):
(WebCore::ContainerNode::takeAllChildrenFrom):
(WebCore::ContainerNode::replaceAll):
(WebCore::ContainerNode::removeChildren):
(WebCore::ContainerNode::replaceChildren):
- dom/ContainerNode.h:
(WebCore::collectChildNodes):
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::notifyChildNodeInserted):
- dom/ContainerNodeAlgorithms.h:
- dom/Element.cpp:
(WebCore::Element::addShadowRoot):
(WebCore::Element::insertAdjacentHTML):
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
- editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren):
- 9:52 AM Changeset in webkit [291415] by
-
- 4 edits6 deletes in branches/safari-614.1.6-branch
Revert r290628. rdar://problem/90310316
- 9:52 AM Changeset in webkit [291414] by
-
- 24 edits in trunk
Only show notification permission prompt on user gesture
https://bugs.webkit.org/show_bug.cgi?id=237946
Reviewed by Geoffrey Garen.
Source/WebCore:
We want to make Notification.requestPermission and PushManager.subscribe only prompt the
user for permission in response to a user gesture. This matches existing behavior in other
browsers.
We use the error string "Push notification prompting can only be done from a user gesture"
since that string was already used by safari.pushNotification.requestPermission.
- Modules/notifications/Notification.cpp:
(WebCore::Notification::requestPermission):
- Modules/push-api/PushManager.cpp:
(WebCore::PushManager::subscribe):
Tools:
Change existing permission tests to use evaluateJavaScript since that executes in the
context of a user gesture.
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
LayoutTests:
Add test cases to make sure that prompting for notification permissions fails when not
handling a user gesture and succeeds when handling a user gesture.
- http/tests/notifications/notification-request-permission-no-callback.html:
- http/tests/notifications/notification-request-permission.html:
- http/tests/notifications/request-expected.txt:
- http/tests/notifications/request-with-promise-expected.txt:
- http/tests/notifications/request-with-promise.html:
- http/tests/notifications/request.html:
- http/tests/push-api/resources/subscribe-iframe-cross-origin.html:
- http/tests/push-api/resources/subscribe-iframe-same-origin.html:
- http/tests/push-api/resources/subscribe-tests.js:
(async testDocumentSubscribeWithUserGesture): Added.
(async testDocumentSubscribeWithoutUserGesture): Added.
(async testDocumentSubscribeImpl): Added.
(async testDocumentSubscribe): Deleted.
- http/tests/push-api/subscribe-default-permissions-expected.txt:
- http/tests/push-api/subscribe-default-permissions-iframe-cross-origin-expected.txt:
- http/tests/push-api/subscribe-default-permissions-iframe-same-origin-expected.txt:
- http/tests/push-api/subscribe-default-permissions.html:
- http/tests/push-api/subscribe-deny-permissions-expected.txt:
- http/tests/push-api/subscribe-deny-permissions.html:
- http/tests/push-api/subscribe-grant-permissions-expected.txt:
- http/tests/push-api/subscribe-grant-permissions.html:
- 9:45 AM Changeset in webkit [291413] by
-
- 5 edits in trunk
Allow push preference to be set programatically
https://bugs.webkit.org/show_bug.cgi?id=238003
Reviewed by Geoffrey Garen.
Source/WebKit:
This exposes the PushAPIEnabled experimental preference through WKPreferences so it can be
enabled programatically by API clients.
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _pushAPIEnabled]):
(-[WKPreferences _setPushAPIEnabled:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
Tools:
Make webpushd tests enable the push API via WKPreferences.
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- 9:38 AM Changeset in webkit [291412] by
-
- 10 edits1 add in trunk
Calls to print can result in unresponsive print modal
https://bugs.webkit.org/show_bug.cgi?id=237940
<rdar://problem/88257828>
Reviewed by Chris Dumez.
Source/WebKit:
Calls to print were hanging in the case of the client asynchronously
handling the completion handler passed to the delegate. To fix this
we can adjust all printing IPC to have the option
DispatchMessageEvenWhenWaitingForUnboundedSyncReply which allows IPC
messages when waiting for a sync reply in the case where the receiver
of the message is not guranteed to call the completion handler at the
end of the runloop.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _computePagesForPrinting:completionHandler:]):
- UIProcess/WebPageProxy.cpp:
(WebKit::printingSendOptions):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::print):
Tools:
Add API test. Adjust delegate naming in the PDF case to be more
specific so we can use the generic PrintUIDelegate name in the general
case.
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:
(TEST):
(-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]): Deleted.
(-[PrintUIDelegate waitForPageSize]): Deleted.
(-[PrintUIDelegate lastPrintedFrame]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKPrinting.mm: Added.
(-[PrintUIDelegate callBlockAsync:]):
(-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]):
(-[PrintUIDelegate waitForPagination]):
(TEST):
- 9:01 AM Changeset in webkit [291411] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Revert r290967. rdar://problem/90331977
- 8:45 AM Changeset in webkit [291410] by
-
- 2 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291314. rdar://problem/90245766
RemoteGraphicsContextGLProxy omits context lost checks for back and front buffer access functions
https://bugs.webkit.org/show_bug.cgi?id=237891
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-15
Reviewed by Myles Maxfield.
Add missing isContextLost() checks to RemoteGraphicsContextGLProxy functions.
WebGLRenderingContextBase would call as follows:
void WebGLRenderingContextBase::paintRenderingResultsToCanvas()
{
if (isContextLostOrPending())
return;
...
m_context->prepareForDisplay();
...
m_context->paintCompositedResultsToCanvas();
}
The context may be ok during the first check but then fail later,
and so all the context functions need to check for validity.
No new tests, testing hooks need non-trivial implementation.
This is tracked in bug 237891.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp: (WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToCanvas): (WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas): (WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:24 AM Changeset in webkit [291409] by
-
- 6 edits in trunk/Source/WebCore
[IFC][Integration] Replace enclosingTop/Bottom/height calls with Line::enclosingLogicalRect when applicable
https://bugs.webkit.org/show_bug.cgi?id=237996
Reviewed by Antti Koivisto.
This is in preparation for removing selection/hittesting related functions from InlineIterator::Line.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::enclosingHeight const): Deleted.
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::TextBox::selectionRect const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintBackground):
- 8:19 AM Changeset in webkit [291408] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix non-unified build after r291396
- html/HTMLTextFormControlElement.cpp:
- 8:13 AM Changeset in webkit [291407] by
-
- 7 edits1 add in trunk
Clarify code for logical-to-physical mappings, and add physical-to-logical mappings
https://bugs.webkit.org/show_bug.cgi?id=237967
Reviewed by Darin Adler.
Source/WebCore:
The code for logical-to-physical mappings wasn't easy to understand, e.g.
mapLogicalSideToPhysicalSide used to cast a LogicalBoxSide enum into a
BoxSide enum, and then maybe casting it into an int and back to BoxSide.
So the code relied on the arbitrary order of the enum values, and it was
hard to grasp what was going on.
This patch makes these mappings much clearer, and also adds the inverse
physical-to-logical mappings. Being able to convert a physical property
into its logical equivalent will be needed for bug 236199.
No new tests because there is no change in behavior.
Tests in imported/w3c/web-platform-tests/css/css-logical/ ensure that
this patch doesn't break logical-to-physical mappings.
Some new API tests ensure that the physical-to-logical mappings
are the correct inverse.
Tests: WritingMode.LogicalBoxSide
WritingMode.BoxSide
WritingMode.LogicalBoxCorner
WritingMode.BoxCorner
WritingMode.LogicalBoxAxis
WritingMode.BoxAxis
- css/CSSProperty.h:
- css/makeprop.pl:
- platform/text/WritingMode.h:
(WebCore::mapLogicalSideToPhysicalSide):
(WebCore::mapPhysicalSideToLogicalSide):
(WebCore::mapLogicalCornerToPhysicalCorner):
(WebCore::mapPhysicalCornerToLogicalCorner):
(WebCore::mapLogicalAxisToPhysicalAxis):
(WebCore::mapPhysicalAxisToLogicalAxis):
(WebCore::isHorizontalPhysicalSide): Deleted.
(WebCore::mirrorPhysicalSide): Deleted.
(WebCore::rotatePhysicalSide): Deleted.
Tools:
Add tests.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/WritingModeTests.cpp: Added.
(TestWebKitAPI::TEST):
- 7:46 AM Changeset in webkit [291406] by
-
- 3 edits in trunk
[GTK][WPE] Also enable USE_TEXTURE_MAPPER_DMABUF alongside other DMABuf-related defines
https://bugs.webkit.org/show_bug.cgi?id=238017
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-17
Reviewed by Alejandro G. Castro.
For the GTK port, define USE_TEXTURE_MAPPER_DMABUF alongside the
dependencies and defines for DMABuf-backed ANGLE integration. This will
enable usage of the DMABuf-based video sink in any GStreamer pipeline
and subsequently display of the provided DMABuf objects. A comment is
added to explain this should be covered by a separate configuration
option on which USE_ANGLE_WEBGL should then depend.
For the WPE port the define is also added but without conditions, just
like it's done for the dependencies and the USE_LIBGBM define.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- 7:42 AM Changeset in webkit [291405] by
-
- 2 edits in trunk/Tools
XSS in EWS App
https://bugs.webkit.org/show_bug.cgi?id=236633
Reported by Iman Sharafaldin - Forward Security.
Reviewed by Darin Adler.
- CISupport/ews-app/ews/views/submittoews.py:
(SubmitToEWS.post):
- 7:27 AM Changeset in webkit [291404] by
-
- 5 edits in trunk/Tools
[reporelaypy] Support credentialed https repositories
https://bugs.webkit.org/show_bug.cgi?id=237853
<rdar://90252426>
Reviewed by Ryan Haddad, Dewei Zhu and Stephanie Lewis.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/init.py: Bump version.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/checkout.py:
(Checkout.Encoder.default): Pass credentials.
(Checkout.clone): Add credentials to local configuration.
(Checkout.add_credentials): Add username to .git/config and populate
.git-credentials file appropriately.
(Checkout.init): Re-add credentials.
- Tools/Scripts/libraries/reporelaypy/reporelaypy/tests/checkout_unittest.py:
(CheckoutUnittest.test_json):
- Tools/Scripts/libraries/reporelaypy/setup.py: Bump version.
Canonical link: https://commits.webkit.org/248534@main
- 6:02 AM Changeset in webkit [291403] by
-
- 11 edits in trunk
Build broken on macOS Monterey 12.3 - PassKitSPI related error
https://bugs.webkit.org/show_bug.cgi?id=238010
<rdar://problem/90417687>
Reviewed by Antoine Quint.
Unbreak the macOS 12.3 build: assure that 'PKShippingMethod' is declared before used
in the 'PKShippingMethods' interface. Fix various unused variable warnings.
No new tests. No change in functionality.
Source/WebCore:
- platform/audio/mac/AudioOutputUnitAdaptorMac.cpp:
(WebCore::AudioOutputUnitAdaptor::configure):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::getRGBAImageData const):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
Source/WebCore/PAL:
- pal/spi/cocoa/PassKitSPI.h: Swap PKShippingMethod/PKShippingMethods declarations
Source/WebKit:
- Shared/cf/ArgumentCodersCF.cpp:
(IPC::ArgumentCoder<CFStringRef>::encode):
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::compileAndCacheSandboxProfile):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:
(loadPictureInPicture):
- 5:54 AM Changeset in webkit [291402] by
-
- 9 edits in trunk/LayoutTests
Fix for accessibility/aria-tab-xxx.html tests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=237980
<rdar://problem/90392451>
Reviewed by Chris Fleizach.
these tests are flaky in isolated tree mode due to setting the focus to
the body is async.
- accessibility/aria-tab-role-on-buttons-expected.txt:
- accessibility/aria-tab-role-on-buttons.html:
- accessibility/aria-tab-roles.html:
- platform/glib/accessibility/aria-tab-roles-expected.txt:
- platform/mac/accessibility/aria-tab-role-on-buttons-expected.txt:
- platform/mac/accessibility/aria-tab-roles-expected.txt:
- platform/win/accessibility/aria-tab-role-on-buttons-expected.txt:
- platform/win/accessibility/aria-tab-roles-expected.txt:
- 5:22 AM Changeset in webkit [291401] by
-
- 3 edits in trunk/LayoutTests
Make accessibility/roles-exposed.html faster.
https://bugs.webkit.org/show_bug.cgi?id=237960
<rdar://problem/90371580>
Reviewed by Chris Fleizach.
Make this test to run faster by storing the output in memory and
modifying the DOM once as opposed to doing it in each iteration. This is
particularly important in isolated tree mode, since the test is failing
because it takes too long to execute.
Also modify the test and expectations to explicitly output when the AX
object cannot be retrieved, i.e., it is not exposed for some reason.
- accessibility/roles-exposed.html:
- platform/mac-wk2/accessibility/roles-exposed-expected.txt:
- 5:01 AM Changeset in webkit [291400] by
-
- 5 edits in trunk/LayoutTests
Fix for accessibility/aria-option-role.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=237975
<rdar://problem/90386629>
Reviewed by Chris Fleizach.
This test was flaky in isolated tree mode due to setting the focus to
the body is async. Solved by retrieving the AX element of the listbox
directly.
- accessibility/aria-option-role.html:
- platform/glib/accessibility/aria-option-role-expected.txt:
- platform/mac/accessibility/aria-option-role-expected.txt:
- platform/win/accessibility/aria-option-role-expected.txt:
- 3:07 AM Changeset in webkit [291399] by
-
- 17 edits2 adds in trunk
WebGL context lost event is not sent again for contexts that are lost and restored
https://bugs.webkit.org/show_bug.cgi?id=237952
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-17
Reviewed by Antti Koivisto.
Source/WebCore:
WebGLRenderingContextBase did not register the GraphicsContextGL::Client
for new contexts after a context lost.
Move the client registration to WebGLRenderingContextBase::setGraphicsContextGL()
which is called always when setting a new context.
Rename the GraphicsContextGL::addClient as GraphicsContextGL::setClient(),
move the shared implementation to the base class GraphicsContextGL.
Remove GraphicsContextGL::Client::recycleContext(), the use was removed in
r290816 "WebGL context count is not limited for GPU process.".
Test: webgl/multiple-context-losses.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::setGraphicsContextGL):
(WebCore::WebGLRenderingContextBase::destroyGraphicsContextGL):
- html/canvas/WebGLRenderingContextBase.h:
- platform/graphics/GraphicsContextGL.cpp:
(WebCore::GraphicsContextGL::markLayerComposited):
(WebCore::GraphicsContextGL::forceContextLost):
(WebCore::GraphicsContextGL::dispatchContextChangedNotification):
- platform/graphics/GraphicsContextGL.h:
(WebCore::GraphicsContextGL::setClient):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
Source/WebKit:
Adjust after GraphicsContextGL::addClient() was renamed setClient().
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::wasLost):
(WebKit::RemoteGraphicsContextGLProxy::wasChanged):
(WebKit::RemoteGraphicsContextGLProxy::markContextLost):
LayoutTests:
- platform/glib/TestExpectations:
- webgl/lose-context-after-context-lost-expected.txt:
- webgl/lose-context-after-context-lost.html:
Enable the test for GPUP, it works now after
r290816 "WebGL context count is not limited for GPU process.".
Adjust the order of waiting for webglcontextlost and checking
isContextLost(), so that it works when context loss is reported
asynchronously by GPUP.
- webgl/multiple-context-losses-expected.txt: Added.
- webgl/multiple-context-losses.html: Added.
Add a test testing the bug fix.
- 2:41 AM Changeset in webkit [291398] by
-
- 13 edits in trunk/Source/WebCore
Pass style builder context to CSSToLengthConversionData
https://bugs.webkit.org/show_bug.cgi?id=237963
Reviewed by Antoine Quint.
This is preparation for resolving container units.
Also general cleanups to CSSToLengthConversionData.
- css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
(WebCore::CSSConicGradientValue::createGradient):
- css/CSSToLengthConversionData.cpp:
(WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
(WebCore::CSSToLengthConversionData::zoom const): Deleted.
- css/CSSToLengthConversionData.h:
(WebCore::CSSToLengthConversionData::zoom const):
(WebCore::CSSToLengthConversionData::copyForFontSizeWithParentStyle const):
(WebCore::CSSToLengthConversionData::copyWithAdjustedZoom const):
(WebCore::CSSToLengthConversionData::copyForLineHeight const):
(WebCore::CSSToLengthConversionData::CSSToLengthConversionData): Deleted.
(WebCore::CSSToLengthConversionData::copyWithAdjustedZoomAndPropertyToCompute const): Deleted.
- css/DOMMatrixReadOnly.cpp:
(WebCore::DOMMatrixReadOnly::parseStringIntoAbstractMatrix):
- css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::evaluate const):
- css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::computeLength):
(WebCore::SizesAttributeParser::effectiveSizeDefaultValue):
- html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::resolveCustomStyle):
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::popupInternalPaddingBox const):
(WebCore::applyCommonButtonPaddingToStyle):
Setting the zoom to a weird value here does nothing, ems unit resolution ignores it.
Just don't do it.
(WebCore::RenderThemeIOS::adjustButtonStyle const):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):
(WebCore::RenderThemeIOS::adjustSearchFieldDecorationPartStyle const):
- style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLineHeight):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::mmLength):
(WebCore::Style::BuilderCustom::inchLength):
(WebCore::Style::BuilderCustom::applyValueFontSize):
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::BuilderState):
- 2:21 AM Changeset in webkit [291397] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, non-unified build fix after r291390
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
- 2:19 AM Changeset in webkit [291396] by
-
- 36 edits3 adds in trunk
[Selection] Fixes selection range settings for TEXTAREA
https://bugs.webkit.org/show_bug.cgi?id=237641
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Updating test expectations as some sub-tests are now passing.
- web-platform-tests/html/semantics/forms/textfieldselection/defaultSelection-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-extra-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/selection-value-interactions-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/textarea-selection-while-parsing-expected.txt:
Source/WebCore:
This CL is to fix the settings of SelectionStart/SelectionEnd for TEXTAREA for non-focused Element. It sets the
caret to the end of the text value except for initializing in most cases. For the case of updating defaultValue
for a non-dirty TEXTAREA, we should following the clamping steps as per spec and it will be addressed in a
follow-up patch.
This CL refers and imports part of the changes in chromium CL at
https://codereview.chromium.org/392573002
TextArea only calls setSelectionRange() for focused element. While for non-focused element, we need to update the caret
except for initializing. Since we are not change text selection for text area in this case, we only cache the selections.
It would be ideal to have a unified function call for both focused and non-focused cases. However, the selectionRange()
function changes focus of the element and the approach we are having here is to avoid the impacts on a good number of
exisiting tests.
This CL also introduces a unified setValue() API in HTMLFormControlElement for HTMLTextAreaElement and HTMLInputElement.
- html/BaseButtonInputType.cpp:
(WebCore::BaseButtonInputType::setValue):
- html/BaseButtonInputType.h:
- html/BaseCheckableInputType.cpp:
(WebCore::BaseCheckableInputType::setValue):
- html/BaseCheckableInputType.h:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::setValue):
(WebCore::BaseDateAndTimeInputType::didChangeValueFromControl):
- html/BaseDateAndTimeInputType.h:
- html/ColorInputType.cpp:
(WebCore::ColorInputType::setValue):
- html/ColorInputType.h:
- html/FileInputType.cpp:
(WebCore::FileInputType::setValue):
- html/FileInputType.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setValue):
- html/HTMLInputElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::childrenChanged):
(WebCore::HTMLTextAreaElement::reset):
(WebCore::HTMLTextAreaElement::setValue):
(WebCore::HTMLTextAreaElement::setNonDirtyValue):
(WebCore::HTMLTextAreaElement::setValueCommon):
(WebCore::HTMLTextAreaElement::copyNonAttributePropertiesFromElement):
- html/HTMLTextAreaElement.h:
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setRangeText):
- html/HTMLTextFormControlElement.h:
- html/HiddenInputType.cpp:
(WebCore::HiddenInputType::setValue):
- html/HiddenInputType.h:
- html/InputType.cpp:
(WebCore::InputType::setValue):
- html/InputType.h:
- html/NumberInputType.cpp:
(WebCore::NumberInputType::setValue):
- html/NumberInputType.h:
- html/RangeInputType.cpp:
(WebCore::RangeInputType::setValue):
- html/RangeInputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::setValue):
- html/TextFieldInputType.h:
LayoutTests:
Updated two tests that expect resetting value of textarea to change selection to 0.
These changes are in line with changes made in Chromium.
- editing/pasteboard/paste-into-textarea-with-new-line.html:
- fast/spatial-navigation/snav-textarea.html:
- 2:01 AM Changeset in webkit [291395] by
-
- 2 edits in trunk/Source/WebCore
[model] some tests under model-element crash on Big Sur bots
https://bugs.webkit.org/show_bug.cgi?id=238011
Reviewed by Cameron McCormack.
The fix for bug 237894 added another place where we might reject the ready
failure, but we didn't check whether it had already been rejected before,
which would cause an assertion failure leading to a crash on debug builds.
We now consistently check whether the ready promise had already been
fulfilled before rejecting it.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::notifyFinished):
(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::didFailLoading):
- 1:29 AM Changeset in webkit [291394] by
-
- 2 edits in trunk/Source/WebCore
[Xcode] Build broken after r289139
https://bugs.webkit.org/show_bug.cgi?id=238010
Unreviewed build fix: Remove duplicate entry from Xcode project file.
No change of behavior.
- WebCore.xcodeproj/project.pbxproj:
- 12:53 AM Changeset in webkit [291393] by
-
- 8 edits in trunk/Source/WebKit
[model] -[ASVInlinePreview setRemoteContext:] should be called inside the -[ASVInlinePreview setupRemoteConnectionWithCompletionHandler:] callback
https://bugs.webkit.org/show_bug.cgi?id=237959
rdar://87832635
Reviewed by Dean Jackson.
We need to split the code that creates a remote ASVInlinePreview on macOS in two. The first step is to create the remote ASVInlinePreview
and obtain its remote context id from the UIProcess, setting it on the WebProcess ASVInlinePreview in the callback.
The second step is to load the file in the remote ASVInlinePreview.
For these two steps, we now have two separate WebProxy messages: ModelElementCreateRemotePreview and ModelElementLoadRemotePreview.
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
(WebKit::ModelElementController::modelElementCreateRemotePreview):
(WebKit::ModelElementController::modelElementLoadRemotePreview):
(WebKit::ModelElementController::modelElementDidCreatePreview): Deleted.
- UIProcess/ModelElementController.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::modelElementCreateRemotePreview):
(WebKit::WebPageProxy::modelElementLoadRemotePreview):
(WebKit::WebPageProxy::modelElementDidCreatePreview): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.h:
- WebProcess/Model/mac/ARKitInlinePreviewModelPlayerMac.mm:
(WebKit::ARKitInlinePreviewModelPlayerMac::load):
(WebKit::ARKitInlinePreviewModelPlayerMac::createPreviewsForModelWithURL):
(WebKit::ARKitInlinePreviewModelPlayerMac::didCreateRemotePreviewForModelWithURL):
- 12:41 AM Changeset in webkit [291392] by
-
- 10 edits in trunk
[GTK][WPE] Guard libgbm and libdrm code, make them conditional dependencies for GTK
https://bugs.webkit.org/show_bug.cgi?id=237974
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-17
Reviewed by Alejandro G. Castro.
.:
Guard usage of libgbm and libdrm dependencies with the USE_LIBGBM
define. This should be required until we can switch to a possibly more
dynamic implementation that doesn't require build-time dependencies.
For the GTK port, the desire is to keep these dependencies fully
optional. At the moment they are required when enabling ANGLE-backed
WebGL, with the USE_LIBGBM also defined in that case. This is needed
because ANGLE integration for Linux ports already depends on these
libraries.
For the WPE port only USE_LIBGBM is defined and the two dependencies
remain required.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Add USE(LIBGBM) guards around GBMDevice and GBMBufferSwapchain code,
and compile against the libgbm and libdrm dependencies only when
USE_LIBGBM is defined. This makes the two dependencies optional if
desired.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- platform/graphics/gbm/GBMBufferSwapchain.cpp:
- platform/graphics/gbm/GBMBufferSwapchain.h:
- platform/graphics/gbm/GBMDevice.cpp:
- platform/graphics/gbm/GBMDevice.h:
- 12:31 AM Changeset in webkit [291391] by
-
- 4 edits4 deletes in trunk/Source/ThirdParty/libwebrtc
Remove no longer used third party webrtc modules
https://bugs.webkit.org/show_bug.cgi?id=237945
Reviewed by Eric Carlson.
Remove folders that have not been used for a long time.
- CMakeLists.txt: Removed jsoncpp compilation.
- Configurations/libwebrtc.xcconfig:
- Source/third_party/gflags: Removed.
- Source/third_party/googletest: Removed.
- Source/third_party/gtest-parallel: Removed.
- Source/third_party/jsoncpp: Removed.
- libwebrtc.xcodeproj/project.pbxproj:
- 12:21 AM Changeset in webkit [291390] by
-
- 16 edits2 adds in trunk
AudioContext is suspended on iOS when page is backgrounded
https://bugs.webkit.org/show_bug.cgi?id=237878
Reviewed by Eric Carlson.
Source/WebCore:
On iOS, when the application goes in the background, AudioContext gets suspended.
This is problematic when AudioContext is used to generate audio samples but not play audio samples.
To allow those silent AudioContexts to run even in background, the following is done:
- Override background interruptions in case the audio context default destination is not connected.
- Monitor whether the default destination is connected or not.
- If the default destination gets connected while application is in the background, trigger an interruption to prevent playing audio.
To prevent potential audio burst, we interrupt just before the destination gets connected and not just after.
For that reason, we add m_canOverrideBackgroundPlaybackRestriction to enforce interruption when we now the connection will be connected.
This approach keeps the existing iOS behavior in terms of rendered audio while allowing for not-playing audio contexts to continue in the background.
Tests: webaudio/suspend-context-while-backgrounded.html and API test.
- Modules/webaudio/AudioContext.cpp:
- Modules/webaudio/AudioContext.h:
- Modules/webaudio/AudioNode.cpp:
- Modules/webaudio/AudioSummingJunction.h:
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
- Modules/webaudio/DefaultAudioDestinationNode.h:
- platform/audio/PlatformMediaSessionManager.h:
Source/WebKit:
Expose private SPI for testing purposes.
- UIProcess/API/Cocoa/WKProcessPool.mm:
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebProcessPool.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
- TestWebKitAPI/Tests/WebKitCocoa/audio-context-playing.html:
LayoutTests:
- webaudio/suspend-context-while-backgrounded-expected.txt: Added.
- webaudio/suspend-context-while-backgrounded.html: Added.
- 12:17 AM Changeset in webkit [291389] by
-
- 19 edits in trunk/Source/WebGPU
[WebGPU] Mark unchanging class members as const
https://bugs.webkit.org/show_bug.cgi?id=237998
Reviewed by Kimmo Kinnunen.
Let's use the C++ type system to our advantage.
- WebGPU/Adapter.h:
- WebGPU/BindGroup.h:
- WebGPU/BindGroupLayout.h:
- WebGPU/CommandBuffer.h:
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePipeline.h:
- WebGPU/Device.h:
(WebGPU::Device::instance const):
(WebGPU::Device::instance): Deleted.
- WebGPU/Instance.h:
- WebGPU/QuerySet.h:
- WebGPU/Queue.h:
- WebGPU/RenderBundle.h:
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPipeline.h:
- WebGPU/Sampler.h:
- WebGPU/ShaderModule.h:
- WebGPU/Texture.h:
- WebGPU/TextureView.h:
Mar 16, 2022:
- 10:25 PM Changeset in webkit [291388] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.2.3
- 8:56 PM Changeset in webkit [291387] by
-
- 5 edits in trunk/Source/WebGPU
[WebGPU] Implement sampler creation according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237882
Reviewed by Kimmo Kinnunen.
Implement Device::createSampler() according to the algorithm in the spec. There
are a few things which the spec lists which we can't do yet (like making objects
invalid), so those things are left with FIXMEs. Every step is listed with links
to the spec where appropriate, and with quotes to the spec describing what is
being implemented.
- WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
- WebGPU/ComputePipeline.mm:
(WebGPU::createConstantValues):
- WebGPU/Sampler.h:
(WebGPU::Sampler::create):
(WebGPU::Sampler::descriptor const):
(WebGPU::Sampler::isComparison const):
(WebGPU::Sampler::isFiltering const):
- WebGPU/Sampler.mm:
(WebGPU::validateCreateSampler):
(WebGPU::Device::createSampler):
(WebGPU::Sampler::Sampler):
- 8:37 PM Changeset in webkit [291386] by
-
- 9 edits in trunk/Source/WebGPU
[WebGPU] Implement first draft of debug commands according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237879
Reviewed by Kimmo Kinnunen.
Implement insertDebugMarker(), pushDebugGroup(), and popDebugGroup() according to
the algorithms in the spec. There are a few things which the spec lists which we
can't do yet (like making objects invalid), so those things are left with FIXMEs.
Every step is listed with links to the spec where appropriate, and with quotes to
the spec describing what is being implemented. Also, because each class handles
these debug commands slightly differently (CommandEncoders support debug groups
but not debug markers; RenderBundles don't support any of them, and
ComputeEncoders support all of them) I opted to not try to do any code sharing.
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::validatePopDebugGroup const):
(WebGPU::CommandEncoder::popDebugGroup):
(WebGPU::CommandEncoder::pushDebugGroup):
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePassEncoder.mm:
(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::validatePopDebugGroup const):
(WebGPU::ComputePassEncoder::popDebugGroup):
(WebGPU::ComputePassEncoder::pushDebugGroup):
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::validatePopDebugGroup const):
(WebGPU::RenderBundleEncoder::popDebugGroup):
(WebGPU::RenderBundleEncoder::pushDebugGroup):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::validatePopDebugGroup const):
(WebGPU::RenderPassEncoder::popDebugGroup):
(WebGPU::RenderPassEncoder::pushDebugGroup):
- 8:06 PM Changeset in webkit [291385] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Implement first draft of CommandEncoder::clearBuffer() according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237877
Reviewed by Kimmo Kinnunen.
Implement CommandEncoder::clearBuffer() according to the algorithms in the spec.
There are a few things which the spec lists which we can't do yet (like reporting
validation errors), so those things are left with FIXMEs. Every step is listed
with links to the spec where appropriate, and with quotes to the spec describing
what is being implemented.
- WebGPU/CommandEncoder.mm:
(WebGPU::validateClearBuffer):
(WebGPU::CommandEncoder::clearBuffer):
- 8:02 PM Changeset in webkit [291384] by
-
- 19 edits in trunk/Source
[WebGPU] Use block-based WebGPU API instead of function pointer & userdata API
https://bugs.webkit.org/show_bug.cgi?id=237932
Reviewed by Kimmo Kinnunen.
Source/WebCore/PAL:
Thanks to the magic of makeBlockPtr(), we can use lambdas to pass asynchronous callbacks
to WebGPU methods, instead of having to save callbacks in a queue manually. This is much
safer because A) it's significantly less code, which means fewer bugs, and B) the
callbacks are allowed to fire out-of-order now.
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
(PAL::WebGPU::AdapterImpl::requestDevice):
(PAL::WebGPU::requestDeviceCallback): Deleted.
(PAL::WebGPU::AdapterImpl::requestDeviceCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:
(PAL::WebGPU::BufferImpl::mapAsync):
(PAL::WebGPU::mapCallback): Deleted.
(PAL::WebGPU::BufferImpl::mapCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::popErrorScope):
(PAL::WebGPU::createComputePipelineAsyncCallback): Deleted.
(PAL::WebGPU::DeviceImpl::createComputePipelineAsyncCallback): Deleted.
(PAL::WebGPU::createRenderPipelineAsyncCallback): Deleted.
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsyncCallback): Deleted.
(PAL::WebGPU::popErrorScopeCallback): Deleted.
(PAL::WebGPU::DeviceImpl::popErrorScopeCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
(PAL::WebGPU::GPUImpl::requestAdapter):
(PAL::WebGPU::requestAdapterCallback): Deleted.
(PAL::WebGPU::GPUImpl::requestAdapterCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
(PAL::WebGPU::onSubmittedWorkDoneCallback): Deleted.
(PAL::WebGPU::QueueImpl::onSubmittedWorkDoneCallback): Deleted.
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp:
(PAL::WebGPU::ShaderModuleImpl::compilationInfo):
Source/WebGPU:
Move callbacks instead of copying them. Also, update according to the style guide.
- WebGPU/Adapter.mm:
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
- WebGPU/Buffer.mm:
(wgpuBufferMapAsync):
(wgpuBufferMapAsyncWithBlock):
- WebGPU/Device.mm:
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDevicePopErrorScope):
(wgpuDevicePopErrorScopeWithBlock):
(wgpuDeviceSetDeviceLostCallback):
(wgpuDeviceSetDeviceLostCallbackWithBlock):
(wgpuDeviceSetUncapturedErrorCallback):
(wgpuDeviceSetUncapturedErrorCallbackWithBlock):
- WebGPU/Instance.mm:
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):
- WebGPU/Queue.mm:
(wgpuQueueOnSubmittedWorkDone):
(wgpuQueueOnSubmittedWorkDoneWithBlock):
- WebGPU/ShaderModule.mm:
(wgpuShaderModuleGetCompilationInfo):
(wgpuShaderModuleGetCompilationInfoWithBlock):
- 7:51 PM Changeset in webkit [291383] by
-
- 2 edits in trunk/Source/WebKit
Always update assertion state for existing default network process
https://bugs.webkit.org/show_bug.cgi?id=237965
Reviewed by Chris Dumez.
In our current implementation, we only update process assertion state for network process if it's being used by
some WebsiteDataStore. An problematic case with this impelmentation found by Tim: when a network process is
created for some WebsiteDataStore, and the WebsiteDataStore is gone (WebView gets destroyed), then network
process will get suspended. At this time, if a new WebsiteDataStore is created, some activities happen and we
update assertion state, we don't resume the network process, since it's not actively being used (the new
WebsiteDataStore has not invoked networkProcess() yet). Later on if the WebsiteDataStore starts to use network
process (it reuses existing process as network process is a singleton on Cocoa platforms), the network process
will be numb and not respond any message because it is suspended.
To fix this issue, let's always update assertion state for existing network process.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::updateProcessAssertions):
- 7:30 PM Changeset in webkit [291382] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Implement queue submission methods according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237869
Reviewed by Kimmo Kinnunen.
Addressing post-review comments.
- WebGPU/Queue.mm:
(WebGPU::Queue::submit):
- 5:55 PM Changeset in webkit [291381] by
-
- 5 edits in trunk/Source/WebKit
Don't build WebPageProxy::writePromisedAttachmentToPasteboard() and its IPC on macOS
https://bugs.webkit.org/show_bug.cgi?id=237986
Reviewed by Brent Fulgham.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::writePromisedAttachmentToPasteboard):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- 5:39 PM Changeset in webkit [291380] by
-
- 2 edits in trunk/Source/JavaScriptCore
Web Inspector: REGRESSION(r290720): Debugger: Step next should not behave the same as Step into
https://bugs.webkit.org/show_bug.cgi?id=237936
Reviewed by Joseph Pecoraro.
Covered by existing tests (not sure why they don't fail on EWS, but they fail locally).
- debugger/Debugger.cpp:
(JSC::Debugger::pauseIfNeeded):
Checking that the desiredCallFramematches the currentCallFrameis enough to determine
whether theDebuggershould pause for Step next and Step out, as both of those actions set
a desiredCallFrame. We explicitly do not want to check for theboolflags that indicate
those actions because they have different behaviors regarding the currentCallFrame(the
former desires the sameCallFrameand the latter desires the parentCallFrame). This
patch partially reverts r290720.
- 5:36 PM Changeset in webkit [291379] by
-
- 3 edits in branches/safari-614.1.6-branch/Source/WebKit
Cherry-pick r291352. rdar://problem/90271228
Incorrect header name used in has_include
https://bugs.webkit.org/show_bug.cgi?id=237914
<rdar://90271228>
Reviewed by Geoffrey Garen.
- Configurations/WebKit.xcconfig:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291352 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:23 PM Changeset in webkit [291378] by
-
- 2 edits in trunk/Source/WebCore
[Apple Pay] version values are incorrect, causing incorrect feature detection
https://bugs.webkit.org/show_bug.cgi?id=237989
<rdar://problem/90399356>
Reviewed by Tim Horton.
Version 13 should also be enabled for
ENABLE_APPLE_PAY_SELECTED_SHIPPING_METHOD, and
ENABLE_APPLE_PAY_PAYMENT_DETAILS_DATAreally corresponds to Version 14.
- Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:
(WebCore::PaymentAPIVersion::current):
- 5:05 PM Changeset in webkit [291377] by
-
- 2 edits in trunk/Source/WebGPU
[WebGPU] Put nontrivial code in WebGPU's command line playground
https://bugs.webkit.org/show_bug.cgi?id=237876
Reviewed by Kimmo Kinnunen.
This is a simple mempcy() example. It uses asynchronous mapping and a queue submit.
- CommandLinePlayground/main.swift:
(device):
- 5:02 PM Changeset in webkit [291376] by
-
- 46 edits1 add in trunk/Source/WebGPU
[WebGPU] Use the fromAPI() pattern
https://bugs.webkit.org/show_bug.cgi?id=237942
Reviewed by Kimmo Kinnunen.
Inside API functions, use an overloaded fromAPI() function to convert
API types to their backing types.
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/APIConversions.h: Added.
(WebGPU::fromAPI):
- WebGPU/Adapter.h:
- WebGPU/Adapter.mm:
(WebGPU::Adapter::requestDevice):
(wgpuAdapterEnumerateFeatures):
(wgpuAdapterGetLimits):
(wgpuAdapterGetProperties):
(wgpuAdapterHasFeature):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
- WebGPU/BindGroup.h:
- WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::setLabel):
(wgpuBindGroupSetLabel):
- WebGPU/BindGroupLayout.h:
- WebGPU/BindGroupLayout.mm:
(WebGPU::BindGroupLayout::setLabel):
(wgpuBindGroupLayoutSetLabel):
- WebGPU/Buffer.h:
- WebGPU/Buffer.mm:
(WebGPU::Buffer::setLabel):
(wgpuBufferDestroy):
(wgpuBufferGetConstMappedRange):
(wgpuBufferGetMappedRange):
(wgpuBufferMapAsync):
(wgpuBufferMapAsyncWithBlock):
(wgpuBufferUnmap):
(wgpuBufferSetLabel):
- WebGPU/CommandBuffer.h:
- WebGPU/CommandBuffer.mm:
(WebGPU::CommandBuffer::setLabel):
(wgpuCommandBufferSetLabel):
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::insertDebugMarker):
(WebGPU::CommandEncoder::pushDebugGroup):
(WebGPU::CommandEncoder::setLabel):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderCopyBufferToBuffer):
(wgpuCommandEncoderCopyBufferToTexture):
(wgpuCommandEncoderCopyTextureToBuffer):
(wgpuCommandEncoderCopyTextureToTexture):
(wgpuCommandEncoderClearBuffer):
(wgpuCommandEncoderFinish):
(wgpuCommandEncoderInsertDebugMarker):
(wgpuCommandEncoderPopDebugGroup):
(wgpuCommandEncoderPushDebugGroup):
(wgpuCommandEncoderResolveQuerySet):
(wgpuCommandEncoderWriteTimestamp):
(wgpuCommandEncoderSetLabel):
- WebGPU/ComputePassEncoder.h:
- WebGPU/ComputePassEncoder.mm:
(WebGPU::ComputePassEncoder::insertDebugMarker):
(WebGPU::ComputePassEncoder::pushDebugGroup):
(WebGPU::ComputePassEncoder::setLabel):
(wgpuComputePassEncoderBeginPipelineStatisticsQuery):
(wgpuComputePassEncoderDispatch):
(wgpuComputePassEncoderDispatchIndirect):
(wgpuComputePassEncoderEndPass):
(wgpuComputePassEncoderEndPipelineStatisticsQuery):
(wgpuComputePassEncoderInsertDebugMarker):
(wgpuComputePassEncoderPopDebugGroup):
(wgpuComputePassEncoderPushDebugGroup):
(wgpuComputePassEncoderSetBindGroup):
(wgpuComputePassEncoderSetPipeline):
(wgpuComputePassEncoderSetLabel):
- WebGPU/ComputePipeline.h:
- WebGPU/ComputePipeline.mm:
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
(WebGPU::ComputePipeline::setLabel):
(wgpuComputePipelineGetBindGroupLayout):
(wgpuComputePipelineSetLabel):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::create):
(WebGPU::Device::popErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
(WebGPU::Device::setLabel):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceDestroy):
(wgpuDeviceEnumerateFeatures):
(wgpuDeviceGetLimits):
(wgpuDeviceHasFeature):
(wgpuDevicePopErrorScope):
(wgpuDevicePopErrorScopeWithBlock):
(wgpuDevicePushErrorScope):
(wgpuDeviceSetDeviceLostCallback):
(wgpuDeviceSetDeviceLostCallbackWithBlock):
(wgpuDeviceSetUncapturedErrorCallback):
(wgpuDeviceSetUncapturedErrorCallbackWithBlock):
(wgpuDeviceSetLabel):
- WebGPU/Instance.h:
- WebGPU/Instance.mm:
(WebGPU::Instance::requestAdapter):
(wgpuInstanceCreateSurface):
(wgpuInstanceProcessEvents):
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):
- WebGPU/PipelineLayout.h:
- WebGPU/PipelineLayout.mm:
(WebGPU::Device::createPipelineLayout):
(WebGPU::PipelineLayout::setLabel):
(wgpuPipelineLayoutSetLabel):
- WebGPU/QuerySet.h:
- WebGPU/QuerySet.mm:
(WebGPU::QuerySet::setLabel):
(wgpuQuerySetDestroy):
(wgpuQuerySetSetLabel):
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
(WebGPU::Queue::setLabel):
(wgpuQueueOnSubmittedWorkDone):
(wgpuQueueOnSubmittedWorkDoneWithBlock):
(wgpuQueueSubmit):
(wgpuQueueWriteBuffer):
(wgpuQueueWriteTexture):
(wgpuQueueSetLabel):
- WebGPU/RenderBundle.h:
- WebGPU/RenderBundle.mm:
(WebGPU::RenderBundle::setLabel):
(wgpuRenderBundleSetLabel):
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::insertDebugMarker):
(WebGPU::RenderBundleEncoder::pushDebugGroup):
(WebGPU::RenderBundleEncoder::setLabel):
(wgpuRenderBundleEncoderDraw):
(wgpuRenderBundleEncoderDrawIndexed):
(wgpuRenderBundleEncoderDrawIndexedIndirect):
(wgpuRenderBundleEncoderDrawIndirect):
(wgpuRenderBundleEncoderFinish):
(wgpuRenderBundleEncoderInsertDebugMarker):
(wgpuRenderBundleEncoderPopDebugGroup):
(wgpuRenderBundleEncoderPushDebugGroup):
(wgpuRenderBundleEncoderSetBindGroup):
(wgpuRenderBundleEncoderSetIndexBuffer):
(wgpuRenderBundleEncoderSetPipeline):
(wgpuRenderBundleEncoderSetVertexBuffer):
(wgpuRenderBundleEncoderSetLabel):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::insertDebugMarker):
(WebGPU::RenderPassEncoder::pushDebugGroup):
(WebGPU::RenderPassEncoder::setLabel):
(wgpuRenderPassEncoderBeginOcclusionQuery):
(wgpuRenderPassEncoderBeginPipelineStatisticsQuery):
(wgpuRenderPassEncoderDraw):
(wgpuRenderPassEncoderDrawIndexed):
(wgpuRenderPassEncoderDrawIndexedIndirect):
(wgpuRenderPassEncoderDrawIndirect):
(wgpuRenderPassEncoderEndOcclusionQuery):
(wgpuRenderPassEncoderEndPass):
(wgpuRenderPassEncoderEndPipelineStatisticsQuery):
(wgpuRenderPassEncoderExecuteBundles):
(wgpuRenderPassEncoderInsertDebugMarker):
(wgpuRenderPassEncoderPopDebugGroup):
(wgpuRenderPassEncoderPushDebugGroup):
(wgpuRenderPassEncoderSetBindGroup):
(wgpuRenderPassEncoderSetBlendConstant):
(wgpuRenderPassEncoderSetIndexBuffer):
(wgpuRenderPassEncoderSetPipeline):
(wgpuRenderPassEncoderSetScissorRect):
(wgpuRenderPassEncoderSetStencilReference):
(wgpuRenderPassEncoderSetVertexBuffer):
(wgpuRenderPassEncoderSetViewport):
(wgpuRenderPassEncoderSetLabel):
- WebGPU/RenderPipeline.h:
- WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipelineAsync):
(WebGPU::RenderPipeline::setLabel):
(wgpuRenderPipelineGetBindGroupLayout):
(wgpuRenderPipelineSetLabel):
- WebGPU/Sampler.h:
- WebGPU/Sampler.mm:
(WebGPU::Sampler::setLabel):
(wgpuSamplerSetLabel):
- WebGPU/ShaderModule.h:
- WebGPU/ShaderModule.mm:
(WebGPU::ShaderModule::setLabel):
(wgpuShaderModuleGetCompilationInfo):
(wgpuShaderModuleGetCompilationInfoWithBlock):
(wgpuShaderModuleSetLabel):
- WebGPU/Surface.mm:
(wgpuSurfaceGetPreferredFormat):
- WebGPU/SwapChain.mm:
(wgpuSwapChainGetCurrentTextureView):
(wgpuSwapChainPresent):
- WebGPU/Texture.h:
- WebGPU/Texture.mm:
(WebGPU::Texture::setLabel):
(wgpuTextureCreateView):
(wgpuTextureDestroy):
(wgpuTextureSetLabel):
- WebGPU/TextureView.h:
- WebGPU/TextureView.mm:
(WebGPU::TextureView::setLabel):
(wgpuTextureViewSetLabel):
- 5:02 PM Changeset in webkit [291375] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=237987
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 4:01 PM Changeset in webkit [291374] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] Minor AVVideoCaptureSource cleanup
https://bugs.webkit.org/show_bug.cgi?id=237978
<rdar://problem/90388332>
Reviewed by Jer Noble.
No new tests, no behavior change.
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setupSession): Use
instancesRespondToSelector:
instead ofrespondsToSelector:so we don't have to allocate an AVCaptureSession
just to find out how to initialize it.
- 3:55 PM Changeset in webkit [291373] by
-
- 2 edits in trunk/Tools
[Merge-Queue] Add step to make comment on pull requests
https://bugs.webkit.org/show_bug.cgi?id=237962
<rdar://problem/90371727>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.comment_on_pr): Make a comment on pull request for in repository.
(ApplyPatch.evaluateCommand): Rename CommentOnBug to LeaveComment.
(ValidateCommiterAndReviewer.fail_build): Ditto.
(ValidateChangeLogAndReviewer.evaluateCommand): Ditto.
(LeaveComment): Renamed from CommentOnBug, support pull request
(LeaveComment.start):
(LeaveComment.getResultSummary):
(AnalyzeCompileWebKitResults.analyzeResults): Rename CommentOnBug to LeaveComment.
(AnalyzeLayoutTestsResults.report_failure): Ditto.
(FindModifiedChangeLogs.evaluateCommand): Ditto.
(CreateLocalGITCommit.evaluateCommand): Ditto.
(PushCommitToWebKitRepo.evaluateCommand): Ditto.
(CommentOnBug): Renamed to LeaveComment.
Canonical link: https://commits.webkit.org/248505@main
- 3:13 PM Changeset in webkit [291372] by
-
- 4 edits2 adds in trunk/Source/WebGPU
[WebGPU] Implement first draft of buffer copying according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237871
Reviewed by Kimmo Kinnunen.
Implement CommandEncoder::copyBufferToBuffer() and CommandEncoder::finish(),
according to the algorithms in the spec. There are a few things which the spec
lists which we can't do yet (like reporting validation errors), so those things
are left with FIXMEs. Every step is listed with links to the spec where
appropriate, and with quotes to the spec describing what is being implemented.
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::ensureBlitCommandEncoder):
(WebGPU::CommandEncoder::finalizeBlitCommandEncoder):
(WebGPU::validateCopyBufferToBuffer):
(WebGPU::CommandEncoder::copyBufferToBuffer):
(WebGPU::CommandEncoder::validateFinish const):
(WebGPU::CommandEncoder::finish):
- WebGPU/CommandsMixin.h: Added.
- WebGPU/CommandsMixin.mm: Added.
(WebGPU::CommandsMixin::prepareTheEncoderState const):
- 2:58 PM Changeset in webkit [291371] by
-
- 8 edits in trunk/Source/WebKit
CoreIPC Hardening: Add user gesture check when saving images
https://bugs.webkit.org/show_bug.cgi?id=237839
<rdar://72058321>
Reviewed by Chris Dumez.
Add check to confirm that attempts to store images in the user's Photo
Library and attempts to store data in the pasteboard were triggered by
a user gesture.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::writePromisedAttachmentToPasteboard): Message check the authorization token before
performing the write.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::isValidPerformActionOnElementAuthorizationToken const): Added.
(WebKit::WebPageProxy::performActionOnElement): Added.
(WebKit::WebPageProxy::saveImageToLibrary): Message check the authorization token before
performing the save.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):
- 2:55 PM Changeset in webkit [291370] by
-
- 11 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
- platform/wincairo/css1/box_properties/margin_right-expected.txt:
- platform/wincairo/css1/box_properties/padding_right-expected.txt:
- platform/wincairo/css2.1/t0505-c16-descendant-01-e-expected.txt:
- platform/wincairo/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
- platform/wincairo/fast/dom/HTMLMeterElement/meter-optimums-expected.txt:
- platform/wincairo/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
- platform/wincairo/fast/dom/scroll-reveal-top-overflow-expected.txt:
- platform/wincairo/fast/html/details-writing-mode-expected.txt:
- platform/wincairo/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
- 2:49 PM Changeset in webkit [291369] by
-
- 6 edits in trunk/Source
[WebGPU] Implement first draft of buffer mapping according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237870
Reviewed by Kimmo Kinnunen.
Source/WebGPU:
Implement the various GPUBuffer methods, according to the algorithms in the spec.
There are a few things which the spec lists which we can't do yet (like reporting
validation errors), so those things are left with FIXMEs. Every step is listed with
links to the spec where appropriate, and with quotes to the spec describing what
is being implemented.
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/Buffer.h:
(WebGPU::Buffer::create):
(WebGPU::Buffer::size const):
(WebGPU::Buffer::usage const):
- WebGPU/Buffer.mm:
(WebGPU::validateDescriptor):
(WebGPU::validateCreateBuffer):
(WebGPU::storageMode):
(WebGPU::Device::createBuffer):
(WebGPU::Buffer::Buffer):
(WebGPU::Buffer::destroy):
(WebGPU::Buffer::getConstMappedRange):
(WebGPU::Buffer::validateGetMappedRange const):
(WebGPU::Buffer::getMappedRange):
(WebGPU::Buffer::validateMapAsync const):
(WebGPU::Buffer::mapAsync):
(WebGPU::Buffer::validateUnmap const):
(WebGPU::Buffer::unmap):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::Device):
Source/WTF:
WTF classes usually have 'using' statements so users don't have to qualify all uses.
- wtf/Range.h:
- 2:35 PM Changeset in webkit [291368] by
-
- 2 edits in trunk/Source/WebCore
[PlayStation] Fix build break after r291341
https://bugs.webkit.org/show_bug.cgi?id=237971
Unreviewed build fix.
- platform/playstation/MIMETypeRegistryPlayStation.cpp:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
- 2:32 PM Changeset in webkit [291367] by
-
- 2 edits in trunk/Source/WebKit
Do not suspend NetworkStorageManager if it is used for ephemeral session
https://bugs.webkit.org/show_bug.cgi?id=237943
Reviewed by Chris Dumez.
The reason we need to suspend NetworkStorageManager when process is suspended, is that it might hold file lock
during its operations. NetworkStorageManager of ephemeral sessions will not hold file lock; suspending its
WorkQueue will only delay storage operations.
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::suspend):
(WebKit::NetworkStorageManager::resume):
- 2:20 PM Changeset in webkit [291366] by
-
- 4 edits in trunk/Source/WebGPU
[WebGPU] Implement queue submission methods according to the spec
https://bugs.webkit.org/show_bug.cgi?id=237869
Reviewed by Kimmo Kinnunen.
Now that we can enqueue tasks to the main thread (https://bugs.webkit.org/show_bug.cgi?id=237852)
we can now implement Queue::onSubmittedWorkDone() and Queue::submit(). The way it works is pretty
simple - there's a count of the number of submitted command buffers (m_submittedCommandBufferCount)
and the number of completed command buffers (m_completedCommandBufferCount). When the two values
are equal, the queue is idle, and the onSubmittedWorkDone() work should happen the next time the
runloop turns. Otherwise, we stick the work in a HashMap, keyed by the value that
m_completedCommandBufferCount will have to become at the point this callback should run.
- WebGPU/Queue.h:
(WebGPU::Queue::commandQueue const):
- WebGPU/Queue.mm:
(WebGPU::Queue::onSubmittedWorkDone):
(WebGPU::Queue::validateSubmit const):
(WebGPU::Queue::submit):
- WebGPU/TextureView.mm:
- 2:06 PM Changeset in webkit [291365] by
-
- 8 edits in trunk/Source/WebGPU
[WebGPU] Create a path of Ref<>s between Instance and Queue
https://bugs.webkit.org/show_bug.cgi?id=237864
Reviewed by Kimmo Kinnunen.
The ownership model of WebGPU is that there is a tree of objects, and Javascript has references
to the leaves of the tree. The leaves are therefore allowed to reference their parents, all the
way up the tree. Therefore, Buffer can have a Ref to Device, which can have a Ref to Instance.
Device has to be in the chain eventually, because of the "valid to use with" check:
https://gpuweb.github.io/gpuweb/#abstract-opdef-valid-to-use-with, so we might as well add it in
to the chain now.
The one exception from this ownership model is Queue, which needs to be owned by Device, so
Device::getQueue() can return the same object when called multiple times (see
https://bugs.webkit.org/show_bug.cgi?id=237861). So, Queue has a raw C++ reference to its owning
Device.
Queue needs to be able to run asynchronous work, becuase Queue will need to add completedHandlers
to all command buffers committed, in order to perform its own internal bookkeeping. So, Queue
uses its C++ reference to its owning Device, which uses its Ref to its Instance, in order to use
Instance's facilities for running asynchronous work. This patch adds the necessesary Ref<>s to
make that happen.
- WebGPU/Adapter.h:
(WebGPU::Adapter::create):
- WebGPU/Adapter.mm:
(WebGPU::Adapter::Adapter):
(WebGPU::Adapter::requestDevice):
(WebGPU::Adapter::scheduleWork):
- WebGPU/Device.h:
(WebGPU::Device::create):
- WebGPU/Device.mm:
(WebGPU::createDefaultQueue):
(WebGPU::Device::Device):
(WebGPU::Device::scheduleWork):
(WebGPU::Device::create): Deleted.
- WebGPU/Instance.mm:
(WebGPU::Instance::requestAdapter):
- WebGPU/Queue.h:
(WebGPU::Queue::create):
- WebGPU/Queue.mm:
(WebGPU::Queue::Queue):
(WebGPU::Queue::scheduleWork):
- 1:52 PM Changeset in webkit [291364] by
-
- 10 edits6 adds in trunk/Source/WebCore
[GPU Process] Move other classes out of GraphicsContext.h
https://bugs.webkit.org/show_bug.cgi?id=237944
Reviewed by Simon Fraser.
This is a step towards making GraphicsContextState a class and move
more functionalities to it.
- Headers.cmake:
- PlatformAppleWin.cmake:
- PlatformMac.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/GraphicsContext.cpp:
(WebCore::TextBoxIterator::TextBoxIterator): Deleted.
(WebCore::TextBoxIterator::offset const): Deleted.
(WebCore::TextBoxIterator::increment): Deleted.
(WebCore::TextBoxIterator::atEnd const): Deleted.
(WebCore::TextBoxIterator::current const): Deleted.
(WebCore::TextBoxIterator::direction const): Deleted.
(WebCore::TextBoxIterator::operator== const): Deleted.
(WebCore::TextBoxIterator::operator!= const): Deleted.
(WebCore::GraphicsContextState::GraphicsContextState): Deleted.
(WebCore::GraphicsContextState::mergeChanges): Deleted.
(WebCore::GraphicsContextStateChange::changesFromState const): Deleted.
(WebCore::GraphicsContextStateChange::accumulate): Deleted.
(WebCore::GraphicsContextStateChange::apply const): Deleted.
(WebCore::GraphicsContextStateChange::dump const): Deleted.
(WebCore::operator<<): Deleted.
- platform/graphics/GraphicsContext.h:
(WebCore::DocumentMarkerLineStyle::encode const): Deleted.
(WebCore::DocumentMarkerLineStyle::decode): Deleted.
(WebCore::GraphicsContextStateChange::GraphicsContextStateChange): Deleted.
(WebCore::GraphicsContextStateSaver::GraphicsContextStateSaver): Deleted.
(WebCore::GraphicsContextStateSaver::~GraphicsContextStateSaver): Deleted.
(WebCore::GraphicsContextStateSaver::save): Deleted.
(WebCore::GraphicsContextStateSaver::restore): Deleted.
(WebCore::GraphicsContextStateSaver::context const): Deleted.
(WebCore::TransparencyLayerScope::TransparencyLayerScope): Deleted.
(WebCore::TransparencyLayerScope::beginLayer): Deleted.
(WebCore::TransparencyLayerScope::~TransparencyLayerScope): Deleted.
(WebCore::GraphicsContextStateStackChecker::GraphicsContextStateStackChecker): Deleted.
(WebCore::GraphicsContextStateStackChecker::~GraphicsContextStateStackChecker): Deleted.
(WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer): Deleted.
(WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer): Deleted.
- platform/graphics/GraphicsContextState.cpp: Added.
(WebCore::GraphicsContextState::GraphicsContextState):
(WebCore::GraphicsContextState::mergeChanges):
(WebCore::GraphicsContextStateChange::changesFromState const):
(WebCore::GraphicsContextStateChange::accumulate):
(WebCore::GraphicsContextStateChange::apply const):
(WebCore::GraphicsContextStateChange::dump const):
(WebCore::operator<<):
- platform/graphics/GraphicsContextState.h: Added.
(WebCore::GraphicsContextStateChange::GraphicsContextStateChange):
- platform/graphics/GraphicsContextStateSaver.h: Added.
(WebCore::GraphicsContextStateSaver::GraphicsContextStateSaver):
(WebCore::GraphicsContextStateSaver::~GraphicsContextStateSaver):
(WebCore::GraphicsContextStateSaver::save):
(WebCore::GraphicsContextStateSaver::restore):
(WebCore::GraphicsContextStateSaver::context const):
(WebCore::TransparencyLayerScope::TransparencyLayerScope):
(WebCore::TransparencyLayerScope::beginLayer):
(WebCore::TransparencyLayerScope::~TransparencyLayerScope):
(WebCore::GraphicsContextStateStackChecker::GraphicsContextStateStackChecker):
(WebCore::GraphicsContextStateStackChecker::~GraphicsContextStateStackChecker):
(WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
(WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer):
- platform/graphics/GraphicsTypes.h:
(WebCore::DocumentMarkerLineStyle::encode const):
(WebCore::DocumentMarkerLineStyle::decode):
- platform/graphics/PlatformGraphicsContext.h: Added.
- platform/graphics/TextBoxIterator.h: Added.
(WebCore::TextBoxIterator::TextBoxIterator):
(WebCore::TextBoxIterator::offset const):
(WebCore::TextBoxIterator::increment):
(WebCore::TextBoxIterator::atEnd const):
(WebCore::TextBoxIterator::current const):
(WebCore::TextBoxIterator::direction const):
(WebCore::TextBoxIterator::operator== const):
(WebCore::TextBoxIterator::operator!= const):
- platform/graphics/cg/CGContextStateSaver.h: Added.
(WebCore::CGContextStateSaver::CGContextStateSaver):
(WebCore::CGContextStateSaver::~CGContextStateSaver):
(WebCore::CGContextStateSaver::save):
(WebCore::CGContextStateSaver::restore):
(WebCore::CGContextStateSaver::didSave const):
- platform/graphics/cg/GraphicsContextCG.h:
(WebCore::CGContextStateSaver::CGContextStateSaver): Deleted.
(WebCore::CGContextStateSaver::~CGContextStateSaver): Deleted.
(WebCore::CGContextStateSaver::save): Deleted.
(WebCore::CGContextStateSaver::restore): Deleted.
(WebCore::CGContextStateSaver::didSave const): Deleted.
- 1:50 PM Changeset in webkit [291363] by
-
- 2 edits in trunk/Tools
Suppress warnings for implicit conversion from unsigned long to double
https://bugs.webkit.org/show_bug.cgi?id=237899
<rdar://problem/90364907>
Reviewed by Darin Adler.
Add static_cast for approx casting to double.
- TestWebKitAPI/Tests/WTF/Int128.cpp:
(TestWebKitAPI::TEST):
- 1:45 PM Changeset in webkit [291362] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo][WebGL] Crash in WebKit::WCContentBuffer::platformLayerWillBeDestroyed()
https://bugs.webkit.org/show_bug.cgi?id=237819
Reviewed by Don Olmstead.
WinCairo WTR was randomly crashing in
WCContentBuffer::platformLayerWillBeDestroyed(). It accessed a
stale pointer of WCScene::Layer.
- GPUProcess/graphics/wc/WCScene.cpp:
(WebKit::WCScene::Layer::~Layer): Clear the client of
WCContentBuffer.
(WebKit::WCScene::update):
- 1:29 PM Changeset in webkit [291361] by
-
- 10 edits in trunk/Source
[iOS] WebAVMediaSelectionOption should implement -mediaType
https://bugs.webkit.org/show_bug.cgi?id=237966
rdar://89934589
Reviewed by Jer Noble.
Source/WebCore:
WebKit uses AVKit to implement "video fullscreen" on iOS. AVKit can only be used
in the UI process, but WebKit's AVFoundation objects are in the GPU process, so we
create "proxy" objects in the UI process and pass state from them between the two
processes. One such object is WebAVMediaSelectionOption, which proxies for an
AVMediaSelectionOption. This proxy originally only implemented -localizedDisplayName
but AVKit now sometimes uses -mediaType, which causes an assert when it messages the
non-existent selector. Add -mediaType to fix the assert, and add log-only stubs
for every other AVMediaSelectionOption selector to catch future changes.
- page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::mediaSelectionOptionForTrack const):
- platform/MediaSelectionOption.h:
(WebCore::MediaSelectionOption::MediaSelectionOption):
(WebCore::MediaSelectionOption::isolatedCopy const):
(WebCore::MediaSelectionOption::isolatedCopy):
(WebCore::MediaSelectionOption::encode const):
(WebCore::MediaSelectionOption::decode):
- platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::toAVMediaType):
(WebCore::mediaSelectionOptions):
- platform/ios/WebAVPlayerController.h:
- platform/ios/WebAVPlayerController.mm:
(-[WebAVMediaSelectionOption initWithMediaType:displayName:]):
(-[WebAVMediaSelectionOption mediaSubTypes]):
(-[WebAVMediaSelectionOption hasMediaCharacteristic:]):
(-[WebAVMediaSelectionOption isPlayable]):
(-[WebAVMediaSelectionOption extendedLanguageTag]):
(-[WebAVMediaSelectionOption locale]):
(-[WebAVMediaSelectionOption commonMetadata]):
(-[WebAVMediaSelectionOption availableMetadataFormats]):
(-[WebAVMediaSelectionOption metadataForFormat:]):
(-[WebAVMediaSelectionOption associatedMediaSelectionOptionInMediaSelectionGroup:]):
(-[WebAVMediaSelectionOption propertyList]):
(-[WebAVMediaSelectionOption displayNameWithLocale:]):
(-[WebAVMediaSelectionOption mediaCharacteristics]):
(-[WebAVMediaSelectionOption outOfBandSource]):
(-[WebAVMediaSelectionOption outOfBandIdentifier]):
(-[WebAVMediaSelectionOption _isDesignatedDefault]):
(-[WebAVMediaSelectionOption languageCode]):
(-[WebAVMediaSelectionOption track]):
- platform/mac/WebPlaybackControlsManager.mm:
(toAVTouchBarMediaSelectionOptionType):
(mediaSelectionOptions):
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<MediaSelectionOption>::encode): Deleted.
(IPC::ArgumentCoder<MediaSelectionOption>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- 12:35 PM Changeset in webkit [291360] by
-
- 13 edits1 add in trunk/LayoutTests
Sync css/css-contain from WPT
https://bugs.webkit.org/show_bug.cgi?id=237705
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-16
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Sync css/css-contain from WPT.
- resources/resource-files.json:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-013-expected.html:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-013.html:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-014.html:
- web-platform-tests/css/css-contain/contain-layout-ink-overflow-017.html:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-044-expected.txt:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-044.html:
- web-platform-tests/css/css-contain/content-visibility/resources/text-fragment-target-auto.html:
- web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
- web-platform-tests/css/css-contain/w3c-import.log:
LayoutTests:
Mark as failing for now.
- platform/ios/TestExpectations:
- 11:42 AM Changeset in webkit [291359] by
-
- 4 edits in trunk/LayoutTests
[ MacOS ] http/tests/security/content SecurityPolicy/frame-src-cross-origin-load.html is a flakey failure (230428)
https://bugs.webkit.org/show_bug.cgi?id=230428
<rdar://problem/83254559>
Reviewed by Brent Fulgham.
The flakiness was caused by relying on ordered output from iframe
loads that are not guaranteed to load in order. This change loads
iframes in script to make sure they load only after the previous
iframe has loaded.
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load-expected.txt:
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html:
- platform/mac/TestExpectations:
- 10:42 AM Changeset in webkit [291358] by
-
- 1 copy in tags/Safari-614.1.5.9.1
Tag Safari-614.1.5.9.1.
- 10:33 AM Changeset in webkit [291357] by
-
- 12 edits2 adds in trunk/Source/WebCore
Migrate use of MediaSampleGStreamer to VideoFrame in WebRTC pipelines
https://bugs.webkit.org/show_bug.cgi?id=237885
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-16
Reviewed by Youenn Fablet.
Introducing VideoFrameGStreamer, meant to be used from mediastream producers and consumers.
The VideoFrame internally manages a GstSample storing the actual video frame data that can
be passed around between RealtimeMediaSources and the mediastream GStreamer source element.
Covered by existing layout tests.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toMediaSample):
- platform/GStreamer.cmake:
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
(WebCore::MediaSampleGStreamer::createFakeSample):
(WebCore::MediaSampleGStreamer::createImageSample): Deleted.
(WebCore::MediaSampleGStreamer::initializeFromBuffer): Deleted.
(WebCore::MediaSampleGStreamer::getRGBAImageData const): Deleted.
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
(WebCore::MediaSampleGStreamer::create):
(WebCore::MediaSampleGStreamer::createWrappedSample): Deleted.
(WebCore::MediaSampleGStreamer::createImageSample): Deleted.
- platform/graphics/gstreamer/VideoFrameGStreamer.cpp: Added.
(WebCore::VideoFrameGStreamer::createFromPixelBuffer):
(WebCore::VideoFrameGStreamer::VideoFrameGStreamer):
(WebCore::VideoFrameGStreamer::getRGBAImageData const):
- platform/graphics/gstreamer/VideoFrameGStreamer.h: Added.
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLTextureMapper::paintCompositedResultsToMediaSample):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::processNewFrame):
(WebCore::GStreamerVideoCaptureSource::newSampleCallback):
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
- platform/mediastream/libwebrtc/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingVideoSourceLibWebRTC::OnFrame):
- platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):
- 10:10 AM Changeset in webkit [291356] by
-
- 1 copy in tags/Safari-614.1.5.12
Tag Safari-614.1.5.12.
- 10:08 AM Changeset in webkit [291355] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.12
- 9:56 AM Changeset in webkit [291354] by
-
- 3 edits in trunk/Tools
[Merge-Queue] Rename patch_reviewer
https://bugs.webkit.org/show_bug.cgi?id=237916
<rdar://problem/90324765>
Reviewed by Aakash Jain.
Rename patch_reviewer to reviewer for compatibility with
pull requests.
- Tools/CISupport/ews-build/steps.py:
(ApplyPatch.start):
(BugzillaMixin._does_patch_have_acceptable_review_flag):
(ValidateCommiterAndReviewer.start):
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/248489@main
- 8:25 AM Changeset in webkit [291353] by
-
- 2 edits in trunk/LayoutTests
[GStreamer][1.20] media/video-src-blob-perf.html failing
https://bugs.webkit.org/show_bug.cgi?id=237256
<rdar://problem/89530009>
Unreviewed, unflag test passing after Flatpak SDK update.
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-16
- platform/glib/TestExpectations:
- 8:20 AM Changeset in webkit [291352] by
-
- 3 edits in trunk/Source/WebKit
Incorrect header name used in has_include
https://bugs.webkit.org/show_bug.cgi?id=237914
<rdar://90271228>
Reviewed by Geoffrey Garen.
- Configurations/WebKit.xcconfig:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- 8:17 AM Changeset in webkit [291351] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Merge r291335 - [GTK][WPE] Crash during the WebPage::close() related to GL resources destruction
https://bugs.webkit.org/show_bug.cgi?id=237588
Reviewed by Carlos Garcia Campos.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::updateSceneWithoutRendering):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 8:10 AM Changeset in webkit [291350] by
-
- 26 edits5 adds in releases/WebKitGTK/webkit-2.36
Merge r290639 - Make input element UA shadow tree creation lazy
https://bugs.webkit.org/show_bug.cgi?id=236747
Reviewed by Aditya Keerthi.
Source/WebCore:
We currently delay InputType creation for parser inserted elements until
just after the attributes have been set, so that we don't wastefully
create an InputType and the UA shadow tree creation if a non-text
type="" was specified on the tag. We don't do anything similar for
script inserted input elements. We could make the InputType creation
lazy, but most of the wasted time is due to the shadow tree creation.
This patch makes InputType shadow tree creation lazy by delaying it
until one of the following happens:
- the element is inserted into the document
- the type="" or value="" attributes are changed before the element is inserted into the document
- any DOM methods that need access to the innerTextElement() are called on the element before the element is inserted into the document
Not all places where we call innerTextElement() on the
HTMLInputElement are safe to lazily create the shadow trees, so we
have two accessors:
- innerTextElement() returns the inner text element if it's been created already
- innerTextElementCreatingShadowSubtreeIfNeeded will perform the lazy shadow tree construction if it hasn't already been done
Since the existing
createShadowSubtreeAndUpdateInnerTextElementEditability function has
more responsibility than just creating the subtree and ensuring the
editability is set appropriately, it's renamed to a more manageable
createShadowSubtree.
This change is a 0.5% progression on Speedometer 2.
Test: fast/forms/lazy-shadow-tree-creation.html
- html/BaseDateAndTimeInputType.h:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/ColorInputType.h:
- html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/FileInputType.h:
- html/FileInputType.cpp:
(WebCore::FileInputType::createShadowSubtree):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/InputType.cpp:
(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/RangeInputType.h:
- html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/SearchInputType.h:
- html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed createShadowSubtreeAndUpdateInnerTextElementEditability to
createShadowSubtree and remove the "isInnerTextElementEditable"
argument, since we can ask the element() for its value if needed.
createShadowSubtree is now also responsible for creating the shadow
root.
- html/TextFieldInputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed. Ensure all shadow tree state is up to date now that it can be
created later.
- html/InputType.h:
- html/InputType.cpp:
(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::hasCreatedShadowSubtree const):
New functions to create the shadow subtree if it hasn't been done
already, and to query whether it's been done.
- html/HTMLInputElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::innerTextElementCreatingShadowSubtreeIfNeeded):
- html/HTMLTextAreaElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::innerTextElementCreatingShadowSubtreeIfNeeded):
- html/HTMLTextFormControlElement.h:
- html/InputType.h:
- html/InputType.cpp:
(WebCore::InputType::innerTextElementCreatingShadowSubtreeIfNeeded):
New functions to first create the shadow subtree before returning
innerTextElement(). HTMLTextAreaElement never lazily creates its
shadow subtree and so just returns innerTextElement().
- html/HTMLInputElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
Deleted. Just call through to m_inputType->createShadowTree()
directly.
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::updateType):
Don't immediately create the shadow tree.
(WebCore::HTMLInputElement::didFinishInsertingNode):
Create the shadow subtree now that the element's been inserted. No
need to call dataListMayHaveChanged since
TextFieldInputType::createShadowSubtree will now do this.
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::updateInnerTextValue):
Ensure the shadow subtree is created since we need to poke at it.
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::forwardEvent):
Don't forward the event if the shadow tree hasn't been created yet.
(WebCore::HTMLTextFormControlElement::setSelectionRange):
Ensure the shadow tree has been created. This is needed if the
selection APIs are called on the input element before it's inserted
into the document.
(WebCore::HTMLTextFormControlElement::visiblePositionForIndex const):
Assert that the shadow tree has been created, since editing
functionality should only be needed if the element's been inserted
into the document.
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
Ensure the shadow tree has been created.
- html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
Ensure the shadow tree has been created in case the event will change
the value.
(WebCore::RangeInputType::sliderTrackElement const):
Only return the element if it's been created.
(WebCore::RangeInputType::typedSliderThumbElement const):
Assert that the element has been created.
(WebCore::RangeInputType::dataListMayHaveChanged):
Only try to re-layout if the shadow tree has been created.
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::isEmptyValue const):
Avoid creating the shadow subtree.
(WebCore::TextFieldInputType::forwardEvent):
Move the element assertion up to be consistent with other functions.
(WebCore::TextFieldInputType::innerTextElement const):
Don't assert, since this now can legitimately return null.
- html/FileInputType.cpp:
(WebCore::FileInputType::disabledStateChanged):
(WebCore::FileInputType::attributeChanged):
- html/RangeInputType.cpp:
(WebCore::RangeInputType::disabledStateChanged):
(WebCore::RangeInputType::attributeChanged):
(WebCore::RangeInputType::setValue):
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::disabledStateChanged):
(WebCore::TextFieldInputType::readOnlyStateChanged):
(WebCore::TextFieldInputType::updatePlaceholderText):
(WebCore::TextFieldInputType::updateAutoFillButton):
(WebCore::TextFieldInputType::dataListMayHaveChanged):
Don't update the shadow tree contents if it hasn't been created yet.
createShadowTree is responsible for ensuring it creates the shadow
tree contents reflecting the current state.
LayoutTests:
- fast/forms/lazy-shadow-tree-creation-expected.html: Added.
- fast/forms/lazy-shadow-tree-creation.html: Added.
- fast/forms/lazy-shadow-tree-creation.js: Added.
(supportsType):
(makeAndAppendInput):
- LayoutTests/fast/forms/lazy-shadow-tree-creation-crash.html:
- LayoutTests/fast/forms/lazy-shadow-tree-creation-crash-expected.html:
Crashtest.
- fast/shadow-dom/style-resolver-sharing-expected.txt:
Update to account for the lazy shadow tree being created later.
- 8:10 AM Changeset in webkit [291349] by
-
- 8 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore
Merge r290574 - Add a mechanism to request a UA shadow tree update before style
https://bugs.webkit.org/show_bug.cgi?id=237224
Reviewed by Antti Koivisto.
SVG <use> elements register themselves with the document when their
shadow tree contents need updating, and this updating is done in
Document::resolveStyle. For lazy HTML <input> element UA shadow trees
(in bug 236747) we need something similar.
- dom/Document.cpp:
(WebCore::Document::resolveStyle):
(WebCore::Document::addElementWithPendingUserAgentShadowTreeUpdate):
(WebCore::Document::removeElementWithPendingUserAgentShadowTreeUpdate):
- dom/Document.h:
- dom/Element.h:
(WebCore::Element::updateUserAgentShadowTree):
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Deleted.
(WebCore::SVGDocumentExtensions::addUseElementWithPendingShadowTreeUpdate): Deleted.
(WebCore::SVGDocumentExtensions::removeUseElementWithPendingShadowTreeUpdate): Deleted.
- svg/SVGDocumentExtensions.h:
(WebCore::SVGDocumentExtensions::useElementsWithPendingShadowTreeUpdate const): Deleted.
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedIntoAncestor):
(WebCore::SVGUseElement::removedFromAncestor):
(WebCore::SVGUseElement::updateUserAgentShadowTree):
(WebCore::SVGUseElement::invalidateShadowTree):
(WebCore::SVGUseElement::updateShadowTree): Deleted.
- svg/SVGUseElement.h:
- 8:10 AM Changeset in webkit [291348] by
-
- 22 edits3 deletes in releases/WebKitGTK/webkit-2.36
Merge r290414 - Unreviewed, reverting r290284.
https://bugs.webkit.org/show_bug.cgi?id=237131
It is preventing the fuzzer from finding other bugs
Reverted changeset:
"Make input element UA shadow tree creation lazy"
https://bugs.webkit.org/show_bug.cgi?id=236747
https://commits.webkit.org/r290284
- 8:06 AM Changeset in webkit [291347] by
-
- 3 edits2 adds in trunk
[iOS] Refactor some position information hit-testing logic related to data detectors in Live Text
https://bugs.webkit.org/show_bug.cgi?id=237927
Reviewed by Tim Horton.
Source/WebKit:
Pull the call to
dataDetectorImageOverlayPositionInformation()out fromelementPositionInformation(), and
into the top level inWebPage::positionInformation(). SincedataDetectorImageOverlayPositionInformationonly
depends on the hit-tested inner node (rather than the element responding to click events), it doesn't make sense
to only populate the data detector results array only when we find an element that responds to clicks.
Test: fast/images/text-recognition/ios/show-data-detector-context-menu.html
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::elementPositionInformation):
(WebKit::WebPage::positionInformation):
LayoutTests:
Add a simple layout test that exercises context menu presentation when long pressing a data detector result
inside Live Text in an image. While this behavior isn't new, it's currently untested before this patch.
- fast/images/text-recognition/ios/show-data-detector-context-menu-expected.txt: Added.
- fast/images/text-recognition/ios/show-data-detector-context-menu.html:
Also add
-webkit-user-select: none;to test that disabling text selection does not also disable the ability to
present the context menu over data detectors by long pressing on iOS.
- 7:41 AM Changeset in webkit [291346] by
-
- 4 edits in trunk/Source/WebCore
[IFC][Integration] Move firstSelectedBox/lastSelectedBox out of InlineIterator::Line
https://bugs.webkit.org/show_bug.cgi?id=237941
Reviewed by Simon Fraser.
These functions don't belong in InlineIterator::Line (they are standalone functions with only one callsite).
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::firstSelectedBox const): Deleted.
(WebCore::InlineIterator::Line::lastSelectedBox const): Deleted.
- layout/integration/InlineIteratorLine.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
- 7:28 AM Changeset in webkit [291345] by
-
- 7 edits2 adds1 delete in trunk/Tools/buildstream
[Flatpak SDK] Update to GStreamer 1.20.1
https://bugs.webkit.org/show_bug.cgi?id=237954
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-16
Reviewed by Adrian Perez de Castro.
- elements/sdk/gst-libav.bst:
- elements/sdk/gst-plugins-bad.bst:
- elements/sdk/gst-plugins-base.bst:
- elements/sdk/gst-plugins-good.bst:
- elements/sdk/gst-plugins-ugly.bst:
- elements/sdk/gstreamer.bst:
- patches/gstreamer-0001-dtlstransport-Notify-ICE-transport-property-changes.patch: Removed.
- patches/gstreamer-0001-typefind-Skip-parsing-of-data-URIs.patch: Added.
- patches/gstreamer-0002-uri-Build-doubly-linked-list-by-prepending-items.patch: Added.
- 6:14 AM Changeset in webkit [291344] by
-
- 3 edits in trunk/Source/WebCore
AX: imported/w3c/web-platform-tests/speech-api/SpeechSynthesis (layout-tests) are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=237881
<rdar://problem/90293806>
Reviewed by Andres Gonzalez.
Keep track of the platform utterances so that we can verify the callbacks are for the ones we are interested in.
This test failure was due to a previous speech job that was canceled (before a new one started). When the callback for
the last one came back, it wiped out the stored new one.
Fixed test: imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-speak-events.html.
- platform/PlatformSpeechSynthesisUtterance.h:
(WebCore::PlatformSpeechSynthesisUtterance::platformSpeechUtteranceWrapper const):
(WebCore::PlatformSpeechSynthesisUtterance::setPlatformSpeechUtteranceWrapper):
- platform/cocoa/PlatformSpeechSynthesizerCocoa.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didStartSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didPauseSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didContinueSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didCancelSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
- 6:12 AM Changeset in webkit [291343] by
-
- 10 edits7 adds in trunk/Source/WebCore
[GTK][WPE] Provide DMABuf-based composition layers, DMABufVideoSink integration
https://bugs.webkit.org/show_bug.cgi?id=237328
<rdar://problem/90295492>
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-16
Reviewed by Alejandro G. Castro.
Introduce TextureMapperPlatformLayerProxyDMABuf, a TextureMapper proxy
implementation that handles platform layers backed by dmabuf objects.
This will be used to handle display of dmabuf producers like GStreamer
pipelines or ANGLE-backed WebGL contexts. The DMABufLayer class is the
platform layer object, handling display of the actual dmabuf. The proxy
itself is tasked with creating and caching such layers for any dmabuf
object that originates from the producer.
For each dmabuf object pushed into the proxy, the according DMABufLayer
object is spawned and cached for future reuse, expecting the producer
to be able to provide dmabufs from a pool or swapchain of these objects.
The cache is emptied whenever dmabufs go unused for a certain amount of
swaps, or if the size of the provided dmabufs changes.
DMABufFormat provides information for different DRM formats, for
instance how different planes for specific formats are formatted and
sized.
DMABufObject is a class that handles a given grouping of dmabufs
according to the specified format. It has an associated handle value,
size, and per-plane dmabuf file descriptors, offsets, strides and
modifiers, along with a DMABufReleaseFlag instance.
DMABufReleaseFlag objects are used as an eventfd-based release mechanism
that indicates to the producer that the given DMABufObject has been
presented and subsequently released and is thus available for reuse.
GBMBufferSwapchain provides a custom swapchain implementation that's
based on libgbm functionality. Each such swapchain has a capacity
specified during construction, with the capacities of four or eight
currently supported. getBuffer() is called by the producer to obtain a
buffer object that's then used for backing of specific content like
ANGLE execution or media's software-decoded video frames. Buffers
obtained this way are moved over to the end of the buffer array, with
the expectation of reusing them once they are released by the
composition engine.
MediaPlayerPrivateGStreamer implementation is enhanced to use the
recently-added WebKitDMABufVideoSink element if its use is enabled
through the development-purpose environment variable and if the
necessary GStreamer facilities are present on the system. When these
conditions are met, the Nicosia::ContentLayer instance is also
constructed with a TextureMapperPlatformLayerProxyDMABuf instance, since
we expect to present the dmabufs through that functionality.
With the WebKitDMABufVideoSink, the incoming samples are either based
on dmabufs (in case of dmabuf-capable hardware decoder) or are just raw
data (most likely coming from a software-based decoder). In case of
dmabufs we can use the GstMemory pointer as the handle through which
the relevant data is cached in TextureMapperPlatformLayerProxyDMABuf,
and upon the first occurrence we retrieve all the relevant dmabuf data
so that it can be used by that proxy implementation to construct a
renderable EGLImage.
In case of software-decoded raw data, we have to use the swapchain
object and copy the data on a per-plane basis for each such sample,
finally pushing the dmabuf data of that swapchain buffer into the
TextureMapperPlatformLayerProxyDMABuf instance.
Changes around TextureMapperPlatformLayerProxyDMABuf and GStreamer
integration are guarded with USE(TEXTURE_MAPPER_DMABUF). No port yet
enables this build guard, but this will be handled later. Similarly,
the code specific to libgbm will also be guarded in a separate set of
changes.
- SourcesGTK.txt:
- SourcesWPE.txt:
- platform/TextureMapper.cmake:
- platform/graphics/gbm/DMABufFormat.h: Added.
(WebCore::DMABufFormatImpl::createFourCC):
(WebCore::DMABufFormat::planeWidth const):
(WebCore::DMABufFormat::planeHeight const):
(WebCore::DMABufFormat::Plane::Plane):
(WebCore::DMABufFormatImpl::createSinglePlaneRGBA):
(WebCore::DMABufFormatImpl::definePlane):
(WebCore::DMABufFormat::instantiate):
(WebCore::DMABufFormat::create):
- platform/graphics/gbm/DMABufObject.h: Added.
(WebCore::DMABufObject::DMABufObject):
(WebCore::DMABufObject::~DMABufObject):
(WebCore::DMABufObject::operator=):
- platform/graphics/gbm/DMABufReleaseFlag.h: Added.
(WebCore::DMABufReleaseFlag::DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::~DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::operator=):
(WebCore::DMABufReleaseFlag::dup const):
(WebCore::DMABufReleaseFlag::released const):
(WebCore::DMABufReleaseFlag::release):
- platform/graphics/gbm/GBMBufferSwapchain.cpp: Added.
(WebCore::GBMBufferSwapchain::GBMBufferSwapchain):
(WebCore::GBMBufferSwapchain::getBuffer):
(WebCore::GBMBufferSwapchain::Buffer::Buffer):
(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):
(WebCore::GBMBufferSwapchain::Buffer::PlaneData::~PlaneData):
- platform/graphics/gbm/GBMBufferSwapchain.h: Added.
(WebCore::GBMBufferSwapchain::Buffer::handle const):
(WebCore::GBMBufferSwapchain::Buffer::numPlanes const):
(WebCore::GBMBufferSwapchain::Buffer::planeData const):
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:
(webKitDMABufVideoSinkIsEnabled):
(webKitDMABufVideoSinkSetMediaPlayerPrivate):
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::platformLayer const):
(WebCore::fourccValue):
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkDMABuf):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:
(Nicosia::ContentLayerTextureMapperImpl::createFactory):
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: Added.
(WebCore::createImageKHR):
(WebCore::destroyImageKHR):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::EGLImageData::~EGLImageData):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::invalidate):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::swapBuffer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::pushDMABuf):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::DMABufLayer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::paintToTextureMapper):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h: Added.
- 6:03 AM Changeset in webkit [291342] by
-
- 2 edits in trunk/Source/WebCore
[GTK][WPE] Debug build assertion, TextureMapperPlatformLayerProxyGL asserts when going back in the minibrowser
https://bugs.webkit.org/show_bug.cgi?id=237948
We are not initializing m_compositorThread properly with the
invalidation and the ThreadedCompositor is destroyed after a
navigation, and when going back the browser asserts because the
ThreadedCompositor is a different one. This is just for debug
builds.
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-03-16
Reviewed by Carlos Garcia Campos.
Not clear how to reproduce this situation with tests because we
need to navigate back with different origins. I'm opening a bug
connected to this one to check how to do it.
- platform/graphics/texmap/TextureMapperPlatformLayerProxyGL.cpp:
(WebCore::TextureMapperPlatformLayerProxyGL::invalidate):
- 5:54 AM Changeset in webkit [291341] by
-
- 17 edits in trunk
Make MIMETypeRegistry::mimeTypeForPath take a StringView
https://bugs.webkit.org/show_bug.cgi?id=236441
<rdar://problem/89084526>
Reviewed by Chris Dumez.
Source/WebCore:
Passing a StringView is more efficient for some code paths.
Covered by existing tests.
- editing/cocoa/WebArchiveResourceFromNSAttributedString.mm:
(WebCore::if):
- fileapi/File.cpp:
(WebCore::File::computeNameAndContentType):
- loader/cocoa/BundleResourceLoader.mm:
(WebCore::BundleResourceLoader::loadResourceFromBundle):
- platform/MIMETypeRegistry.cpp:
(WebCore::commonMimeTypesMap):
- platform/MIMETypeRegistry.h:
- platform/cocoa/MIMETypeRegistryCocoa.mm:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
- platform/win/MIMETypeRegistryWin.cpp:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
- platform/xdg/MIMETypeRegistryXdg.cpp:
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
Source/WebKit:
- UIProcess/API/Cocoa/APIAttachmentCocoa.mm:
(API::mimeTypeInferredFromFileExtension):
(API::Attachment::setFileWrapperAndUpdateContentType):
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm:
(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
- UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel presentWithParameters:resultListener:]):
Source/WebKitLegacy/ios:
- WebCoreSupport/WebMIMETypeRegistry.mm:
(+[WebMIMETypeRegistry mimeTypeForExtension:]):
Tools:
- TestWebKitAPI/cocoa/TestInspectorURLSchemeHandler.mm:
(-[TestInspectorURLSchemeHandler webView:startURLSchemeTask:]):
- 5:52 AM Changeset in webkit [291340] by
-
- 13 edits in trunk
redirectCount returns 0 when using a Service Worker
https://bugs.webkit.org/show_bug.cgi?id=235710
<rdar://problem/88432190>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/navigation-preload/resource-timing.https-expected.txt:
- web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
Source/WebKit:
Pass an optional NetworkLoadMetrics when sending the response to web process.
Include the redirectCount value computed by NetworkResourceLoader.
Make service worker redirections go through NetworkResourceLoader to set the redirectCount value and for correctness.
Covered by updated test.
- NetworkProcess/NetworkResourceLoader.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::processRedirectResponse):
- WebProcess/Network/WebResourceLoader.cpp:
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Network/WebResourceLoader.messages.in:
LayoutTests:
- http/wpt/service-workers/navigation-redirect-main-frame.https.html:
- 5:05 AM Changeset in webkit [291339] by
-
- 4 edits in trunk/Source/JavaScriptCore
MacroAssemblerARMv7: Be friendlier to DisallowMacroScratchRegisterUsage
https://bugs.webkit.org/show_bug.cgi?id=237888
Reviewed by Žan Doberšek.
Only check that we're allowed to use the scratch register at sites
where we're using it implicitly. When it's explicitly passed in by the
caller, use invalidateCachedAddressTempRegister to invalidate it
without asserting anything about m_allowScratchRegister.
Since helpers can explictly make use of addressTempRegister, an
argument can be made that this is still fragile (i.e. future changes
could run into this). The alternative would be to have the topmost caller
do fine-grained management of DisallowMacroScratchRegisterUsage,
allowing it around explicit calls to MacroAssemblerARMv7 with
scratchRegister() in the arguments and disallowing it for helpers.
As there are currently no helpers that would trip this, this patch opts
for the former approach, to make DisallowMacroScratchRegisterUsage
easier to work with (there'll be more usage of the API in an upcoming
wasm32 patch).
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::scratchRegister):
(JSC::MacroAssemblerARMv7::load32):
(JSC::MacroAssemblerARMv7::load16):
(JSC::MacroAssemblerARMv7::load16SignedExtendTo32):
(JSC::MacroAssemblerARMv7::load8):
(JSC::MacroAssemblerARMv7::load8SignedExtendTo32):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::move):
(JSC::MacroAssemblerARMv7::farJump):
(JSC::MacroAssemblerARMv7::setupArmAddress):
(JSC::MacroAssemblerARMv7::invalidateCachedAddressTempRegister):
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::emitFastPathImpl):
- jit/BaselineJITRegisters.h:
- 3:19 AM Changeset in webkit [291338] by
-
- 3 edits in trunk/Source/WebCore
Extract transform-origin handling out of RenderStyle::applyTransform()
https://bugs.webkit.org/show_bug.cgi?id=237590
Reviewed by Simon Fraser.
RenderStyle::applyTransform() implements the algorithm given in
CSS Transforms Module Level 2 (https://www.w3.org/TR/css-transforms-2/#ctm)
that yields the "current transformation matrix". It is used e.g. in
RenderLayer::updateTransform() to compute the layer transformation
matrix, that's used for rendering.
LBSE wants to re-use the same algorithm, interchanging the individual
CSS transform properties / the CSS transform property with an external
AffineTransform, representing the SVG 2D transform.
Therefore split RenderStyle::applyTransform() into three main methods:
applyTransformOrigin / applyCSSTransform / unapplyTransformOrigin.
LBSE can call applyTransformOrigin(), multiply the TransformationMatrix
with the given SVG 2D AffineTransform and call unapplyTransformOrigin():
auto originTranslate = style.applyTransformOrigin(transform, boundingBox);
transform.multiplyAffineTransform(svgTransform.value());
style.unapplyTransformOrigin(transform, originTranslate);
The LBSE transform changes will follow in a separated patch, this only contains
the general changes. The non-SVG code paths remain unchained, since the applyTransform()
is kept as-is, just refactored to make use of the new (un)applyTransformOrigin() methods.
Covered by existing tests, no change in behaviour.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::affectedByTransformOrigin const):
(WebCore::RenderStyle::applyTransformOrigin const):
(WebCore::RenderStyle::unapplyTransformOrigin const):
(WebCore::RenderStyle::applyTransform const):
(WebCore::RenderStyle::applyCSSTransform const):
- rendering/style/RenderStyle.h:
- 3:16 AM Changeset in webkit [291337] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer] Avoid auto-selection of hole punching player
https://bugs.webkit.org/show_bug.cgi?id=237828
Reviewed by Xabier Rodriguez-Calvar.
The hole punch player private shouldn't be automatically selected when
the mime type is empty or unsupported by that specific player
("video/holepunch" in practice). This patch returns a FormatError
networkState in those cases, forcing the selection algorithm to
discard the hole punch player private.
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797
- platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp: Implement networkState setter. Set FormatError networkState on load when the mime type is empty or unknown.
- platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h: Refactor networkState management. Move load() implementation to cpp file.
- 3:14 AM Changeset in webkit [291336] by
-
- 2 edits1 delete in trunk/LayoutTests
LayoutTests/webaudio tests are skipped in iOS
https://bugs.webkit.org/show_bug.cgi?id=237889
Unreviewed.
Unskip tests and removed obsolete iOS specific expected.txt files.
- platform/ios/TestExpectations:
- platform/ios/webaudio/analyser-exception-expected.txt: Removed.
- platform/ios/webaudio/audiobuffer-expected.txt: Removed.
- platform/ios/webaudio/audiobuffer-neuter-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-channels-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-ended-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-exception-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-loop-comprehensive-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-loop-points-expected.wav: Removed.
- platform/ios/webaudio/audiobuffersource-playbackState-expected.txt: Removed.
- platform/ios/webaudio/audiobuffersource-playbackrate-expected.wav: Removed.
- platform/ios/webaudio/audiobuffersource-start-expected.txt: Removed.
- platform/ios/webaudio/audiochannelmerger-basic-expected.txt: Removed.
- platform/ios/webaudio/audiochannelsplitter-expected.txt: Removed.
- platform/ios/webaudio/audionode-expected.txt: Removed.
- platform/ios/webaudio/biquadfilternode-basic-expected.txt: Removed.
- platform/ios/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Removed.
- platform/ios/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Removed.
- platform/ios/webaudio/codec-tests/vorbis/vbr-128kbps-44khz-expected.txt: Removed.
- platform/ios/webaudio/codec-tests/vorbis/vbr-96kbps-44khz-expected.txt: Removed.
- platform/ios/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Removed.
- platform/ios/webaudio/convolver-setBuffer-null-expected.txt: Removed.
- platform/ios/webaudio/decode-audio-data-basic-expected.txt: Removed.
- platform/ios/webaudio/delaynode-maxdelaylimit-expected.txt: Removed.
- platform/ios/webaudio/distance-exponential-expected.txt: Removed.
- platform/ios/webaudio/distance-inverse-expected.txt: Removed.
- platform/ios/webaudio/distance-linear-expected.txt: Removed.
- platform/ios/webaudio/javascriptaudionode-expected.txt: Removed.
- platform/ios/webaudio/mediaelementaudiosourcenode-expected.txt: Removed.
- platform/ios/webaudio/note-grain-on-play-expected.txt: Removed.
- platform/ios/webaudio/note-grain-on-timing-expected.txt: Removed.
- platform/ios/webaudio/oscillator-basic-expected.txt: Removed.
- platform/ios/webaudio/oscillator-custom-expected.wav: Removed.
- platform/ios/webaudio/oscillator-ended-expected.txt: Removed.
- platform/ios/webaudio/oscillator-sawtooth-expected.wav: Removed.
- platform/ios/webaudio/oscillator-square-expected.wav: Removed.
- platform/ios/webaudio/oscillator-triangle-expected.wav: Removed.
- platform/ios/webaudio/pannernode-basic-expected.txt: Removed.
- platform/ios/webaudio/realtimeanalyser-fft-sizing-expected.txt: Removed.
- 3:01 AM Changeset in webkit [291335] by
-
- 4 edits in trunk/Source/WebKit
[GTK][WPE] Crash during the WebPage::close() related to GL resources destruction
https://bugs.webkit.org/show_bug.cgi?id=237588
Reviewed by Carlos Garcia Campos.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::updateSceneWithoutRendering):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 12:20 AM Changeset in webkit [291334] by
-
- 3 edits in trunk/Source/WebKit
Suspend newly created NetworkStorageManager if network process is or will be suspended
https://bugs.webkit.org/show_bug.cgi?id=237915
Reviewed by Chris Dumez.
When network process receives prepareToSuspend message, we suspend existing NetworkStorageManagers (so no more
database operation can be performed). We should do the same thing for new NetworkStorageManager created between
prepareToSuspend and processDidResume messages.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::processDidResume):
(WebKit::NetworkProcess::resume): Deleted.
- NetworkProcess/NetworkProcess.h:
Mar 15, 2022:
- 11:07 PM Changeset in webkit [291333] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r291191): [iOS] ASSERTION FAILED: m_contentsBufferHandle in WebKit::RemoteLayerBackingStore::paintContents()
https://bugs.webkit.org/show_bug.cgi?id=237922
Reviewed by Geoffrey Garen.
The assertion added in r291191 is incorrect. With that change, we end up calling
RemoteLayerBackingStore::paintContents() on WebGL layers (which use delegated display)
when we used to just early return from display(). So it's OK for m_frontBuffer.imageBuffer
to be null on these layers.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::paintContents):
- 10:35 PM Changeset in webkit [291332] by
-
- 12 edits in trunk/Source/JavaScriptCore
[JSC] Add UnlinkedDFG compilation mode enum
https://bugs.webkit.org/show_bug.cgi?id=237934
Reviewed by Mark Lam.
This patch adds UnlinkedDFG compilation mode to prepare new unlinked DFG.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::inliningCost):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::watchCondition):
(JSC::DFG::Graph::watchConditions):
(JSC::DFG::Graph::watchGlobalProperty):
(JSC::DFG::Graph::tryGetConstantProperty):
(JSC::DFG::Graph::tryGetConstantClosureVar):
(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::getRegExpPrototypeProperty):
(JSC::DFG::Graph::canOptimizeStringObjectAccess):
(JSC::DFG::Graph::canDoFastSpread):
- dfg/DFGGraph.h:
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::TierUpCheckInjectionPhase::run):
- jit/JITCompilationMode.cpp:
(WTF::printInternal):
- jit/JITCompilationMode.h:
(JSC::isDFG):
(JSC::isUnlinked):
- jit/JITPlan.cpp:
(JSC::JITPlan::tier const):
(JSC::JITPlan::reportCompileTimes const):
- jit/JITPlan.h:
(JSC::JITPlan::isDFG const):
(JSC::JITPlan::isUnlinked const):
- profiler/ProfilerCompilationKind.cpp:
(WTF::printInternal):
- profiler/ProfilerCompilationKind.h:
- 10:19 PM Changeset in webkit [291331] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Concurrent byteOffsetImpl should not assume non-detached array-buffer
https://bugs.webkit.org/show_bug.cgi?id=237935
Reviewed by Saam Barati.
r279707 is not enough to fix the issue since underlying ArrayBuffer can be also detached concurrently to
the compiler thread too. This patch fixes it by using dataWithoutPACValidation in the concurrent compiler
thread.
- runtime/ArrayBuffer.h:
(JSC::ArrayBufferContents::dataWithoutPACValidation const):
(JSC::ArrayBuffer::dataWithoutPACValidation):
(JSC::ArrayBuffer::dataWithoutPACValidation const):
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::byteOffsetImpl):
- 9:11 PM Changeset in webkit [291330] by
-
- 4 edits2 adds in trunk
REGRESSION (r282737):
text-shadowis clipped
https://bugs.webkit.org/show_bug.cgi?id=237898
<rdar://problem/90320701>
Reviewed by Darin Adler.
Source/WebCore:
Inflate the ink overflow rect with the text shadow values (note that here, in the display builder we work with physical coordinates).
Test: fast/text/text-shadow-ink-overflow-missing.html
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::getTextShadowHorizontalExtent const):
(WebCore::RenderStyle::getTextShadowVerticalExtent const):
LayoutTests:
- fast/text/text-shadow-ink-overflow-missing-expected.html: Added.
- fast/text/text-shadow-ink-overflow-missing.html: Added.
- 9:06 PM Changeset in webkit [291329] by
-
- 2 edits in trunk/Source/WebCore
[GLIB] REGRESSION(r291257): Unreviewed, fix build when using ATK
https://bugs.webkit.org/show_bug.cgi?id=237939
r291257 renamed RenderStyle::textDecoration() to
RenderStyle::textDecorationLine() in the ATSPI module, but it missed
to do the same for the ATK module.
ATK is still in use when building with flag -DUSE_ATSPI=OFF, which is
used by Ubuntu 18.04 and Debian Stable bots.
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
- 8:51 PM Changeset in webkit [291328] by
-
- 2 edits in trunk/Source/bmalloc
Remove unused directory local variable in pas_enumerate_segregated_heaps.
https://bugs.webkit.org/show_bug.cgi?id=237931
Reviewed by Geoffrey Garen.
Also remove the call to pas_unwrap_local_view_cache_node(). It doesn't add any
value. The only thing of substance that it does is a PAS_ASSERT that turns out to
be redundant because pas_enumerate_segregated_heaps() already asserts the same
thing before calling pas_unwrap_local_view_cache_node().
- libpas/src/libpas/pas_enumerate_segregated_heaps.c:
(pas_enumerate_segregated_heaps):
- 8:25 PM Changeset in webkit [291327] by
-
- 2 edits in trunk/Tools
[GLIB] Unreviewed, fix build for Ubuntu 18.04 and Debian Stable after r291229
https://bugs.webkit.org/show_bug.cgi?id=237938
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(elementSize):
- 8:21 PM Changeset in webkit [291326] by
-
- 13 edits in trunk/Source
Video poster disappears prematurely on play, leaving transparent video element.
https://bugs.webkit.org/show_bug.cgi?id=226960
<rdar://problem/79315114>
Reviewed by Jer Noble.
Source/WebCore:
If a media file has an enabled video track, don't advance readyState to
HAVE_ENOUGH_DATA until we have the first frame so we won't hide the poster image
until AVFoundation has something to render.
Tested manually.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::mediaPlayerFirstVideoFrameAvailable): Always log.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::updateStates): Move the test for the
first video frame above the player item status check. If a file has a video track,
don't advance to HAVE_ENOUGH_DATA unless we have the first video frame.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Clear m_cachedHasEnabledVideo.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): Remove unneeded
local variable.
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformSetVisible): Minro cleanup.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): SethasVideoif
AVPlayerItem.hasEnabledVideo is true, because it remains stable while AVAssetTracks
sometimes disappear and reappear.
(WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Add logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasEnabledAudioDidChange): Ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasEnabledVideoDidChange): New, cache
AVPlayerItem.hasEnabledVideo.
(WebCore::itemKVOProperties):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Respond
to @"hasEnabledVideo".
- platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
Source/WebKit:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote): Always log.
(WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote): Ditto.
(WebKit::MediaPlayerPrivateRemote::prepareForPlayback): Pass the player's content
rect box to createVideoLayerRemote so it can be sized correctly even before it
becomes visible.
(WebKit::MediaPlayerPrivateRemote::firstVideoFrameAvailable): Always log.
(WebKit::MediaPlayerPrivateRemote::renderingModeChanged): Ditto.
- WebProcess/GPU/media/VideoLayerRemote.h:
- WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:
(WebKit::createVideoLayerRemote): Set the new layer's frame so its children will
be positioned correctly when the are made visible.
- 7:35 PM Changeset in webkit [291325] by
-
- 2 edits in trunk/Tools
Add support for chrome-beta and chrome-dev to run-benchmark
https://bugs.webkit.org/show_bug.cgi?id=237937
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
(set_binary_location_impl):
(OSXChromeDriver._set_chrome_binary_location):
(OSXChromeCanaryDriver):
(OSXChromeCanaryDriver._set_chrome_binary_location):
(OSXChromeBetaDriver):
(OSXChromeBetaDriver._set_chrome_binary_location):
(OSXChromeDevDriver):
(OSXChromeDevDriver._set_chrome_binary_location):
- 5:51 PM Changeset in webkit [291324] by
-
- 2 edits in trunk/Source/WebCore
Crash under HTMLDocumentParser::didBeginYieldingParser()
https://bugs.webkit.org/show_bug.cgi?id=237930
<rdar://45607220>
Reviewed by Geoffrey Garen.
Add null pointer check.
No new tests, unable to reproduce.
- html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didBeginYieldingParser):
(WebCore::HTMLDocumentParser::didEndYieldingParser):
- 4:44 PM Changeset in webkit [291323] by
-
- 60 edits in trunk/Source
[WebGPU] Migrate from WTF::Function to WTF::CompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=237925
Reviewed by Geoffrey Garen.
Source/WebCore/PAL:
CompletionHandlers make sure they are called exactly 1 time, and eagerly free up resources.
There are still 2 places which continue to use Functions, becuase they are expected to be
called multiple times:
- Device::setDeviceLostCallback()
- Device::setUncapturedErrorCallback()
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
(PAL::WebGPU::AdapterImpl::requestDevice):
- pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:
(PAL::WebGPU::BufferImpl::mapAsync):
- pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
(PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
(PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
(PAL::WebGPU::DeviceImpl::popErrorScope):
- pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
(PAL::WebGPU::GPUImpl::requestAdapter):
- pal/graphics/WebGPU/Impl/WebGPUImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
(PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
- pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
- pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp:
(PAL::WebGPU::ShaderModuleImpl::compilationInfo):
- pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
- pal/graphics/WebGPU/WebGPU.h:
- pal/graphics/WebGPU/WebGPUAdapter.h:
- pal/graphics/WebGPU/WebGPUBuffer.h:
- pal/graphics/WebGPU/WebGPUDevice.h:
- pal/graphics/WebGPU/WebGPUQueue.h:
- pal/graphics/WebGPU/WebGPUShaderModule.h:
Source/WebGPU:
- WebGPU/Adapter.h:
- WebGPU/Adapter.mm:
(WebGPU::Adapter::requestDevice):
- WebGPU/Buffer.h:
- WebGPU/Buffer.mm:
(WebGPU::Buffer::mapAsync):
- WebGPU/ComputePipeline.mm:
(WebGPU::Device::createComputePipelineAsync):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::popErrorScope):
(WebGPU::Device::setDeviceLostCallback):
(WebGPU::Device::setUncapturedErrorCallback):
- WebGPU/Instance.h:
- WebGPU/Instance.mm:
(WebGPU::Instance::requestAdapter):
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
(WebGPU::Queue::onSubmittedWorkDone):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipelineAsync):
- WebGPU/ShaderModule.h:
- WebGPU/ShaderModule.mm:
(WebGPU::ShaderModule::getCompilationInfo):
Source/WebKit:
- GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:
(WebKit::RemoteAdapter::requestDevice):
- GPUProcess/graphics/WebGPU/RemoteAdapter.h:
- GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:
(WebKit::RemoteBuffer::mapAsync):
- GPUProcess/graphics/WebGPU/RemoteBuffer.h:
- GPUProcess/graphics/WebGPU/RemoteDevice.cpp:
(WebKit::RemoteDevice::createComputePipelineAsync):
(WebKit::RemoteDevice::createRenderPipelineAsync):
(WebKit::RemoteDevice::popErrorScope):
- GPUProcess/graphics/WebGPU/RemoteDevice.h:
- GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::requestAdapter):
- GPUProcess/graphics/WebGPU/RemoteGPU.h:
- GPUProcess/graphics/WebGPU/RemoteQueue.cpp:
(WebKit::RemoteQueue::onSubmittedWorkDone):
- GPUProcess/graphics/WebGPU/RemoteQueue.h:
- GPUProcess/graphics/WebGPU/RemoteShaderModule.cpp:
(WebKit::RemoteShaderModule::compilationInfo):
- GPUProcess/graphics/WebGPU/RemoteShaderModule.h:
- WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:
(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):
- WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.cpp:
(WebKit::WebGPU::RemoteBufferProxy::mapAsync):
- WebProcess/GPU/graphics/WebGPU/RemoteBufferProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp:
(WebKit::WebGPU::RemoteDeviceProxy::createComputePipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::createRenderPipelineAsync):
(WebKit::WebGPU::RemoteDeviceProxy::popErrorScope):
- WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::requestAdapter):
- WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.cpp:
(WebKit::WebGPU::RemoteQueueProxy::onSubmittedWorkDone):
- WebProcess/GPU/graphics/WebGPU/RemoteQueueProxy.h:
- WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.cpp:
(WebKit::WebGPU::RemoteShaderModuleProxy::compilationInfo):
- WebProcess/GPU/graphics/WebGPU/RemoteShaderModuleProxy.h:
- 4:40 PM Changeset in webkit [291322] by
-
- 2 edits in trunk/Source/WebCore
Add RELEASE_LOG_FAULT to ApplicationCache entry function
https://bugs.webkit.org/show_bug.cgi?id=237866
Reviewed by Alex Christensen.
To help learn remaining ApplicationCache usage.
- html/HTMLHtmlElement.cpp:
(WebCore::HTMLHtmlElement::insertedByParser):
- 4:23 PM Changeset in webkit [291321] by
-
- 4 edits in trunk/Source/WebKit
[WebAuthn] Mock UI interactions whenever virtual authenticators are in use.
https://bugs.webkit.org/show_bug.cgi?id=237856
rdar://problem/90274854
Reviewed by Brent Fulgham.
Tested by wpt's webauthn tests.
- UIProcess/WebAuthentication/AuthenticatorManager.h:
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:
(WebKit::VirtualAuthenticatorManager::runPanel):
(WebKit::VirtualAuthenticatorManager::selectAssertionResponse):
(WebKit::VirtualAuthenticatorManager::decidePolicyForLocalAuthenticator):
- UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.h:
- 4:16 PM Changeset in webkit [291320] by
-
- 7 edits in trunk/Source
Make it clearer in the loading logging when it is for the main frame or not
https://bugs.webkit.org/show_bug.cgi?id=237913
Reviewed by Alex Christensen.
Source/WebCore:
- dom/Document.cpp:
- loader/DocumentLoader.cpp:
- loader/FrameLoader.cpp:
- page/FrameView.cpp:
Source/WebKit:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::willPerformClientRedirectForFrame):
(WebKit::WebPageProxy::didCancelClientRedirectForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::didPerformClientRedirectShared):
- 3:34 PM WebKitGTK/2.36.x edited by
- (diff)
- 3:22 PM Changeset in webkit [291319] by
-
- 4 edits in trunk/LayoutTests
REGRESSION(r287249): [ Monterey wk2 ] media/media-source/media-webm-vorbis-partial.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=236656
rdar://88978504
Reviewed by Eric Carlson.
Update test expectations, they didn't get committed after the test got
modified in bug 236211
- media/media-source/media-webm-vorbis-partial-expected.txt:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 3:09 PM Changeset in webkit [291318] by
-
- 5 edits4 deletes in trunk
Unreviewed, reverting r291282.
https://bugs.webkit.org/show_bug.cgi?id=237924
Speedometer2 1-2% regression
Reverted changeset:
"Dialog element only animates once"
https://bugs.webkit.org/show_bug.cgi?id=236274
https://commits.webkit.org/r291282
- 2:52 PM Changeset in webkit [291317] by
-
- 5 edits4 copies in trunk/Source/WebGPU
[WebGPU] Update WebGPU CommandLinePlayground to execute asynchronous tasks
https://bugs.webkit.org/show_bug.cgi?id=237852
Reviewed by Kimmo Kinnunen.
This patch hooks up dispatch_async(dispatch_get_main_queue()) to WebGPU's CommandLinePlayground,
so asynchronous tasks get run.
- CommandLinePlayground/CommandLinePlayground-Bridging-Header.h: Copied from Source/WebGPU/CommandLinePlayground/main.swift.
- CommandLinePlayground/Utilities.c: Copied from Source/WebGPU/CommandLinePlayground/main.swift.
(createDefaultInstance):
- CommandLinePlayground/Utilities.h: Copied from Source/WebGPU/CommandLinePlayground/main.swift.
- CommandLinePlayground/config.h: Copied from Source/WebGPU/CommandLinePlayground/main.swift.
- CommandLinePlayground/main.swift:
(adapter):
- Configurations/CommandLinePlayground.xcconfig:
- WebGPU.xcodeproj/project.pbxproj:
- WebGPU/TextureView.mm:
- 2:39 PM Changeset in webkit [291316] by
-
- 2 edits in trunk/Source/WebCore
Add RELEASE_LOG_FAULT to WebSQL entry functions
https://bugs.webkit.org/show_bug.cgi?id=237865
Reviewed by Geoffrey Garen.
To help learn remaining WebSQL usage.
- Modules/webdatabase/Database.cpp:
(WebCore::Database::transaction):
(WebCore::Database::readTransaction):
- 2:30 PM Changeset in webkit [291315] by
-
- 4 edits in trunk/Source/WebGPU
[WebGPU] Repeated calls to wgpuDeviceGetQueue() are supposed to return the same pointer
https://bugs.webkit.org/show_bug.cgi?id=237861
Reviewed by Kimmo Kinnunen.
Previously, wgpuDeviceGetQueue() had "new WGPUQueueImpl { ... }" but this is wrong because
the default queue doesn't change from one call to the next.
- WebGPU/Adapter.mm:
(WebGPU::Adapter::requestDevice):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::create):
(WebGPU::Device::getQueue):
(wgpuDeviceGetQueue):
- 2:30 PM Changeset in webkit [291314] by
-
- 2 edits in trunk/Source/WebKit
RemoteGraphicsContextGLProxy omits context lost checks for back and front buffer access functions
https://bugs.webkit.org/show_bug.cgi?id=237891
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-15
Reviewed by Myles Maxfield.
Add missing isContextLost() checks to RemoteGraphicsContextGLProxy functions.
WebGLRenderingContextBase would call as follows:
void WebGLRenderingContextBase::paintRenderingResultsToCanvas()
{
if (isContextLostOrPending())
return;
...
m_context->prepareForDisplay();
...
m_context->paintCompositedResultsToCanvas();
}
The context may be ok during the first check but then fail later,
and so all the context functions need to check for validity.
No new tests, testing hooks need non-trivial implementation.
This is tracked in bug 237891.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):
- 2:22 PM Changeset in webkit [291313] by
-
- 12 edits in trunk/Source
[WebGPU] Allow for scheduling asynchronous work
https://bugs.webkit.org/show_bug.cgi?id=237755
Reviewed by Kimmo Kinnunen.
Source/WebCore/PAL:
WebGPU doesn't know how to schedule asynchronous work, so that will have to be handled
by dependency injection from the caller. The way it works is Instance creation takes
a block, which is retained. Whenever asynchronous work needs to be scheduled on the
relevant thread, this block is called, and is passed another block for the work to be
performed.
The API contract is: callers of WebGPU must call its functions in a non-racey way. The
schedule function will execute on a background thread, and it must schedule the block
it's passed to be run in a non-racey way with regards to all the other WebGPU calls.
The schedule function can be NULL, in which case the asynchronous tasks will just be
internally queued up inside WebGPU, and then users will have to call
wgpuInstanceProcessEvents() periodically to synchronously call the queued callbacks.
- pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
(PAL::WebGPU::GPUImpl::create):
- pal/graphics/WebGPU/Impl/WebGPUImpl.h:
Source/WebGPU:
- WebGPU/Instance.h:
(WebGPU::Instance::runLoop const): Deleted.
- WebGPU/Instance.mm:
(WebGPU::Instance::create):
(WebGPU::Instance::Instance):
(WebGPU::Instance::scheduleWork):
(WebGPU::Instance::defaultScheduleWork):
(WebGPU::Instance::processEvents):
- WebGPU/WebGPUExt.h:
Source/WebKit:
- GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::workQueueUninitialize):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGPUForWebGPU const):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::createGPUForWebGPU const):
- 2:17 PM Changeset in webkit [291312] by
-
- 16 edits in trunk/Source/WebCore
[IFC][Integration] Rename selection* to enclosing* in InlineIterator::Line
https://bugs.webkit.org/show_bug.cgi?id=237909
Reviewed by Antti Koivisto.
These functions return enclosing (line box and content) geometries which we happen to use to compute selection boundaries (among other things).
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::blockDirectionPointInLine const):
(WebCore::InlineIterator::Line::enclosingTopAdjustedForPrecedingBlock const):
(WebCore::InlineIterator::Line::enclosingHeightAdjustedForPrecedingBlock const):
(WebCore::InlineIterator::Line::selectionTopAdjustedForPrecedingBlock const): Deleted.
(WebCore::InlineIterator::Line::selectionHeightAdjustedForPrecedingBlock const): Deleted.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::enclosingTop const):
(WebCore::InlineIterator::Line::enclosingTopForHitTesting const):
(WebCore::InlineIterator::Line::enclosingBottom const):
(WebCore::InlineIterator::Line::enclosingHeight const):
(WebCore::InlineIterator::Line::enclosingLogicalRect const):
(WebCore::InlineIterator::Line::enclosingPhysicalRect const):
(WebCore::InlineIterator::Line::selectionTop const): Deleted.
(WebCore::InlineIterator::Line::selectionTopForHitTesting const): Deleted.
(WebCore::InlineIterator::Line::selectionBottom const): Deleted.
(WebCore::InlineIterator::Line::selectionHeight const): Deleted.
(WebCore::InlineIterator::Line::selectionLogicalRect const): Deleted.
(WebCore::InlineIterator::Line::selectionPhysicalRect const): Deleted.
- layout/integration/InlineIteratorTextBox.cpp:
(WebCore::InlineIterator::TextBox::selectionRect const):
- rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForLinePosition):
- rendering/LegacyRootInlineBox.cpp:
(WebCore::LegacyRootInlineBox::selectionTopAdjustedForPrecedingBlock const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustEnclosingTopForPrecedingBlock const):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::adjustSelectionTopForPrecedingBlock const): Deleted.
- rendering/RenderBlockFlow.h:
- rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionGeometries):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::positionForPoint):
- rendering/RenderText.cpp:
(WebCore::RenderText::positionForPoint):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintBackground):
- 1:45 PM Changeset in webkit [291311] by
-
- 2 edits in trunk/Source/WebKit
Fix logging in GPUProcessProxy::didCreateContextForVisibilityPropagation()
https://bugs.webkit.org/show_bug.cgi?id=237907
Reviewed by Simon Fraser.
LayerHostingContextID is a uint32_t. The current printing ends up logging negative values:
GPUProcessProxy::didCreateContextForVisibilityPropagation: webPageProxyID: 7, pagePID: 79, contextID: -2041854761
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didCreateContextForVisibilityPropagation):
- 1:30 PM Changeset in webkit [291310] by
-
- 29 edits1 copy12 adds in trunk
Add initial implementation of Fetch Metadata
https://bugs.webkit.org/show_bug.cgi?id=204744
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Update expectations for Fetch Metadata.
- web-platform-tests/fetch/metadata/download.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/download.https.sub.html:
- web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any-expected.txt: Added.
- web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.worker-expected.txt: Added.
- web-platform-tests/fetch/metadata/fetch-via-serviceworker--fallback.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/fetch-via-serviceworker--respondWith.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/fetch.https.sub.any-expected.txt: Added.
- web-platform-tests/fetch/metadata/fetch.https.sub.any.worker-expected.txt: Added.
- web-platform-tests/fetch/metadata/fetch.sub-expected.txt:
- web-platform-tests/fetch/metadata/font.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/img.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/redirect/cross-site-redirect.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/redirect/multiple-redirect-cross-site.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/script.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/script.sub-expected.txt:
- web-platform-tests/fetch/metadata/serviceworker-accessors.https.sub-expected.txt: Added.
- web-platform-tests/fetch/metadata/serviceworker.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/sharedworker.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/trailing-dot.https.sub.any-expected.txt: Added.
- web-platform-tests/fetch/metadata/trailing-dot.https.sub.any.worker-expected.txt: Added.
- web-platform-tests/fetch/metadata/unload.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/worker.https.sub-expected.txt:
- web-platform-tests/fetch/metadata/xslt.https.sub-expected.txt:
- web-platform-tests/service-workers/service-worker/update-module-request-mode.https-expected.txt:
Source/WebCore:
Add initial implementation of Fetch Metadata as specified here:
https://w3c.github.io/webappsec-fetch-metadata/
Currently only Fetch-Sec-Mode and Fetch-Sec-Dest are implemented with more
to come in later patches.
Test: http/wpt/fetch/fetch-metadata-same-origin-redirect.html
- loader/CrossOriginAccessControl.cpp:
(WebCore::cleanHTTPRequestHeadersForAccessControl):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
- loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::updateFetchMetadataHeaders):
- loader/cache/CachedResourceRequest.h:
- platform/network/HTTPHeaderNames.in:
Source/WTF:
Add new experimental preference for Fetch Metadata, disabled by default.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
Skip fewer of the Fetch Metadata tests. Many still timeout and are still
being worked on.
- TestExpectations:
- http/wpt/fetch/fetch-metadata-same-origin-redirect-expected.txt: Added.
- http/wpt/fetch/fetch-metadata-same-origin-redirect.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any-expected.txt: Added.
- 1:09 PM Changeset in webkit [291309] by
-
- 10 edits7 deletes in trunk/Source/WebCore
REGRESSION(r291270): Changes need better build-time guards
https://bugs.webkit.org/show_bug.cgi?id=237908
Unreviewed, rolling out r291270 and r291294 until proper build guards
and relevant configuration options are introduced.
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-15
- SourcesGTK.txt:
- SourcesWPE.txt:
- platform/TextureMapper.cmake:
- platform/graphics/gbm/DMABufFormat.h: Removed.
- platform/graphics/gbm/DMABufObject.h: Removed.
- platform/graphics/gbm/DMABufReleaseFlag.h: Removed.
- platform/graphics/gbm/GBMBufferSwapchain.cpp: Removed.
- platform/graphics/gbm/GBMBufferSwapchain.h: Removed.
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:
(webKitDMABufVideoSinkProbePlatform):
(webKitDMABufVideoSinkIsEnabled): Deleted.
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::platformLayer const):
(WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
(WebCore::fourccValue): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkDMABuf): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:
(Nicosia::ContentLayerTextureMapperImpl::createFactory):
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: Removed.
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h: Removed.
- 12:34 PM Changeset in webkit [291308] by
-
- 3 edits in trunk/Tools
[Merge-Queue] Rename bugzilla_comment_text
https://bugs.webkit.org/show_bug.cgi?id=237911
<rdar://problem/90319995>
Reviewed by Aakash Jain.
Rename bugzilla_comment_text to comment_text to re-use
code to comment on pull requests.
- Tools/CISupport/ews-build/steps.py:
(ApplyPatch.evaluateCommand):
(ValidateCommiterAndReviewer.fail_build):
(ValidateChangeLogAndReviewer.evaluateCommand):
(CommentOnBug.start):
(AnalyzeCompileWebKitResults.analyzeResults):
(AnalyzeLayoutTestsResults.report_failure):
(FindModifiedChangeLogs.evaluateCommand):
(CreateLocalGITCommit.evaluateCommand):
(PushCommitToWebKitRepo.evaluateCommand):
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/248447@main
- 12:22 PM Changeset in webkit [291307] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] ASSERTION FAILED: m_isWaitingForDidUpdateGeometry on accessibility/visible-character-range.html
https://bugs.webkit.org/show_bug.cgi?id=237557
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 11:53 AM Changeset in webkit [291306] by
-
- 2 edits in trunk/Source/WebCore
Fix SQL statement in ApplicationCacheStorage::verifySchemaVersion()
https://bugs.webkit.org/show_bug.cgi?id=237905
Reviewed by Geoffrey Garen.
This was leading to the following logging:
SQLiteDatabase::prepareStatement: Failed to prepare statement PRAGMA user_version=%7
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
- 11:47 AM Changeset in webkit [291305] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, CMake Debug build fix attempt after 248407@main
- wtf/CMakeLists.txt: Include StackCheck source unit.
- 10:39 AM Changeset in webkit [291304] by
-
- 14 edits in trunk
[iOS] Indefinite hang when printing using a UIPrintPageRenderer
https://bugs.webkit.org/show_bug.cgi?id=237835
rdar://90002387
Reviewed by Devin Rousso.
Source/WebKit:
r290186 adopted UIKit API to support printing web content on a
background thread, to avoid blocking the main thread while waiting
on PDF data from the web process. However, the changes made the
assumption that, with the new API, all printing would be performed on
a background thread. While this is the case when using
UIPrintInteractionController, clients can also print using
UIPrintPageRenderer on the main thread. The background thread logic
waits on a semaphore, until PDF data is received on the main thread.
However, if the logic runs on the main thread, it will wait on the
semaphore indefinitely.
To fix, restore the original sync IPC codepath when performing printing
on the main thread. Additionally, make the BinarySemaphore a
unique_ptr, so that it can be signalled and reset in failure scenarios,
regardless of whether a thread was waiting on the semaphore. This
change also allows us to avoid creating the BinarySemaphore unless it
is actually needed.
All uses of HAVE(UIKIT_BACKGROUND_THREAD_PRINTING) are removed, as the
API adoption only involves a method override, which is harmless in
builds that lack support for the new API.
- UIProcess/WebPageProxy.h:
- UIProcess/_WKWebViewPrintFormatter.mm:
- UIProcess/_WKWebViewPrintFormatterInternal.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _processDidExit]):
(-[WKContentView _wk_pageCountForPrintFormatter:]):
(-[WKContentView _waitForDrawToPDFCallbackIfNeeded]):
(-[WKContentView _wk_printedDocument]):
- UIProcess/ios/WKPDFView.mm:
- UIProcess/ios/WebPageProxyIOS.mm:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
Source/WTF:
Remove unused HAVE macro.
- wtf/PlatformHave.h:
Tools:
Add API test coverage for printing web content to a PDF, using a
UIPrintPageRenderer (which uses the main thread) and a
UIPrintInteractionController (which uses a background thread).
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewPrintFormatter.mm:
(TEST):
- 10:36 AM Changeset in webkit [291303] by
-
- 3 edits3 adds in trunk
background-clip:text doesn't work with display:flex
https://bugs.webkit.org/show_bug.cgi?id=169125
<rdar://problem/72432683>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex-expected.html: Added.
- web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex-ref.html: Added.
- web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-backgrounds/background-clip/clip-text-flex.html
- rendering/RenderElement.cpp:
(WebCore::RenderElement::paintAsInlineBlock):
Flexbox children paint as inline blocks. This path didn't support text clip paint phase.
- 10:31 AM Changeset in webkit [291302] by
-
- 5 edits3 deletes in trunk
Stop using DYLD_INTERPOSE
https://bugs.webkit.org/show_bug.cgi?id=237867
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-15
Reviewed by Anders Carlsson.
Source/WebCore:
It never worked on iOS, and it doesn't work on M1 Macs.
It used to be used for NPAPI and the SecItemShim,
but those have been removed and updated to use other methods that work on M1 Macs.
It is currently only used for tests in editing/secure-input which continue to pass
as much as they did before this change.
- Configurations/WebCoreTestShim.xcconfig: Removed.
- WebCore.xcodeproj/project.pbxproj:
- platform/mac/DynamicLinkerInterposing.h: Removed.
- testing/WebCoreTestShimLibrary.cpp: Removed.
Tools:
- Scripts/webkitpy/port/mac.py:
(MacPort.setup_environ_for_server):
- Scripts/webkitpy/port/mac_unittest.py:
(MacTest.test_setup_environ_for_server):
- 10:24 AM Changeset in webkit [291301] by
-
- 3 edits in trunk/Source/WebCore
[model] model-element/model-element-camera.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=237894
rdar://88982597
Reviewed by Tim Horton.
Ensure we have a non-zero contentSize() and model data before attempting to
create a player. Otherwise, we could end up with a zero frame when calling
into ARKit and the model would fail to load and the ready promise would be
rejected, causing this test to fail.
We can change the existing call site to sizeMayHaveChanged() to no longer
check whether we are using a platform layer since sizeMayHaveChanged() now
takes care of checking whether it has a player.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::sizeMayHaveChanged):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
- 10:14 AM Changeset in webkit [291300] by
-
- 1 edit in trunk/Tools/Scripts/webkitpy/xcode/simulated_device.py
[webkitpy] Make SimulatedDevice.is_usable check more robust
https://bugs.webkit.org/show_bug.cgi?id=237795
Reviewed by Jonathan Bedard.
Rather than searching for the service name in the output of
launchctl list,
pass in the name as an additional argument so that it prints out information
about that particular service. I have verified that this works in local testing
for both iOS and watchOS simulators.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDevice):
(SimulatedDevice.is_usable):
Canonical link: https://commits.webkit.org/248439@main
- 10:06 AM Changeset in webkit [291299] by
-
- 2 edits in trunk/Source/WebCore
Line Builder and Content Breaker out of sync
https://bugs.webkit.org/show_bug.cgi?id=237903
Reviewed by Simon Fraser.
Line builder and content breaker could become out of sync in the case where
the first line style was different than following styles. This could result
in issues with wrapping later on.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleInlineContent):
- 9:56 AM Changeset in webkit [291298] by
-
- 4 edits in trunk/LayoutTests
[GLIB] Unreviewed gardening
https://bugs.webkit.org/show_bug.cgi?id=237902
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 9:52 AM Changeset in webkit [291297] by
-
- 2 edits in trunk/Source/WebKit
[macOS][WP] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=237846
<rdar://90249455>
Reviewed by Brent Fulgham.
Add required syscall to the WebContent process' sandbox on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 9:40 AM Changeset in webkit [291296] by
-
- 14 edits in trunk/Source
[Cocoa] Adopt AVAssetPrefersSandboxedParsingOptionKey
https://bugs.webkit.org/show_bug.cgi?id=237832
<rdar://89029829>
Reviewed by Eric Carlson.
Source/WebCore:
Adopt a AVURLAsset option which would allow the media file parser to run out-of-process.
Because this adoption may have a performance impact (though it should not affect the
functionality of AVURLAsset), add a Setting to disable this adoption at runtime for the
purpose of A/B testing.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::requestInstallMissingPlugins):
- html/HTMLMediaElement.h:
- platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerPrefersSandboxedParsing const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
Source/WebCore/PAL:
- pal/cocoa/AVFoundationSoftLink.h:
Source/WebKit:
Propogate the
prefersSandboxedParsing()property across to the GPU process.
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:
(WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
(WebKit::RemoteMediaPlayerProxyConfiguration::decode):
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 9:37 AM Changeset in webkit [291295] by
-
- 59 edits1 copy20 adds in trunk
Expose some web APIs on Shadow Realms and Worklets
https://bugs.webkit.org/show_bug.cgi?id=235736
Patch by Joseph Griego <jgriego@igalia.com> on 2022-03-15
Reviewed by Yusuke Suzuki.
LayoutTests/imported/w3c:
Import the latest relevant idl definitions and new idlharness-shadowrealm tests
- web-platform-tests/dom/idlharness-shadowrealm.window-expected.txt:
- web-platform-tests/dom/idlharness.any.serviceworker-expected.txt:
- web-platform-tests/dom/idlharness.any.sharedworker-expected.txt:
- web-platform-tests/dom/idlharness.any.worker-expected.txt:
- web-platform-tests/dom/idlharness.window-expected.txt:
- web-platform-tests/encoding/idlharness-shadowrealm.window-expected.txt: Added.
- web-platform-tests/encoding/idlharness-shadowrealm.window.html: Added.
- web-platform-tests/encoding/idlharness-shadowrealm.window.js: Added.
- web-platform-tests/hr-time/idlharness-shadowrealm.window-expected.txt: Added.
- web-platform-tests/hr-time/idlharness-shadowrealm.window.html: Added.
- web-platform-tests/hr-time/idlharness-shadowrealm.window.js: Added.
- web-platform-tests/html/dom/idlharness-shadowrealm.window-expected.txt: Added.
- web-platform-tests/html/dom/idlharness-shadowrealm.window.html: Added.
- web-platform-tests/html/dom/idlharness-shadowrealm.window.js: Added.
- web-platform-tests/interfaces/compression.idl:
- web-platform-tests/interfaces/dom.idl:
- web-platform-tests/interfaces/encoding.idl:
- web-platform-tests/interfaces/hr-time.idl:
- web-platform-tests/interfaces/html.idl:
- web-platform-tests/interfaces/performance-timeline.idl:
- web-platform-tests/interfaces/streams.idl:
- web-platform-tests/interfaces/url.idl:
- web-platform-tests/interfaces/user-timing.idl:
- web-platform-tests/performance-timeline/idlharness-shadowrealm.window-expected.txt: Added.
- web-platform-tests/performance-timeline/idlharness-shadowrealm.window.html: Added.
- web-platform-tests/performance-timeline/idlharness-shadowrealm.window.js: Added.
- web-platform-tests/resources/idlharness-shadowrealm.js:
(promise_setup.):
(idl_test_shadowrealm):
(promise_setup): Deleted.
- web-platform-tests/resources/idlharness.js:
(IdlInterface.prototype.test_self):
- web-platform-tests/streams/idlharness-shadowrealm.window-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/streams/idlharness.any-expected.txt.
- web-platform-tests/streams/idlharness-shadowrealm.window.html: Added.
- web-platform-tests/streams/idlharness-shadowrealm.window.js: Added.
- web-platform-tests/streams/idlharness.any-expected.txt:
- web-platform-tests/streams/idlharness.any.serviceworker-expected.txt:
- web-platform-tests/streams/idlharness.any.worker-expected.txt:
- web-platform-tests/url/idlharness-shadowrealm.window-expected.txt: Added.
- web-platform-tests/url/idlharness-shadowrealm.window.html: Added.
- web-platform-tests/url/idlharness-shadowrealm.window.js: Added.
- web-platform-tests/user-timing/idlharness-shadowrealm.window-expected.txt: Added.
- web-platform-tests/user-timing/idlharness-shadowrealm.window.html: Added.
- web-platform-tests/user-timing/idlharness-shadowrealm.window.js: Added.
Source/WebCore:
Mark a handful of web APIs as Exposed=*, making them visible in shadow
realm contexts. The existence of these APIs is checked by new idlharness-shadowrealm
tests in WPT, which have been imported.
Safety: I looked at the implementation of the interfaces that are exposed here and
some of them interact with the scriptExecutionContext() of the calling global scope--
since shadow realms pass that context through unchanged, nothing should go dramatically wrong.
I'm planning on adding more comprehensive testing in WPT shortly.
There's one bug currently which is that AbortSignal.timeout is exposed
on shadow realms but shouldn't be. It will only be exposed when the
incubating realm is a worker or window, which is good since it should still
work there, but it's just not supported in the spec; I'll submit a patch after
this to fix; the problem is that the script execution context in a shadow realm
does not return true forisShadowRealmGlobalScope
Also required adjustment to CodeGeneratorJS.pm since it refused to
generate a runtime check when a member is exposed less than the interface it
appears on *and* in more than one scope.
Tests: imported/w3c/web-platform-tests/encoding/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/hr-time/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/html/dom/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/performance-timeline/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/streams/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/url/idlharness-shadowrealm.window.html
imported/w3c/web-platform-tests/user-timing/idlharness-shadowrealm.window.html
- Modules/streams/ByteLengthQueuingStrategy.idl:
- Modules/streams/CountQueuingStrategy.idl:
- Modules/streams/ReadableByteStreamController.idl:
- Modules/streams/ReadableStream.idl:
- Modules/streams/ReadableStreamBYOBReader.idl:
- Modules/streams/ReadableStreamBYOBRequest.idl:
- Modules/streams/ReadableStreamDefaultController.idl:
- Modules/streams/ReadableStreamDefaultReader.idl:
- Modules/streams/TransformStream.idl:
- Modules/streams/TransformStreamDefaultController.idl:
- Modules/streams/WritableStream.idl:
- Modules/streams/WritableStreamDefaultController.idl:
- Modules/streams/WritableStreamDefaultWriter.idl:
- bindings/scripts/CodeGeneratorJS.pm:
(IsAlwaysExposedOnInterface):
(GenerateRuntimeEnableConditionalStringForExposeScope):
(GenerateRuntimeEnableConditionalStringForExposed):
- bindings/scripts/preprocess-idls.pl: Add SharedWorker to list for Exposed=*
- bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp: Fixed after adding SharedWorker to the list for Exposed=*
(WebCore::jsSharedWorkerGlobalScope_ExposedStarConstructorGetter):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
- bindings/scripts/test/SharedWorkerGlobalScopeConstructors.idl: Fixed after adding SharedWorker to the list for Exposed=*
- dom/AbortController.idl:
- dom/AbortSignal.idl:
- dom/CustomEvent.idl:
- dom/ErrorEvent.idl:
- dom/Event.idl:
- dom/EventTarget.idl:
- dom/PromiseRejectionEvent.idl:
- dom/TextDecoder.idl:
- dom/TextDecoderStream.idl:
- dom/TextEncoder.idl:
- dom/TextEncoderStream.idl:
- html/DOMURL.idl:
- html/URLSearchParams.idl:
- page/Performance.idl:
- page/PerformanceEntry.idl:
- page/PerformanceMark.idl:
- page/PerformanceMeasure.idl:
- page/PerformanceObserver.idl:
- page/PerformanceObserverEntryList.idl:
- page/PerformanceResourceTiming.idl:
- page/PerformanceServerTiming.idl:
- 9:18 AM Changeset in webkit [291294] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Unreviewed, tentative clang build fix after 248419@main
https://bugs.webkit.org/show_bug.cgi?id=237897
Adds static_cast to avoid "non-const-expression cannot be narrowed"
error.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):
- 9:13 AM Changeset in webkit [291293] by
-
- 30 edits2 adds in trunk/LayoutTests/imported/w3c
[CSS Container Queries] Some more WPT updates
https://bugs.webkit.org/show_bug.cgi?id=237890
Reviewed by Antoine Quint.
- web-platform-tests/css/css-contain/container-queries/canvas-as-container-005.html:
- web-platform-tests/css/css-contain/container-queries/canvas-as-container-006.html:
- web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc.html:
- web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-computed.html:
- web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-parsing.html:
- web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-type-parsing.html:
- web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-animation.html:
- web-platform-tests/css/css-contain/container-queries/container-units-basic.html:
- web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-computational-independence.html:
- web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-invalidation.html:
- web-platform-tests/css/css-contain/container-queries/container-units-selection.html:
- web-platform-tests/css/css-contain/container-queries/container-units-small-viewport-fallback.html:
- web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-typed-om.html:
- web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
- web-platform-tests/css/css-contain/container-queries/display-none.html:
- web-platform-tests/css/css-contain/container-queries/fragmented-container-001.html:
- web-platform-tests/css/css-contain/container-queries/multicol-container-001.html:
- web-platform-tests/css/css-contain/container-queries/sibling-layout-dependency-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/sibling-layout-dependency.html: Added.
- web-platform-tests/css/css-contain/container-queries/svg-foreignobject-no-size-container.html:
- web-platform-tests/css/css-contain/container-queries/svg-root-size-container.html:
- web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display.html:
- web-platform-tests/css/css-contain/container-queries/w3c-import.log:
- web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal.html:
- 8:38 AM Changeset in webkit [291292] by
-
- 4 edits in trunk/Tools
[Merge-Queue] Fail draft PRs
https://bugs.webkit.org/show_bug.cgi?id=237859
<rdar://problem/90277316>
Reviewed by Aakash Jain.
We should never merge a draft pull request.
- Tools/CISupport/ews-build/factories.py:
(MergeQueueFactory.init): Verify that provided change is not a draft.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin._is_pr_draft): Check if pr_json indicates a draft PR.
(ValidateChange.init): Accept verifyNoDraft flag.
(ValidateChange.start):
(ValidateChange.fail_build):
(ValidateChange.validate_github): Fail the build if the provided PR is a draft.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/248431@main
- 8:26 AM Changeset in webkit [291291] by
-
- 2 edits in trunk/LayoutTests
A combination of scrolling and a content change can leave a fixed layer in the wrong place
https://bugs.webkit.org/show_bug.cgi?id=203112
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 8:23 AM Changeset in webkit [291290] by
-
- 8 edits in trunk/Source/WebCore
[GStreamer] clarify playback errors with MediaError.message
https://bugs.webkit.org/show_bug.cgi?id=237602
Reviewed by Philippe Normand.
This patch is co-authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797
- html/HTMLMediaElement.cpp: Use internal last error message from the player, if available.
- platform/graphics/MediaPlayer.cpp: Cache the last error message from the player private and update it when NetworkState changes to an error state. This allows the player private to be regenerated (as it has always been) while providing access to the former player private error after that.
- platform/graphics/MediaPlayer.h: Added lastErrorMessage() method to get the last internal error message from the player private.
- platform/graphics/MediaPlayerPrivate.h: Default lastErrorMessage() empty implementation.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Detect decryption and no-key errors.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added errorMessage() to expose the internal error message.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: Post multiple kind of errors to the GstBus to notify upper layers instead of just logging them.
- 8:02 AM Changeset in webkit [291289] by
-
- 2 edits in trunk/LayoutTests
Implement ElementInternals
https://bugs.webkit.org/show_bug.cgi?id=197960
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 7:49 AM Changeset in webkit [291288] by
-
- 2 edits in trunk/LayoutTests
[GPU Process] Test failures in writing modes
https://bugs.webkit.org/show_bug.cgi?id=236921
Unreviewed test gardening.
- gpu-process/TestExpectations:
- 7:25 AM Changeset in webkit [291287] by
-
- 5 edits in trunk/Source
[macOS] Tooltip no longer disappears after leaving hovered element
https://bugs.webkit.org/show_bug.cgi?id=237815
rdar://90187247
Reviewed by Tim Horton.
Source/WebKit:
On certain versions of macOS, AppKit's tooltip management system installs tracking areas (NSTrackingArea) using
-addTrackingArea:instead of tracking rects. This breaks our existing mechanism for keeping track of the
current tracking rect owner by overriding-addTrackingRect:owner:userData:assumeInside:(which assumes that
the only client that adds tracking rects is the tooltip manager). Since-addTrackingRect:isn't called,
m_trackingRectOwnerremains nil, which causes bothsendToolTipMouseExited()andsendToolTipMouseEntered()
to be no-ops.
To fix this, in the case where
m_trackingRectOwneris nil, we instead fall back on-[WKWebView trackingAreas]
and look for an NSTrackingArea that's owned by AppKit's NSToolTipManager. We then send fake mouse enter/exit
events to this owner, the same way as we currently do.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::addTrackingRect):
(WebKit::WebViewImpl::addTrackingRectWithTrackingNum):
(WebKit::WebViewImpl::addTrackingRectsWithTrackingNums):
(WebKit::WebViewImpl::toolTipTrackingAreaOwner const):
(WebKit::WebViewImpl::sendToolTipMouseExited):
(WebKit::WebViewImpl::sendToolTipMouseEntered):
Source/WebKitLegacy/mac:
Apply the same fix to legacy WebKit; see WebKit/ChangeLog for more information.
- WebView/WebHTMLView.mm:
Also wrap the owner in a WeakObjCPtr to avoid the possibility of calling methods on deallocated instances.
(-[WebHTMLView _toolTipOwnerForSendingMouseEvents]):
(-[WebHTMLView _sendToolTipMouseExited]):
(-[WebHTMLView _sendToolTipMouseEntered]):
- 7:16 AM Changeset in webkit [291286] by
-
- 9 edits in trunk
CSSConditionRule.conditionText should be readonly
https://bugs.webkit.org/show_bug.cgi?id=237880
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
- web-platform-tests/interfaces/css-conditional.idl:
Source/WebCore:
Per CSSWG resolution https://github.com/w3c/csswg-drafts/issues/6819#issuecomment-1016695585
This also matches Blink.
- css/CSSConditionRule.h:
- css/CSSConditionRule.idl:
- css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::setConditionText): Deleted.
- css/CSSMediaRule.h:
- css/CSSSupportsRule.cpp:
(WebCore::CSSSupportsRule::setConditionText): Deleted.
- css/CSSSupportsRule.h:
- 6:57 AM Changeset in webkit [291285] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ iOS release wk2 ] compositing/debug-borders-dynamic.html is a flaky image failure
https://github.com/Smackteo
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 6:21 AM Changeset in webkit [291284] by
-
- 7 edits in trunk
Mark permission as denied if system forbids access to camera and/or microphone
https://bugs.webkit.org/show_bug.cgi?id=237823
Reviewed by Eric Carlson.
Source/WebKit:
If application has not set the camera/microphone usage string, we do not need to call ther permission delegate.
Ditto if TCC prompt is denied. Instead, we can return deny if possible or prompt otherwise.
Covered by API test.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/WebPageProxy.cpp:
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
- TestWebKitAPI/Tests/WebKit/getUserMediaPermission.html:
- 5:40 AM Changeset in webkit [291283] by
-
- 3 edits in trunk/Source/WebCore
[GStreamer][MSE] add ac-3,ec-3 and flac codecs gst caps
https://bugs.webkit.org/show_bug.cgi?id=237843
Reviewed by Philippe Normand.
AC-3, EC-3 and FLAC formats should be supported on MSE and EME on those
platforms having the appropriate decoders for them.
This patch adds the appropriate mime types, factories and caps to the
set of codecs whose local support will be tested on MSE.
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/804
- platform/graphics/gstreamer/GStreamerRegistryScanner.cpp: Add support for the codecs, factories and caps.
- platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp: Add support for the caps.
- 4:40 AM Changeset in webkit [291282] by
-
- 5 edits4 adds in trunk
Dialog element only animates once
https://bugs.webkit.org/show_bug.cgi?id=236274
Reviewed by Dean Jackson, Tim Nguyen and Antti Koivisto.
LayoutTests/imported/w3c:
Import relevant WPT tests that had already been upstreamed in a previous, reverted
version of this patch.
- web-platform-tests/css/css-animations/dialog-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-animation.html: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation-expected.txt: Added.
- web-platform-tests/css/css-animations/dialog-backdrop-animation.html: Added.
- web-platform-tests/css/css-animations/support/testcommon.js:
(addElement):
(addDiv):
Source/WebCore:
Two issues related to CSS Animation surfaced in this bug which animates both <dialog>
and its ::backdrop as the dialog is open and eventually re-opened.
The first issue was that we didn't clear all CSS Animations state when a <dialog> was
closed and its style was set todisplay: none. We now call setAnimationsCreatedByMarkup
to correctly clear such state both when we identify a Styleable is newly getting
display: none. We do the same when cancelDeclarativeAnimations() is called, but also
call setCSSAnimationList() on the associated effect stack since that wasn't done either.
Now both functions do similar cleanup.
This allows us to remove removeCSSAnimationCreatedByMarkup() which did a fair bit of work
to clear CSS Animation state per-animation when we only ever used that function for
_all_ animations.
The second issue was that we never called cancelDeclarativeAnimations() for ::backdrop.
We now do that inside of Element::removeFromTopLayer() at a point where the code in
Styleable::fromRenderer() will still work as the element will still be contained in
Document::topLayerElements().
Tests: imported/w3c/web-platform-tests/css/css-animations/dialog-animation.html
imported/w3c/web-platform-tests/css/css-animations/dialog-backdrop-animation.html
- dom/Element.cpp:
(WebCore::Element::removeFromTopLayer):
- style/Styleable.cpp:
(WebCore::Styleable::cancelDeclarativeAnimations const):
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::removeCSSAnimationCreatedByMarkup): Deleted.
- 4:01 AM Changeset in webkit [291281] by
-
- 3 edits2 adds in trunk
Crash in KeyframeList.cpp:183 in WebCore::KeyframeList::fillImplicitKeyframes
https://bugs.webkit.org/show_bug.cgi?id=237858
Reviewed by Antoine Quint.
Source/WebCore:
When filling implicit key frames, we iterate through the current keyframes (m_keyframes),
and cache the address of the implicitZeroKeyframe and implicitOneKeyframe.
However, if we're not provided with an existing implicit zero keyframe, we will create a new one
and insert it to the list of current keyframes.
This mutates m_keyframes and the old address for the implicitOneKeyframe would no longer be valid.
Thus we should iterate through the current keyframes, after the insertion, to get the latest address.
Test: animations/fill-implicit-keyframes-crash.html
- rendering/style/KeyframeList.cpp:
(WebCore::KeyframeList::fillImplicitKeyframes):
LayoutTests:
- animations/fill-implicit-keyframes-crash-expected.txt: Added.
- animations/fill-implicit-keyframes-crash.html: Added.
- 3:50 AM Changeset in webkit [291280] by
-
- 3 edits in releases/WebKitGTK/webkit-2.36/Tools
Merge r290982 - [GTK][WPE] Do not add new modules under ThirdParty to the tarball
https://bugs.webkit.org/show_bug.cgi?id=237519
Reviewed by Michael Catanzaro.
We currently include ThirdParty and exclude individually what we don't want in the tarball. That means every
time something new is added to ThirdParty we have to manually exclude it. It's better to exclude ThirdParty and
manually add what we need instead.
- gtk/manifest.txt.in:
- wpe/manifest.txt.in:
- 3:00 AM Changeset in webkit [291279] by
-
- 8 edits in releases/WebKitGTK/webkit-2.36
Merge r291111 - REGRESSION(r284711): [GStreamer] Buffering, seek broken on youtube.com
https://bugs.webkit.org/show_bug.cgi?id=233861
Unreviewed, manual revert of 284711.
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-10
Source/WebCore:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::currentTimeFudgeFactor):
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::timeFudgeFactor const):
- platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::toGstClockTime):
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::bufferTimeToStreamTime): Deleted.
LayoutTests:
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
- 2:53 AM WebKitGTK/2.36.x edited by
- (diff)
- 2:35 AM Changeset in webkit [291278] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Merge r290890 - [GTK] generate-automation-atom.py breaks reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=237506
Reviewed by Carlos Garcia Campos.
- Scripts/generate-automation-atom.py:
(append_functions): Sort utility functions to produce stable output.
- 2:35 AM Changeset in webkit [291277] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore
Merge r290883 - makeprop.pl breaks reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=237521
Reviewed by Carlos Garcia Campos.
- css/makeprop.pl: Sort hash elements so the output file is always
the same across different builds.
- 2:35 AM Changeset in webkit [291276] by
-
- 13 edits in releases/WebKitGTK/webkit-2.36/Source
Merge r290681 - Misc compiler warnings, late Feb 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=237275
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-03-01
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
Suppress suspected false-positive -Wstringop-overflow and -Wformat-overflow warnings. Also,
remove an unused variable.
- API/tests/MultithreadedMultiVMExecutionTest.cpp:
(startMultithreadedMultiVMExecutionTest):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
- yarr/YarrJIT.cpp:
Source/WebCore:
Remove a redundant move. Sprinkle RELEASE_ASSERT_NOT_REACHED() as required to avoid
-Wreturn-type warnings.
- Modules/push-api/PushDatabase.cpp:
(WebCore::openAndMigrateDatabaseImpl):
- style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::evaluateCondition const):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):
- style/ContainerQueryEvaluator.h:
(WebCore::Style::operator!):
- style/StyleScope.cpp:
(WebCore::Style::Scope::updateQueryContainerState):
Source/WebKit:
Delete an unused function. Remove a redundant move.
- Shared/AuxiliaryProcess.cpp:
(WebKit::applySandboxProfileForDaemon): Deleted.
- Shared/WebFoundTextRange.cpp:
(WebKit::WebFoundTextRange::decode):
- 2:05 AM Changeset in webkit [291275] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36
Merge r290597 - -Wodr warning spam caused by ENABLE(BINDING_INTEGRITY)
https://bugs.webkit.org/show_bug.cgi?id=229867
<rdar://problem/82975115>
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-02-28
Reviewed by Carlos Garcia Campos.
Build WebKit with -Wno-odr. This warning is not salvagable, and it's impossible to suppress
locally.
- Source/cmake/WebKitCompilerFlags.cmake:
2022-02-24 Matt Woodrow <Matt Woodrow>
Unreviewed, update my (Matt Woodrow) status to committer.
- metadata/contributors.json:
- 2:04 AM Changeset in webkit [291274] by
-
- 6 edits in releases/WebKitGTK/webkit-2.36
Merge r290724 - REGRESSION(r216096): [GTK] Test accessibility/gtk/menu-list-unfocused-notifications.html is failing since r216096
https://bugs.webkit.org/show_bug.cgi?id=171598
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Enable accessibility when a WTR observer is added.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::addNotificationObserver):
LayoutTests:
Since r216096 the notification for menu list changes is deffered, so we need to wait one run loop cycle to get
the notifications. Also update the test to ignore notifications that are not interesting like AXLoadComplete and
AXElementBusyChanged, and update expectations for the new behavior with ATSPI where the notification is emitted
on the menu and not the combo.
- accessibility/gtk/menu-list-unfocused-notifications-expected.txt:
- accessibility/gtk/menu-list-unfocused-notifications.html:
- platform/gtk/TestExpectations:
- 2:04 AM Changeset in webkit [291273] by
-
- 3 edits in releases/WebKitGTK/webkit-2.36/LayoutTests
Merge r290723 - [ATSPI] Test accessibility/select-element-at-index.html is failing
https://bugs.webkit.org/show_bug.cgi?id=237315
Reviewed by Adrian Perez de Castro.
This is because the test contains platform specific behavior for ATK that was migrated to ATSPI by mistake. We
should behave like all other ports now.
- accessibility/select-element-at-index.html:
- platform/glib/TestExpectations:
- 2:04 AM Changeset in webkit [291272] by
-
- 10 edits4 deletes in releases/WebKitGTK/webkit-2.36
Merge r290633 - [ATSPI] Remove layout tests checking children added/removed notifications
https://bugs.webkit.org/show_bug.cgi?id=237272
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Do not send children-changed notifications to WTR observers.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::notifyChildrenChanged const): Deleted.
- accessibility/atspi/AccessibilityAtspi.h:
LayoutTests:
Children changed notifications are not expected by any other tests because other ports don't support them. We
already have unit tests to ensure they work as expected so we can just remove the layout tests and ensure we
don't emit those notifications either.
- accessibility/children-changed-sends-notification-expected.txt: Removed.
- accessibility/children-changed-sends-notification.html: Removed.
- accessibility/gtk/menu-list-unfocused-notifications-expected.txt:
- accessibility/gtk/no-notification-for-unrendered-iframe-children-expected.txt: Removed.
- accessibility/gtk/no-notification-for-unrendered-iframe-children.html: Removed.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo-wk1/TestExpectations:
- 2:04 AM Changeset in webkit [291271] by
-
- 11 edits in releases/WebKitGTK/webkit-2.36
Merge r290502 - AX: List item marker not exposed when not a direct child of a list item
https://bugs.webkit.org/show_bug.cgi?id=236777
<rdar://problem/89082485>
Reviewed by Adrian Perez de Castro.
Source/WebCore:
It can happen that the marker is not a direct child of a list item, in which case the marker is ignored and not
exposed to ATs.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::parentObjectUnignored const): In case of list marker find the marker list item.
(WebCore::AccessibilityRenderObject::markerRenderer const): Helper to return the list item marker renderer.
(WebCore::AccessibilityRenderObject::addListItemMarker): Add always the list item marker as the first child of
list items.
(WebCore::AccessibilityRenderObject::addChildren): Do not add list item marker children, they will be added to
the right parent in addListItemMarker().
- accessibility/AccessibilityRenderObject.h:
Tools:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::roleValueToString): Return AXStatic for Text role too.
LayoutTests:
Update test results.
- accessibility/gtk/list-items-always-exposed-expected.txt:
- accessibility/gtk/list-items-always-exposed.html:
- accessibility/gtk/spans-expected.txt:
- accessibility/gtk/spans.html:
- platform/gtk/TestExpectations:
- 1:55 AM Changeset in webkit [291270] by
-
- 10 edits7 adds in trunk/Source/WebCore
[GTK][WPE] Provide DMABuf-based composition layers, DMABufVideoSink integration
https://bugs.webkit.org/show_bug.cgi?id=237328
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-15
Reviewed by Alejandro G. Castro.
Introduce TextureMapperPlatformLayerProxyDMABuf, a TextureMapper proxy
implementation that handles platform layers backed by dmabuf objects.
This will be used to handle display of dmabuf producers like GStreamer
pipelines or ANGLE-backed WebGL contexts. The DMABufLayer class is the
platform layer object, handling display of the actual dmabuf. The proxy
itself is tasked with creating and caching such layers for any dmabuf
object that originates from the producer.
For each dmabuf object pushed into the proxy, the according DMABufLayer
object is spawned and cached for future reuse, expecting the producer
to be able to provide dmabufs from a pool or swapchain of these objects.
The cache is emptied whenever dmabufs go unused for a certain amount of
swaps, or if the size of the provided dmabufs changes.
DMABufFormat provides information for different DRM formats, for
instance how different planes for specific formats are formatted and
sized.
DMABufObject is a class that handles a given grouping of dmabufs
according to the specified format. It has an associated handle value,
size, and per-plane dmabuf file descriptors, offsets, strides and
modifiers, along with a DMABufReleaseFlag instance.
DMABufReleaseFlag objects are used as an eventfd-based release mechanism
that indicates to the producer that the given DMABufObject has been
presented and subsequently released and is thus available for reuse.
GBMBufferSwapchain provides a custom swapchain implementation that's
based on libgbm functionality. Each such swapchain has a capacity
specified during construction, with the capacities of four or eight
currently supported. getBuffer() is called by the producer to obtain a
buffer object that's then used for backing of specific content like
ANGLE execution or media's software-decoded video frames. Buffers
obtained this way are moved over to the end of the buffer array, with
the expectation of reusing them once they are released by the
composition engine.
MediaPlayerPrivateGStreamer implementation is enhanced to use the
recently-added WebKitDMABufVideoSink element if its use is enabled
through the development-purpose environment variable and if the
necessary GStreamer facilities are present on the system. When these
conditions are met, the Nicosia::ContentLayer instance is also
constructed with a TextureMapperPlatformLayerProxyDMABuf instance, since
we expect to present the dmabufs through that functionality.
With the WebKitDMABufVideoSink, the incoming samples are either based
on dmabufs (in case of dmabuf-capable hardware decoder) or are just raw
data (most likely coming from a software-based decoder). In case of
dmabufs we can use the GstMemory pointer as the handle through which
the relevant data is cached in TextureMapperPlatformLayerProxyDMABuf,
and upon the first occurrence we retrieve all the relevant dmabuf data
so that it can be used by that proxy implementation to construct a
renderable EGLImage.
In case of software-decoded raw data, we have to use the swapchain
object and copy the data on a per-plane basis for each such sample,
finally pushing the dmabuf data of that swapchain buffer into the
TextureMapperPlatformLayerProxyDMABuf instance.
- SourcesGTK.txt:
- SourcesWPE.txt:
- platform/TextureMapper.cmake:
- platform/graphics/gbm/DMABufFormat.h: Added.
(WebCore::DMABufFormatImpl::createFourCC):
(WebCore::DMABufFormat::planeWidth const):
(WebCore::DMABufFormat::planeHeight const):
(WebCore::DMABufFormat::Plane::Plane):
(WebCore::DMABufFormatImpl::createSinglePlaneRGBA):
(WebCore::DMABufFormatImpl::definePlane):
(WebCore::DMABufFormat::instantiate):
(WebCore::DMABufFormat::create):
- platform/graphics/gbm/DMABufObject.h: Added.
(WebCore::DMABufObject::DMABufObject):
(WebCore::DMABufObject::~DMABufObject):
(WebCore::DMABufObject::operator=):
- platform/graphics/gbm/DMABufReleaseFlag.h: Added.
(WebCore::DMABufReleaseFlag::DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::~DMABufReleaseFlag):
(WebCore::DMABufReleaseFlag::operator=):
(WebCore::DMABufReleaseFlag::dup const):
(WebCore::DMABufReleaseFlag::released const):
(WebCore::DMABufReleaseFlag::release):
- platform/graphics/gbm/GBMBufferSwapchain.cpp: Added.
(WebCore::GBMBufferSwapchain::GBMBufferSwapchain):
(WebCore::GBMBufferSwapchain::getBuffer):
(WebCore::GBMBufferSwapchain::Buffer::Buffer):
(WebCore::GBMBufferSwapchain::Buffer::createDMABufObject const):
(WebCore::GBMBufferSwapchain::Buffer::PlaneData::~PlaneData):
- platform/graphics/gbm/GBMBufferSwapchain.h: Added.
(WebCore::GBMBufferSwapchain::Buffer::handle const):
(WebCore::GBMBufferSwapchain::Buffer::numPlanes const):
(WebCore::GBMBufferSwapchain::Buffer::planeData const):
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:
(webKitDMABufVideoSinkIsEnabled):
(webKitDMABufVideoSinkSetMediaPlayerPrivate):
- platform/graphics/gstreamer/DMABufVideoSinkGStreamer.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::platformLayer const):
(WebCore::fourccValue):
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):
(WebCore::MediaPlayerPrivateGStreamer::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSinkDMABuf):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:
(Nicosia::ContentLayerTextureMapperImpl::createFactory):
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp: Added.
(WebCore::createImageKHR):
(WebCore::destroyImageKHR):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::EGLImageData::~EGLImageData):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::activateOnCompositingThread):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::invalidate):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::swapBuffer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::pushDMABuf):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::DMABufLayer):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::paintToTextureMapper):
(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::createEGLImageData):
- platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.h: Added.
- 12:52 AM Changeset in webkit [291269] by
-
- 45 edits1 move in trunk/Source
Rename VideoSampleMetadata to VideoFrameTimeMetadata
https://bugs.webkit.org/show_bug.cgi?id=237593
Reviewed by Eric Carlson.
Source/WebCore:
We are going to rename videoSampleAvailable to videoFrameAvailable and move from passing MediaSample to VideoFrame.
We rename VideoSampleMetadata to VideoFrameTimeMetadata for consistency.
No change of behavior.
- Headers.cmake:
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::captureCanvas):
- WebCore.xcodeproj/project.pbxproj:
- platform/VideoFrameTimeMetadata.h: Renamed from Source/WebCore/platform/VideoSampleMetadata.h.
(WebCore::VideoFrameTimeMetadata::encode const):
(WebCore::VideoFrameTimeMetadata::decode):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
(WebCore::MediaSampleGStreamer::create):
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp:
(webkitGstBufferSetVideoFrameTimeMetadata):
(webkitGstBufferSetVideoSampleMetadata): Deleted.
- platform/graphics/gstreamer/VideoFrameMetadataGStreamer.h:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
- platform/mediarecorder/MediaRecorderPrivateGStreamer.h:
- platform/mediarecorder/MediaRecorderPrivateMock.cpp:
(WebCore::MediaRecorderPrivateMock::videoSampleAvailable):
- platform/mediarecorder/MediaRecorderPrivateMock.h:
- platform/mediastream/RealtimeIncomingVideoSource.cpp:
(WebCore::RealtimeIncomingVideoSource::metadataFromVideoFrame):
- platform/mediastream/RealtimeIncomingVideoSource.h:
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::videoSampleAvailable):
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeOutgoingVideoSource.h:
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
(WebCore::RealtimeVideoCaptureSource::dispatchMediaSampleToObservers):
- platform/mediastream/RealtimeVideoCaptureSource.h:
- platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::videoSampleAvailable):
- platform/mediastream/RealtimeVideoSource.h:
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
(WebCore::DisplayCaptureSourceCocoa::emitFrame):
- platform/mediastream/gstreamer/GStreamerCapturer.cpp:
(WebCore::GStreamerCapturer::createSource):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockDisplayCaptureSourceGStreamer::videoSampleAvailable):
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
- platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeOutgoingVideoSourceLibWebRTC::videoSampleAvailable):
- platform/mediastream/libwebrtc/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
(WebCore::RealtimeOutgoingVideoSourceCocoa::videoSampleAvailable):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
- testing/Internals.cpp:
(WebCore::Internals::videoSampleAvailable):
- testing/Internals.h:
Source/WebKit:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
(WebKit::MediaRecorderPrivate::videoSampleAvailable):
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::videoFrameAvailable):
(WebKit::RemoteCaptureSampleManager::videoFrameAvailableCV):
(WebKit::RemoteCaptureSampleManager::RemoteVideo::videoFrameAvailable):
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
- WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
- WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
(WebKit::RemoteRealtimeVideoSource::videoSampleAvailable):
- WebProcess/cocoa/RemoteRealtimeVideoSource.h:
- 12:28 AM Changeset in webkit [291268] by
-
- 7 edits2 adds in trunk
Make sure to end any pending AudioSession interruption when activating it
https://bugs.webkit.org/show_bug.cgi?id=237654
<rdar://88405081>
Reviewed by Eric Carlson.
Source/WebCore:
In some cases, we receive audio session interruptions without receiving any end of interruption notification.
In those cases, if we reactivate the audio session, we should end this pending interruption so that our WebCore code
gets its expected end of interruption message. This for instance allows to get back regular autoplay behavior.
Test: platform/ios/mediastream/getUserMedia-override-audio-session-interruption.html
- platform/audio/AudioSession.cpp:
- platform/audio/AudioSession.h:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- platform/ios/mediastream/getUserMedia-override-audio-session-interruption-expected.txt: Added.
- platform/ios/mediastream/getUserMedia-override-audio-session-interruption.html: Added.
- 12:19 AM Changeset in webkit [291267] by
-
- 6 edits in trunk
AudioContext stops playing when minimizing or moving the macOS Safari window to the background.
https://bugs.webkit.org/show_bug.cgi?id=231105
<rdar://problem/83889697>
Reviewed by Eric Carlson.
Source/WebCore:
AudioContext was stopped when minimizing windows if not playing audio as a way to reduce CPU usage.
But this is visible to users (if AudioContext produces audio through a track) or to web pages (use of audio worklet or script processor node).
Remove that code.
Small refactoring to remove isOfflineContext checks that can only be false in AudioContext.
Covered by existing tests.
- Modules/webaudio/AudioContext.cpp:
- Modules/webaudio/AudioContext.h:
LayoutTests:
Use internals API to be working on iOS as well (this does not trigger enterBackground code path).
- webaudio/silent-audio-interrupted-in-background-expected.txt:
- webaudio/silent-audio-interrupted-in-background.html:
Mar 14, 2022:
- 9:16 PM Changeset in webkit [291266] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed, gardening crash and timeout
https://bugs.webkit.org/show_bug.cgi?id=237873
- platform/glib/TestExpectations:
- 7:28 PM Changeset in webkit [291265] by
-
- 2 edits in branches/safari-614.1.5.9-branch/Source/WebKit
Cherry-pick r290797. rdar://problem/79198381
WKContentView should explicitly request the system pointer in the fallback case
https://bugs.webkit.org/show_bug.cgi?id=237410
<rdar://79198381>
Reviewed by Anders Carlsson.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView pointerRegionForPositionInformation:point:]): (-[WKContentView pointerInteraction:styleForRegion:]): Instead of assuming a nil region and nil style will provide the system pointer, provide a region the size of the WKContentView and explicitly request the system pointer shape.
Also, drive-by adopt the API
systemPointerStyleinstead of the
deprecated SPI version.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290797 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:13 PM Changeset in webkit [291264] by
-
- 9 edits in branches/safari-614.1.5.9-branch/Source
Versioning.
WebKit-7614.1.5.9.1
- 7:00 PM Changeset in webkit [291263] by
-
- 1 copy in branches/safari-614.1.5.9-branch
New branch.
- 6:56 PM Changeset in webkit [291262] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] 8X imported/w3c/web-platform-tests/pointerevents/pointere vent (layout-tests) are flaky text failures (236128)
https://bugs.webkit.org/show_bug.cgi?id=236128
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations: Disabling test that is believed to cause the others to fail as a test.
- 6:55 PM Changeset in webkit [291261] by
-
- 4 edits in trunk
[Mail compose] Allow copied resources with remote (HTTP/HTTPS) URLs to be pasted as attachments
https://bugs.webkit.org/show_bug.cgi?id=237810
rdar://90119983
Reviewed by Devin Rousso.
Source/WebCore:
When creating attachments by pasting subresources with remote URLs, Mail compose in shipping macOS inserts such
subresources as attachments, which are sent as MIME parts alongside the rest of the Mail message. However, when
using the WebKit2 client-side attachment API, we currently leave remote (i.e. HTTP-family) URLs as-is, which
means they don't end up being sent as attachments.
I implemented this current behavior in r226340; back then, we opted to preserve the HTTP/HTTPS URL in pasted
resources over falling back to blob URL conversion. However, in order to match legacy Mail compose behavior, we
should've handled it by propagating the data as attachments to the client layer instead.
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::shouldReplaceSubresourceURL):
Tools:
Add an API test to exercise copying remote images and pasting as attachment-backed images. This API test first
loads a web page (simulating page load via HTTPS, along with multiple image subresources); it then pastes into
an attachment-enabled WKWebView-based editor and verifies that the _WKAttachment UI delegate hooks are invoked
with attachments corresponding to each of the remote images.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
- 6:48 PM Changeset in webkit [291260] by
-
- 6 edits1 copy1 add in trunk
[css-cascade] Fix 'revert' on low-priority properties
https://bugs.webkit.org/show_bug.cgi?id=236272
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Add one test and expect an existing one to pass.
- web-platform-tests/css/css-cascade/all-prop-revert-layer-noop-expected.txt:
- web-platform-tests/css/css-cascade/all-prop-revert-noop-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-noop-expected.txt.
- web-platform-tests/css/css-cascade/all-prop-revert-noop.html: Added.
Source/WebCore:
Some CSS properties are low-priority (a.k.a deferred or applied in parse
order). The logic for the 'revert' keyword was not taking these into
account, so it just behaved as 'unset'.
That made elements like <del>, <ins>, <s> and <u> lose the line-through
or underline thet they get in UA origin, when styled with 'all: revert'
or 'text-decoration: revert'.
This patch takes these properties into account so that 'revert' works.
Tests: imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-noop.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-noop.html
- style/PropertyCascade.cpp:
(WebCore::Style::PropertyCascade::setDeferred):
- style/PropertyCascade.h:
(WebCore::Style::PropertyCascade::hasDeferredProperty const):
(WebCore::Style::PropertyCascade::deferredProperty const):
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::applyProperty):
- 6:40 PM Changeset in webkit [291259] by
-
- 2 edits in trunk/Source/WebCore
[macOS] Use sRGB colorspace in ScreenCaptureKitCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=237855
<rdar://problem/90273792>
Reviewed by Jer Noble.
- platform/mediastream/mac/ScreenCaptureKitCaptureSource.mm:
(WebCore::ScreenCaptureKitCaptureSource::streamConfiguration): Configure
ScreenCaptureKit to capture in kCGColorSpaceSRGB.
- 5:45 PM Changeset in webkit [291258] by
-
- 3 edits in trunk/LayoutTests
WindowServer returned not alive with context:,unresponsive work processor(s)
<rdar://86037417>
Uneviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 5:42 PM Changeset in webkit [291257] by
-
- 15 edits in trunk/Source/WebCore
Rename RenderStyle::textDecoration() to RenderStyle::textDecorationLine()
https://bugs.webkit.org/show_bug.cgi?id=237400
Reviewed by Darin Adler.
Before https://webkit.org/b/237175, the text-decoration-line and
text-decoration properties were 2 longhands that shared a computed
value, accessed via RenderStyle::textDecoration().
But now text-decoration is a proper shorthand of text-decoration-line.
So it doesn't make much sense to continue accessing the line via
textDecoration(), it should be textDecorationLine() instead.
Same for RenderStyle::setTextDecoration(), etc.
No tests since it's just a rename, no change in behavior.
- accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::textAttributes const):
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- rendering/TextDecorationPainter.cpp:
(WebCore::collectStylesForRenderer):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::changeAffectsVisualOverflow const):
(WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::textDecorationsInEffect const):
(WebCore::RenderStyle::textDecorationLine const):
(WebCore::RenderStyle::addToTextDecorationsInEffect):
(WebCore::RenderStyle::setTextDecorationsInEffect):
(WebCore::RenderStyle::setTextDecorationLine):
(WebCore::RenderStyle::initialTextDecorationLine):
(WebCore::RenderStyle::InheritedFlags::operator== const):
(WebCore::RenderStyle::textDecoration const): Deleted.
(WebCore::RenderStyle::setTextDecoration): Deleted.
(WebCore::RenderStyle::initialTextDecoration): Deleted.
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleVisualData.cpp:
(WebCore::StyleVisualData::StyleVisualData):
- rendering/style/StyleVisualData.h:
(WebCore::StyleVisualData::operator== const):
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::findRendererDefininingTextDecoration):
- style/InlineTextBoxStyle.cpp:
(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):
(WebCore::enclosingRendererWithTextDecoration):
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertTextDecorationLine):
(WebCore::Style::BuilderConverter::convertTextDecoration): Deleted.
- 5:17 PM Changeset in webkit [291256] by
-
- 2 edits in trunk
Add myself (Gabriel Nava Marino) to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237634
Unreviewed.
- metadata/contributors.json:
- 3:39 PM Changeset in webkit [291255] by
-
- 4 edits1 add in trunk/Source/WTF
Enhance StackCheck debugging support and bump up the ASAN reserved zone size.
https://bugs.webkit.org/show_bug.cgi?id=237805
Reviewed by Robin Morisset.
- Apply the ASAN multiplier to StackBound::DefaultReservedZone instead of just in the StackCheck class. This ensures that all stack checks using this default value gets the necessary bump for ASAN as well.
Also bump the ASAN multipler from 2 to 3. We have evidence that an ASAN Debug
build inflates stack usage more than 2x over a non-ASAN Debug build.
- Enhance the StackCheck class to dump some debugging information when VERIFY_STACK_CHECK_RESERVED_ZONE_SIZE is enabled.
- WTF.xcodeproj/project.pbxproj:
- wtf/StackBounds.h:
- wtf/StackCheck.cpp: Added.
(WTF::StackCheck::Scope::reportVerificationFailureAndCrash):
- wtf/StackCheck.h:
(WTF::StackCheck::Scope::Scope):
(WTF::StackCheck::Scope::~Scope):
(WTF::StackCheck::StackCheck):
- 3:13 PM Changeset in webkit [291254] by
-
- 3 copies2 adds in trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans
Update Speedometer plan files.
rdar://89648567 (Use Speedometer 2.1 on perf bots)
Reviewed by NOBODY (OOPS!).
Create speedometer plan files for each version of speedometer.
Symlink shortcuts speedometer and speedometer2 to point at speedometer2.1
- Scripts/webkitpy/benchmark_runner/data/plans/speedometer1.0.plan: Copied from Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan.
- Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.0.plan: Copied from Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan.
- Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.1.plan: Copied from Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan.
T Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: T Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer2.plan
- 3:02 PM Changeset in webkit [291253] by
-
- 6 edits1 add in trunk
[Mail Compose] Spelling and grammar context menu items need custom identifiers
https://bugs.webkit.org/show_bug.cgi?id=237804
rdar://90124049
Reviewed by Aditya Keerthi.
Source/WebKit:
Introduce several new context menu item identifier strings that correspond to the default spelling and grammar
menu items that appear when showing the context menu for editable content, such that Mail can replace or
customize behaviors around these items in compose, via WKUIDelegate.
Test: ContextMenuTests.ProposedMenuContainsSpellingMenu
- UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:
- UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::menuItemIdentifier):
Tools:
Add a new API test to exercise the new identifiers.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/ContextMenuTests.mm: Added.
(-[NSMenu itemWithIdentifier:]):
(TestWebKitAPI::TEST):
- 2:59 PM Changeset in webkit [291252] by
-
- 3 edits in trunk/Tools
[EWS] Clean up PR branches and remotes
https://bugs.webkit.org/show_bug.cgi?id=237714
<rdar://problem/88771970>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(ShellMixin.shell_command): Use
shon Windows.
(CleanGitRepo.run): Delete all non-origin remote and all unused branches.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/248404@main
- 2:14 PM Changeset in webkit [291251] by
-
- 2 edits in trunk/Source/bmalloc
bmalloc.xcodeproj: Remove duplicate file reference
https://bugs.webkit.org/show_bug.cgi?id=237845
Reviewed by Simon Fraser.
pas_thread_local_cache_layout_node_kind.h was listed twice in the same group, probably due
to a merge conflict resolution typo. Dedupe it.
- bmalloc.xcodeproj/project.pbxproj:
- 1:44 PM Changeset in webkit [291250] by
-
- 1 copy in tags/Safari-614.1.5.11
Tag Safari-614.1.5.11.
- 1:23 PM Changeset in webkit [291249] by
-
- 4 edits1 delete in trunk/Source/ThirdParty/libwebrtc
Unreviewed, reverting r291239.
Some builds failing with "fatal error:
'absl/utility/utility.h' file not found"
Reverted changeset:
"Reland "[XCBuild] libwebrtc's headers are copied via rsync
and do not emit task outputs""
https://bugs.webkit.org/show_bug.cgi?id=237112
https://commits.webkit.org/r291239
- 1:22 PM Changeset in webkit [291248] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.11
- 1:15 PM Changeset in webkit [291247] by
-
- 1 copy in branches/safari-614.1.6-branch
New branch.
- 1:14 PM Changeset in webkit [291246] by
-
- 9 edits in trunk/Source
Versioning.
WebKit-7614.1.7
- 12:36 PM Changeset in webkit [291245] by
-
- 12 edits in trunk
[model] <model interactive> doesn't allow model to be rotated on iOS
https://bugs.webkit.org/show_bug.cgi?id=237831
rdar://89698247
Reviewed by Simon Fraser.
Source/WebCore:
A <model> element is *not* interactive by default and the "interactive" HTML attribute
must be set explicitly. We used to mirror this initial disabled state by explicitly
setting "userInteractionEnabled" to NO on WKModelView during its creation, and we would
update that property when HTMLModelElement::isInteractive() would change value.
However, in the case where the attribute was originally set, we would completely
disregard that value.
We now account for it when we create the GraphicsLayer for the <model> element, letting the
existing GraphicsLayer machinery to set the matching "userInteractionEnabled" property on
the WKModelView.
- Modules/model-element/HTMLModelElement.h:
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setContentsToModel):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToModel):
- platform/graphics/ca/GraphicsLayerCA.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateConfiguration):
Source/WebKit:
Remove the call to set userInteractionEnabled on the WKModelView when created. This property
is now set via the layer tree application code from the GraphicsLayer::userInteractionEnabled()
value.
- UIProcess/ios/WKModelView.mm:
(-[WKModelView initWithModel:]):
LayoutTests:
Add a test where the <model> element is added to the DOM with the "interactive"
HTML attribute already set.
- model-element/model-element-interactive-dragging-expected.txt:
- model-element/model-element-interactive-dragging.html:
- model-element/resources/model-utils.js:
(const.makeModel):
(const.readyModel.async test):
- 12:18 PM Changeset in webkit [291244] by
-
- 18 edits in trunk
[css] Implement 'text-decoration' as a shorthand.
https://bugs.webkit.org/show_bug.cgi?id=237175
Reviewed by Darin Adler.
Source/WebCore:
The 'text-decoration' property was considered to be a longhand, sharing
a computed value with 'text-decoration-line'.
This patch switches 'text-decoration' to be shorthand instead.
According to the CSS Text Decoration spec, the longhands should be
'text-decoration-line', 'text-decoration-thickness',
'text-decoration-style' and 'text-decoration-color'.
I tried that in https://commits.webkit.org/r290756, but it got reverted
because of a performance regression. So as a first step, here I'm making
'text-decoration-line' be the only longhand.
There is a bunch of editing code that was getting/setting/removing
'text-decoration' as a longhand, so I'm switching that to instead
use 'text-decoration-line'.
Tests: fast/css/getComputedStyle/computed-style.html
fast/css/getComputedStyle/computed-style-without-renderer.html
fast/css/getComputedStyle/getComputedStyle-text-decoration.html
fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html
imported/w3c/web-platform-tests/css/css-variables/variable-presentation-attribute.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html
svg/css/getComputedStyle-basic.xhtml
- css/CSSProperties.json:
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::asText const):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
- editing/EditingStyle.cpp:
(WebCore::HTMLTextDecorationEquivalent::HTMLTextDecorationEquivalent):
(WebCore::EditingStyle::init):
(WebCore::EditingStyle::styleWithResolvedTextDecorations const):
(WebCore::EditingStyle::collapseTextDecorationProperties):
(WebCore::textDecorationValueList):
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement const):
(WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode const):
(WebCore::EditingStyle::mergeStyle):
(WebCore::reconcileTextDecorationProperties):
(WebCore::StyleChange::StyleChange):
(WebCore::StyleChange::extractTextStyles):
(WebCore::extractPropertiesNotIn):
- editing/cocoa/HTMLConverter.mm:
(HTMLConverterCaches::propertyValueForNode):
(HTMLConverter::computedAttributesForElement):
- editing/ios/EditorIOS.mm:
(WebCore::Editor::removeUnchangeableStyles):
- editing/markup.cpp:
(WebCore::serializePreservingVisualAppearanceInternal):
- style/PropertyAllowlist.cpp:
(WebCore::Style::isValidCueStyleProperty):
LayoutTests:
Update tests to take into account that 'text-decoration' is a shorthand.
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-text-decoration-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-text-decoration.html:
- fast/css/getComputedStyle/resources/property-names.js:
- fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand-expected.txt:
- fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand.html:
- svg/css/getComputedStyle-basic-expected.txt:
- 12:11 PM Changeset in webkit [291243] by
-
- 13 edits1 add in trunk/Source/WebKit
Do a single IPC for MarkSurfaceNonVolatile and SwapToValidFrontBuffer
https://bugs.webkit.org/show_bug.cgi?id=237814
Reviewed by Tim Horton.
Now that we know how to group the calls to markSurfaceNonVolatile() followed by
swapToValidFrontBuffer(), we can do them with a single sync IPC to the GPU process, passing
supportsPartialRepaint and hasEmptyDirtyRegion.
RemoteLayerWithRemoteRenderingBackingStoreCollection::prepareBackingStoreBuffers() takes
care to avoid IPCs for layers which don't need display, which is important for performance.
Introduce the SwapBuffersDisplayRequirement enum which is returned, and used to know if
we have to do a full repaint.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::prepareBuffersForDisplay):
(WebKit::RemoteRenderingBackend::markSurfaceNonVolatile): Deleted.
(WebKit::RemoteRenderingBackend::swapToValidFrontBuffer): Deleted.
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::hasEmptyDirtyRegion const):
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::operator<<):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::prepareBackingStoreBuffers):
(WebKit::RemoteLayerBackingStoreCollection::makeFrontBufferNonVolatile): Deleted.
(WebKit::RemoteLayerBackingStoreCollection::swapToValidFrontBuffer): Deleted.
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::prepareBackingStoreBuffers):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile): Deleted.
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::swapToValidFrontBuffer): Deleted.
- Shared/RemoteLayerTree/SwapBuffersDisplayRequirement.h: Added.
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::prepareBuffersForDisplay):
(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer): Deleted.
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile): Deleted.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- 11:48 AM Changeset in webkit [291242] by
-
- 7 edits in trunk/Tools
[git-webkit] Handle comparing User and Contributor to None
https://bugs.webkit.org/show_bug.cgi?id=237622
<rdar://problem/89992772>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/user_unittest.py:
(TestUser.test_compare):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/user.py:
(User.cmp): Handle 'None' case.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:
(Contributor.cmp): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/contributor_unittest.py:
(TestContributor.test_comparison):
Canonical link: https://commits.webkit.org/248397@main
- 11:44 AM Changeset in webkit [291241] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r289850): Bundle size has increased
https://bugs.webkit.org/show_bug.cgi?id=237844
Unreviewed, fully revert r289850.
- Makefile:
- WebCore.xcodeproj/project.pbxproj:
- 11:25 AM Changeset in webkit [291240] by
-
- 4 edits in trunk/Tools
[Flatpack SDK] Api tests scripts have conflicting parameters with the flatpak scripts
https://bugs.webkit.org/show_bug.cgi?id=237778
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-03-14
Reviewed by Philippe Normand.
run-gtk-tests and run-wpe-tests have arguments that cause
conflicts with the flatpak sdk, we have to rewrite and consume
some of them to avoid problems because we do not know what the
user is requesting. This patch gives priority to the api tests
parameters, the flatpak ones for the conflictive situations need
to be passed with the long format, namely regenerate-toolchains
and sccache-token.
- Scripts/run-gtk-tests:
- Scripts/run-wpe-tests:
- glib/api_test_runner.py:
(add_options):
(get_runner_args):
- 11:14 AM Changeset in webkit [291239] by
-
- 4 edits1 add in trunk/Source/ThirdParty/libwebrtc
Reland "[XCBuild] libwebrtc's headers are copied via rsync and do not emit task outputs"
https://bugs.webkit.org/show_bug.cgi?id=237112
Reviewed by Alexey Proskuryakov.
r290966 had a bad xcconfig setting in libabsl.xcconfig, which prevented absl's headers from
being copied to the right location, causing build failures. Fix this setting and reland.
- Configurations/Base.xcconfig:
- Configurations/libabsl.xcconfig: s/PREFIX/PATH/g to fix settings.
- Configurations/libwebrtc.xcconfig:
- libwebrtc.xcodeproj/project.pbxproj:
- 10:57 AM Changeset in webkit [291238] by
-
- 2 edits in trunk/Source/WebCore
Don't create a scroll corner without renderer
https://bugs.webkit.org/show_bug.cgi?id=237837
Reviewed by Simon Fraser.
Don't create a scroll corner without renderer, as renderer document is needed to create one.
Also destroy the scroll corner early when RenderView is available.
- page/FrameView.cpp:
(WebCore::FrameView::willBeDestroyed):
(WebCore::FrameView::updateScrollCorner):
- 10:34 AM Changeset in webkit [291237] by
-
- 5 edits in trunk/Source/WebCore
AX: Move addChildren, addChild, insertChild, canHaveChildren, setNeedsToUpdateChildren, setNeedsToUpdateSubtree, clearChildren, and needsToUpdateChildren out of AXCoreObject interface
https://bugs.webkit.org/show_bug.cgi?id=237801
Reviewed by Andres Gonzalez.
All of these virtual methods are ASSERT_NOT_REACHED no-ops for AXIsolatedObjects,
so this patch moves them to AccessibilityObject.h instead.
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::addChildren):
(WebCore::AccessibilityObject::canHaveChildren const):
(WebCore::AccessibilityObject::setNeedsToUpdateChildren):
(WebCore::AccessibilityObject::setNeedsToUpdateSubtree):
(WebCore::AccessibilityObject::needsToUpdateChildren const):
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::addChildren): Deleted.
(WebCore::AXIsolatedObject::addChild): Deleted.
(WebCore::AXIsolatedObject::insertChild): Deleted.
(WebCore::AXIsolatedObject::canHaveChildren const): Deleted.
(WebCore::AXIsolatedObject::setNeedsToUpdateChildren): Deleted.
(WebCore::AXIsolatedObject::setNeedsToUpdateSubtree): Deleted.
(WebCore::AXIsolatedObject::clearChildren): Deleted.
(WebCore::AXIsolatedObject::needsToUpdateChildren const): Deleted.
- accessibility/isolatedtree/AXIsolatedObject.h:
- 9:52 AM Changeset in webkit [291236] by
-
- 2 edits in trunk/LayoutTests
[model] model-element/model-element-camera.html fails due to
promise_rejectsbeing undefined
https://bugs.webkit.org/show_bug.cgi?id=237833
rdar://88982597
Unreviewed test fix after testharness.js was updated in bug 235398 but neglected to update this
test to use promise_rejects_dom.
- model-element/model-element-camera.html:
- 9:50 AM Changeset in webkit [291235] by
-
- 4 edits in trunk/Tools
[webkitcorepy] Do not fetch key without username
https://bugs.webkit.org/show_bug.cgi?id=237830
<rdar://problem/90248939>
Unreviewed git-webkit fix.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:
(credentials): Only attempt to fetch key if username is defined.
- 9:42 AM Changeset in webkit [291234] by
-
- 3 edits in trunk/Source/WebKit
Revert r290659
https://bugs.webkit.org/show_bug.cgi?id=237296
It caused a performance regression.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
- 9:40 AM Changeset in webkit [291233] by
-
- 1 edit in trunk/LayoutTests/ChangeLog
[GTK][WPE] EXIF orientation tests are failing since added in r249364 - "EXIF orientation should be respected when rendering images"
https://bugs.webkit.org/show_bug.cgi?id=201982
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 9:37 AM Changeset in webkit [291232] by
-
- 2 edits in trunk/LayoutTests
[GTK][WPE] EXIF orientation tests are failing since added in r249364 - "EXIF orientation should be respected when rendering images"
Nhttps://bugs.webkit.org/show_bug.cgi?id=201982
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:47 AM Changeset in webkit [291231] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r291206.
https://bugs.webkit.org/show_bug.cgi?id=237829
Introduced perf regression
Reverted changeset:
"Adjust when
_setPrivacyProxyFailClosedForUnreachableNonMainHosts is
called"
https://bugs.webkit.org/show_bug.cgi?id=237735
https://commits.webkit.org/r291206
- 8:46 AM Changeset in webkit [291230] by
-
- 2 edits in trunk/LayoutTests
[ iOS iPhone 12 ] fast/hidpi & fast/layers/hidpi tests are flaky text/image failing
https://bugs.webkit.org/show_bug.cgi?id=232384
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:42 AM Changeset in webkit [291229] by
-
- 6 edits in trunk
[GLib] Expose typed arrays in the public API
https://bugs.webkit.org/show_bug.cgi?id=197535
Reviewed by Carlos Garcia Campos.
This adds a set of new functions to operate on JSCValue objects which refer to typed
arrays in the JavaScript side of the world. Typed array values can be created with an
existing ArrayBuffer to hold the contents, in which case custom allocations are possible;
or letting JSC handle allocation. Operating on typed arrays is expected to be done on an
element-by-element basis, and in general it is recommended to use the functions dealing
with the "length" (number of elements) of typed arrays; nevertheless it is also possible
to retrieve their "size" and "offset" over the underlying ArrayBuffer, and/or retrieving
said ArrayBuffer.
Source/JavaScriptCore:
- API/glib/JSCValue.cpp:
(toTypedArrayType):
(toJSCTypedArrayType):
(jsc_value_new_typed_array):
(jsc_value_new_typed_array_with_buffer):
(jsc_value_is_typed_array):
(jsc_value_typed_array_get_buffer):
(jsc_value_typed_array_get_data):
(jsc_value_typed_array_get_length):
(jsc_value_typed_array_get_offset):
(jsc_value_typed_array_get_size):
(jsc_value_typed_array_get_type):
- API/glib/JSCValue.h:
- API/glib/docs/jsc-glib-4.0-sections.txt:
Tools:
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: Added test for typed arrays.
(elementSize):
(testJSCTypedArray):
(main):
- 7:03 AM Changeset in webkit [291228] by
-
- 6 edits in trunk
[web-animations] marker-start should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237826
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Test failures are due to SVGURIReference::fragmentIdentifierFromIRIString() rejecting the values used in the
test which do not contain a "#". While this is not the greatest test values for this property, this is indeed
a bug that we reject the value during parsing instead of storing it.
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:54 AM Changeset in webkit [291227] by
-
- 6 edits in trunk
[web-animations] marker-mid should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237825
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Test failures are due to SVGURIReference::fragmentIdentifierFromIRIString() rejecting the values used in the
test which do not contain a "#". While this is not the greatest test values for this property, this is indeed
a bug that we reject the value during parsing instead of storing it.
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:49 AM Changeset in webkit [291226] by
-
- 6 edits in trunk
[web-animations] marker-end should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237824
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Test failures are due to SVGURIReference::fragmentIdentifierFromIRIString() rejecting the values used in the
test which do not contain a "#". While this is not the greatest test values for this property, this is indeed
a bug that we reject the value during parsing instead of storing it.
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:21 AM Changeset in webkit [291225] by
-
- 3 edits2 adds in trunk
[MSE][SourceBuffer] Fix removal of paddings from buffered range
https://bugs.webkit.org/show_bug.cgi?id=237780
Reviewed by Jer Noble.
Source/WebCore:
When removing a range ending up in a sample S2 which overlaps slightly with a
previous one S1 but still extends beyond the removal range, the buffered range
computing algorithm can become confused removing the range paddings and
completely skip the S2 sample (instead of accounting it as part of the still
buffered ranges). The sample S2 is leaked and becomes unnoticed in the buffered
ranges.
This patch changes the way in which buffered ranges boundaries are computed in
such cases.
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797#discussion_r818973424
Test: media/media-source/media-source-remove-overlapped.html
- platform/graphics/SourceBufferPrivate.cpp: End the additionalErasedRanges iterator in removeSamplesFromTrackBuffer() in a sample starting after erasedStart, instead of starting on or after erasedEnd.
LayoutTests:
This tests that overlapped samples in the boundaries of removal ranges aren't leaked.
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797
- media/media-source/media-source-remove-overlapped-expected.txt: Added.
- media/media-source/media-source-remove-overlapped.html: Added.
- 5:45 AM Changeset in webkit [291224] by
-
- 15 edits in trunk
WebGL context should use discrete gpu if the context is created when the window is on external monitor, ANGLE Metal backend
https://bugs.webkit.org/show_bug.cgi?id=236487
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-14
Reviewed by Kenneth Russell.
Source/WebCore:
Add GraphicsContextGLAttributes::windowGPUID which describes the GPU ID
for the window that the context is on.
Create the ANGLE Metal context based on this, unless high-performance GPU
is requested.
Changes the behavior so that new WebGL contexts will use dgpu is always when user has
external display plugged in. The system changes all the windows to the dgpu, so
this is consistent with the system expectation.
Notable difference due to the above is that we get different layout tests for a developer
that has a external monitor than before.
Tested by new unit tests.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
- page/Chrome.cpp:
(WebCore::Chrome::createGraphicsContextGL const):
- page/ChromeClient.cpp:
(WebCore::ChromeClient::createGraphicsContextGL const):
- page/ChromeClient.h:
- platform/PlatformScreen.h:
- platform/ScreenProperties.h:
(WebCore::ScreenData::decode):
- platform/graphics/GraphicsContextGLAttributes.h:
(WebCore::GraphicsContextGLAttributes::encode const):
(WebCore::GraphicsContextGLAttributes::decode):
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::initializeEGLDisplay):
- platform/mac/PlatformScreenMac.mm:
(WebCore::collectScreenProperties):
(WebCore::primaryGPUID):
(WebCore::gpuIDForDisplay):
(WebCore::gpuIDForDisplayMask):
Source/WebKit:
Before, the ChromeClient passed PlatformDisplayID to the createGraphicsContextGL. This was ignored.
After, pass the PlatformGPUID as part of GraphicsContextGLAttributes.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createGraphicsContextGL const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
Tools:
Add tests to test that the windowGPUID affects the contexts being created.
Avoid ifdefs by always compiling the tests and move the "platform can have
multiple gpus / there is no multiple gpus in the platform" ifdef aspects
to helper functions.
- TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:
(TestWebKitAPI::allDevices):
(TestWebKitAPI::lowPowerDevice):
(TestWebKitAPI::highPerformanceDevice):
(TestWebKitAPI::hasMultipleGPUs):
(TestWebKitAPI::TEST_F):
- 5:04 AM Changeset in webkit [291223] by
-
- 2 edits in trunk/LayoutTests
[ MacOS ] imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230116
<rdar://problem/82936812>
Unreviewed.
- platform/mac/TestExpectations:
Unflake test now that is passing consistently on bots.
- 4:35 AM Changeset in webkit [291222] by
-
- 2 edits in trunk/LayoutTests
[BigSur wk2] http/tests/fetch/redirectmode-and-preload.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230112
<rdar://problem/82932781>
Unreviewed.
- platform/mac-wk2/TestExpectations:
Unflake test now that is passing consistently on bots.
- 4:27 AM Changeset in webkit [291221] by
-
- 2 edits in trunk/LayoutTests
[ BigSur wk2 arm64 ] 4 webrtc/ Layout-tests are consistently timing out
https://bugs.webkit.org/show_bug.cgi?id=223043
<rdar://problem/75280718>
Unreviewed.
- platform/mac/TestExpectations:
Unflake tests now that are passing consistently on bots.
- 3:24 AM Changeset in webkit [291220] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fixing an incomplete-type build error in InlineIteratorLine
https://bugs.webkit.org/show_bug.cgi?id=237822
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-14
- layout/integration/InlineIteratorLine.h:
Add the missing RenderBlockFlow.h include to avoid incomplete-type
error in InlineIterator::Line::selectionPhysicalRect() that might occur
when unified sources are sorted some other way.
- 2:20 AM Changeset in webkit [291219] by
-
- 3 edits5 deletes in trunk/Tools/buildstream
[Flatpak SDK] Get rid of Python2
https://bugs.webkit.org/show_bug.cgi?id=221043
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-14
Reviewed by Michael Catanzaro.
Python2 is no longer needed as the tooling was ported to Python3.
- elements/freedesktop-sdk.bst: Update junction to 21.08-11 release.
- elements/sdk-platform.bst:
- elements/sdk/python2-pycairo.bst: Removed.
- elements/sdk/python2-pygobject.bst: Removed.
- elements/sdk/python2-six.bst: Removed.
- elements/sdk/python2-subprocess32.bst: Removed.
- elements/sdk/python2.bst: Removed.
- 1:42 AM Changeset in webkit [291218] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (iOS 15.4 beta) - WebGL yields incorrect results when using preserveDrawingBuffer on iOS 15.4 Beta
https://bugs.webkit.org/show_bug.cgi?id=237113
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-14
Reviewed by Myles C. Maxfield.
Cherry-pick without tests conflicting tests.
Cherry-pick ANGLE commit: 74f3270214394c896154e4bf9338e7d75002de61
From: Gregg Tavares <Gregg Tavares>
Date: Thu, 3 Mar 2022 13:13:34 -0800
Subject: [PATCH] Metal: Fix for mulitsampled buffers losing their contents
Fixes tst included as well as WebGL CTS
Both fail on M1 without this fix.
Also fixes WebKit bug https://bugs.webkit.org/show_bug.cgi?id=237113
Bug: angleproject:7073
- src/libANGLE/renderer/metal/FrameBufferMtl.mm:
(rx::FramebufferMtl::setLoadStoreActionOnRenderPassFirstStart):
Mar 12, 2022:
- 7:34 AM Changeset in webkit [291217] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Use addressTempRegister in loadValue(void *) on 32 bits
https://bugs.webkit.org/show_bug.cgi?id=237773
Reviewed by Žan Doberšek.
Instead of using one of the destination registers as an address
temporary, use addressTempRegister instead. This allows reusing
the value in addressTempRegister (with an appropriate offset) if
possible, which results in a >25% size reduction for DFGOSRExit
(JS2) on ARMv7 (though not a significant size reduction overall).
Technically, this change could be killing some address reuse that
was previously possible because loadValue was not clobbering
addressTempRegister but, if so, this seems to be balanced out for
JS2.
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::BoundsNonDoubleWordOffset::within):
(JSC::MacroAssemblerARMv7::BoundsDoubleWordOffset::within):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::setupArmAddress):
(JSC::MacroAssemblerARMv7::absoluteAddressWithinShortOffset):
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::loadPair32):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::loadValue):
Mar 12, 2022:
- 11:23 PM Changeset in webkit [291216] by
-
- 8 edits7 adds in trunk
Safari produces scrambled output for some webm videos with vp8 codec.
https://bugs.webkit.org/show_bug.cgi?id=236754
Source/ThirdParty/libwebrtc:
rdar://80869041
Reviewed by Eric Carlson.
- Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp:
(webrtc::WebKitDecoderReceiver::decoderFailed): Tell CoreMedia if a frame
was silently dropped by the decoder.
Source/WebCore:
rdar://80869041
Reviewed by Eric Carlson.
The MediaFormatReader plugin and the MSE SourceBufferPrivate are using
a SampleMap to store all the media samples timing information: one sorted
by DTS order and the other in PTS order.
Those SampleMap use the sample's presentation time as unique key.
The VP8 codec can define hidden samples that are to be fed to the decoder
but will not decode into an actual image. Those samples are typically
packed together in the webm container in two or more consecutive blocks
with the same presentation time (similar behaviour can also be found in
webm where multiple frames may be stored with the same presentation
time).
When stored in the SampleMap, only the latest sample added would be kept
after overwriting the previous one with the same time.
To get around this issue, we pack all samples with the same presentation
time in a single MediaSamplesBlock so that they can be stored together in
the map without any losses.
Upon decoding, all those sub-samples will be retrieved and fed to the
decoder.
The CoreMedia MediaFormatReader backend however has a bug where it will
enter in an infinite if we return successive frames with the same
timestamp which will cause memory exhaustion and a crash.
To get around this, we make the grouped samples appear as discrete,
making each hidden sample have a duration of 1us followed by the
visible frames (which will see its duration shorten by 1us).
Tests: media/media-source/media-source-vp8-hiddenframes.html
media/media-vp8-hiddenframes.html
New tests had to be disabled due to bug 236755. We currently have no
way to guarantee which frame is currently displayed after either a seek
operation or reaching the end of playback.
- platform/MediaSample.h:
(WebCore::MediaSamplesBlock::append):
(WebCore::MediaSamplesBlock::clear):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::WebMParser::parse):
(WebCore::WebMParser::OnFrame):
(WebCore::WebMParser::flushPendingVideoSamples):
(WebCore::WebMParser::VideoTrackData::resetCompletedFramesState):
(WebCore::WebMParser::VideoTrackData::consumeFrameData):
(WebCore::WebMParser::VideoTrackData::processPendingMediaSamples):
(WebCore::WebMParser::VideoTrackData::flushPendingSamples):
(WebCore::WebMParser::AudioTrackData::consumeFrameData):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
(WebCore::WebMParser::TrackData::consumeFrameData):
(WebCore::WebMParser::TrackData::resetCompletedFramesState):
(WebCore::WebMParser::TrackData::drainPendingSamples):
LayoutTests:
Reviewed by Eric Carlson.
VP8 files were generated such that alternative reference frames were used:
$ fmpeg -i dragon.webm -c:v libvpx -vf scale=320:-1 -auto-alt-ref 1 -arnr-maxframes 5 -arnr-strength 3 -pass 1 test-vp8-hiddenframes.webm
$ fmpeg -i dragon.webm -c:v libvpx -vf scale=320:-1 -auto-alt-ref 1 -arnr-maxframes 5 -arnr-strength 3 -pass 2 test-vp8-hiddenframes.webm
The command used to extract the last frame in png format was:
$ ffmpeg -sseof -3 -i test-vp8-hiddenframes.webm -pred mixed -pix_fmt rgb24 -sws_flags +accurate_rnd+full_chroma_int -update 1 -q:v 1 test-vp8-hiddenframes.png
- TestExpectations:
- media/content/test-vp8-hiddenframes.png: Added.
- media/content/test-vp8-hiddenframes.webm: Added.
- media/media-source/media-source-vp8-hiddenframes-expected.html: Added.
- media/media-source/media-source-vp8-hiddenframes.html: Added.
- media/media-vp8-hiddenframes-expected.html: Added.
- media/media-vp8-hiddenframes.html: Added.
- media/utilities.js: Added.
(once):
(fetchWithXHR):
(loadSegment):
- 8:55 PM Changeset in webkit [291215] by
-
- 5 edits in trunk/Source/WebCore
[IFC][Integration] Add InlineIterator::Line::selectionPhysicalRect
https://bugs.webkit.org/show_bug.cgi?id=237796
Reviewed by Antti Koivisto.
Introduce selectionPhysicalRect() so that the clients don't need to convert/flip the logical coords and
also rename selectionRect() to selectionLogicalRect() to clear up any ambiguity.
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::absoluteSelectionBoundsForLine const):
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::selectionLogicalRect const):
(WebCore::InlineIterator::Line::selectionPhysicalRect const):
(WebCore::InlineIterator::Line::selectionRect const): Deleted.
- rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForLinePosition):
- 8:54 PM Changeset in webkit [291214] by
-
- 3 edits in trunk/Source/WebKit
In RemoteLayerBackingStore, group makeFrontBufferNonVolatile() and swapToValidFrontBuffer() into a single function
https://bugs.webkit.org/show_bug.cgi?id=237806
Reviewed by Tim Horton.
As a step towards reducing the number of sync IPC calls when displaying layers, refactor
code in RemoteLayerBackingStore so that we can do the makeFrontBufferNonVolatile()
and swapToValidFrontBuffer() in a single function. Its return value indicates whether
we need to do any display, or a full display.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::operator<<):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
(WebKit::RemoteLayerBackingStore::paintContents): Fix an assertion that fired for WebGL.
(WebKit::RemoteLayerBackingStore::swapBuffers): Deleted.
- 7:01 PM Changeset in webkit [291213] by
-
- 3 edits in trunk/Source/WTF
Fail the build if Internal or Experimental web preferences are missing human readable names
https://bugs.webkit.org/show_bug.cgi?id=237813
Reviewed by Alex Christensen.
- Scripts/GeneratePreferences.rb:
Ensure that all preferences that expose human readable strings to the
API client actually have such a name.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add one missing human readable preference name.
- 3:29 PM Changeset in webkit [291212] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r291209.
https://bugs.webkit.org/show_bug.cgi?id=237811
Re-land 290754 due to mis-blaming
Reverted changeset:
"Unreviewed, reverting r290754."
https://bugs.webkit.org/show_bug.cgi?id=237808
https://commits.webkit.org/r291209
- 3:15 PM Changeset in webkit [291211] by
-
- 7 edits in trunk/Source/WebCore
[IFC][Integration] Replace generic InlineIterator::Line::legacyRootInlineBox() with 2 dedicated functions
https://bugs.webkit.org/show_bug.cgi?id=237807
Reviewed by Antti Koivisto.
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::containingFragment const):
(WebCore::InlineIterator::Line::isFirstAfterPageBreak const):
(WebCore::InlineIterator::Line::legacyRootInlineBox const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::containingFragment const):
(WebCore::InlineIterator::LineIteratorLegacyPath::isFirstAfterPageBreak const):
(WebCore::InlineIterator::LineIteratorLegacyPath::legacyRootInlineBox const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::containingFragment const):
(WebCore::InlineIterator::LineIteratorModernPath::isFirstAfterPageBreak const):
(WebCore::InlineIterator::LineIteratorModernPath::legacyRootInlineBox const): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
- 3:12 PM Changeset in webkit [291210] by
-
- 44 edits in trunk
Adopt FALLBACK_PLATFORM_NAME in place of FALLBACK_PLATFORM
https://bugs.webkit.org/show_bug.cgi?id=237809
Reviewed by Per Arne Vollan.
PerformanceTests:
- MediaTime/Configurations/SDKVariant.xcconfig:
Source/bmalloc:
- Configurations/SDKVariant.xcconfig:
Source/JavaScriptCore:
- Configurations/SDKVariant.xcconfig:
Source/ThirdParty:
- gtest/xcode/Config/SDKVariant.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/SDKVariant.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/SDKVariant.xcconfig:
Source/WebCore:
- Configurations/SDKVariant.xcconfig:
Source/WebCore/PAL:
- Configurations/SDKVariant.xcconfig:
Source/WebGPU:
- Configurations/SDKVariant.xcconfig:
Source/WebInspectorUI:
- Configurations/SDKVariant.xcconfig:
Source/WebKit:
- Configurations/SDKVariant.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/SDKVariant.xcconfig:
Source/WTF:
- Configurations/SDKVariant.xcconfig:
Tools:
- ContentExtensionTester/Configurations/SDKVariant.xcconfig:
- DumpRenderTree/mac/Configurations/SDKVariant.xcconfig:
- ImageDiff/cg/Configurations/SDKVariant.xcconfig:
- MiniBrowser/Configurations/SDKVariant.xcconfig:
- MobileMiniBrowser/Configurations/SDKVariant.xcconfig:
- TestWebKitAPI/Configurations/SDKVariant.xcconfig:
- WebEditingTester/Configurations/SDKVariant.xcconfig:
- WebKitTestRunner/Configurations/SDKVariant.xcconfig:
- lldb/lldbWebKitTester/Configurations/SDKVariant.xcconfig:
- 12:53 PM Changeset in webkit [291209] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r290754.
https://bugs.webkit.org/show_bug.cgi?id=237808
Introduced launch regression
Reverted changeset:
"[iOS] Seatbelt sandbox profile entitlement is deprecated"
https://bugs.webkit.org/show_bug.cgi?id=237374
https://commits.webkit.org/r290754
- 11:10 AM Changeset in webkit [291208] by
-
- 5 edits in trunk/Source/WebCore
[IFC][Integration] previousLinePosition/nextLinePosition should use Line::lineBoxHeight
https://bugs.webkit.org/show_bug.cgi?id=237788
Reviewed by Antti Koivisto.
Line::lineBoxHeight() should be sufficient for checking if the line is empty for VisualPosition.
- editing/VisibleUnits.cpp:
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
- layout/integration/InlineIteratorLine.h:
(WebCore::InlineIterator::Line::lineBoxHeight const):
(WebCore::InlineIterator::Line::logicalHeight const): Deleted.
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::contentLogicalRight const):
(WebCore::InlineIterator::LineIteratorLegacyPath::logicalHeight const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::contentLogicalRight const):
(WebCore::InlineIterator::LineIteratorModernPath::logicalHeight const): Deleted.
- 6:30 AM Changeset in webkit [291207] by
-
- 5 edits in trunk/Source/WebCore
[IFC][Integration] RenderBlockFlow::findClosestTextAtAbsolutePoint should use root inline box iterator
https://bugs.webkit.org/show_bug.cgi?id=237786
Reviewed by Antti Koivisto.
Let's remove root inline box APIs from the line iterator interface.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::findClosestTextAtAbsolutePoint): Replace line iterator with root inline box iterator
and check whether the local point is in between these root inline boxes.
Mar 11, 2022:
- 9:01 PM Changeset in webkit [291206] by
-
- 3 edits in trunk/Source/WebKit
Adjust when _setPrivacyProxyFailClosedForUnreachableNonMainHosts is called
https://bugs.webkit.org/show_bug.cgi?id=237735
<rdar://89972004>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Geoff Garen.
It was originally being called differently between main resources and subresources on the same domain,
causing them to use connections with different properties, so we couldn't share connections any more.
This will make it so that more connections are shared, which should fix the performance regression from
no longer sharing connections to the same domain.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- 8:07 PM Changeset in webkit [291205] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed logging removal.
Revert an ALWAYS_LOG_WITH_STREAM() that I inadvertently committed back to a
LOG_WITH_STREAM().
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):
- 7:15 PM Changeset in webkit [291204] by
-
- 3 edits in trunk/Source/WebCore
[macOS] Image decoders should be restricted for Mail
https://bugs.webkit.org/show_bug.cgi?id=237717
<rdar://89827733>
Reviewed by Geoffrey Garen.
Use correct prefix for static member.
- platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoderCG::enableRestrictedDecoding):
(WebCore::ImageDecoderCG::restrictedDecodingEnabled):
- platform/graphics/cg/ImageDecoderCG.h:
- 6:33 PM Changeset in webkit [291203] by
-
- 5 edits in trunk/Source
IPC thread's QOS should match the sending thread's QOS when calling sendSync()
https://bugs.webkit.org/show_bug.cgi?id=237800
<rdar://problem/90061548>
Reviewed by Geoffrey Garen.
Source/WebKit:
IPC thread's QOS should match the sending thread's QOS when calling sendSync(), since it blocks the calling thread.
- Platform/IPC/Connection.cpp:
(IPC::Connection::sendSyncMessage):
Source/WTF:
Add function to get the QoS of the current thread.
- wtf/Threading.cpp:
(WTF::toQOS):
(WTF::Thread::currentThreadQOS):
- wtf/Threading.h:
- 6:23 PM Changeset in webkit [291202] by
-
- 4 edits in trunk/Source/WebKit
Move RemoteLayerBackingStore flusher creation into RemoteLayerBackingStoreCollection
https://bugs.webkit.org/show_bug.cgi?id=237798
Reviewed by Tim Horton.
Move the code that creates layer flushers from RemoteLayerTreeDrawingArea into
RemoteLayerBackingStoreCollection, per the FIXME.
RemoteLayerBackingStoreCollection::didFlushLayers() then becomes internal, and gets renamed
to updateUnreachableBackingStores(). Now we only need to schedule the volatility timer from
one place.
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::didFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::updateUnreachableBackingStores):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
- 4:56 PM Changeset in webkit [291201] by
-
- 6 edits in trunk/Source
Refactor the filter block in DocumentMarkerController::filterMarkers() to return an enum type
https://bugs.webkit.org/show_bug.cgi?id=237794
Reviewed by Megan Gardner.
Source/WebCore:
Change the return value of the
filterfunction argument infilterMarkers()from aboolto a named enum
type with 2 values:KeeporRemove; this makes it more obvious to call sites whether the return value will
cause document markers to remain or be removed from the document.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::filterMarkers):
(WebCore::DocumentMarkerController::removeMarkers):
- dom/DocumentMarkerController.h: Remove a FIXME and comment that's no longer needed.
Source/WebKit:
Drive-by fix: only remove the spellchecking document marker in
removeAnnotationRelativeToSelectionif the
annotation string of the marker matches the given annotation string to the method.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::clearDictationAlternatives):
- 4:32 PM Changeset in webkit [291200] by
-
- 9 edits in trunk
Finish implementing modify-headers actions for WKContentRuleList SPI
https://bugs.webkit.org/show_bug.cgi?id=237784
Source/WebCore:
<rdar://72433048>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.
I hadn't implemented regex substitution yet.
- contentextensions/ContentExtensionActions.cpp:
(WebCore::ContentExtensions::RedirectAction::parse):
(WebCore::ContentExtensions::RedirectAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::deserialize):
(WebCore::ContentExtensions::RedirectAction::applyToRequest):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::serialize const):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::deserialize):
(WebCore::ContentExtensions::makeJSString):
(WebCore::ContentExtensions::RedirectAction::RegexSubstitutionAction::applyToURL const):
- contentextensions/ContentExtensionActions.h:
(WebCore::ContentExtensions::add):
- contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::loadAction):
(WebCore::ContentExtensions::loadRule):
Source/WebKit:
<rdar://72433048>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.
- UIProcess/API/APIContentRuleListStore.h:
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-11
Reviewed by Tim Hatcher.
- TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
- 4:00 PM Changeset in webkit [291199] by
-
- 2 edits in trunk/Source/bmalloc
Unreviewed, ASan specific build fix
https://bugs.webkit.org/show_bug.cgi?id=237572
- libpas/src/libpas/pas_utils.h:
(pas_zero_memory):
- 3:42 PM Changeset in webkit [291198] by
-
- 10 edits2 adds in trunk
[iOS] Fix ovserscroll-behavior for main document
https://bugs.webkit.org/show_bug.cgi?id=237696
Reviewed by Simon Fraser.
Source/WebCore:
Make getters for overscroll behavior public.
Test: fast/scrolling/ios/overscroll-behavior-on-body.html
- page/scrolling/ScrollingTreeScrollingNode.h:
Source/WebKit:
Get value of over scroll behavior from root scrolling node to set whether root
UIScrollView should rubber band or not. Add new UIScrollView SPI.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _updateScrollViewForTransaction:]):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::rootNode const):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateScrollViewForOverscrollBehavior):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):
LayoutTests:
Added test that does a scroll expecting a rubberband, sets overscroll-behavior:none for
the body, then does another scroll, expected that no rubberband occurs.
- fast/scrolling/ios/overscroll-behavior-on-body-expected.txt: Added.
- fast/scrolling/ios/overscroll-behavior-on-body.html: Added.
- 3:34 PM Changeset in webkit [291197] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/events/ios/rotation/layout-viewport-during-safari-type-rotation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=231266
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:30 PM Changeset in webkit [291196] by
-
- 2 edits in trunk/Source/WebKit
[WebAuthn] Unreviewed build fix after r291177
https://bugs.webkit.org/show_bug.cgi?id=237797
rdar://problem/90183881
Remove unused move that is breaking iOS build
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
- 3:25 PM Changeset in webkit [291195] by
-
- 1 copy in tags/Safari-614.1.5.10
Tag Safari-614.1.5.10.
- 2:55 PM Changeset in webkit [291194] by
-
- 6 edits in trunk
[GLib] Expose ArrayBuffer in the public API
https://bugs.webkit.org/show_bug.cgi?id=237088
Reviewed by Carlos Garcia Campos.
This adds a set of new functions to operate on JSCValue objects which refer to array
buffers in the JS side of the world. This allows sharing chunks of memory buffers
efficiently with native code, without needing to copy nor encode data back and forth.
Source/JavaScriptCore:
- API/glib/JSCValue.cpp:
(jscArrayBufferDeallocate):
(jsc_value_new_array_buffer):
(jsc_value_is_array_buffer):
(jsc_value_array_buffer_get_data):
(jsc_value_array_buffer_get_length):
- API/glib/JSCValue.h:
- API/glib/docs/jsc-glib-4.0-sections.txt:
Tools:
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: Added test for array buffers.
(testJSCArrayBuffer):
(main):
- 2:45 PM Changeset in webkit [291193] by
-
- 7 edits in trunk/Tools
[Merge-Queue] Add queue triggered by label addition
https://bugs.webkit.org/show_bug.cgi?id=237615
<rdar://problem/89983452>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/config.json: Add Merge-Queue.
- Tools/CISupport/ews-build/events.py:
(GitHubEventHandlerNoEdits): Remove action list, add merge-queue labels.
(GitHubEventHandlerNoEdits.handle_pull_request): Let parent class filter actions, treat
merge-queue label addition as a 'synchronize', but change event name to trigger different
scheduler family.
- Tools/CISupport/ews-build/factories.py:
(MergeQueueFactory): Added.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps):
- Tools/CISupport/ews-build/loadConfig.py:
(loadBuilderConfig): AnyBranchSchedulers should only accept events which match their name.
- Tools/CISupport/ews-build/loadConfig_unittest.py:
(ConfigDotJSONTest): Match pull request scheduler name to pull request event.
Canonical link: https://commits.webkit.org/248349@main
- 2:30 PM Changeset in webkit [291192] by
-
- 4 edits in trunk/Source
[Xcode] "Nest Headers" script phases copy headers incorrectly on Catalyst
https://bugs.webkit.org/show_bug.cgi?id=237793
Reviewed by Alexey Proskuryakov.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
Source/WTF:
SDK_VARIANT needs to be passed into the nested
xcodebuildinvocation that these script
phases run. Pass WK_USE_ALTERNATE_FRAMEWORKS_DIR=NO to prevent the default behavior where
Catalyst content is installed to /System/iOSSupport, as this causes headers to be copied to
WebKitBuild/Release/System/iOSSupport/...
This script phases only run under the legacy build system, so they do not affect production
builds. https://commits.webkit.org/247656@main provides more context on this hack (tl;dr
it's a temporary workaround for the XCBuild migration).
- WTF.xcodeproj/project.pbxproj:
- 2:22 PM Changeset in webkit [291191] by
-
- 7 edits in trunk/Source/WebKit
Do buffer swapping on all RemoteLayerBackingStores before painting all of them
https://bugs.webkit.org/show_bug.cgi?id=237752
Reviewed by Tim Horton.
Buffer swapping requires sync IPC with the GPU Process, but painting can be asynchronous, so
do all the sync IPC before all the async IPC to avoid serializing everything.
During the recursive PlatformCALayerRemote::recursiveBuildTransaction() we now call
prepareToDisplay() which does the buffer swapping, and then we paint all the reachable
backing stores via RemoteLayerTreeContext::buildTransaction().
This is a 9% perf improvement on the "Images" MotionMark subtest.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::display): Deleted.
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::paintReachableBackingStoreContents):
(WebKit::RemoteLayerBackingStoreCollection::didFlushLayers): The local variables can
be pointers, rather than using references to pointers.
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatile): Ditto
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::buildTransaction):
- 2:13 PM Changeset in webkit [291190] by
-
- 10 edits in trunk/Source
[macOS] Image decoders should be restricted for Mail
https://bugs.webkit.org/show_bug.cgi?id=237717
<rdar://89827733>
Reviewed by Geoffrey Garen.
Source/WebCore:
Only add restricted decoding flag when it is explicitly requested.
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::createImageSourceOptions):
(WebCore::ImageDecoderCG::enableRestrictedDecoding):
(WebCore::ImageDecoderCG::restrictedDecodingEnabled):
- platform/graphics/cg/ImageDecoderCG.h:
Source/WebKit:
We already restrict image decoders for Mail on iOS. We should do so on macOS too.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- WebProcess/com.apple.WebProcess.sb.in:
- 1:55 PM Changeset in webkit [291189] by
-
- 2 edits in branches/safari-614.1.5-branch/Source/WebGPU
Cherry-pick r291184. rdar://problem/90172920
WebGPU Catalyst builds fail when using the system content path
https://bugs.webkit.org/show_bug.cgi?id=237790
Reviewed by Saam Barati.
The value of ALTERNATE_ROOT_PATH should be set to the framework directory instead of
DYLIB_INSTALL_NAME_BASE since it will include the system content path as a prefix for
Catalyst builds.
This is similar to the construction of ALTERNATE_ROOT_PATH for the other frameworks.
- Configurations/WebGPU.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291184 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:55 PM Changeset in webkit [291188] by
-
- 16 edits in branches/safari-614.1.5-branch/Source
Cherry-pick r291139. rdar://problem/90127039
Catalyst JavaScriptCore, WebCore, WebKitLegacy, and WebKit shouldn't be copied to the Secondary Path
https://bugs.webkit.org/show_bug.cgi?id=237748
Reviewed by Mark Lam.
Updated the configuration to exclude copying Catalyst build products to the secondary path.
Source/JavaScriptCore:
- Configurations/Base.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.xcconfig:
Source/WebCore:
- Configurations/WebCore.xcconfig:
Source/WebGPU:
- Configurations/WebGPU.xcconfig:
Source/WebInspectorUI:
- Configurations/WebInspectorUIFramework.xcconfig:
Source/WebKit:
- Configurations/Base.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/Base.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291139 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:52 PM Changeset in webkit [291187] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.10
- 1:51 PM Changeset in webkit [291186] by
-
- 3 edits in trunk/Tools
[Merge-Queue] Check for merge-queue labels
https://bugs.webkit.org/show_bug.cgi?id=237690
<rdar://problem/90064892>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin):
(GitHubMixin.get_pr_json): Add retry.
(GitHubMixin._is_pr_in_merge_queue): Check for merge-queue label.
(GitHubMixin.should_send_email_for_pr): get_pr_json now owns logging.
(ValidateChange.init): Add verifyMergeQueue flag.
(ValidateChange):
(ValidateChange.start): Add log to indicate PR has a merge-queue flag.
(ValidateChange.validate_github): Add retry when getting PR json, add merge queue check.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/248345@main
- 1:25 PM Changeset in webkit [291185] by
-
- 3 edits in trunk/Websites/webkit.org
Allow table of contents on posts in special cases
https://bugs.webkit.org/show_bug.cgi?id=237744
Reviewed by Devin Rousso.
- wp-content/plugins/table-of-contents.php:
- wp-content/themes/webkit/functions.php:
- wp-content/themes/webkit/single.php:
- 1:08 PM Changeset in webkit [291184] by
-
- 2 edits in trunk/Source/WebGPU
WebGPU Catalyst builds fail when using the system content path
https://bugs.webkit.org/show_bug.cgi?id=237790
Reviewed by Saam Barati.
The value of ALTERNATE_ROOT_PATH should be set to the framework directory instead of
DYLIB_INSTALL_NAME_BASE since it will include the system content path as a prefix for
Catalyst builds.
This is similar to the construction of ALTERNATE_ROOT_PATH for the other frameworks.
- Configurations/WebGPU.xcconfig:
- 1:07 PM Changeset in webkit [291183] by
-
- 2 edits in trunk/LayoutTests
[iOS] Unreviewed gardening after r291169.
- platform/ios/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
- 12:22 PM Changeset in webkit [291182] by
-
- 10 edits in trunk/Source/WebKit
Delay responsiveness checks for the Network Process until it has finished initialization
https://bugs.webkit.org/show_bug.cgi?id=237782
<rdar://88226412>
Reviewed by Geoffrey Garen.
Delay responsiveness checks for the Network Process until it has finished initialization.
Network process initialization can be slow but we have evidence that it is not truly
hung since we see network process terminations right as the network process is initiating
the WebProcess connection later on.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
(WebKit::AuxiliaryProcessProxy::beginResponsivenessChecks):
(WebKit::AuxiliaryProcessProxy::startResponsivenessTimer):
- UIProcess/AuxiliaryProcessProxy.h:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didFinishLaunching):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:
(WebKit::WebAuthnProcessProxy::didFinishLaunching):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
- 11:14 AM Changeset in webkit [291181] by
-
- 2 edits in trunk
Makefile.shared: Rename WORKSPACE to WORKSPACE_PATH and allow overrides
https://bugs.webkit.org/show_bug.cgi?id=237746
Reviewed by Alexey Proskuryakov.
This permits Make-based workflows which build out of a different workspace, e.g. a workspace
that includes WebKitAdditions.
WORKSPACE_PATH was chosen as a new name for parity with SCRIPTS_PATH and to avoid confusion
with USE_WORKSPACE.
Refactors Makefile.shared a bit to prevent SCHEME or WORKSPACE_PATH being set without
USE_WORKSPACE from breaking the build.
- Makefile.shared:
- 11:08 AM Changeset in webkit [291180] by
-
- 21 edits in trunk
[iOS] Add support for -[UITextInput removeEmojiAlternatives] on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=237742
rdar://89647018
Reviewed by Kate Cheney.
Source/WebCore:
Add plumbing to AlternativeTextUIController and AlternativeTextContextController to replace an existing
DictationContext's NSTextAlternatives; passing in a nil NSTextAlternatives simply removes the DictationContext
and its existing text alternatives.
See WebKit ChangeLog for more details.
Tests: TextAlternatives.AddAndRemoveTextAlternativesWithMatch
TextAlternatives.AddAndRemoveTextAlternativesWithTextAndEmojis
- dom/DocumentMarkerController.h:
Drive-by fix: adjust a comment to reflect the actual behavior in DocumentMarkerController, and also add a FIXME
to replace theboolreturn type with an enum type.
- editing/cocoa/AlternativeTextContextController.h:
- editing/cocoa/AlternativeTextContextController.mm:
(WebCore::AlternativeTextContextController::replaceAlternatives):
- editing/cocoa/AlternativeTextUIController.h:
- editing/cocoa/AlternativeTextUIController.mm:
(WebCore::AlternativeTextUIController::replaceAlternatives):
Source/WebKit:
Add support for
-removeEmojiAlternatives, which removes all dictation alternatives at the current selection,
whose text alternative strings only contain emojis. See below for more details.
- Platform/spi/ios/TextInputSPI.h:
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::replaceDictationAlternatives):
Add PageClient plumbing to the new AlternativeTextUIController methods in WebCore to replace an existing
dictation context's text alternatives.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::dictationAlternativesAtSelection):
We expand the selection range by one character here since
DocumentMarkerController::markersInRange()does not
include document markers that end exactly at the given range.
(WebKit::WebPageProxy::clearDictationAlternatives):
Add two helper methods on WebPageProxy: one to query all dictation alternative identifiers that intersect with
the current selection range, and another to remove all dictation alternative document markers whose
DictationContext matches an identifier in a given list of identifiers.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView removeEmojiAlternatives]):
Implement the new SPI method with a two-step process:
- Request the list of dictation context IDs at the selection; for each ID, we either (a) replace the text
alternatives for that context ID with a new NSTextAlternatives object that doesn't have any of the emoji-
only alternatives that appear in the original NSTextAlternatives, or (b) remove the NSTextAlternatives and
dictation context ID mapping entirely, if all the alternatives only contain emojis.
- For all the text alternatives that were removed in step 1 (due to only containing emojis), clear out all
document markers corresponding to those text alternatives in the document.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::dictationAlternativesAtSelection):
(WebKit::WebPage::clearDictationAlternatives):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Adjust an API test and augment an existing test to exercise
-removeEmojiAlternatives.
- TestWebKitAPI/Tests/ios/TextAlternatives.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
- 11:05 AM Changeset in webkit [291179] by
-
- 1 copy in tags/Safari-613.2.2
Tag Safari-613.2.2.
- 10:42 AM Changeset in webkit [291178] by
-
- 7 edits in trunk/Source/WebKit
Some minor refactoring in RemoteLayerBackingStore
https://bugs.webkit.org/show_bug.cgi?id=237749
Reviewed by Tim Horton.
Simplify RemoteLayerBackingStore a little, primarily to push the setNeedsDisplay() calls
when swapToValidFrontBuffer() returns WebCore::SetNonVolatileResult::Empty out to the
callers, so it's clearer when m_dirtyRegion gets mutated.
In order to pass SetNonVolatileResult around more, change setBufferVolatility(bool) into
setBufferVolatile() and setFrontBufferNonVolatile(), which makes it clear that we only ever
set the front buffer to non-volatile.
Also move the call to clearBackendHandle() into
RemoteLayerWithRemoteRenderingBackingStoreCollection, since it's about GPU process.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::swapBuffers):
(WebKit::RemoteLayerBackingStore::setContents):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::willMakeBufferVolatile): Deleted.
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile): Deleted.
(WebKit::RemoteLayerBackingStore::setBufferVolatility): Deleted.
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStoreCollection::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::swapToValidFrontBuffer):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectBackingStoreBufferIdentifiersToMarkVolatile):
- 10:25 AM Changeset in webkit [291177] by
-
- 5 edits in trunk/Source/WebKit
[WebAuthn] Cancel running operations in ASA on navigation
https://bugs.webkit.org/show_bug.cgi?id=237452
rdar://problem/89781990
Reviewed by Brent Fulgham.
Pre-ASA WebAuthn calls cancel requests on navigation via calling authenticatorManager.cancelRequest
in WebPageProxy. In WebAuthn calls that go through ASA, the authenticatorManager lives in the ASA
process, so calls won't be cancelled on navigation.
This patch attempts to cancel ongoing operations whenever a WebAuthenticatorCoordinatorProxy that
uses ASA is destroyed, effectively cancelling requests on reload or navigation.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:
(WebKit::WebAuthenticatorCoordinatorProxy::~WebAuthenticatorCoordinatorProxy):
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
- 9:49 AM Changeset in webkit [291176] by
-
- 28 edits3 copies in trunk
[WebAuthn] Support authenticatorSelection.residentKey ResidentKeyRequirement
https://bugs.webkit.org/show_bug.cgi?id=237567
rdar://89788378
Reviewed by Brent Fulgham and Chris Dumez.
Source/WebCore:
In Web Authentication level one, relying parties can specify authenticatorSelection.residentKeyRequired,
to signify they require a client-side discoverable credential. However, if the authenticator does not
support client-side discoverable credentials, the rp has no way to clarify they want a client-side
discoverable credential only if available.
This patch implements authenticatorSelection.residentKeyRequired introduced in level 2, which has three
values 'Preferred', 'Required', and 'Discouraged'. This allows RPs to create a client-side discoverable
credential if possible.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/webauthn/PublicKeyCredentialCreationOptions.h:
(WebCore::PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::encode const):
(WebCore::PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::decode):
- Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
- Modules/webauthn/ResidentKeyRequirement.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
- Modules/webauthn/ResidentKeyRequirement.idl: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
- Modules/webauthn/fido/AuthenticatorSupportedOptions.cpp:
(fido::AuthenticatorSupportedOptions::setResidentKeyAvailability):
(fido::convertToCBOR):
(fido::AuthenticatorSupportedOptions::setSupportsResidentKey): Deleted.
- Modules/webauthn/fido/AuthenticatorSupportedOptions.h:
- Modules/webauthn/fido/DeviceRequestConverter.cpp:
(fido::encodeMakeCredenitalRequestAsCBOR):
- Modules/webauthn/fido/DeviceRequestConverter.h:
- Modules/webauthn/fido/DeviceResponseConverter.cpp:
(fido::readCTAPGetInfoResponse):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
Source/WebKit:
In Web Authentication level one, relying parties can specify authenticatorSelection.residentKeyRequired,
to signify they require a client-side discoverable credential. However, if the authenticator does not
support client-side discoverable credentials, the rp has no way to clarify they want a client-side
discoverable credential only if available.
This patch implements authenticatorSelection.residentKeyRequired introduced in level 2, which has three
values 'Preferred', 'Required', and 'Discouraged'. This allows RPs to create a client-side discoverable
credential if possible.
- UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.h:
- UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm:
(-[_WKAuthenticatorSelectionCriteria init]):
- UIProcess/API/Cocoa/_WKResidentKeyRequirement.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKAuthenticatorSelectionCriteria.mm.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(residentKey):
(authenticatorSelectionCriteria):
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataJSON:options:userVerificationAvailability:]):
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]):
- UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::makeCredential):
- WebKit.xcodeproj/project.pbxproj:
Tools:
Add API tests for authenticatorSelection.residentKey.
- TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:
(TestWebKitAPI::TEST):
LayoutTests:
Add layout tests using residentKey field.
- http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
- http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
- 9:39 AM Changeset in webkit [291175] by
-
- 2 edits in trunk/Source/WebCore
Fix WebContent jetsam that occurs when selecting text in a large e-mail
https://bugs.webkit.org/show_bug.cgi?id=237698
Reviewed by Simon Fraser.
When selecting text in a large e-mail in MobileMail, we often jetsam. This is due to this
chain of events:
- If the selection extends enough to start causing the content to pan (which is easy to do when zoomed in on the mail content), then AutoscrollController ends up changing the scroll position of the FrameView to perform the pan.
- FrameView::requestScrollPositionUpdate tries to prepopulate tiles around the endpoint of the pan by calling TileController::prepopulateRect with visibleContentRect's size.
The problem is that MobileMail resizes their web view (and therefore FrameView) to match
the size of the content. This causes FrameView's visibleContentRect to be very large (>100k
pts high for some emails). As a result, we end up prepopulating every single tile in the
email, causing a huge spike in IOSurface memory usage that leads to a jetsam.
To fix this, we make FrameView::requestScrollPositionUpdate act more like
RenderLayerCompositor::visibleRectForLayerFlushing. In particular, on iOS, we now use
exposedContentRect instead of visibleContentRect. Since exposedContentRect is derived from
contentOffset/contentSize of the scroll view in the UIProcess, it's more correct and is much
smaller than visibleContentRect in this case.
- page/FrameView.cpp:
(WebCore::FrameView::requestScrollPositionUpdate):
- 9:38 AM Changeset in webkit [291174] by
-
- 2 edits in trunk/Source/WebKit
[WinCairo] DrawingAreaWC::sendUpdateAC should keep a WeakPtr of this for the reply handler
https://bugs.webkit.org/show_bug.cgi?id=237757
Reviewed by Don Olmstead.
WinCairo Release was crashing by visiting some random web sites
for several minutes. The reply handler in
DrawingAreaWC::sendUpdateAC should check thatthisobject is
still alive withweakThis.
- WebProcess/WebPage/wc/DrawingAreaWC.cpp:
(WebKit::DrawingAreaWC::sendUpdateAC): Capture weakThis for the
reply handler and check it.
- 9:31 AM Changeset in webkit [291173] by
-
- 2 edits2 copies6 adds3 deletes in trunk/LayoutTests
Platforms implementing WebSocketTask pass hybi/close-and-server-script-exception-expected.txt
https://bugs.webkit.org/show_bug.cgi?id=237727
Reviewed by Alex Christensen.
The root expected.txt had a line with FAIL but all platforms that implement WebSocketTask
PASS the test fully. Make this the default and remove redundant expectations and add a
FAIL for Apple WebKitLegacy ports which don't implement WebSocketTask.
- http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt:
- platform/glib/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
- platform/ios-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
- platform/mac-wk1/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Copied from LayoutTests/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt.
- platform/mac-wk2/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Removed.
- platform/win/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Copied from LayoutTests/http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt.
- 9:16 AM Changeset in webkit [291172] by
-
- 2 edits in trunk/Source/WebCore
Verify values before adding to hash map
https://bugs.webkit.org/show_bug.cgi?id=237781
Reviewed by Simon Fraser.
Verify values before adding to hash map to avoid hash map corruption.
Original patch by John Cunningham
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::updateSnapOffsetsForScrollableArea):
- 9:11 AM Changeset in webkit [291171] by
-
- 6 edits in trunk
[web-animations] shape-rendering should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237767
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 9:08 AM Changeset in webkit [291170] by
-
- 6 edits in trunk
[web-animations] vector-effect should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237766
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 8:44 AM Changeset in webkit [291169] by
-
- 8 edits in trunk
[IFC][Integration] Add support for inline table
https://bugs.webkit.org/show_bug.cgi?id=237498
Reviewed by Antti Koivisto.
Source/WebCore:
This patch enables inline tables for IFC
e.g.
<div>inline content with <table style="display: inline-table">table</table></div>
We treat the inline table as any other atomic inline level box with synthetic baseline.
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateInlineTableDimensions):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
- layout/integration/LayoutIntegrationLineLayout.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
LayoutTests:
- platform/mac/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
- 8:05 AM Changeset in webkit [291168] by
-
- 2 edits in trunk/Source/WebKit
[macOS][WP] Add required sys call to sandbox
https://bugs.webkit.org/show_bug.cgi?id=237739
Reviewed by Chris Dumez.
Add a rarely used, but required syscall, to the WebContent process sandbox on macOS.
- WebProcess/com.apple.WebProcess.sb.in:
- 7:33 AM Changeset in webkit [291167] by
-
- 23 edits2 deletes in trunk
Do capture video frame downsampling in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=237316
<rdar://problem/89959777>
Reviewed by Eric Carlson.
Source/WebCore:
To prevent some flakinesses, we now compute the video frame size from MediaSample given to rvfc metadata.
We stop making requestToEnd as virtual by introducing a virtual endProducingData method.
RealtimeMediaSource::end calls the new endProducingData virtual method, which is stop by default.
RealtimeVideoSource::endProducingData is implemented by calling requestToEnd on the underlying source.
This makes sure that ending a source will not end a related cloned source.
Covered by existing tests.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
- platform/mediastream/RealtimeMediaSource.cpp:
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeVideoSource.cpp:
- platform/mediastream/RealtimeVideoSource.h:
Source/WebKit:
Instead of cloning within WebProcess, we know clone in GPUProcess for camera tracks.
This allows to keep using IOSurfaces when several tracks are using the same device with different resolutions.
Since display tracks are already cloned remotely, we can merge RemoteRealtimeDisplaySource and RemoteRealtimeVideoSource.
We no longer need to stop the source in ~SourceProxy given we are removing ourselves from observing the source.
We rename UserMediaCaptureManagerProxy end to remove and requestToEnd to endProducingData.
- SourcesCocoa.txt:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp: Removed.
- WebProcess/cocoa/RemoteRealtimeDisplaySource.h: Removed.
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
- WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
- WebProcess/cocoa/RemoteRealtimeVideoSource.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- WebProcess/cocoa/UserMediaCaptureManager.h:
LayoutTests:
- fast/mediastream/getDisplayMedia-size.html:
Remove potential race condition by restarting playing the stream to compute the size.
- 6:30 AM Changeset in webkit [291166] by
-
- 6 edits in trunk
[web-animations] text-anchor should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237765
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:27 AM Changeset in webkit [291165] by
-
- 3 edits in trunk/Source
Debug build failure after r246172: ASSERT_UNDER_CONSTEXPR_CONTEXT should work in constexpr contexts
https://bugs.webkit.org/show_bug.cgi?id=236728
Reviewed by Michael Catanzaro.
ASSERT_UNDER_CONSTEXPR_CONTEXT is calling a non-constexpr function (WTFReportAssertionFailure)
when it fails, so it cannot be used for an assert not reached.
This patch adds a new RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT() macro
that calls CRASH_UNDER_CONSTEXPR_CONTEXT() instead of WTFReportAssertionFailure.
No functional change.
- wasm/WasmCompilationMode.h:
(JSC::Wasm::isOSREntry):
(JSC::Wasm::isAnyBBQ):
(JSC::Wasm::isAnyOMG):
- 6:27 AM Changeset in webkit [291164] by
-
- 6 edits in trunk
[web-animations] stroke-linejoin should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237764
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:23 AM Changeset in webkit [291163] by
-
- 6 edits in trunk
[web-animations] stroke-linecap should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237763
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:19 AM Changeset in webkit [291162] by
-
- 14 edits in trunk/Source/WebCore
Rename invalidation methods in SVGElement
https://bugs.webkit.org/show_bug.cgi?id=237716
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-11
Reviewed by Martin Robinson.
Rename invalidation methods in SVGElement to be more specific. This in fact
uses the naming in the underlying ElementData.
- svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
- svg/SVGElement.cpp:
(WebCore::SVGElement::commitPropertyChange):
- svg/SVGElement.h:
- svg/SVGElementInlines.h:
(WebCore::SVGElement::setAnimatedSVGAttributesAreDirty):
(WebCore::SVGElement::setPresentationalHintStyleIsDirty):
(WebCore::SVGElement::invalidateSVGAttributes): Deleted.
(WebCore::SVGElement::invalidateSVGPresentationalHintStyle): Deleted.
- svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
- svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::svgAttributeChanged):
- svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
- svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged):
- svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::svgAttributeChanged):
- svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::svgAttributeChanged):
- svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):
- svg/properties/SVGAttributeAnimator.cpp:
(WebCore::SVGAttributeAnimator::invalidateStyle):
- 6:17 AM Changeset in webkit [291161] by
-
- 7 edits in trunk
[web-animations] mask-repeat should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237771
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setMaskRepeatX):
(WebCore::RenderStyle::setMaskRepeatY):
- 6:08 AM Changeset in webkit [291160] by
-
- 6 edits in trunk
[web-animations] mask-mode should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237770
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:05 AM Changeset in webkit [291159] by
-
- 6 edits in trunk
[web-animations] mask-composite should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237769
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
Refactor FillLayerFillBoxPropertyWrapper to a templatized DiscreteFillLayerPropertyWrapper
which allows us to support other enum types like CompositeOperator.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:01 AM Changeset in webkit [291158] by
-
- 6 edits in trunk
[web-animations] mask-type should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237768
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 5:48 AM Changeset in webkit [291157] by
-
- 6 edits in trunk
[web-animations] text-rendering should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237777
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 5:45 AM Changeset in webkit [291156] by
-
- 4 edits in trunk/Source/WebCore
[web-animations] refactor discrete FontCascadeDescription to use dedicated animation wrappers
https://bugs.webkit.org/show_bug.cgi?id=237776
Reviewed by Antti Koivisto.
We added getters and setters on RenderStyle for properties exposed on FontCascadeDescription
solely for the purpose of animation support. Instead, we add a couple of dedicated animation
wrapper that removes the methods from RenderStyle and do all the work in
CSSPropertyAnimation.cpp.
The base class DiscreteFontDescriptionWrapper and is used for CSS properties backed by several
FontCascadeDescription methods.
The subclass DiscreteFontDescriptionTypedWrapper is used for CSS properties backed by a single
FontCascadeDescrption method dealing with a simple type.
- animation/CSSPropertyAnimation.cpp:
(WebCore::DiscreteFontDescriptionWrapper::DiscreteFontDescriptionWrapper):
(WebCore::DiscreteFontDescriptionWrapper::propertiesInFontDescriptionAreEqual const):
(WebCore::DiscreteFontDescriptionWrapper::setPropertiesInFontDescription const):
(WebCore::DiscreteFontDescriptionTypedWrapper::DiscreteFontDescriptionTypedWrapper):
(WebCore::DiscreteFontDescriptionTypedWrapper::value const):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontKerning): Deleted.
(WebCore::RenderStyle::setFontFeatureSettings): Deleted.
(WebCore::RenderStyle::setFontFamilies): Deleted.
(WebCore::RenderStyle::setFontSynthesis): Deleted.
(WebCore::RenderStyle::setFontVariantAlternates): Deleted.
(WebCore::RenderStyle::setFontVariantPosition): Deleted.
(WebCore::RenderStyle::setFontVariantCaps): Deleted.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontPalette const):
(WebCore::RenderStyle::fontKerning const): Deleted.
(WebCore::RenderStyle::fontFeatureSettings const): Deleted.
(WebCore::RenderStyle::fontFamilies const): Deleted.
(WebCore::RenderStyle::fontSynthesis const): Deleted.
(WebCore::RenderStyle::fontVariantAlternates const): Deleted.
(WebCore::RenderStyle::fontVariantPosition const): Deleted.
(WebCore::RenderStyle::fontVariantCaps const): Deleted.
- 4:59 AM Changeset in webkit [291155] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Allow AOM AV1 decoder and check for hardware AV1 decoders as well
https://bugs.webkit.org/show_bug.cgi?id=237713
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-11
Reviewed by Xabier Rodriguez-Calvar.
The AOM AV1 decoder performs better nowadays. Also it seems hardware-accelerated decoders
are appearing, so we should check for this as well.
- platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::initializeDecoders):
- 3:51 AM Changeset in webkit [291154] by
-
- 7 edits in trunk
[CSS Container Queries] Only apply inline-size containment when it is allowed
https://bugs.webkit.org/show_bug.cgi?id=237761
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:
Source/WebCore:
"Giving an element inline-size containment has no effect if any of the following are true:
if the element does not generate a principal box (as is the case with display: contents or display: none)
if its inner display type is table
if its principal box is an internal table box
if its principal box is an internal ruby box or a non-atomic inline-level box"
https://drafts.csswg.org/css-contain-3/#containment-inline-size
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):
Check for valid inline-size containment.
- rendering/RenderObject.cpp:
(WebCore::shouldApplyInlineSizeContainment):
- rendering/RenderObject.h:
- style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
Cleanups.
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):
Check for valid size containment for the type, evaluate to unknown if it doesn't exist.
Also check layout containment.
- 3:17 AM Changeset in webkit [291153] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed isInGPUProcess() fix after 248209@main
https://bugs.webkit.org/show_bug.cgi?id=237762
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-11
- platform/RuntimeApplicationChecks.h:
(WebCore::isInGPUProcess): Define isInGPUProcess() in all cases but
return false if ENABLE_GPU_PROCESS is disabled.
- 2:36 AM Changeset in webkit [291152] by
-
- 7 edits in trunk
[GTK] Add a unit tests to check the remote inspector HTTP server
https://bugs.webkit.org/show_bug.cgi?id=237708
Reviewed by Michael Catanzaro.
Source/WebKit:
Ensure we close the socket if it's still open when the remote inspector client is destroyed.
- UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::~RemoteInspectorClient):
Source/WTF:
- wtf/glib/SocketConnection.h: Export close().
Tools:
Rework the inspector server test to also allow to launch the HTTP server and check it correctly serves the
target list page.
- TestWebKitAPI/Tests/WebKitGtk/InspectorTestServer.cpp:
(main):
- TestWebKitAPI/Tests/WebKitGtk/TestInspectorServer.cpp:
(InspectorHTTPServerTest::setup):
(InspectorHTTPServerTest::teardown):
(testInspectorServerPageList):
(testInspectorHTTPServerPageList):
(beforeAll):
(afterAll):
(stopTestServer): Deleted.
(sigAbortHandler): Deleted.
(connectToInspectorServer): Deleted.
(waitUntilInspectorServerIsReady): Deleted.
(startTestServer): Deleted.
- 1:27 AM Changeset in webkit [291151] by
-
- 3 edits in trunk/Source/WebCore
[web-animations] refactor discrete SVG properties to use a dedicated animation wrapper
https://bugs.webkit.org/show_bug.cgi?id=237760
Reviewed by Antti Koivisto.
We added getters and setters on RenderStyle for properties exposed on SVGRenderStyle
solely for the purpose of animation support. Instead, we add a dedicated animation
wrapper that removes the methods from RenderStyle and do all the work in
CSSPropertyAnimation.cpp. This will be beneficial for future SVG properties
with discrete animation support that are yet to be added.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::clipRule const): Deleted.
(WebCore::RenderStyle::setClipRule): Deleted.
(WebCore::RenderStyle::colorInterpolation const): Deleted.
(WebCore::RenderStyle::setColorInterpolation): Deleted.
(WebCore::RenderStyle::colorInterpolationFilters const): Deleted.
(WebCore::RenderStyle::setColorInterpolationFilters): Deleted.
(WebCore::RenderStyle::dominantBaseline const): Deleted.
(WebCore::RenderStyle::setDominantBaseline): Deleted.
(WebCore::RenderStyle::fillRule const): Deleted.
(WebCore::RenderStyle::setFillRule): Deleted.
- 1:20 AM Changeset in webkit [291150] by
-
- 2 edits in trunk/Source/WebKit
[GLIB] Debian Stable & Ubuntu LTS build is failing after r291093
https://bugs.webkit.org/show_bug.cgi?id=237756
Reviewed by Carlos Garcia Campos.
Use
soup_websocket_connection_send_messagewhen SOUP < 2.67.3.
- UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp:
- 12:40 AM Changeset in webkit [291149] by
-
- 2 edits in trunk/Source/WebKit
Disable WebGL and DOM GPU process when some dependencies are unavailable
https://bugs.webkit.org/show_bug.cgi?id=237700
<rdar://problem/88735051>
Reviewed by Eric Carlson.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultUseGPUProcessForDOMRenderingEnabled):
(WebKit::defaultUseGPUProcessForWebGLEnabled):
Mar 10, 2022:
- 11:37 PM Changeset in webkit [291148] by
-
- 6 edits in trunk
[web-animations] mask-origin should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237733
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 11:26 PM Changeset in webkit [291147] by
-
- 7 edits in trunk
[web-animations] font-variant-numeric should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237669
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
We can also add support for animating the font-variant shorthand since
font-variant-numeric is the last of its longhands that was lacking
animation support.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 10:43 PM Changeset in webkit [291146] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=237551
Patch by Frédéric Wang <fwang@igalia.com> on 2022-03-10
Reviewed by Ryosuke Niwa.
- editing/inserting/insert-paragraph-separator-with-inline-table-bold-crash.html: Ensure the
test does not complete before the page load.
- 10:29 PM WebKit Team edited by
- Update location to contributors.json (diff)
- 9:39 PM Changeset in webkit [291145] by
-
- 2 edits in trunk/Source/WebKit
Abandoned memory in NetworkStorageManager::m_temporaryBlobPathsByConnection
https://bugs.webkit.org/show_bug.cgi?id=237734
Reviewed by Chris Dumez.
Remove items from m_temporaryBlobPathsByConnection when connection is closed.
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::stopReceivingMessageFromConnection):
- 9:03 PM Changeset in webkit [291144] by
-
- 15 edits3 moves in trunk
EnterPictureInPictureEvent event was renamed to PictureInPictureEvent in spec
https://bugs.webkit.org/show_bug.cgi?id=221083
Reviewed by Youenn Fablet.
Source/WebCore:
Some updates based on the spec changes:
- Rename EnterPictureInPictureEvent.idl to PictureInPictureEvent.idl.
- leavepictureinpicture event should be fired with the Picture-in-Picture window.
(https://github.com/w3c/picture-in-picture/issues/188)
Covered by media/picture-in-picture/picture-in-picture-api-events.html.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
(WebCore::HTMLVideoElementPictureInPicture::didEnterPictureInPicture):
(WebCore::HTMLVideoElementPictureInPicture::didExitPictureInPicture):
- Modules/pictureinpicture/PictureInPictureEvent.cpp: Renamed from Source/WebCore/Modules/pictureinpicture/EnterPictureInPictureEvent.cpp.
(WebCore::PictureInPictureEvent::create):
(WebCore::PictureInPictureEvent::PictureInPictureEvent):
- Modules/pictureinpicture/PictureInPictureEvent.h: Renamed from Source/WebCore/Modules/pictureinpicture/EnterPictureInPictureEvent.h.
- Modules/pictureinpicture/PictureInPictureEvent.idl: Renamed from Source/WebCore/Modules/pictureinpicture/EnterPictureInPictureEvent.idl.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- dom/EventNames.in:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
LayoutTests:
- media/picture-in-picture/picture-in-picture-api-events-expected.txt:
- media/picture-in-picture/picture-in-picture-api-events.html:
Check the picture-in-picture window in the "leavepictureinpicture" event handler.
- 7:22 PM Changeset in webkit [291143] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, non-unified build fix after 248294@main
https://bugs.webkit.org/show_bug.cgi?id=237751
- layout/integration/LayoutIntegrationLineLayout.cpp: Add missing
include.
- 6:35 PM Changeset in webkit [291142] by
-
- 8 edits in trunk/Source/JavaScriptCore
[XCBuild] Emit a discovered dependency file from offlineasm
https://bugs.webkit.org/show_bug.cgi?id=237329
Reviewed by Alexey Proskuryakov.
Xcode needs to know what files offlineasm uses and produces in order to schedule it
correctly in incremental builds. Rather than use generated xcfilelists like WebKit does
elsewhere in the project, emit a depfile from offlineasm based on the parse tree's source
files.
Discovered dependency files ("depfiles") are Makefile-formatted files which list the inputs
used to produce an output. They are emitting during the build to a temporary directory, and
ensure that subsequent incremental builds will re-run offlineasm when any of the included
sources change. This is the same mechanism clang uses to track header dependencies.
Unfortunately, the legacy build system will refuse to execute a script phase or rule that
emits a depfile. To work around this, convert the offlineasm pipeline to be based on build
rules, to be used by XCBuild only. The idea is that LowLevelInterpreter.asm is listed as a
source build file in JSCLLIntSettingsExtractor, JSCLLIntOffsetsExtractor, and
JavaScriptCore. Each target uses a build rule to generate its respective header from
LowLevelInterpreter.asm. Xcode schedules these rule executions before any clang tasks.
The legacy build system avoids executing the rules via EXCLUDED_SOURCE_FILE_NAMES, and
instead uses the existing build phases, which have "(Legacy)" in their names and are now
no-ops under XCBuild.
Aside from working around the legacy build system's limitations, using build rules is
probably a superior way to express what we're doing, as it gives Xcode the opportunity to
compile other objects in parallel, and could be easily extended to compile multiple discrete
asm files should the need arise.
- Configurations/ToolExecutable.xcconfig: Build rules are XCBuild-only.
- JavaScriptCore.xcodeproj/project.pbxproj: Add build rules, rename legacy scripts.
- offlineasm/asm.rb: Add --depfile flag.
- offlineasm/generate_offset_extractor.rb: Add --depfile flag.
- offlineasm/generate_settings_extractor.rb: Add --depfile flag.
- 6:04 PM Changeset in webkit [291141] by
-
- 6 edits3 adds in trunk
Main document is leaking on haaretz.co.il due to lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=237660
<rdar://problem/90035071>
Reviewed by Geoffrey Garen.
Source/WebCore:
When an HTML image uses
loading=lazy, ImageLoader::updateFromElement() may get
called twice. If the image is outside the viewport, the first time ImageLoader::updateFromElement()
is called, we'll request a CachedImage but we'll set m_lazyImageLoadState to LazyImageLoadState::Deferred
and not ask the CachedImage to load. Then, later on, if the HTML image approaches the viewport,
ImageLoader::loadDeferredImage() will get called. It will set m_lazyImageLoadState to LazyImageLoadState::LoadImmediately
and call updateFromElement() again. This time however, updateFromElement() will actually ask the CachedImage
to load.
The issue was that the first time ImageLoader::updateFromElement(), we would set m_lazyImageLoadState to Deferred
and not ask the CachedImage to load but still set m_hasPendingLoadEvent to true. This is problematic if the CachedImage
is not already loaded since no was was started and thus no load event is coming (and no load event may ever come if the
image never approaches the viewport). When updatedHasPendingEvent() is called, it will protect the HTMLImageElement if
m_hasPendingLoadEvent is true, to make sure the image element stays alive long enough for us to dispatch the load event.
With lazy loading, this meant that we would protect the HTMLImageElement right away and undefinitely since no load event
may ever come. This meant that when navigating away from a page with images that are lazily loaded (and not loaded yet),
we would leak the HTMLImageElements (and ImageLoaders), which in turn would keep the Document alive too.
To address the issue, we now make sure that m_hasPendingLoadEvent is no longer set to true when updateFromElement()
is called but the CachedImage is not already loaded and not loading (lazy loading case). When updateFromElement() gets
called the second time (when the lazily loaded image approaches the viewport), we make sure that the m_hasPendingLoadEvent
flag gets set to true then.
Test: fast/dom/lazy-image-loading-document-leak.html
- loader/ImageLoader.cpp:
(WebCore::ImageLoader::ImageLoader):
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::didUpdateCachedImage):
(WebCore::ImageLoader::didStartLoading):
- loader/ImageLoader.h:
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::load):
- loader/cache/CachedImageClient.h:
(WebCore::CachedImageClient::didStartLoading):
LayoutTests:
Add layout test coverage.
- fast/dom/lazy-image-loading-document-leak-expected.txt: Added.
- fast/dom/lazy-image-loading-document-leak.html: Added.
- fast/dom/resources/lazy-image-loading-document-leak-popup.html: Added.
- 5:47 PM Changeset in webkit [291140] by
-
- 4 edits in trunk/Source/WebKit
Fix naming in NetworkProcessProxy::registerRemoteWorkerClientProcess()
https://bugs.webkit.org/show_bug.cgi?id=237737
Reviewed by Geoffrey Garen.
Fix naming in NetworkProcessProxy::registerRemoteWorkerClientProcess() to store referring to
shared workers and add logging.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::registerRemoteWorkerClientProcess):
(WebKit::NetworkProcessProxy::unregisterRemoteWorkerClientProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- 5:20 PM Changeset in webkit [291139] by
-
- 16 edits in trunk/Source
Catalyst JavaScriptCore, WebCore, WebKitLegacy, and WebKit shouldn't be copied to the Secondary Path
https://bugs.webkit.org/show_bug.cgi?id=237748
Reviewed by Mark Lam.
Updated the configuration to exclude copying Catalyst build products to the secondary path.
Source/JavaScriptCore:
- Configurations/Base.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.xcconfig:
Source/WebCore:
- Configurations/WebCore.xcconfig:
Source/WebGPU:
- Configurations/WebGPU.xcconfig:
Source/WebInspectorUI:
- Configurations/WebInspectorUIFramework.xcconfig:
Source/WebKit:
- Configurations/Base.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/Base.xcconfig:
- 4:38 PM Changeset in webkit [291138] by
-
- 8 edits1 move in trunk
[git-webkit] Support multiple metadata locations
https://bugs.webkit.org/show_bug.cgi?id=237395
<rdar://problem/89715863>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git): Rename PROJECT_CONFIG_PATH to GIT_CONFIG_EXTENSION.
(Git.config): Use dynamic context.metadata instead of constant.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.init): Use self.metadata instead of constant.
(Scm.metadata): Support multiple locations for this directory.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.git): Use dynamic repository.metadata instead of constant.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
- metadata/git_config_extension: Renamed from metadata/project_config.
- metadata/project_config: Renamed to metadata/git_config_extension.
Canonical link: https://commits.webkit.org/248298@main
- 4:28 PM Changeset in webkit [291137] by
-
- 3 edits in trunk/Source/WebKit
[macOS] WebContent processes crash with XPC_EXIT_REASON_SIGTERM_TIMEOUT when logging out
https://bugs.webkit.org/show_bug.cgi?id=237398
<rdar://88940229>
Reviewed by Alexey Proskuryakov.
Because we don't use RunningBoard on macOS, we leak an OS transaction to control the lifetime of our XPC
services ourselves. However, one of the side effects of leaking this transaction is that the default SIGTERM
handler doesn't cleanly exit our XPC services when logging out or rebooting. This led to crashes with
XPC_EXIT_REASON_SIGTERM_TIMEOUT as termination reason (rdar://88940229).
To address the issue, we now set our own SIGTERM handler that calls _exit(0) to exit cleanly. In the future,
we should likely adopt RunningBoard on macOS and control our lifetime via process assertions instead of
leaking this OS transaction.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::setOSTransaction):
(WebKit::XPCServiceExit):
(WebKit::osTransaction): Deleted.
- 4:15 PM Changeset in webkit [291136] by
-
- 11 edits1 add in trunk
[iOS] Add support for -[UITextInput addTextAlternatives:] on WKContentView
https://bugs.webkit.org/show_bug.cgi?id=237691
rdar://89647018
Reviewed by Aditya Keerthi.
Source/WebKit:
Work towards refactoring support for dictation alternatives on iOS; this patch adds support for an optional,
private UITextInput protocol method on WKContentView, which clients can use to directly insert
NSTextAlternatives for a given string of matching text (i.e., if the given string matches text at or before the
current selection range).
Tests: TextAlternatives.AddTextAlternativesWithMatch
TextAlternatives.AddTextAlternativesWithSelectedMatch
TextAlternatives.AddTextAlternativesWithoutMatch
- Scripts/webkit/messages.py:
(headers_for_type):
Add support for sending WebCore::DictationContext as an IPC message argument.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::addDictationAlternative):
Register the dictation alternative (NSTextAlternative) on the page client, and send a message to the web process
to try and insert document markers corresponding to this dictation alternative. If, for whatever reason, we fail
to map dictation alternatives to an editable DOM range, make sure we automatically unregister this text
alternative as well.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView addTextAlternatives:]):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::addDictationAlternative):
Given a string to match and a dictation alternative identifier context, try to search for the matching string
before (or in) the selection; if found, install the dictation alternatives in the match range, as a document
marker.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Add several basic API tests to exercise the new API; in particular, exercise both cases where the text
alternative's primary text matches before the selection, where it does not match, and where it matches inside
the selection.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/TextAlternatives.mm: Added.
(-[TestWKWebView dictationAlternativesMarkerCount:]):
(TestWebKitAPI::createWebViewForTestingTextAlternatives):
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
- 3:45 PM Changeset in webkit [291135] by
-
- 3 edits in trunk/LayoutTests
[ iOS Mac ] imported/w3c/web-platform-tests/service-workers/service-worker/partitioned-service-worker-matchAll.tentative.https.html is a flaky text failure on all queues
https://bugs.webkit.org/show_bug.cgi?id=237680
Unreviewed test gardening.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 2:51 PM Changeset in webkit [291134] by
-
- 40 edits in trunk
[IFC][Integration] Enable RenderListItem and RenderListMarker for IFC
https://bugs.webkit.org/show_bug.cgi?id=237497
Reviewed by Antti Koivisto.
Source/WebCore:
This enables horizontal, RTL, "non-same line nested" list items for IFC.
List markers behave as regular inline level boxes except when it comes to vertical align,
when non-image based list markers are aligned as text. Also outside list markers (list-style-position: outside)
have extra (negative) horizontal margin to place them outside of the containing block's border box.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::isWrappableRun):
- layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::InlineFormattingGeometry::inlineLevelBoxAffectsLineBox const):
- layout/formattingContexts/inline/InlineLevelBox.h:
(WebCore::Layout::InlineLevelBox::isListMarker const):
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::toLineRunType):
(WebCore::Layout::Line::Run::Run):
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::Run::isBox const):
(WebCore::Layout::Line::Run::isListMarker const):
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::setBaselineAndLayoutBounds const):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- layout/formattingContexts/inline/InlineLineBoxBuilder.h:
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::isAtSoftWrapOpportunity):
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- layout/integration/LayoutIntegrationCoverage.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateListItemDimensions):
(WebCore::LayoutIntegration::LineLayout::updateListMarkerDimensions):
(WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):
(WebCore::LayoutIntegration::LineLayout::layout):
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isListMarker const):
(WebCore::Layout::Box::isInsideListMarker const):
(WebCore::Layout::Box::isOutsideListMarker const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):
- rendering/RenderListMarker.h:
LayoutTests:
- fast/replaced/ul-li-word-break-break-word-expected.html: progression. We do not break between the list marker and the content anymore.
- platform/mac/css1/box_properties/margin_right-expected.txt:
- platform/mac/css1/box_properties/padding_right-expected.txt: progressions. Align list marker with the content (like Firefox does).
- platform/mac/css2.1/t0505-c16-descendant-01-e-expected.txt: inline box height progression (not visible)
- platform/mac/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt: usual 1px diff.
- platform/mac/fast/inline/emptyInlinesWithinLists-expected.txt: progression
- platform/mac/fast/lists/002-expected.txt: same as margin_right/padding_right.
- platform/mac/fast/lists/003-expected.txt:
- platform/mac/fast/lists/li-br-expected.txt: same as ul-li-word-break-break-word
- platform/mac/fast/selectors/166-expected.txt: usual 1px diff.
- 2:17 PM Changeset in webkit [291133] by
-
- 18 edits in trunk
[XCBuild] Fix GeneratedSources dependency validation errors
https://bugs.webkit.org/show_bug.cgi?id=237490
Reviewed by Alexey Proskuryakov.
.:
Fixes miscellanous targets which were not specifying their task outputs correctly.
For easier dependency validation testing, Make builds now recognize a VALIDATE_DEPENDENCIES
setting. Building with VALIDATE_DEPENDENCIES=YES or VALIDATE_DEPENDENCIES=YES_ERROR passes
the setting to xcodebuild and sets a magic xattr on the build directory so that product
files in it are validated.
- Makefile.shared:
Source/JavaScriptCore:
Declare JSCBuiltins.cpp in DerivedSources.make. It's created by generate-js-builtins.py but
was never declared as an output.
- DerivedSources-output.xcfilelist: Autogenerated changes.
- DerivedSources.make:
Source/ThirdParty:
In gtest's static library target, replace the folder reference containing headers with file
references for each copied header. This allows XCBuild to correctly plan incremental builds
when these headers change.
- gtest/xcode/Config/StaticLibraryTarget.xcconfig:
- gtest/xcode/gtest.xcodeproj/project.pbxproj:
Source/WebCore:
Declare missing outputs in DerivedSources.make, and merge files from the "Copy Generated
Headers" phase in with the other private headers, since they all go to the same destination.
- DerivedSources-output.xcfilelist: Autogenerated chagnes.
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
Tools:
- Scripts/set-webkit-configuration: Add --validate-dependencies option.
- WebKitTestRunner/DerivedSources-input.xcfilelist: Autogenerated changes.
- WebKitTestRunner/DerivedSources.make: Explicitly depend on preprocessor.pm, which is
imported by other scripts but not listed as a dependency.
- 2:00 PM Changeset in webkit [291132] by
-
- 4 edits in trunk/Source/WebKit
MediaSampleCursor should iterate over the samples contained in the MediaSamplesBlock
https://bugs.webkit.org/show_bug.cgi?id=237677
rdar://80869041
Reviewed by Eric Carlson.
No change in observable behaviour for now, as the current code can't
produce MediaSamplesBlock with more than one sub-sample.
Tests will be added in bug 236754.
- Shared/mac/MediaFormatReader/MediaSampleByteRange.h:
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
(WebKit::stepIterator):
(WebKit::MediaSampleCursor::MediaSampleCursor):
(WebKit::MediaSampleCursor::locateIterator const):
(WebKit::MediaSampleCursor::setLocator const):
(WebKit::MediaSampleCursor::locateMediaSample const):
(WebKit::MediaSampleCursor::locateTiming const):
(WebKit::MediaSampleCursor::stepInOrderedMap):
(WebKit::MediaSampleCursor::stepInPresentationTime):
(WebKit::MediaSampleCursor::getMediaSample const):
(WebKit::MediaSampleCursor::getSyncInfo const):
(WebKit::MediaSampleCursor::copyFormatDescription const):
(WebKit::MediaSampleCursor::copySampleLocation const):
- Shared/mac/MediaFormatReader/MediaSampleCursor.h: The Locator type and
the templated code making use of it makes use of strong assumptions that
the iterator can only be made of one type or the other.
As such, the originally obvious solution to expand the Locator type with
a MediaSamplesBlock iterator ended up being overly complex.
So instead we define an additional member m_currentEntry
and will add all the logic handling in the stepIterator method.
It should be noted that while the MediaSampleCursor implements all the
methods of MTPluginSampleCursor; in practice only the following appear used:
- stepInDecodeOrderAndReportStepsTaken
- getSampleTiming
- getSyncInfo
- copyFormatDescription
- 1:50 PM Changeset in webkit [291131] by
-
- 1 edit2 deletes in trunk/LayoutTests
Remove unused iOS 14 test results
- platform/ios-14: Removed.
- platform/ios-14-wk2: Removed.
- 1:50 PM Changeset in webkit [291130] by
-
- 6 edits in trunk
[web-animations] mask-clip should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237725
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 1:47 PM Changeset in webkit [291129] by
-
- 6 edits in trunk
[web-animations] scroll-behavior should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237723
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 1:41 PM Changeset in webkit [291128] by
-
- 6 edits in trunk
[web-animations] quotes should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237721
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 1:27 PM Changeset in webkit [291127] by
-
- 4 edits in trunk/Source/WebCore
Document is leaking on haaretz.co.il due to an async script
https://bugs.webkit.org/show_bug.cgi?id=237672
<rdar://problem/90050632>
Reviewed by Geoffrey Garen.
I haven't been able to reproduce this in the context of a layout test, however,
I see the https://acdn.adnxs.com/dmp/async_usersync.html document flakily leaking
on haaretz.co.il due to an async script (sometimes the top document too).
From a memgraph, I can see that the cycle is:
HTMLDocument -> ScriptRunner -> PendingScript (via m_scriptsToExecuteSoon) -> HTMLScriptElement -> HTMLDocument (again)
To address the issue, I updated Document::commonTeardown() to clear all its ScriptRunner's pending scripts, right after
we stop all ActiveDOMObjects. At this point, we no longer want to run script and clearing any pending scripts is critical
since they hold a strong reference to the Document.
I have validated the fix on haaretz.co.il since I wasn't able to write an automated
test for this.
- dom/Document.cpp:
(WebCore::Document::commonTeardown):
- dom/ScriptRunner.cpp:
(WebCore::ScriptRunner::clearPendingScripts):
- dom/ScriptRunner.h:
- 1:25 PM Changeset in webkit [291126] by
-
- 2 edits in trunk/Source/WebKit
Markup dropdown menu not working in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=237726
<rdar://problem/89777983>
Reviewed by Wenson Hsieh.
Partial revert of r290103. No need for standardShareMenu in the
services menu case.
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
- 1:10 PM Changeset in webkit [291125] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- platform/ios/TestExpectations: r291034 fixed platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html.
- 12:15 PM Changeset in webkit [291124] by
-
- 39 edits8 copies1 add in trunk
AX: Support updated WebSpeech API
https://bugs.webkit.org/show_bug.cgi?id=237614
<rdar://problem/89981851>
Reviewed by Andres Gonzalez.
LayoutTests/imported/w3c:
- web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt:
- web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt:
- web-platform-tests/speech-api/idlharness.window-expected.txt:
Source/WebCore:
Adopt WebSpeech (18 August 2020) changes from
https://wicg.github.io/speech-api/
Tests Fixed:
imported/w3c/web-platform-tests/speech-api/
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Modules/speech/DOMWindow+SpeechSynthesis.idl:
- Modules/speech/DOMWindowSpeechSynthesis.cpp:
(WebCore::DOMWindowSpeechSynthesis::speechSynthesis):
- Modules/speech/SpeechSynthesis.cpp:
(WebCore::Ref<SpeechSynthesis>SpeechSynthesis::create):
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::voicesDidChange):
(WebCore::SpeechSynthesis::fireEvent const):
(WebCore::SpeechSynthesis::fireErrorEvent const):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::create): Deleted.
(WebCore::SpeechSynthesis::fireEvent): Deleted.
- Modules/speech/SpeechSynthesis.h:
- Modules/speech/SpeechSynthesis.idl:
- Modules/speech/SpeechSynthesisErrorCode.h: Added.
- Modules/speech/SpeechSynthesisErrorCode.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
- Modules/speech/SpeechSynthesisErrorEvent.cpp: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.cpp.
(WebCore::SpeechSynthesisErrorEvent::create):
(WebCore::SpeechSynthesisErrorEvent::SpeechSynthesisErrorEvent):
- Modules/speech/SpeechSynthesisErrorEvent.h: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.h.
- Modules/speech/SpeechSynthesisErrorEvent.idl: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.idl.
- Modules/speech/SpeechSynthesisErrorEventInit.h: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
- Modules/speech/SpeechSynthesisErrorEventInit.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
- Modules/speech/SpeechSynthesisEvent.cpp:
(WebCore::SpeechSynthesisEvent::create):
(WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
- Modules/speech/SpeechSynthesisEvent.h:
(WebCore::SpeechSynthesisEvent::utterance const):
(WebCore::SpeechSynthesisEvent::charLength const):
(): Deleted.
- Modules/speech/SpeechSynthesisEvent.idl:
- Modules/speech/SpeechSynthesisEventInit.h: Copied from Source/WebCore/Modules/speech/SpeechSynthesisEvent.h.
(WebCore::SpeechSynthesisEventInit::SpeechSynthesisEventInit):
- Modules/speech/SpeechSynthesisEventInit.idl: Copied from Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl.
- Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
- Modules/speech/SpeechSynthesisUtterance.h:
- Modules/speech/SpeechSynthesisVoice.idl:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/EventNames.h:
- dom/EventNames.in:
- dom/EventTargetFactory.in:
- page/SpeechSynthesisClient.h:
- platform/PlatformSpeechSynthesizer.h:
- platform/cocoa/PlatformSpeechSynthesizerCocoa.mm:
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
- platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::speak):
Source/WebKit:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::boundaryEventOccurred):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::boundaryEventOccurred):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
LayoutTests:
Fixed expectations:
- imported/w3c/web-platform-tests/speech-api/SpeechSynthesisEvent-constructor-expected.txt: Updated.
- imported/w3c/web-platform-tests/speech-api/SpeechSynthesisErrorEvent-constructor-expected.txt: Updated.
- fast/speechsynthesis/speech-synthesis-boundary-events.html: Updated.
- fast/speechsynthesis/speech-synthesis-boundary-events-expected.txt: Updated.
- 11:43 AM Changeset in webkit [291123] by
-
- 85 edits in trunk/Source
Optimize further the passing of data across threads
https://bugs.webkit.org/show_bug.cgi?id=237695
Reviewed by Geoffrey Garen.
Optimize further the passing of data across threads by leveraging the optimized
version of isolatedCopy() on r-value references whenever possible.
Source/JavaScriptCore:
- inspector/remote/RemoteConnectionToTarget.cpp:
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):
- inspector/remote/RemoteConnectionToTarget.h:
- inspector/remote/RemoteControllableTarget.h:
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
- runtime/JSGlobalObjectDebuggable.cpp:
(JSC::JSGlobalObjectDebuggable::dispatchMessageFromRemote):
- runtime/JSGlobalObjectDebuggable.h:
- tools/FunctionOverrides.cpp:
(JSC::FunctionOverrides::initializeOverrideFor):
Source/WebCore:
- Modules/cache/CacheStorageConnection.h:
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::queryCache):
- Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::toCrossThreadRecordData):
(WebCore::recordsDataFromRecords):
(WebCore::recordsDataOrErrorFromRecords):
(WebCore::WorkerCacheStorageConnection::retrieveRecords):
(WebCore::WorkerCacheStorageConnection::batchPutOperation):
- Modules/cache/WorkerCacheStorageConnection.h:
- Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::DOMFileSystem::listDirectory):
- Modules/mediastream/DetachedRTCDataChannel.h:
(WebCore::DetachedRTCDataChannel::DetachedRTCDataChannel):
(WebCore::DetachedRTCDataChannel::decode):
- Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::detach):
- Modules/mediastream/RTCDataChannel.h:
- Modules/notifications/Notification.cpp:
(WebCore::Notification::create):
(WebCore::Notification::Notification):
- Modules/notifications/Notification.h:
- Modules/push-api/PushSubscriptionData.cpp:
(WebCore::PushSubscriptionData::isolatedCopy const):
(WebCore::PushSubscriptionData::isolatedCopy):
- Modules/push-api/PushSubscriptionData.h:
- Modules/storage/DummyStorageProvider.h:
- Modules/storage/StorageConnection.h:
- Modules/storage/StorageManager.cpp:
(WebCore::StorageManager::persisted):
(WebCore::StorageManager::fileSystemAccessGetDirectory):
- Modules/storage/WorkerStorageConnection.cpp:
(WebCore::WorkerStorageConnection::getPersisted):
(WebCore::WorkerStorageConnection::fileSystemGetDirectory):
- Modules/storage/WorkerStorageConnection.h:
- Modules/webdatabase/ChangeVersionWrapper.cpp:
(WebCore::ChangeVersionWrapper::ChangeVersionWrapper):
- Modules/webdatabase/ChangeVersionWrapper.h:
(WebCore::ChangeVersionWrapper::create):
- Modules/webdatabase/Database.cpp:
(WebCore::Database::changeVersion):
- Modules/webdatabase/Database.h:
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
- Modules/webdatabase/SQLError.h:
(WebCore::SQLError::create):
(WebCore::SQLError::SQLError):
- Modules/websockets/ThreadableWebSocketChannel.h:
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveMessageError):
- Modules/websockets/WebSocket.h:
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::didFailSocketStream):
(WebCore::WebSocketChannel::processFrame):
- Modules/websockets/WebSocketChannel.h:
- Modules/websockets/WebSocketChannelClient.h:
- Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::setURL): Deleted.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::fail):
(WebCore::WorkerThreadableWebSocketChannel::Peer::fail):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
- dom/ExceptionData.h:
(WebCore::ExceptionData::toException const):
(WebCore::ExceptionData::toException):
- inspector/agents/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::sendMessageFromWorkerToFrontend):
- inspector/agents/InspectorWorkerAgent.h:
- page/CacheStorageProvider.h:
- page/PageDebuggable.cpp:
(WebCore::PageDebuggable::dispatchMessageFromRemote):
- page/PageDebuggable.h:
- workers/WorkerInspectorProxy.cpp:
(WebCore::WorkerInspectorProxy::sendMessageFromWorkerToFrontend):
- workers/WorkerInspectorProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToDebugger):
- workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::jobRejectedInServer):
(WebCore::SWClientConnection::registrationJobResolvedInServer):
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerClientData.cpp:
(WebCore::ServiceWorkerClientData::isolatedCopy const):
(WebCore::ServiceWorkerClientData::isolatedCopy):
- workers/service/ServiceWorkerClientData.h:
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::ImportedScript::isolatedCopy const):
(WebCore::ServiceWorkerContextData::ImportedScript::isolatedCopy):
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::showNotification):
- workers/service/ServiceWorkerRegistration.h:
- workers/service/ServiceWorkerRegistrationOptions.cpp:
(WebCore::ServiceWorkerRegistrationOptions::isolatedCopy const):
(WebCore::ServiceWorkerRegistrationOptions::isolatedCopy):
- workers/service/ServiceWorkerRegistrationOptions.h:
- workers/service/context/ServiceWorkerDebuggable.cpp:
(WebCore::ServiceWorkerDebuggable::dispatchMessageFromRemote):
- workers/service/context/ServiceWorkerDebuggable.h:
- workers/service/context/ServiceWorkerInspectorProxy.cpp:
(WebCore::ServiceWorkerInspectorProxy::sendMessageToWorker):
(WebCore::ServiceWorkerInspectorProxy::sendMessageFromWorkerToFrontend):
- workers/service/context/ServiceWorkerInspectorProxy.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::postMessageToDebugger):
(WebCore::ServiceWorkerThreadProxy::startFetch):
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::importRecords):
Source/WebKit:
- NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::didReceiveMessageError):
- NetworkProcess/NetworkSocketChannel.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::fileSystemGetDirectory):
- NetworkProcess/storage/NetworkStorageManager.h:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::dispatchMessageFromRemote):
- UIProcess/Automation/WebAutomationSession.h:
- UIProcess/Inspector/WebPageDebuggable.cpp:
(WebKit::WebPageDebuggable::dispatchMessageFromRemote):
- UIProcess/Inspector/WebPageDebuggable.h:
- WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::retrieveRecords):
- WebProcess/Cache/WebCacheStorageConnection.h:
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveMessageError):
- WebProcess/Network/WebSocketChannel.h:
- WebProcess/WebCoreSupport/WebStorageConnection.cpp:
(WebKit::WebStorageConnection::getPersisted):
(WebKit::WebStorageConnection::fileSystemGetDirectory):
- WebProcess/WebCoreSupport/WebStorageConnection.h:
- 11:41 AM Changeset in webkit [291122] by
-
- 6 edits in trunk
[web-animations] grid-template-areas should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237712
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
While we now run the grid-template-areas tests, we have a bug in the way we serialize the value through the
computed style.
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 10:56 AM Changeset in webkit [291121] by
-
- 1 copy in tags/Safari-613.1.17.1.11
Tag Safari-613.1.17.1.11.
- 10:46 AM Changeset in webkit [291120] by
-
- 9 edits in branches/safari-613.1.17.1-branch/Source
Versioning.
WebKit-7613.1.17.1.11
- 10:36 AM Changeset in webkit [291119] by
-
- 15 edits in trunk
[web-animations] font-variant-caps should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237662
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- platform/text/TextFlags.cpp:
(WebCore::operator<<):
- platform/text/TextFlags.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontVariantAlternates):
(WebCore::RenderStyle::setFontVariantCaps):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontVariantCaps const):
LayoutTests:
- platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
- 10:22 AM Changeset in webkit [291118] by
-
- 3 edits2 adds in trunk
[iOS] Netflix.com fails to resume after moving app to background during playback
https://bugs.webkit.org/show_bug.cgi?id=237659
<rdar://88775037>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-interruption-with-resume-allowing-play.html
When the MediaPlayerPrivateMediaSourceAVFObjC player is asked to play or pause, it notifies
the client (HTMLMediaElement) that its playback state has changed. HTMLMediaElement will in response
call playInternal() or pauseInternal() to ensure that a state change driven by the MediaPlayer
is reflected up to the DOM. However, when an interruption causes the media element to suspend
and pause playback, this results in an additional call to pauseInternal(), which updates the
"state to resume" after an interruption ends to "Paused".
In mediaPlayerPlaybackStateChanged(), only call pauseInternal() or playInternal() if the reported
player state does not match the HTMLMediaElement's own state.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged):
LayoutTests:
- media/media-source/media-source-interruption-with-resume-allowing-play-expected.txt: Added.
- media/media-source/media-source-interruption-with-resume-allowing-play.html: Added.
- 9:58 AM Changeset in webkit [291117] by
-
- 11 edits in trunk/Source
IndexedDB: free memory used by database connection on low-memory warning
https://bugs.webkit.org/show_bug.cgi?id=237673
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::handleLowMemoryWarning):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::handleLowMemoryWarning):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
Source/WebKit:
- NetworkProcess/storage/IDBStorageManager.cpp:
(WebKit::IDBStorageManager::handleLowMemoryWarning):
- NetworkProcess/storage/IDBStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::handleLowMemoryWarning):
- 9:56 AM Changeset in webkit [291116] by
-
- 2 edits in trunk/Source/WTF
Enable Permissions API by default on Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=237699
Reviewed by Brent Fulgham.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 9:28 AM WebKitGTK/2.36.x edited by
- (diff)
- 8:47 AM Changeset in webkit [291115] by
-
- 11 edits in trunk
[web-animations] font-variant-position should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237671
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- platform/text/TextFlags.cpp:
(WebCore::operator<<):
- platform/text/TextFlags.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontVariantAlternates):
(WebCore::RenderStyle::setFontVariantPosition):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontVariantPosition const):
- 8:43 AM Changeset in webkit [291114] by
-
- 7 edits in trunk
[web-animations] font-variant-ligatures should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237667
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 8:34 AM Changeset in webkit [291113] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, non-unified build fix after 248260@main
https://bugs.webkit.org/show_bug.cgi?id=237715
- css/ContainerQuery.h: Add missing include.
- 8:31 AM Changeset in webkit [291112] by
-
- 2 edits in trunk/Tools
[EWS] Add DEFAULT_BRANCH variable
https://bugs.webkit.org/show_bug.cgi?id=237693
<rdar://problem/90067276>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(ShowIdentifier.evaluateCommand):
(CheckOutPullRequest.run):
(CleanGitRepo.init):
Canonical link: https://commits.webkit.org/248274@main
- 8:25 AM Changeset in webkit [291111] by
-
- 8 edits in trunk
REGRESSION(r284711): [GStreamer] Buffering, seek broken on youtube.com
https://bugs.webkit.org/show_bug.cgi?id=233861
Unreviewed, manual revert of 284711.
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-10
Source/WebCore:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::currentTimeFudgeFactor):
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::timeFudgeFactor const):
- platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::toGstClockTime):
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::bufferTimeToStreamTime): Deleted.
LayoutTests:
- platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
- 8:01 AM Changeset in webkit [291110] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r290795.
Caused crashes <rdar://problem/89970722>
Reverted changeset:
"[macOS] WebContent processes crash with
XPC_EXIT_REASON_SIGTERM_TIMEOUT when logging out"
https://bugs.webkit.org/show_bug.cgi?id=237398
https://commits.webkit.org/r290795
- 7:57 AM Changeset in webkit [291109] by
-
- 7 edits in trunk
[web-animations] font-variant-east-asian should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237665
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 7:52 AM Changeset in webkit [291108] by
-
- 21 edits in trunk/Source/WebCore
Use PropertyRegistry consistently in svgAttributeChanged
https://bugs.webkit.org/show_bug.cgi?id=237604
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-10
Reviewed by Martin Robinson.
Use PropertyRegistry consistently in svgAttributeChanged by always checking
PropertyRegistry::isKnownAttribute first thing, before delegating to subclasses.
- svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::svgAttributeChanged):
- svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::svgAttributeChanged):
- svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::svgAttributeChanged):
- svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):
- svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
- svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::svgAttributeChanged):
- svg/SVGFEMergeNodeElement.cpp:
(WebCore::SVGFEMergeNodeElement::svgAttributeChanged):
- svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::svgAttributeChanged):
- svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::svgAttributeChanged):
- svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::svgAttributeChanged):
- svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
- svg/SVGGeometryElement.cpp:
(WebCore::SVGGeometryElement::svgAttributeChanged):
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::svgAttributeChanged):
- svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged):
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
- svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::svgAttributeChanged):
- svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::svgAttributeChanged):
- 7:27 AM Changeset in webkit [291107] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GStreamer gardening
- platform/glib/TestExpectations: media/video-src-blob-perf.html is failing actually.
- 6:23 AM Changeset in webkit [291106] by
-
- 159 edits6 copies1 move16 adds2 deletes in trunk
Add context.roundRect support to OffScreenCanvas
https://bugs.webkit.org/show_bug.cgi?id=232780
<rdar://problem/85366210>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Updated baselines with PASS.
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.dompointinit.single.argument-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.1.radius.double.single.argument-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.1.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.2.radii.2.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.2.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompoint-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompointinit-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.double-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.closed-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.1-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.2-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.3-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.end.4-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.negative-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.newsubpath-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.nonfinite-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.intersecting.1-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.intersecting.2-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.negative-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.none-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.radius.toomany-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.selfintersect-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.winding-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.1-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.2-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.3-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.4-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.5-expected.txt:
- web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.zero.6-expected.txt:
- web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt:
- web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompointinit-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.1.radius.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompointinit-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompointinit-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.2.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.1.dompointinit-expected.txt.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.1.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompointinit-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.2.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.3.radii.3.dompointinit-expected.txt.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.3.radii.3.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.1.dompointinit-expected.txt.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.2.dompointinit-expected.txt.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.2.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.3.dompointinit-expected.txt.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompoint-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompoint.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompointinit-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.roundrect.4.radii.4.dompointinit-expected.txt.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompointinit.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.double-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.double.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.closed-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.closed.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.1-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.1.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.2-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.2.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.3-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.3.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.4-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.end.4.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.negative-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.negative.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.newsubpath-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.newsubpath.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.nonfinite-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.nonfinite.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.1-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.1.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.2-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.2.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.negative-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.negative.worker-expected.txt: Added.
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.none-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.none.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.toomany-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.toomany.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.selfintersect-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.selfintersect.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.winding-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.winding.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.1-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.1.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.2-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.2.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.3-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.3.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.4-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.4.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.5-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.5.worker-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.6-expected.txt:
- web-platform-tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.6.worker-expected.txt:
- web-platform-tests/html/dom/idlharness.https-expected.txt:
- web-platform-tests/html/dom/idlharness.worker-expected.txt:
Source/WebCore:
Covered by existing tests.
- html/canvas/CanvasPath.cpp:
(WebCore::CanvasPath::roundRect): Added.
- html/canvas/CanvasPath.h:
- html/canvas/CanvasPath.idl: Added roundRect declarations.
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::processArgument): Added stub for the
RadiusVariant as used in roundRect.
- inspector/InspectorCanvasCallTracer.h:
- inspector/agents/InspectorCanvasAgent.cpp: Add include.
- inspector/RecordingSwizzleType.h: Added DOMPointInit type.
Source/WebInspectorUI:
- UserInterface/Models/Recording.js:
(WI.Recording.displayNameForSwizzleType): Added name for DOMPointInit.
Proper support for it should come with bug233255.
LayoutTests:
- inspector/canvas/recording-2d-full-expected.txt:
- inspector/canvas/resources/recording-2d.js: Added calls to roundRect
to test the inspector processArgument()
- platform/glib/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.image-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource.worker-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt.
- 5:37 AM Changeset in webkit [291105] by
-
- 8 edits4 adds in trunk
Cleanup RenderLayer::currentTransform()
https://bugs.webkit.org/show_bug.cgi?id=237553
Reviewed by Rob Buis.
LayoutTests/imported/w3c:
Add two new WPT tests covering animations of the 'transform-box' property.
- web-platform-tests/css/css-transforms/animation/transform-box-expected.html: Added.
- web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer-expected.html: Added.
- web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer.html: Added.
- web-platform-tests/css/css-transforms/animation/transform-box.html: Added.
Source/WebCore:
In preparation for the upcoming SVG/CSS transforms support in LBSE,
the transform related code in RenderLayer is cleaned up, starting
with RenderLayers currentTransform() function.
RenderLayer::currentTransform() has two purposes. It can either be used
to re-compute the existing transformation matrix with different options
(e.g. include or exclude 'transform-origin' induced transformations), or
to retrieve the current transformation matrix from the animatedStyle() of
the associated renderer, if an accelerated transform animation is running
(triggered e.g. via CSS Animations / JS WebAnimations).
Currently the code to compute the transformation matrix is duplicated,
avoid that and unify the two code paths (re-compute CTM if accelerated transform
animations are running / re-compute CTM if transform-origin shall be excluded).
Add two new WPT tests that verify animating 'transform-box' is functional
for both composited & non-composited elements. Currently 'transform-box'
support is ignored for composited elements, as demonstrated by the
transform-box-with-change-transform-layer.html test.
Follow-up patches that fix the bugs depends on this initial cleanup patch.
For now mark the failing test as such until it's fixed.
Tests: imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box-will-change-transform-layer.html
imported/w3c/web-platform-tests/css/css-transforms/animation/transform-box.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::currentTransform const):
LayoutTests:
Mark new WPT test css/css-transforms/animation/transform-box-will-change-transform-layer.html
as expected to fail, since 'transform-box' is ignored for composited elements at the moment.
- platform/glib/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 4:50 AM Changeset in webkit [291104] by
-
- 10 edits in trunk
[web-animations] font-variant-alternates should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237661
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
While we now run the font-variant-alternates tests, we don't support all values for this property so we fail
those tests.
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- platform/text/TextFlags.cpp:
(WebCore::operator<<):
- platform/text/TextFlags.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontFamilies):
(WebCore::RenderStyle::setFontVariantAlternates):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontVariantAlternates const):
- 4:44 AM Changeset in webkit [291103] by
-
- 9 edits in trunk
[web-animations] font-synthesis should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237650
Reviewed by Myles C. Maxfield.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontFamilies):
(WebCore::RenderStyle::setFontSynthesis):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontSynthesis const):
- 4:04 AM Changeset in webkit [291102] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles Panel: CSS variable completions should be provided even without a query
https://bugs.webkit.org/show_bug.cgi?id=237679
<rdar://problem/90059628>
Reviewed by Patrick Angle.
Return the list of all available completion suggestions if
WI.CSSCompletionsis configured to allow empty
prefix search. This was already the case for classic autocompletion with prefix matching, but was missing
for fuzzy matching.
- UserInterface/Models/CSSCompletions.js:
(WI.CSSCompletions.prototype.executeQuery):
- 4:03 AM Changeset in webkit [291101] by
-
- 2 edits in trunk/Source/WebCore
[MSE][SourceBuffer] Fix creating float PTS/DTS when dividing sample
https://bugs.webkit.org/show_bug.cgi?id=237528
Reviewed by Xabier Rodriguez-Calvar.
The timestamps used for sample division in SourceBuffer aren't being
aligned with the same rounding margin used in
SourceBuffer::sourceBufferPrivateDidReceiveSample().
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797
- platform/graphics/SourceBufferPrivate.cpp: Extracted roundTowardsTimeScaleWithRoundingMargin lambda as a function and used it from removeCodedFrames(), on top of the current usage from sourceBufferPrivateDidReceiveSample().
- 3:38 AM Changeset in webkit [291100] by
-
- 7 edits in trunk
[web-animations] fill-rule should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237648
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fillRule const):
(WebCore::RenderStyle::setFillRule):
- 3:16 AM Changeset in webkit [291099] by
-
- 6 edits in trunk
[web-animations] counter-reset should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237644
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
Generalize the wrapper added for counter-increment to also handle counter-reset.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 2:22 AM Changeset in webkit [291098] by
-
- 11 edits in trunk
[CSS Container Queries] Implement new container selection algorithm
https://bugs.webkit.org/show_bug.cgi?id=237657
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
- web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
Source/WebCore:
"For each element, the query container to be queried is selected from among the element’s
ancestor query containers that have a valid container-type for all the container features
in the <container-condition>."
https://drafts.csswg.org/css-contain-3/#container-rule
- css/ContainerQuery.cpp:
(WebCore::CQ::requiredAxesForFeature):
- css/ContainerQuery.h:
- css/ContainerQueryParser.cpp:
(WebCore::ContainerQueryParser::consumeFilteredContainerQuery):
Move container name parsing to ContainerQueryParser too.
(WebCore::ContainerQueryParser::consumeSizeQuery):
Collect required axes during parsing.
- css/ContainerQueryParser.h:
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeContainerRule):
- style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::evaluate const):
(WebCore::Style::ContainerQueryEvaluator::selectContainer const):
Select container based on required axes for the features being used.
(WebCore::Style::ContainerQueryEvaluator::evaluateQuery const):
(WebCore::Style::ContainerQueryEvaluator::evaluateCondition const):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):
No need to check axes during evaluation anymore. We only evaluate against containers that support them.
(WebCore::Style::ContainerQueryEvaluator::resolveContainer const): Deleted.
Rename resolveContainer -> selectContainer to match the spec.
- style/ContainerQueryEvaluator.h:
- 2:19 AM Changeset in webkit [291097] by
-
- 2 edits in trunk/Source/bmalloc
[libpas] We should gurantee that in-flux-stash is fully baked when pointing table is set
https://bugs.webkit.org/show_bug.cgi?id=237697
rdar://89116983
Reviewed by Mark Lam.
To support enumerating hashtable which can be in the middle of resizing, we have in-flux-stash: this
small stash is used to keep old table and size while resizing. However, Mark pointed that
pas_tiny_large_map_hashtable_for_each_entry_remote's assertion is firing, which is ensuring that table's
underlying pointer should be NULL when the size is 0. But in-flux-stash, we did not guarantee that
in-flux-stash data is consistent when it is exposed to the enumerator (when setting hashtable_being_resized).
This patch inserts pas_compiler_fence when exposing and unexposing in-flux-stash. pas_compiler_fence is
enough (pas_store_store_fence is not necessary) because pas_enumerator runs after suspending the process.
Thus, data structure's consistency between instruction boundary is enough.
- libpas/src/libpas/pas_hashtable.h:
- 1:30 AM Changeset in webkit [291096] by
-
- 2 edits2 adds in trunk/Source/WebCore
[GTK][WPE] Add initial adwaita style for PDF.js
https://bugs.webkit.org/show_bug.cgi?id=237527
Reviewed by Michael Catanzaro.
- Modules/pdfjs-extras/adwaita/style.css: Added.
(#openFile):
(.dropdownToolbarButton > select):
- html/PDFDocument.cpp:
(WebCore::PDFDocument::injectStyleAndContentScript):
- 1:08 AM Changeset in webkit [291095] by
-
- 15 edits2 deletes in trunk/Source
Remove RemoteVideoSample
https://bugs.webkit.org/show_bug.cgi?id=237592
Reviewed by Eric Carlson.
Source/WebCore:
No change of behavior.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/RemoteVideoSample.cpp: Removed.
- platform/graphics/RemoteVideoSample.h: Removed.
Source/WebKit:
Send RemoteVideoSample data directly as IPC message parameters instead of inside RemoteVideoSample.
Fix timeStampNs by sending them back to WebProcess and divide them by 1000 to put them as milliseconds, as expected by libwebrtc backend.
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::createDecoderCallback):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::completedDecodingCV):
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::videoFrameAvailable):
(WebKit::RemoteCaptureSampleManager::videoFrameAvailableCV):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailable): Deleted.
(WebKit::RemoteCaptureSampleManager::videoSampleAvailableCV): Deleted.
(WebKit::RemoteCaptureSampleManager::RemoteVideo::videoSampleAvailable): Deleted.
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
- WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
- 1:00 AM Changeset in webkit [291094] by
-
- 16 edits2 adds in trunk
[GTK][WPE] Add initial support for PDF documents using PDF.js
https://bugs.webkit.org/show_bug.cgi?id=237513
Reviewed by Michael Catanzaro.
Source/WebCore:
Add support for loading PDF documents using PDF.js.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::isPDFJSResourceLoad const):
- loader/soup/ResourceLoaderSoup.cpp:
(WebCore::ResourceLoader::loadGResource):
- page/SecurityOrigin.cpp:
(WebCore::shouldTreatAsUniqueOrigin):
- platform/LegacySchemeRegistry.cpp:
(WebCore::builtinSecureSchemes):
Source/WebKit:
Build PDF.js resources into the library.
- PdfJSGResources.cmake: Added.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::canShowMIMEType): Claim to support PDF documents when PDF.js is enabled.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::canShowMIMEType const): Ditto.
Source/WTF:
Enable PDF.js for GTK and WPE ports.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
Add a script to generate the GResource manifest for PDF.js sources.
- glib/generate-pdfjs-gresource-manifest.py: Added.
(get_filenames):
(get_filenames.should_ignore_resource):
(get_filenames.resource_name):
(is_compressible):
- gtk/manifest.txt.in: Add pdfjs to tarballs.
- wpe/manifest.txt.in: Ditto.
- 12:57 AM Changeset in webkit [291093] by
-
- 18 edits4 adds in trunk/Source
[GTK][WPE] Web Inspector: make it possible to use the remote inspector from other browsers
https://bugs.webkit.org/show_bug.cgi?id=237601
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
Make it possible to start the inspector server with 0 port, meaning any free one will be used.
- inspector/remote/glib/RemoteInspectorServer.cpp:
(Inspector::RemoteInspectorServer::start): Pass the effective address to g_socket_listener_add_address and get the port.
- inspector/remote/glib/RemoteInspectorServer.h:
(Inspector::RemoteInspectorServer::port const): Return the port the server is listening to.
Source/WebInspectorUI:
Add Base/BrowserInspectorFrontendHost.js to be used when inspector is run and InspectorFrontendHost is not
defined in window. This new file is only included in the inspector sources for GTK and WPE ports.
- CMakeLists.txt:
- PlatformWPE: Added
- PlatformGTK:
- Scripts/combine-resources.pl: Add --input-script-name to be able to skip individual scripts too.
- Scripts/copy-user-interface-resources.pl: If inspector frontend host should not be included, remove the script
from generated files.
- UserInterface/Base/BrowserInspectorFrontendHost.js: Added.
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get supportsShowCertificate):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get isRemote):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get inspectionLevel):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get debuggableInfo):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get port):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get platform):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get platformVersionName):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get supportsDiagnosticLogging):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.get supportsWebExtensions):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.connect):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.loaded):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.closeWindow):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.reopen):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.reset):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.bringToFront):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.inspectedURLChanged):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.showCertificate):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setZoomFactor):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.zoomFactor):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setForcedAppearance):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.userInterfaceLayoutDirection):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.supportsDockSide):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.requestDockSide):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setAttachedWindowHeight):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setAttachedWindowWidth):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setSheetRect):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.startWindowDrag):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.moveWindowBy):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.copyText):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.killText):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.openURLExternally):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.canSave):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.save):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.append):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.close):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.showContextMenu):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.dispatchEventAsContextMenuEvent):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.sendMessageToBackend):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.unbufferedLog):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.isUnderTest):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.isExperimentalBuild):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.beep):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.inspectInspector):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.isBeingInspected):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.setAllowsInspectingInspector):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.logDiagnosticEvent):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.didShowExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.didHideExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.didNavigateExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.inspectedPageDidNavigate):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype.evaluateScriptInExtensionTab):
(window.InspectorFrontendHost.WI.BrowserInspectorFrontendHost.prototype._sendPendingMessagesToBackendIfNeeded):
- UserInterface/Base/Main.js:
(WI.loaded): Connect the inspector host if needed.
- UserInterface/Main.html: Add Base/BrowserInspectorFrontendHost.js.
Source/WebKit:
This is no longer possible since we switched to the new remote inspector. We don't want to bring the legacy
remote inspector back, but it should be possible to use a mixed approach, using a WebSocket for the inspector
protocol communication, but still using the new remote inspector code. This patch adds a simple HTTP browser to
server the inspector resources and open WebSocket connection to the inspector. It pretends to be a remote
inspector client, so we don't need any change in the current remote inspector implementation. The server is only
started when the env var WEBKIT_INSPECTOR_HTTP_SERVER is present, and the inspector server is started for the
same host but using a free port.
- PlatformWPE.cmake:
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitInitialize.cpp:
(WebKit::initializeRemoteInspectorServer): Start the HTTP server if the env var WEBKIT_INSPECTOR_HTTP_SERVER is present.
(WebKit::webkitInitialize): Just call initializeRemoteInspectorServer().
- UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
(WebKit::RemoteInspectorProtocolHandler::handleRequest): Use RemoteInspectorClient::buildTargetListPage().
- UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::inspect): Only call RemoteInspectorProxy::load() for UI inspector type.
(WebKit::RemoteInspectorClient::buildTargetListPage const): Build the target list page, using message handlers
for UI inspector and window.open for the HTTP inspector.
- UIProcess/Inspector/glib/RemoteInspectorClient.h:
(WebKit::RemoteInspectorClient::targets const): Deleted.
- UIProcess/Inspector/glib/RemoteInspectorHTTPServer.cpp: Added.
(WebKit::RemoteInspectorHTTPServer::singleton):
- UIProcess/Inspector/glib/RemoteInspectorHTTPServer.h: Added.
Mar 9, 2022:
- 11:14 PM Changeset in webkit [291092] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
imported/w3c/web-platform-tests/webrtc-extensions/transfer-datachannel.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=237327
Reviewed by Eric Carlson.
The worker is first sending the Opened message, than any message coming from the data channel.
Wait for the Opened message before proceeding with the rest of the test.
- web-platform-tests/webrtc-extensions/transfer-datachannel.html:
- 11:04 PM Changeset in webkit [291091] by
-
- 2 edits in trunk/Source/WebKit
Combine Lookup and Define.
https://bugs.webkit.org/show_bug.cgi?id=237627
rdar://26205225
Reviewed by Tim Horton.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _defineForWebView:]):
- 10:12 PM Changeset in webkit [291090] by
-
- 6 edits in trunk
[web-animations] counter-increment should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237640
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
The counter-increment and counter-reset properties are represented via a single data structure
held by RenderStyle. This lays up the groundwork for animation support of counter-reset as well
but right now we only handle counter-increment to keep this patch focused.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 8:36 PM Changeset in webkit [291089] by
-
- 3 edits in trunk/LayoutTests
Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=237688
- gpu-process/TestExpectations:
- svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg:
- 8:31 PM Changeset in webkit [291088] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=236931
- gpu-process/TestExpectations:
- 7:31 PM Changeset in webkit [291087] by
-
- 3 edits in trunk/Source/JavaScriptCore
Limit WK_XCODE_SUPPORTS_LTO in JavaScriptCore based on target OS
https://bugs.webkit.org/show_bug.cgi?id=237682
Reviewed by Alexey Proskuryakov.
- Configurations/Base.xcconfig:
- Configurations/WebKitTargetConditionals.xcconfig:
- 7:18 PM Changeset in webkit [291086] by
-
- 3 edits in trunk/LayoutTests
Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=236930
- gpu-process/TestExpectations:
- platform/ios/TestExpectations:
- 7:05 PM Changeset in webkit [291085] by
-
- 2 edits in trunk/Source/WebCore
Remove unused AccessibilityObject member variable.
https://bugs.webkit.org/show_bug.cgi?id=237670
<rdar://problem/90042470>
Reviewed by Chris Fleizach.
AccessibilityObject::m_isolatedTreeNodeInitialized is not used, thus
removing.
- accessibility/AccessibilityObject.h:
- 6:43 PM Changeset in webkit [291084] by
-
- 4 edits in trunk/Source/WebCore
In isolated tree mode, do not call NSAccessibilityUnregisterUniqueIdForUIElement until the isolated object is detached.
https://bugs.webkit.org/show_bug.cgi?id=237621
<rdar://problem/89992486>
Reviewed by Chris Fleizach.
When the live object is detached from its wrapper on the main thread,
the wrapper may be in the middle of serving a request on the AX thread.
Therefore calling NSAccessibilityUnregisterUniqueIdForUIElement may
interfere with the completiong of the request, or even cause undefined
behavior since many of the internal lookups for objects depend on a data
structure updated by system call. With this patch, we unregister a
wrapper when the isolated object is detached, which happens after the
live object is detached.
- accessibility/mac/WebAccessibilityObjectWrapperBase.h:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase initWithAccessibilityObject:]):
(-[WebAccessibilityObjectWrapperBase attachIsolatedObject:]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper detach]):
(-[WebAccessibilityObjectWrapper detachIsolatedObject:]):
(-[WebAccessibilityObjectWrapper unregisterUniqueIdForUIElement]): Deleted.
- 6:05 PM Changeset in webkit [291083] by
-
- 1 edit in branches/safari-613-branch/Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp
Unreivewed build fix. rdar://89376484
./Modules/webauthn/AuthenticatorCoordinator.cpp:144:50: error: no member named 'findIf' in 'WTF::Vector<WebCore::PublicKeyCredentialCreationOptions::Parameters, 0, WTF::CrashOnOverflow, 16>'; did you mean 'find'?
- 6:02 PM Changeset in webkit [291082] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore/platform/sql
Apply patch. rdar://problem/82071968
- 3:43 PM Changeset in webkit [291081] by
-
- 87 edits1 copy2 adds in branches/safari-613-branch
Revert "Cherry-pick r289790. rdar://problem/89997669"
This reverts commit r291070.
- 3:06 PM Changeset in webkit [291080] by
-
- 5 edits5 adds in trunk
Empty float rects should remain empty after integrally enclosing them.
https://bugs.webkit.org/show_bug.cgi?id=237507
Reviewed by Alan Bujtas.
Source/WebCore:
Test: compositing/tile-coverage-subpixel-empty-rect.html
- platform/graphics/FloatRect.cpp:
(WebCore::enclosingIntRectPreservingEmptyRects):
- platform/graphics/FloatRect.h:
- platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::setNeedsDisplayInRect):
(WebCore::TileGrid::dropTilesInRect):
(WebCore::TileGrid::tilesWouldChangeForCoverageRect const):
(WebCore::TileGrid::prepopulateRect):
(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::ensureTilesForRect):
Add a new variant of enclosingIntRect(const Float&) that ensures that empty input rects
always return an empty output rect, even if the x/y position is fractional.
Significant portions of the layout code (including, but not limited to linesBoundingBox()) depend
on the old behavior, so the new behaviour is opt-in and only used by TileGrid.
Fixes the case where TileGrid received an empty coverage rect at a fractional position, and rounded
it out to a 1x1 rect and allocated unnecessary tiles.
LayoutTests:
- compositing/tile-coverage-subpixel-empty-rect-expected.txt: Added.
- compositing/tile-coverage-subpixel-empty-rect.html: Added.
- platform/gtk/compositing/tile-coverage-subpixel-empty-rect-expected.txt: Added.
- platform/ios/compositing/tile-coverage-subpixel-empty-rect-expected.txt: Added.
Adds a new test that uses multiple overflow:hidden clips and absolute positioning to create
an empty coverage rect with a subpixel x/y position that is within the bounds of an offscreen
layer. Confirms that we don't accidentally allocate a tile for this layer.
- 2:45 PM Changeset in webkit [291079] by
-
- 2 edits in branches/safari-613-branch/Source/bmalloc
Cherry-picking r290110
[libpas] scavenger should not call pthread_mach_thread_np after suspension
https://bugs.webkit.org/show_bug.cgi?id=236798
rdar://89020902
Reviewed by Mark Lam and Keith Miller.
pthread_mach_thread_np can take a lock internally. So we should not call it after suspending a thread.
This patch refactors libpas scavenger so that we call pthread_mach_thread_np before suspending a thread.
We also avoid calling pthread_self() after suspension to make suspending safer (while it does not take
a lock, it also depends on an internal implementation).
- libpas/src/libpas/pas_thread_local_cache.c: (scavenger_thread_suspend_data_create): (suspend): (resume): (stop_allocator): (pas_thread_local_cache_for_all):
- 2:38 PM Changeset in webkit [291078] by
-
- 3 edits in trunk/Source/WebCore
Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=236131
- platform/VideoFrame.cpp:
(WebCore::VideoFrame::asVideoFrameCV):
- platform/VideoFrame.h:
- 2:35 PM Changeset in webkit [291077] by
-
- 2 edits in trunk/Tools
[EWS] Support concept of 'blocked' pull requests
https://bugs.webkit.org/show_bug.cgi?id=237370
<rdar://problem/89689094>
Unreviewed follow-up fix.
Accidently landed change using string literals instead of variables.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin):
(GitHubMixin._is_pr_blocked):
(ValidateChange.validate_github):
(BlockPullRequest.start):
(BlockPullRequest.getResultSummary):
Canonical link: https://commits.webkit.org/248243@main
- 2:31 PM Changeset in webkit [291076] by
-
- 2 edits in trunk/Source/WebCore
Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=236131
- platform/VideoFrame.cpp:
(WebCore::VideoFrame::asVideoFrameCV):
- 2:25 PM Changeset in webkit [291075] by
-
- 12 edits1 copy2 adds in trunk/Source/WebGPU
[WGSL] Implement enough of the Parser for the simplest shaders
https://bugs.webkit.org/show_bug.cgi?id=237629
Reviewed by Myles Maxfield.
The specific "hello-world"-like shaders that I want this to be able to parse are included in WGSLParserTests.mm.
The general approach to the parser, such as its templating by the Lexer, is directly copied from JSC's parser.
Things are a bit simpler for us as WGSL is such a simple language to parse, being strictly LR(1).
In this patch I also deleted BlockAttribute, since this attribute was recently removed from the language.
- WGSL/AST/Attribute.h:
(WGSL::AST::Attribute::isBlock const): Deleted.
- WGSL/AST/Expressions/TypeConversion.h:
- WGSL/AST/FunctionDecl.h:
- WGSL/AST/ShaderModule.h:
- WGSL/AST/Statements/AssignmentStatement.h:
- WGSL/AST/StructureDecl.h:
- WGSL/AST/TypeDecl.h:
(WGSL::AST::ParameterizedType::stringViewToKind):
- WGSL/CompilationMessage.h:
- WGSL/Parser.cpp: Added.
(WGSL::Parser::Parser):
(WGSL::Parser::current):
(WGSL::parse):
(WGSL::parseLChar):
(WGSL::parseUChar):
(WGSL::Parser<Lexer>::consumeType):
(WGSL::Parser<Lexer>::consume):
(WGSL::Parser<Lexer>::parseShader):
(WGSL::Parser<Lexer>::parseGlobalDecl):
(WGSL::Parser<Lexer>::parseAttributes):
(WGSL::Parser<Lexer>::parseAttribute):
(WGSL::Parser<Lexer>::parseStructDecl):
(WGSL::Parser<Lexer>::parseStructMember):
(WGSL::Parser<Lexer>::parseTypeDecl):
(WGSL::Parser<Lexer>::parseTypeDeclAfterIdentifier):
(WGSL::Parser<Lexer>::parseGlobalVariableDecl):
(WGSL::Parser<Lexer>::parseVariableQualifier):
(WGSL::Parser<Lexer>::parseStorageClass):
(WGSL::Parser<Lexer>::parseAccessMode):
(WGSL::Parser<Lexer>::parseFunctionDecl):
(WGSL::Parser<Lexer>::parseParameter):
(WGSL::Parser<Lexer>::parseStatement):
(WGSL::Parser<Lexer>::parseCompoundStatement):
(WGSL::Parser<Lexer>::parseReturnStatement):
(WGSL::Parser<Lexer>::parseShortCircuitOrExpression):
(WGSL::Parser<Lexer>::parseRelationalExpression):
(WGSL::Parser<Lexer>::parseShiftExpression):
(WGSL::Parser<Lexer>::parseAdditiveExpression):
(WGSL::Parser<Lexer>::parseMultiplicativeExpression):
(WGSL::Parser<Lexer>::parseUnaryExpression):
(WGSL::Parser<Lexer>::parseSingularExpression):
(WGSL::Parser<Lexer>::parsePostfixExpression):
(WGSL::Parser<Lexer>::parsePrimaryExpression):
(WGSL::Parser<Lexer>::parseExpression):
(WGSL::Parser<Lexer>::parseLHSExpression):
(WGSL::Parser<Lexer>::parseCoreLHSExpression):
(WGSL::Parser<Lexer>::parseArgumentExpressionList):
- WGSL/Parser.h: Copied from Source/WebGPU/WGSL/CompilationMessage.h.
- WGSL/WGSL.cpp:
(WGSL::staticCheck):
(WGSL::SuccessfulCheck::SuccessfulCheck):
- WGSL/WGSL.h:
- WebGPU.xcodeproj/project.pbxproj:
- 2:16 PM Changeset in webkit [291074] by
-
- 9 edits in branches/safari-613-branch
Cherry-pick r290515. rdar://problem/89376484
[WebAuthn] Use default pubKeyCredParams if empty in makeCredential
https://bugs.webkit.org/show_bug.cgi?id=237109
rdar://problem/89376484
Reviewed by Brent Fulgham.
Source/WebCore:
The Web Authentication level 2 spec was updated to clarify that
a set of default pubKeyCredParams should be used if the list
supplied by the RP is empty. This patch starts using
the default and updates associated tests.
- Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::create const):
- Modules/webauthn/PublicKeyCredentialCreationOptions.h:
- Modules/webauthn/WebAuthenticationConstants.h:
LayoutTests:
Update tests to take in account using default pubKeyCredParams.
- http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure.https.html:
- http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290515 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:16 PM Changeset in webkit [291073] by
-
- 5 edits2 adds in branches/safari-613-branch
Cherry-pick r290760. rdar://problem/83745510
Rendering issues with many dynamically-added sticky elements inside overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=237378
<rdar://83745510>
Reviewed by Cameron McCormack.
Source/WebCore:
A bug was filed describing a symptom where position:sticky elements would eventually
fail to render when many of them were dynamically added inside a non-stacking context
overflow scroll.
Debugging showed that CALayers were accumulating, causing us to hit per-process IOSurface
limits, at which point content fails to render (this is being fixed via rdar://89640915).
Further debugging showed that these layers were unparented, and being entrained by
ScrollingStateStickyNodes, which were accumulating in ScrollingStateTree's m_unparentedNodes.
This happened because with this scrolling configuration, each ScrollingStateStickyNode
is parented via a ScrollingStateOverflowScrollProxyNode which is referenced by entries
in RenderLayerBacking's m_ancestorClippingStack. On cleanup, the ScrollingStateOverflowScrollProxyNode
was unparented first, leaving the ScrollingStateStickyNode in m_unparentedNodes.
The fix is to have ScrollingStateTree::unparentChildrenAndDestroyNode() remove nodes
from m_unparentedNodes.
To test, add a m_unparentedNodes count to scrollingStateTreeAsText output, which means
having scrollingStateTreeAsText() as a member function on ScrollingStateTree.
Test: scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes.html
- page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText const):
- page/scrolling/ScrollingStateTree.cpp: (WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode): (WebCore::ScrollingStateTree::scrollingStateTreeAsText const):
- page/scrolling/ScrollingStateTree.h:
LayoutTests:
- scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes-expected.txt: Added.
- scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:16 PM Changeset in webkit [291072] by
-
- 27 edits4 adds in branches/safari-613-branch
Cherry-pick r290646. rdar://problem/88911184
focus({preventScroll: true}) does not prevent scrolling on iOS
https://bugs.webkit.org/show_bug.cgi?id=236584
rdar://88911184
Reviewed by Simon Fraser.
Source/WebCore:
Plumb
FocusOptionsthroughElement::dispatchFocusEvent()as well as the chrome client hooks for
elementDidRefocusandelementDidFocus, instead of just aFocusDirectionflag.
- dom/Document.cpp: (WebCore::Document::setFocusedElement):
- dom/Element.cpp: (WebCore::Element::focus): (WebCore::Element::dispatchFocusEvent):
- dom/Element.h:
- html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::dispatchFocusEvent):
- html/HTMLSelectElement.h:
- html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
- html/HTMLTextFormControlElement.h:
- loader/EmptyClients.h:
- page/ChromeClient.h: (WebCore::ChromeClient::elementDidFocus): (WebCore::ChromeClient::elementDidRefocus):
- page/FocusController.cpp: (WebCore::dispatchEventsOnWindowAndFocusedElement): (WebCore::FocusController::setFocusedElement):
Source/WebKit:
Add support for
preventScrollon iOS by avoiding UI-side zooming/scrolling to reveal the focused element if it
was focused withpreventScroll: true. See below for more details.
Tests: fast/forms/select-focus-prevent-scroll.html
fast/forms/text-field-focus-prevent-scroll.html
- Shared/FocusedElementInformation.cpp: (WebKit::FocusedElementInformation::encode const): (WebKit::FocusedElementInformation::decode):
- Shared/FocusedElementInformation.h:
Add a boolean flag to
FocusedElementInformationto indicate whether or not scrolling to reveal the focused
element should be prevented.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _zoomToRevealFocusedElement]):
Only zoom to reveal the focused element if the focused element information's
preventScrollflag isNO.
(-[WKContentView _elementDidBlur]):
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::elementDidFocus): (WebKit::WebChromeClient::elementDidRefocus):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::elementDidRefocus): (WebKit::WebPage::elementDidFocus):
Use
FocusOptionsto set thepreventScrollflag when propagatingFocusedElementInformation.
- WebProcess/WebPage/WebPage.h:
Source/WebKitLegacy/ios:
Adjust the method signature of elementDidFocus. See WebCore ChangeLog for more information.
- WebCoreSupport/WebChromeClientIOS.h:
- WebCoreSupport/WebChromeClientIOS.mm: (WebChromeClientIOS::elementDidFocus):
Source/WebKitLegacy/mac:
Adjust the method signature of elementDidFocus. See WebCore ChangeLog for more information.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm: (WebChromeClient::elementDidFocus):
LayoutTests:
Add a couple of new layout tests to verify that passing in
{ preventScroll: true }for focus options causes
us to avoid scrolling to reveal focused select elements and text fields.
- fast/forms/select-focus-prevent-scroll-expected.txt: Added.
- fast/forms/select-focus-prevent-scroll.html: Added.
- fast/forms/text-field-focus-prevent-scroll-expected.txt: Added.
- fast/forms/text-field-focus-prevent-scroll.html: Added.
- resources/ui-helper.js:
Also make it safe to call
waitForInputSessionToDismiss()in a platform-agnostic test, by bailing early if
we're not on iOS, using WebKit2.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290646 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:16 PM Changeset in webkit [291071] by
-
- 15 edits4 adds in branches/safari-613-branch/LayoutTests
Cherry-pick r290556. rdar://problem/89525864
Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=237243
Reviewed by Youenn Fablet.
Upstream commit: https://github.com/web-platform-tests/wpt/commit/9261ca87db106c1f31f1ab4f54b8f4a2617cbc24
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-expected.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-ref.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-expected.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-ref.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
- web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-and-contenteditable.tentative.html: Added.
- web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt:
- web-platform-tests/inert/inert-iframe-hittest.tentative.html:
- web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt:
- web-platform-tests/inert/inert-iframe-tabbing.tentative.html:
- web-platform-tests/inert/w3c-import.log:
LayoutTests:
- TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290556 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:15 PM Changeset in webkit [291070] by
-
- 87 edits3 deletes in branches/safari-613-branch
Cherry-pick r289790. rdar://problem/89997669
ExtensionsGL is not useful class, it should be removed
https://bugs.webkit.org/show_bug.cgi?id=236490
Source/WebCore:
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.
Remove ExtensionsGL. It is not a useful class, it does not abstract anything.
It has similar functions to GraphicsContextGL subclass, and needs and uses GraphicsContextGL subclass
underneath.
It is a problematic class as it is obtained through a virtual function, but that
virtual function override is being called during construction of the GraphicsContextGL subclass
instance.
Also the ExtensionsGL will neccessarily call back to GraphicsContextGL subclass instance being
constructed.
Current getExtensions() virtual function override calls are expected to go
where the C++ defines them going during construction.
Current calls back to the GraphicsContextGL subclass instance during construction *should*
access state that is already initialized, but it is quite error-prone and hard to
analyze.
Move ExtensionsGL functions to GraphicsContextGL. Make call-sites call the context instead of the
extension helper. Rename the functions with pattern "isSupported" -> "isExtensionSupported".
Remove GraphicsContextGL::getExtensions() virtual function call.
For legacy contexts GraphicsContextGLOpenGL, GraphicsContextGLOpenGLES preserve their
ExtensionGLCommon subclasses. Accessing it happens from a normal function from legacy call sites
that know that they're calling GraphicsContextGLOpenGL.
For GraphicsContextGLANGLE, move context initialization code to GraphicsContextGLANGLE::initialize()
instead of the constructor. This way the initialization code can call virtual functions and the calls
are delivered normally to the last overrider.
RemoteGraphicsContextGLProxyBase can now be removed, as it is unneeded anyway and its added virtual
functions would cause inconvenient naming duplication.
No new tests, a refactor.
- CMakeLists.txt:
- Headers.cmake:
- Modules/webxr/WebXROpaqueFramebuffer.cpp: (WebCore::WebXROpaqueFramebuffer::startFrame): (WebCore::WebXROpaqueFramebuffer::setupFramebuffer):
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/canvas/ANGLEInstancedArrays.cpp: (WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays): (WebCore::ANGLEInstancedArrays::supported):
- html/canvas/ANGLEInstancedArrays.h:
- html/canvas/EXTColorBufferFloat.cpp: (WebCore::EXTColorBufferFloat::EXTColorBufferFloat): (WebCore::EXTColorBufferFloat::supported):
- html/canvas/EXTColorBufferFloat.h:
- html/canvas/EXTColorBufferHalfFloat.cpp: (WebCore::EXTColorBufferHalfFloat::EXTColorBufferHalfFloat): (WebCore::EXTColorBufferHalfFloat::supported):
- html/canvas/EXTColorBufferHalfFloat.h:
- html/canvas/EXTFloatBlend.cpp: (WebCore::EXTFloatBlend::EXTFloatBlend): (WebCore::EXTFloatBlend::supported):
- html/canvas/EXTFloatBlend.h:
- html/canvas/EXTTextureCompressionRGTC.cpp: (WebCore::EXTTextureCompressionRGTC::EXTTextureCompressionRGTC):
- html/canvas/KHRParallelShaderCompile.cpp: (WebCore::KHRParallelShaderCompile::KHRParallelShaderCompile): (WebCore::KHRParallelShaderCompile::supported):
- html/canvas/KHRParallelShaderCompile.h:
- html/canvas/OESFBORenderMipmap.cpp: (WebCore::OESFBORenderMipmap::OESFBORenderMipmap): (WebCore::OESFBORenderMipmap::supported):
- html/canvas/OESFBORenderMipmap.h:
- html/canvas/OESTextureFloat.cpp: (WebCore::OESTextureFloat::OESTextureFloat): (WebCore::OESTextureFloat::supported):
- html/canvas/OESTextureFloat.h:
- html/canvas/OESTextureHalfFloat.cpp: (WebCore::OESTextureHalfFloat::OESTextureHalfFloat): (WebCore::OESTextureHalfFloat::supported):
- html/canvas/OESTextureHalfFloat.h:
- html/canvas/OESVertexArrayObject.cpp:
- html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::initializeShaderExtensions): (WebCore::WebGL2RenderingContext::getExtension): (WebCore::WebGL2RenderingContext::getSupportedExtensions):
- html/canvas/WebGLColorBufferFloat.cpp: (WebCore::WebGLColorBufferFloat::WebGLColorBufferFloat): (WebCore::WebGLColorBufferFloat::supported):
- html/canvas/WebGLColorBufferFloat.h:
- html/canvas/WebGLCompressedTextureASTC.cpp: (WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC): (WebCore::WebGLCompressedTextureASTC::supported):
- html/canvas/WebGLCompressedTextureASTC.h:
- html/canvas/WebGLCompressedTextureATC.cpp: (WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC): (WebCore::WebGLCompressedTextureATC::supported):
- html/canvas/WebGLCompressedTextureATC.h:
- html/canvas/WebGLCompressedTextureETC.cpp: (WebCore::WebGLCompressedTextureETC::WebGLCompressedTextureETC): (WebCore::WebGLCompressedTextureETC::supported):
- html/canvas/WebGLCompressedTextureETC.h:
- html/canvas/WebGLCompressedTextureETC1.cpp: (WebCore::WebGLCompressedTextureETC1::WebGLCompressedTextureETC1): (WebCore::WebGLCompressedTextureETC1::supported):
- html/canvas/WebGLCompressedTextureETC1.h:
- html/canvas/WebGLCompressedTexturePVRTC.cpp: (WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC): (WebCore::WebGLCompressedTexturePVRTC::supported):
- html/canvas/WebGLCompressedTexturePVRTC.h:
- html/canvas/WebGLCompressedTextureS3TC.cpp: (WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC): (WebCore::WebGLCompressedTextureS3TC::supported):
- html/canvas/WebGLCompressedTextureS3TC.h:
- html/canvas/WebGLCompressedTextureS3TCsRGB.cpp: (WebCore::WebGLCompressedTextureS3TCsRGB::WebGLCompressedTextureS3TCsRGB): (WebCore::WebGLCompressedTextureS3TCsRGB::supported):
- html/canvas/WebGLCompressedTextureS3TCsRGB.h:
- html/canvas/WebGLDebugShaders.cpp: (WebCore::WebGLDebugShaders::WebGLDebugShaders): (WebCore::WebGLDebugShaders::getTranslatedShaderSource):
- html/canvas/WebGLDepthTexture.cpp: (WebCore::WebGLDepthTexture::WebGLDepthTexture): (WebCore::WebGLDepthTexture::supported):
- html/canvas/WebGLDrawBuffers.cpp: (WebCore::WebGLDrawBuffers::WebGLDrawBuffers): (WebCore::WebGLDrawBuffers::supported): (WebCore::WebGLDrawBuffers::drawBuffersWEBGL): (WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
- html/canvas/WebGLFramebuffer.cpp: (WebCore::getClearBitsByAttachmentType): (WebCore::getClearBitsByFormat): (WebCore::WebGLFramebuffer::checkStatus const): (WebCore::WebGLFramebuffer::drawBuffersIfNecessary): (WebCore::WebGLFramebuffer::getDrawBuffer):
- html/canvas/WebGLMultiDraw.cpp: (WebCore::WebGLMultiDraw::WebGLMultiDraw): (WebCore::WebGLMultiDraw::supported):
- html/canvas/WebGLMultiDraw.h:
- html/canvas/WebGLRenderingContext.cpp: (WebCore::WebGLRenderingContext::getExtension): (WebCore::WebGLRenderingContext::getSupportedExtensions): (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): (WebCore::WebGLRenderingContext::getMaxDrawBuffers): (WebCore::WebGLRenderingContext::getMaxColorAttachments): (WebCore::WebGLRenderingContext::validateBlendEquation):
- html/canvas/WebGLRenderingContextBase.cpp: (WebCore::getChannelBitsByFormat): (WebCore::possibleFormatAndTypeForInternalFormat): (WebCore::WebGLRenderingContextBase::setupFlags): (WebCore::WebGLRenderingContextBase::getParameter): (WebCore::WebGLRenderingContextBase::getProgramParameter): (WebCore::WebGLRenderingContextBase::getShaderParameter): (WebCore::WebGLRenderingContextBase::getTexParameter): (WebCore::WebGLRenderingContextBase::getUniform): (WebCore::WebGLRenderingContextBase::hint): (WebCore::WebGLRenderingContextBase::readPixels): (WebCore::WebGLRenderingContextBase::renderbufferStorageImpl): (WebCore::WebGLRenderingContextBase::validateTexFuncFormatAndType): (WebCore::WebGLRenderingContextBase::texParameter): (WebCore::WebGLRenderingContextBase::loseContextImpl): (WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData): (WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions): (WebCore::WebGLRenderingContextBase::validateCompressedTexSubDimensions): (WebCore::WebGLRenderingContextBase::maybeRestoreContext): (WebCore::WebGLRenderingContextBase::getMaxDrawBuffers): (WebCore::WebGLRenderingContextBase::getMaxColorAttachments): (WebCore::WebGLRenderingContextBase::enableSupportedExtension):
- html/canvas/WebGLVertexArrayObjectOES.cpp:
- loader/FrameLoaderClient.h:
- platform/graphics/ExtensionsGL.h: Removed.
- platform/graphics/GraphicsContextGL.cpp: (WebCore::GraphicsContextGL::computeFormatAndTypeParameters):
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/RemoteGraphicsContextGLProxyBase.cpp:
- platform/graphics/RemoteGraphicsContextGLProxyBase.h:
- platform/graphics/angle/ExtensionsGLANGLE.cpp: Removed.
- platform/graphics/angle/ExtensionsGLANGLE.h: Removed.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::initialize): (WebCore::GraphicsContextGLANGLE::platformInitializeContext): (WebCore::GraphicsContextGLANGLE::platformInitialize): (WebCore::GraphicsContextGLANGLE::texImage2D): (WebCore::GraphicsContextGLANGLE::validateDepthStencil): (WebCore::GraphicsContextGLANGLE::supportsExtension): (WebCore::GraphicsContextGLANGLE::ensureExtensionEnabled): (WebCore::GraphicsContextGLANGLE::isExtensionEnabled): (WebCore::GraphicsContextGLANGLE::getGraphicsResetStatusARB): (WebCore::GraphicsContextGLANGLE::getTranslatedShaderSourceANGLE): (WebCore::GraphicsContextGLANGLE::drawBuffersEXT): (WebCore::GraphicsContextGLANGLE::adjustWebGL1TextureInternalFormat):
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/cocoa/GraphicsContextGLCocoa.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::create): (WebCore::GraphicsContextGLCocoa::GraphicsContextGLCocoa): (WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE): (WebCore::GraphicsContextGLCocoa::platformInitializeContext): (WebCore::GraphicsContextGLCocoa::platformInitialize): (WebCore::GraphicsContextGLCocoa::reshapeDisplayBufferBacking): (WebCore::GraphicsContextGLCocoa::allocateAndBindDisplayBufferBacking): (WebCore::GraphicsContextGLCocoa::bindDisplayBufferBacking): (WebCore::GraphicsContextGLCocoa::prepareForDisplay):
- platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm: (WebCore::createWebProcessGraphicsContextGL):
- platform/graphics/opengl/ExtensionsGLOpenGL.cpp: (WebCore::ExtensionsGLOpenGL::platformSupportsExtension):
- platform/graphics/opengl/ExtensionsGLOpenGL.h:
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp: (WebCore::ExtensionsGLOpenGLCommon::supports): (WebCore::ExtensionsGLOpenGLCommon::ensureEnabled):
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
- platform/graphics/opengl/ExtensionsGLOpenGLES.cpp: (WebCore::ExtensionsGLOpenGLES::isEnabled): (WebCore::ExtensionsGLOpenGLES::getGraphicsResetStatusARB): (WebCore::ExtensionsGLOpenGLES::platformSupportsExtension):
- platform/graphics/opengl/ExtensionsGLOpenGLES.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: (WebCore::GraphicsContextGLOpenGL::getExtensions): (WebCore::GraphicsContextGLOpenGL::validateDepthStencil): (WebCore::GraphicsContextGLOpenGL::supportsExtension): (WebCore::GraphicsContextGLOpenGL::ensureExtensionEnabled): (WebCore::GraphicsContextGLOpenGL::isExtensionEnabled): (WebCore::GraphicsContextGLOpenGL::getGraphicsResetStatusARB): (WebCore::GraphicsContextGLOpenGL::drawBuffersEXT): (WebCore::GraphicsContextGLOpenGL::getTranslatedShaderSourceANGLE):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp: (WebCore::GraphicsContextGLOpenGL::texImage2D): (WebCore::GraphicsContextGLOpenGL::getExtensions):
- platform/graphics/opengl/GraphicsContextGLOpenGLES.cpp: (WebCore::GraphicsContextGLOpenGL::reshapeFBOs): (WebCore::GraphicsContextGLOpenGL::validateAttributes): (WebCore::GraphicsContextGLOpenGL::getExtensions):
- platform/graphics/texmap/BitmapTextureGL.cpp:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp: (WebCore::GraphicsContextGLTextureMapper::create): (WebCore::createWebProcessGraphicsContextGL):
- platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp: (WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE): (WebCore::GraphicsContextGLTextureMapper::prepareForDisplay): (WebCore::GraphicsContextGLTextureMapper::reshapeDisplayBufferBacking):
- platform/graphics/texmap/TextureMapperGL.cpp:
Source/WebKit:
Move the RemoteGraphicsContextGLProxyBase functions to
RemoteGraphicsContextGL. The ..Base can now be removed
as ExtensionGL is removed.
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp: (WebKit::RemoteGraphicsContextGL::workQueueInitialize): (WebKit::RemoteGraphicsContextGL::ensureExtensionEnabled): (WebKit::RemoteGraphicsContextGL::markContextChanged):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h: (getGraphicsResetStatusARB): (getTranslatedShaderSourceANGLE): (drawBuffersEXT):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp: (WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy): (WebKit::RemoteGraphicsContextGLProxy::setContextVisibility): (WebKit::RemoteGraphicsContextGLProxy::isGLES2Compliant const): (WebKit::RemoteGraphicsContextGLProxy::markContextChanged): (WebKit::RemoteGraphicsContextGLProxy::supportsExtension): (WebKit::RemoteGraphicsContextGLProxy::ensureExtensionEnabled): (WebKit::RemoteGraphicsContextGLProxy::isExtensionEnabled): (WebKit::RemoteGraphicsContextGLProxy::initialize): (WebKit::RemoteGraphicsContextGLProxy::reshape):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
Tools:
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-14
Reviewed by Dean Jackson.
Update manually implemented functions.
- Scripts/generate-gpup-webgl:
- TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:15 PM Changeset in webkit [291069] by
-
- 5 edits5 adds in branches/safari-613-branch
Cherry-pick r289071. rdar://problem/89997434
ANGLE Metal and ANGLE OpenGL cannot be initialised one after the other
https://bugs.webkit.org/show_bug.cgi?id=236030
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-03
Reviewed by Dean Jackson.
Source/WebCore:
Test: webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html
Remove the power-preference specific native displays.
Add a native display for opengl, and use the default
one for Metal.
After the recent ANGLE roll, ANGLE uses (native display, power preference)
as the key to look up EGLDisplays.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp: (WebCore::GraphicsContextGLANGLE::releaseThreadResources):
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::initializeEGLDisplay):
LayoutTests:
- webgl/pending/conformance2/misc/webgl2-after-webgl1-bug-expected.txt: Added.
- webgl/pending/conformance2/misc/webgl2-after-webgl1-bug.html: Added.
- webgl/resources/pending_webgl_test_files/conformance2/misc/webgl2-after-webgl1-bug.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289071 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [291068] by
-
- 7 edits in trunk
[web-animations] dominant-baseline should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237645
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::dominantBaseline const):
(WebCore::RenderStyle::setDominantBaseline):
- 2:07 PM Changeset in webkit [291067] by
-
- 1 edit1 add in trunk/Tools
[Tools] Add script to query results database
https://bugs.webkit.org/show_bug.cgi?id=233800
Reviewed by Jonathan Bedard.
This commit adds a script to query https://results.webkit.org for the
history of a testcase for a given bot/config. It includes a
--only-changesswitch to show only revisions when the actual changed
from the previous one (useful to check when a test started failing).
For now it supports only layout-tests and has GTK/WPE bots predefined,
although full configurations (the query string for results.webkit.org)
can be used to access other bots.
- Scripts/webkit-test-results: Added.
- 2:05 PM Changeset in webkit [291066] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, reverting r290750.
Bug has been fixed, expectations are no longer needed.
Reverted changeset:
"[ iOS Debug ] editing/async-clipboard/* 20 tests are flaky
timeouts on iOS."
https://bugs.webkit.org/show_bug.cgi?id=237372
https://commits.webkit.org/r290750
- 1:46 PM Changeset in webkit [291065] by
-
- 2 edits in trunk/Tools
[webkitcorepy] Prefer xdg-open to open in linux
https://bugs.webkit.org/show_bug.cgi?id=237655
Reviewed by Jonathan Bedard.
- Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:
(Terminal.open_url):
- 1:06 PM Changeset in webkit [291064] by
-
- 1 edit in branches/safari-613-branch/Source/WebCore/page/csp/ContentSecurityPolicy.cpp
Unreviewed build fix. rdar://83734079
error: no matching member function for call to 'reportViolation'
- 1:05 PM Changeset in webkit [291063] by
-
- 7 edits1 add in trunk/Tools
[results.webkit.org]Add selection box for results database.
https://bugs.webkit.org/show_bug.cgi?id=233958
Reviewed by Jonathan Bedard.
Allow user can drag a selection box to select multiple dots.
Allow user to use cmd + click to select multiple dots.
Allow user to use shift + click to select a row of dots.
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js:
(TimelineFromEndpoint):
(TimelineFromEndpoint.prototype.update):
(TimelineFromEndpoint.prototype.getTestResultStatus):
(TimelineFromEndpoint.prototype.getTestResultUrl):
(TimelineFromEndpoint.prototype.render):
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/tooltip.js:
- Scripts/libraries/resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
(pointRectCollisionDetect): Detact if a point and a rect have a insertion.
(rectRectCollisionDetect): Detact if two rects have a insertion.
(XScrollableCanvasProvider): Add selection box.
(xScrollStreamRenderFactory):
(Timeline.CanvasSeriesComponent): Add selection box , cmd + click and shift + click.
(prototype.ExpandableSeriesComponent):
(prototype.Timeline.CanvasContainer):
Canonical link: https://commits.webkit.org/248236@main
- 12:59 PM Changeset in webkit [291062] by
-
- 2 edits in trunk/Source/WebKit
The accessibility library should be soft linked optionally
https://bugs.webkit.org/show_bug.cgi?id=236513
Reviewed by Geoffrey Garen.
The accessibility library should be soft linked optionally, since it is not always present.
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::handleAXPreferenceChange):
(WebKit::AuxiliaryProcess::handlePreferenceChange):
- 12:44 PM Changeset in webkit [291061] by
-
- 2 edits in trunk/Source/WebKit
[CMake] Associate platform specific configuration with WinCairo
https://bugs.webkit.org/show_bug.cgi?id=237668
Reviewed by Basuke Suzuki.
Move all cairo and curl platform configuration under a check for WinCairo. This arranges
platform config in a consistent manner.
- PlatformWin.cmake:
- 12:29 PM Changeset in webkit [291060] by
-
- 2 edits in trunk/Tools
[EWS] Support concept of 'blocked' pull requests
https://bugs.webkit.org/show_bug.cgi?id=237370
<rdar://problem/89689094>
Reviewed by Ryan Haddad.
cq- communicates that a change is blocked, either by an engineer or by a failed EWS run.
"changes requested" is not as dramatic as "cq-", so we are adding the concept of a "blocked"
pull request, which has simlar effects to "cq-".
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin._is_pr_blocked): Check if a pull request currently has the "blocked" tag.
(GitHubMixin.modify_label): Add or remove a label from a pull request.
(SetCommitQueueMinusFlagOnPatch.hideStepIf): Added.
(BlockPullRequest): Added.
(AnalyzeCompileWebKitResults.analyzeResults): Block PR if failed.
(AnalyzeLayoutTestsResults.report_failure): Ditto.
Canonical link: https://commits.webkit.org/248233@main
- 11:59 AM Changeset in webkit [291059] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] 2 imported/w3c/web-platform-tests/content-security-policy/connect-src/* tests are flaky text failures
https://bugs.webkit.org/show_bug.cgi?id=237603
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 11:48 AM Changeset in webkit [291058] by
-
- 1 copy in tags/Safari-614.1.5.9
Tag Safari-614.1.5.9.
- 11:43 AM Changeset in webkit [291057] by
-
- 2 edits in trunk/Source/WebKit
File System Access: disallows names that are not permitted by underlying file system
https://bugs.webkit.org/show_bug.cgi?id=237635
rdar://89291566
We use FileSystem::fileSystemRepresentation to convert input name to a name that is permitted in current file
system. This patch makes File System Access API to throw error if the input name does not match the converted
name.
Reviewed by Youenn Fablet.
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::isValidFileName):
(WebKit::FileSystemStorageHandle::requestCreateHandle):
(WebKit::FileSystemStorageHandle::removeEntry):
(WebKit::FileSystemStorageHandle::move):
- 11:03 AM Changeset in webkit [291056] by
-
- 4 edits in trunk/Source/WebKit
Update feature flags for WebGL
https://bugs.webkit.org/show_bug.cgi?id=237666
rdar://problem/90040981
Reviewed by Geoffrey Garen.
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-watchos.plist:
- 10:40 AM Changeset in webkit [291055] by
-
- 3 edits in trunk
[iOS] Hard link AVPictureInPictureController
https://bugs.webkit.org/show_bug.cgi?id=237227
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 10:32 AM Changeset in webkit [291054] by
-
- 6 edits in trunk
[css-lists] css/css-lists/inherit-overwrites.html and css/css-lists/li-counter-increment-computed-style.html are unique failures
https://bugs.webkit.org/show_bug.cgi?id=237642
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-lists/inherit-overwrites-expected.txt:
- web-platform-tests/css/css-lists/li-counter-increment-computed-style-expected.txt:
- web-platform-tests/html/rendering/non-replaced-elements/lists/lists-styles-expected.txt:
Source/WebCore:
A std::nullopt means the property isn't set, not that it shoudl be 0.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::counterToCSSValue):
- 10:16 AM Changeset in webkit [291053] by
-
- 18 edits in trunk/Source
Move RemoteLayerBackingStore::Buffer.isVolatile into ImageBufferBackend
https://bugs.webkit.org/show_bug.cgi?id=237631
Reviewed by Tim Horton.
Source/WebCore:
'isVolatile' is a property of a specific image buffer, so it makes more sense to have it in
ImageBuffer[Backend] than RemoteLayerBackingStore. This also allows GPU Process code to
maintain volatility state in the web process, which reduces the amount of IPC needed when
making the front buffer non-volatile before display.
So ImageBufferBackend gets volatilityState()/setVolatilityState(), accessed via ImageBuffer.
This state is maintained by RemoteRenderingBackendProxy for remote buffers. We set the state
to volatile when we receive the IPC reply for markSurfacesVolatile(), which requires
changing the reply to list buffers for which making volatile was successful.
RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile() can now
early return when the buffer is already non-volatile, and we have a backend handle (recall
that we clear backend handles when trying to make a buffer volatile).
- platform/graphics/ConcreteImageBuffer.h:
- platform/graphics/ImageBuffer.h:
- platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::volatilityState const):
(WebCore::ImageBufferBackend::setVolatilityState):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::setVolatile):
(WebCore::ImageBufferIOSurfaceBackend::setNonVolatile):
(WebCore::ImageBufferIOSurfaceBackend::volatilityState const):
(WebCore::ImageBufferIOSurfaceBackend::setVolatilityState):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
Source/WebKit:
'isVolatile' is a property of a specific image buffer, so it makes more sense to have it in
ImageBuffer[Backend] than RemoteLayerBackingStore. This also allows GPU Process code to
maintain volatility state in the web process, which reduces the amount of IPC needed when
making the front buffer non-volatile before display.
So ImageBufferBackend gets volatilityState()/setVolatilityState(), accessed via ImageBuffer.
This state is maintained by RemoteRenderingBackendProxy for remote buffers. We set the state
to volatile when we receive the IPC reply for markSurfacesVolatile(), which requires
changing the reply to list buffers for which making volatile was successful.
RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile() can now
early return when the buffer is already non-volatile, and we have a backend handle (recall
that we clear backend handles when trying to make a buffer volatile).
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::markSurfacesVolatile):
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applySwappedBuffers):
(WebKit::RemoteLayerBackingStore::setBufferVolatile):
(WebKit::RemoteLayerBackingStore::setBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::Buffer::discard):
- Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::RemoteLayerWithRemoteRenderingBackingStoreCollection):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::makeFrontBufferNonVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::collectBackingStoreBufferIdentifiersToMarkVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::sendMarkBuffersVolatile): Call the completion handler inside the callback.
- WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:
(WebKit::ImageBufferBackendHandleSharing::hasBackendHandle const):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::swapToValidFrontBuffer):
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile):
(WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:
(WebKit::ImageBufferRemoteIOSurfaceBackend::createBackendHandle const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::hasBackendHandle const):
- WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
- 10:13 AM Changeset in webkit [291052] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- platform/ios-wk2/TestExpectations:
- 9:47 AM Changeset in webkit [291051] by
-
- 23 edits2 adds in trunk/Source
Allow to pass webrtc video frame buffers through RealtimeMediaSource based pipelines
https://bugs.webkit.org/show_bug.cgi?id=236131
<rdar://problem/88805580>
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
Update routines to take VideoFrameBuffer instead of VideoFrame.
Fix bugs in handling of YUV conversion libwebrtc routines.
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
- Source/webrtc/sdk/WebKit/WebKitUtilities.h:
- Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
Source/WebCore:
Introduce VideoFrameLibWebRTC as a wrapper to libwebrtc video frame buffer.
In case we send VideoFrameLibWebRTC through RealtimeOutgoingVideoSourceCocoa, directly send the video frame buffer.
When receiving libwebrtc video frame buffers in RealtimeIncomingVideoSourceCocoa, make use of VideoFrameLibWebRTC to delay conversion of the video frame buffer in a CVPixelBufferRef.
In most cases, the conversion is unneeded as the video frame buffer will be used for rendering and will be copied to shared memory through SharedVideoFrameWriter.
Fix bugs in handling of YUV conversion libwebrtc routines.
Minor refactoring to have a default asVideoFrameCV method implementatin in VideoFrame.
Covered by existing tests.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/VideoFrame.cpp:
- platform/VideoFrame.h:
- platform/cocoa/SharedVideoFrameInfo.h:
- platform/cocoa/SharedVideoFrameInfo.mm:
- platform/mediastream/libwebrtc/VideoFrameLibWebRTC.cpp: Added.
- platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h: Added.
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
Source/WebKit:
Add optimization support for VideoFrameLibWebRTC writing into shared memory.
This removes the need to convert the webrtc video frame into a CVPixelBuffer, just to send it to GPUProcess for rendering.
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
- WebProcess/GPU/media/RemoteVideoFrameProxy.h:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.h:
- 7:58 AM Changeset in webkit [291050] by
-
- 4 edits in trunk/Tools
[git-webkit] Extract revision from
git svn dcommit(Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=236849
<rdar://problem/89155179>
Unreviewed follow-up fix.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
(Land.main): Only capture stdout.
Canonical link: https://commits.webkit.org/248224@main
- 7:25 AM Changeset in webkit [291049] by
-
- 9 edits in trunk
WebRTC decoded frames are not correctly rotated in case GPU Process DOM rendering flag is set to true
https://bugs.webkit.org/show_bug.cgi?id=237468
<rdar://problem/89807876>
Reviewed by Eric Carlson.
Source/WebCore:
We were creating remote video frames at webrtc decoder level but at that level, we do not know yet the rotation and timestamps of the frame.
We need to set those values when the frame is exposed to RealtimeIncomingVideoSource.
Previous tests did not catch the regression as we were correctly computing the size of the video using the webrtc rotation and not the rotation from the frame.
We should probably migrate to RemoteVideoFrameProxy as a buffer wrapper so that we can easily create remote video frames from a RemoteVideoFrameProxy buffer.
In the meantime, we use const_cast in VideoFrame::initializeCharacteristics.
Covered by updated test.
- platform/VideoFrame.cpp:
- platform/VideoFrame.h:
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- webrtc/video-rotation.html:
Observe actual video frame rotation value.
- 6:30 AM Changeset in webkit [291048] by
-
- 10 edits2 adds in trunk/Source
[WinCairo] Improve WCTiledBacking and TextureMapperSparseBackingStore
https://bugs.webkit.org/show_bug.cgi?id=237355
Reviewed by Don Olmstead.
Source/WebCore:
- platform/graphics/texmap/TextureMapperSparseBackingStore.cpp:
(WebCore::TextureMapperSparseBackingStore::setSize):
(WebCore::TextureMapperSparseBackingStore::paintToTextureMapper):
(WebCore::TextureMapperSparseBackingStore::drawBorder):
(WebCore::TextureMapperSparseBackingStore::drawRepaintCounter):
(WebCore::TextureMapperSparseBackingStore::updateContents):
(WebCore::TextureMapperSparseBackingStore::removeTile):
(WebCore::TextureMapperSparseBackingStore::TextureMapperSparseBackingStore): Deleted.
(WebCore::TextureMapperSparseBackingStore::removeUncoveredTiles): Deleted.
(WebCore::TextureMapperSparseBackingStore::tileDimension const): Deleted.
- platform/graphics/texmap/TextureMapperSparseBackingStore.h:
- platform/graphics/texmap/TextureMapperTile.h:
Source/WebKit:
TextureMapperSparseBackingStore simply had a Vector to have all
tiles. If a web page had a very large layer, the vector was
extended to be able to keep all tiles, and it performed poorly.
Use a HashMap to keep tiles only in the coverage rect.
GraphicsLayerWC had only one dirty rect, and created a
ImageBuffer for all tiles to update. Change it to have one dirty
rect for one tile, and create a ImageBuffer for every dirty tile.
- GPUProcess/graphics/wc/WCScene.cpp:
(WebKit::WCScene::update):
- PlatformWin.cmake:
- WebProcess/WebPage/wc/DrawingAreaWC.cpp:
(WebKit::flushLayerImageBuffers):
- WebProcess/WebPage/wc/GraphicsLayerWC.cpp:
(WebKit::GraphicsLayerWC::setSize):
(WebKit::GraphicsLayerWC::recursiveCommitChanges):
- WebProcess/WebPage/wc/WCTileGrid.cpp: Added.
(WebKit::WCTileGrid::Tile::Tile):
(WebKit::WCTileGrid::Tile::addDirtyRect):
(WebKit::WCTileGrid::Tile::clearDirtyRect):
(WebKit::WCTileGrid::Tile::hasDirtyRect const):
(WebKit::WCTileGrid::setSize):
(WebKit::WCTileGrid::tileRectFromPixelRect):
(WebKit::WCTileGrid::tileSizeFromPixelSize):
(WebKit::WCTileGrid::tilePixelSize const):
(WebKit::WCTileGrid::addDirtyRect):
(WebKit::WCTileGrid::clearDirtyRects):
(WebKit::WCTileGrid::ensureTile):
(WebKit::WCTileGrid::setCoverageRect):
- WebProcess/WebPage/wc/WCTileGrid.h: Added.
(WebKit::WCTileGrid::Tile::willRemove const):
(WebKit::WCTileGrid::Tile::setWillRemove):
(WebKit::WCTileGrid::Tile::dirtyRect):
(WebKit::WCTileGrid::tiles):
- WebProcess/WebPage/wc/WCUpateInfo.h:
(WebKit::WCTileUpdate::encode const):
(WebKit::WCTileUpdate::decode):
(WebKit::WCLayerUpateInfo::encode const):
(WebKit::WCLayerUpateInfo::decode):
- 5:44 AM Changeset in webkit [291047] by
-
- 2 edits in trunk/Source/WebCore
[web-animations] increase the max number of animatable properties
https://bugs.webkit.org/show_bug.cgi?id=237651
Reviewed by Antti Koivisto.
We've run out of space in m_propertyToIdMap, the limit was 255.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 5:34 AM Changeset in webkit [291046] by
-
- 6 edits in trunk
[CSS Container Queries] Remove size() function syntax
https://bugs.webkit.org/show_bug.cgi?id=237639
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
Source/WebCore:
Per https://github.com/w3c/csswg-drafts/issues/6870
- css/ContainerQueryParser.cpp:
(WebCore::ContainerQueryParser::consumeContainerQuery):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeSingleContainerName):
Also disallow strings as container names (they need to be identifiers).
- 5:31 AM Changeset in webkit [291045] by
-
- 3 edits in trunk/Tools
[JSC] Make runner should only schedule tests on live remotes
https://bugs.webkit.org/show_bug.cgi?id=237030
Reviewed by Adrian Perez de Castro.
The make runner does static scheduling of tests, i.e. it will
assign tests to all known remotes. In practice, this means that
even though the make runner participates in the retry loop, it
will always end up scheduling any tests that failed to run
(e.g. because the remote was down on startup or went away during
testing) on all remotes, including ones that are known to be down.
This patch makes it slightly more robust by introducing a liveness
check (getLiveRemoteHosts) before the static scheduling, i.e.
- in the initial preparation of the tests to run (prepareArtifacts) and
- in refreshExecution.
It reuses the command to get the number of processors as the
liveness check (it's a command we know currenly works in all
supported remotes), so flips numberOfProcessors inside-out.
While here, it adds getconf _NPROCESSORS_ONLN as a final attempt
to get the number of processors.
This does not mean that the make runner is now robust against
flaky remotes. At the very least, it's still missing an ssh
timeout (so it won't hang e.g. when hosts go away after the
initial connection is established) and child cleanup (e.g. when
bailing early from one remote in forEachRemote, it needs to kill
all children for other remotes, or we might end up retrying while
the old jobs are still running). But it's getting there.
Q: But isn't the GNU parallel runner much better suited for
handling flaky remotes?
A: Yes. However, the make runner is (somewhat) better at keeping
the remote CPUs busy with "fast" remotes, so we may still want to
use it when the remotes are both fast and stable enough. That
said, it still needs to be able to recover from the occasional
failed remote without producing false test failures.
- Scripts/run-jsc-stress-tests:
- Scripts/webkitruby/jsc-stress-test/executor.rb:
Make remoteHosts available to refreshExecution.
- 5:29 AM Changeset in webkit [291044] by
-
- 4 edits in trunk/Source/WebCore
[WinCairo] SpatialNavigation.h(93): error C2365: 'WebCore::None': redefinition; previous definition was 'enumerator'
https://bugs.webkit.org/show_bug.cgi?id=237647
Unreviewed build fix.
Changed WebCore::RectsAlignment to an enum class.
- page/FocusController.cpp:
(WebCore::updateFocusCandidateIfNeeded):
- page/SpatialNavigation.cpp:
(WebCore::FocusCandidate::FocusCandidate):
(WebCore::alignmentForRects):
(WebCore::distanceDataForNode):
- page/SpatialNavigation.h:
(WebCore::FocusCandidate::FocusCandidate):
(): Deleted.
- 5:01 AM Changeset in webkit [291043] by
-
- 7 edits in trunk
[web-animations] color-interpolation-filters should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237637
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::colorInterpolationFilters const):
(WebCore::RenderStyle::setColorInterpolationFilters):
- 4:58 AM Changeset in webkit [291042] by
-
- 7 edits in trunk
[web-animations] clip-rule should support discrete animations
https://bugs.webkit.org/show_bug.cgi?id=237609
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::clipRule const):
(WebCore::RenderStyle::setClipRule):
- 4:55 AM Changeset in webkit [291041] by
-
- 7 edits in trunk
[web-animations] background-blend-mode should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237607
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::backgroundBlendMode const):
(WebCore::RenderStyle::setBackgroundBlendMode):
- 4:52 AM Changeset in webkit [291040] by
-
- 13 edits in trunk
[web-animations] font-family should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237591
Reviewed by Myles Maxfield.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontFamilies):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontFamilies const):
LayoutTests:
- platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt:
- 4:45 AM Changeset in webkit [291039] by
-
- 11 edits in trunk
[web-animations] font-feature-settings should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237587
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- platform/graphics/FontTaggedSettings.cpp:
(WebCore::operator<<):
- platform/graphics/FontTaggedSettings.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontFeatureSettings):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontFeatureSettings const):
- 4:43 AM Changeset in webkit [291038] by
-
- 9 edits in trunk/Source
[GTK][WPE] Stop using the env var WEBKIT_INSPECTOR_SERVER to connect to the inspector
https://bugs.webkit.org/show_bug.cgi?id=237646
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
Add RemoteInspector::s_inspectorServerAddress to keep the remote inspector server address instead of the
environment variable used to start the server.
- inspector/remote/RemoteInspector.h:
- inspector/remote/glib/RemoteInspectorGlib.cpp:
(Inspector::RemoteInspector::RemoteInspector): Only call start if s_inspectorServerAddress is not null.
(Inspector::RemoteInspector::start): Use s_inspectorServerAddress instead of querying the environment.
Source/WebKit:
Use it only in the UI process to start the server, but propagate the address to web process using creation
parameters.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const): Encode inspectorServerAddress.
(WebKit::WebProcessCreationParameters::decode): Decode inspectorServerAddress.
- Shared/WebProcessCreationParameters.h: Add inspectorServerAddress.
- UIProcess/API/glib/WebKitInitialize.cpp:
(WebKit::initializeRemoteInspectorServer): Set RemoteInspector::s_inspectorServerAddress if the server started
successfully.
- UIProcess/glib/WebProcessPoolGLib.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess): Set inspectorServerAddress parameter from
RemoteInspector::s_inspectorServerAddress value.
- WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::platformInitializeWebProcess): Set RemoteInspector::s_inspectorServerAddress from creation
parameter value.
- 4:37 AM Changeset in webkit [291037] by
-
- 14 edits1 add in trunk
[web-animations] font-kerning should supporting discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237585
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
Source/WebCore:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- platform/text/TextFlags.cpp: Added.
(WebCore::operator<<):
- platform/text/TextFlags.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setFontPalette):
(WebCore::RenderStyle::setFontKerning):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::fontKerning const):
- style/PropertyAllowlist.cpp:
(WebCore::Style::isValidMarkerStyleProperty):
- 3:38 AM Changeset in webkit [291036] by
-
- 88 edits7 moves23 adds in trunk/LayoutTests
[CSS Container Queries] Import updated WPTs
https://bugs.webkit.org/show_bug.cgi?id=237638
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
Upstream has been updated with the new syntax from
https://github.com/w3c/csswg-drafts/issues/6870
and behavior from
https://github.com/w3c/csswg-drafts/issues/6644
- resources/resource-files.json:
- web-platform-tests/css/css-contain/container-queries/animation-container-size.html:
- web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic.html:
- web-platform-tests/css/css-contain/container-queries/animation-nested-animation.html:
- web-platform-tests/css/css-contain/container-queries/animation-nested-transition.html:
- web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation.html:
- web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/at-container-parsing.html:
- web-platform-tests/css/css-contain/container-queries/auto-scrollbars.html:
- web-platform-tests/css/css-contain/container-queries/backdrop-invalidation.html:
- web-platform-tests/css/css-contain/container-queries/canvas-as-container-005-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/canvas-as-container-005.html: Added.
- web-platform-tests/css/css-contain/container-queries/canvas-as-container-006-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/canvas-as-container-006.html: Added.
- web-platform-tests/css/css-contain/container-queries/change-display-in-container.html:
- web-platform-tests/css/css-contain/container-queries/conditional-container-status.html:
- web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-computed.html:
- web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt.
- web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative.html.
- web-platform-tests/css/css-contain/container-queries/container-inner-at-rules-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-inner-at-rules.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-name-computed.html:
- web-platform-tests/css/css-contain/container-queries/container-name-invalidation.html:
- web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-name-parsing.html:
- web-platform-tests/css/css-contain/container-queries/container-nested-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-nested.html:
- web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-parsing.html:
- web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-selection.html:
- web-platform-tests/css/css-contain/container-queries/container-size-invalidation.html:
- web-platform-tests/css/css-contain/container-queries/container-type-invalidation.html:
- web-platform-tests/css/css-contain/container-queries/container-units-small-viewport-fallback-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-small-viewport-fallback.html: Added.
- web-platform-tests/css/css-contain/container-queries/counters-flex-circular.html:
- web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic.html:
- web-platform-tests/css/css-contain/container-queries/counters-in-container.html:
- web-platform-tests/css/css-contain/container-queries/deep-nested-inline-size-containers-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/deep-nested-inline-size-containers.html: Added.
- web-platform-tests/css/css-contain/container-queries/display-contents.html:
- web-platform-tests/css/css-contain/container-queries/display-in-container.html:
- web-platform-tests/css/css-contain/container-queries/display-none.html:
- web-platform-tests/css/css-contain/container-queries/fieldset-legend-change.html:
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-000-crash.html:
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-001-crash.html:
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-002-crash.html:
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-003-crash.html:
- web-platform-tests/css/css-contain/container-queries/focus-inside-content-visibility-crash.html:
- web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic.html:
- web-platform-tests/css/css-contain/container-queries/font-relative-units.html:
- web-platform-tests/css/css-contain/container-queries/fragmented-container-001-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/fragmented-container-001.html: Added.
- web-platform-tests/css/css-contain/container-queries/get-animations.html:
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-000-crash.html:
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-001-crash.html:
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-002-crash.html:
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-003-crash.html:
- web-platform-tests/css/css-contain/container-queries/iframe-invalidation.html:
- web-platform-tests/css/css-contain/container-queries/ineligible-containment.html:
- web-platform-tests/css/css-contain/container-queries/inline-multicol-inside-container-crash.html:
- web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width.html:
- web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats.html:
- web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl.html:
- web-platform-tests/css/css-contain/container-queries/inline-size-containment.html:
- web-platform-tests/css/css-contain/container-queries/inline-with-columns-000-crash.html:
- web-platform-tests/css/css-contain/container-queries/inline-with-columns-001-crash.html:
- web-platform-tests/css/css-contain/container-queries/multicol-container-001-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/multicol-container-001.html: Added.
- web-platform-tests/css/css-contain/container-queries/multicol-inside-container.html:
- web-platform-tests/css/css-contain/container-queries/never-match-container-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/never-match-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query.html:
- web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal.html:
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-001.html:
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-expected.html: Removed.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-ref.html: Removed.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative.html: Removed.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-003-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative.html.
- web-platform-tests/css/css-contain/container-queries/query-content-box.html:
- web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/query-evaluation.html:
- web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child.html:
- web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden.html:
- web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box.html:
- web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/size-feature-evaluation.html:
- web-platform-tests/css/css-contain/container-queries/style-change-in-container.html:
- web-platform-tests/css/css-contain/container-queries/svg-layout-root-crash.html:
- web-platform-tests/css/css-contain/container-queries/svg-root-size-container-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/svg-root-size-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-in-columns-000-crash.html:
- web-platform-tests/css/css-contain/container-queries/table-in-columns-001-crash.html:
- web-platform-tests/css/css-contain/container-queries/table-in-columns-002-crash.html:
- web-platform-tests/css/css-contain/container-queries/table-in-columns-003-crash.html:
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop.html:
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container.html:
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog.html:
- web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog.html:
- web-platform-tests/css/css-contain/container-queries/transition-scrollbars.html:
- web-platform-tests/css/css-contain/container-queries/transition-style-change-event.html:
- web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
- web-platform-tests/css/css-contain/container-queries/unsupported-axis.html:
- web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic.html:
- web-platform-tests/css/css-contain/container-queries/viewport-units.html:
- web-platform-tests/css/css-contain/container-queries/w3c-import.log:
- web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal.html:
LayoutTests:
- 12:36 AM Changeset in webkit [291035] by
-
- 6 edits in trunk/Source/WebCore
GraphicsContextGLCocoa manages EGL native displays manually
https://bugs.webkit.org/show_bug.cgi?id=237313
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-09
Reviewed by Kenneth Russell.
ANGLE now keys the Metal EGL_DEFAULT_DISPLAY on the EGL_PLATFORM_ANGLE_TYPE_ANGLE.
This means that we do not need to use the default a native display for Metal and an
invented native display for OpenGL.
- platform/graphics/GraphicsTypesGL.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::platformInitialize):
(WebCore::GraphicsContextGLANGLE::releaseThreadResources):
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::initializeEGLDisplay):
(WebCore::GraphicsContextGLCocoa::platformInitialize):
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
- 12:04 AM Changeset in webkit [291034] by
-
- 62 edits1 move3 deletes in trunk
Scope capture sources by page identifiers
https://bugs.webkit.org/show_bug.cgi?id=237359
Reviewed by Eric Carlson.
Source/WebCore:
Pass PageIdentifier when creating capture sources.
This is used at WebKit layer to better handle creation of mulitple sources.
Since we are now sometimes answering to getUserMedia by cloning sources directly,
fix a bug in RealtimeVideoSource to use the preset aspect ratio to compute missing width or height.
Introduce a way to end immediately a capture source, this is used on GPUProcess side in case starting a capture using a different device.
Covered by existing tests.
- Headers.cmake:
- Modules/mediastream/MediaDevices.cpp:
- Modules/mediastream/MediaStreamTrack.cpp:
- Modules/speech/SpeechRecognitionCaptureSource.cpp:
- Modules/speech/SpeechRecognitionCaptureSource.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/PageIdentifier.h: Renamed from Source/WebCore/page/PageIdentifier.h.
- platform/mediastream/MediaStreamRequest.h:
- platform/mediastream/RealtimeMediaSource.cpp:
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
- platform/mediastream/RealtimeMediaSourceFactory.cpp: Removed.
- platform/mediastream/RealtimeMediaSourceFactory.h:
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
- platform/mediastream/RealtimeVideoCaptureSource.h:
- platform/mediastream/RealtimeVideoSource.cpp:
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:
- platform/mediastream/cocoa/DisplayCaptureSourceCocoa.h:
- platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
- platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
- platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
- platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
- platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- platform/mediastream/mac/MockAudioSharedUnit.mm:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
- platform/mock/MockRealtimeAudioSource.cpp:
- platform/mock/MockRealtimeAudioSource.h:
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
- platform/mock/MockRealtimeVideoSource.cpp:
- platform/mock/MockRealtimeVideoSource.h:
Source/WebKit:
Pass PageIdentifier where appropriate.
Make use of PageIdentifier in UserMediaCaptureManagerProxy:
- For microphone, if there is a source with a different device, fail the source as we are not yet supporting concurrent captures.
- For camera, if there is a source with a different device, fail the source as we are not yet supporting concurrent captures (only on iOS). Otherwise, if there is a matching source, clone it so that we reduce the overhead of creating a new source (setting up a camera can be an expensive operation).
We silently fail (meaning there is no console log message for now, while still firing ended event) but add release logging to detect this case.
Minor refactoring to have one message in case capture source ends (stopped or failing) instead of two.
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:
- UIProcess/WebPageProxy.cpp:
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.h:
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.messages.in:
- WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
- WebProcess/cocoa/RemoteRealtimeAudioSource.h:
- WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp:
- WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
- WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
- WebProcess/cocoa/RemoteRealtimeVideoSource.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- WebProcess/cocoa/UserMediaCaptureManager.h:
- WebProcess/cocoa/UserMediaCaptureManager.messages.in:
LayoutTests:
Remove platform/ios/mediastream/getUserMedia-single-capture.html now that we no longer handle multi capture in WebProcess but in GPUProcess.
Update platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html to be like platform/ios/mediastream/audio-muted-in-background-tab.html
so that test is no longer dependent on synchronous event firing.
- platform/ios/mediastream/audio-muted-in-background-tab-gpu-process.html:
- platform/ios/mediastream/getUserMedia-single-capture-expected.txt: Removed.
- platform/ios/mediastream/getUserMedia-single-capture-gpu-process.html:
- platform/ios/mediastream/getUserMedia-single-capture.html: Removed.
Mar 8, 2022:
- 11:38 PM Changeset in webkit [291033] by
-
- 22 edits in trunk
Have MediaFormatReader plugin use WebMParser directly
https://bugs.webkit.org/show_bug.cgi?id=237594
rdar://89960307
Reviewed by Eric Carlson.
Source/WebCore:
Covered by existing tests.
- platform/MediaSample.h:
(WebCore::MediaSample::byteRange const): Have default implementation.
- platform/VideoFrame.cpp:
- platform/VideoFrame.h:
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
(WebCore::ImageDecoderAVFObjCSample::byteRangeForAttachment const):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/cocoa/CMUtilities.h: Export symbols.
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::WebMParser::createByteRangeSamples):
(WebCore::WebMParser::OnTrackEntry):
(WebCore::WebMParser::VideoTrackData::consumeFrameData):
(WebCore::WebMParser::AudioTrackData::consumeFrameData):
(WebCore::WebMParser::provideMediaData):
(WebCore::SourceBufferParserWebM::parsedMediaData):
(WebCore::SourceBufferParserWebM::returnSamples):
(WebCore::SourceBufferParserWebM::flushPendingAudioSamples):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
(WebCore::WebMParser::TrackData::createByteRangeSamples):
(WebCore::WebMParser::TrackData::drainPendingSamples):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
- platform/mock/mediasource/MockSourceBufferPrivate.cpp:
Source/WebKit:
Directly build the sample tables from the sample's offset/size without
first build MediaSampleAVFObjC objects.
The MTPluginByteSourceRef interface unfortunately doesn't allow to skip a
given number of bytes, and you must read the content into a buffer to be
able to continue reading the resource.
As such, we continue to have to create SharedBuffer objects for each sample.
However, those objects are now much shorter lived and not dispatched to
other work queues. So the peak memory usage when playing a webm is
significantly reduced: a 50% memory reduction (from 440MB to 202MB with a sample video)
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::parseByteSource):
(WebKit::MediaFormatReader::parsedInitializationData):
(WebKit::MediaFormatReader::parsedMediaData):
(WebKit::MediaFormatReader::didProvideMediaData):
(WebKit::MediaFormatReader::finishParsing):
- Shared/mac/MediaFormatReader/MediaFormatReader.h:
- Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:
(WebKit::MediaSampleByteRange::MediaSampleByteRange):
(WebKit::MediaSampleByteRange::trackID const):
(WebKit::MediaSampleByteRange::platformSample const):
(WebKit::MediaSampleByteRange::presentationTime const):
(WebKit::MediaSampleByteRange::decodeTime const):
(WebKit::MediaSampleByteRange::duration const):
(WebKit::MediaSampleByteRange::sizeInBytes const):
(WebKit::MediaSampleByteRange::presentationSize const):
(WebKit::MediaSampleByteRange::flags const):
(WebKit::MediaSampleByteRange::byteRange const):
(WebKit::MediaSampleByteRange::offsetTimestampsBy):
(WebKit::MediaSampleByteRange::setTimestamps):
- Shared/mac/MediaFormatReader/MediaSampleByteRange.h:
- Shared/mac/MediaFormatReader/MediaSampleCursor.cpp:
(WebKit::MediaSampleCursor::copyFormatDescription const):
- Shared/mac/MediaFormatReader/MediaTrackReader.cpp:
(WebKit::MediaTrackReader::addSample):
(WebKit::MediaTrackReader::copyProperty):
- Shared/mac/MediaFormatReader/MediaTrackReader.h:
Tools:
- TestWebKitAPI/Tests/WebCore/SampleMap.cpp:
- 10:49 PM Changeset in webkit [291032] by
-
- 12 edits in trunk
RemoteGraphicsContextGL ReadPixels does not preserve contents for area that is not part of the Framebuffer
https://bugs.webkit.org/show_bug.cgi?id=222410
<rdar://problem/75025951>
Patch by John Cunningham <johncunningham@apple.com> on 2022-03-08
Reviewed by Kimmo Kinnunen.
Source/WebKit:
Make a copy of the data buffer passed into readnpixels so that reads outside the framebuffer contain
the expected results, rather than being zero'd.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::readnPixels0):
(WebKit::RemoteGraphicsContextGL::readnPixels1):
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
(bufferSubData):
(readnPixels0): Deleted.
(readnPixels1): Deleted.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::readnPixels):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
(WebKit::RemoteGraphicsContextGLProxy::readnPixels): Deleted.
Tools:
Make a copy of the data buffer passed into readnpixels so that reads outside the framebuffer contain
the expected results, rather than being zero'd.
- Scripts/generate-gpup-webgl:
LayoutTests:
Don't overwrite the data buffer for readPixels
- platform/ios-wk2/TestExpectations:
- 10:19 PM Changeset in webkit [291031] by
-
- 2 edits in trunk/Source/WebKit
Fix assertion when DOM Rendering in GPU Process is enabled with accelerated drawing disabled
https://bugs.webkit.org/show_bug.cgi?id=237626
Reviewed by Tim Horton.
Override releaseGraphicsContext() in the base class (which asserts). This subclass
doesn't need to do anything; releaseGraphicsContext() is only relevant for IOSurface-
based backends.
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
- 10:13 PM Changeset in webkit [291030] by
-
- 5 edits3 adds in trunk
IntersectionObserver is causing massive document leaks on haaretz.co.il
https://bugs.webkit.org/show_bug.cgi?id=237619
<rdar://problem/89989815>
Reviewed by Simon Fraser.
Source/WebCore:
On haaretz.co.il, many of the iframe documents (for Google ad frames) were leaking due to
IntersectionObserver. In particular, IntersectionObserver::isReachableFromOpaqueRoots()
was returning true because m_targetsWaitingForFirstObservation was non-empty. This indicates
that the IntersectionObserver is waiting for its first observation since that target was
added. However, the observation is not coming because we navigated away from the document.
To address the issue, I updated Document::commonTeardown() to disconnect all
IntersectionObservers (and the very similar ResizeObservers), right after stopping all
ActiveDOMObject.
Test: fast/dom/intersection-observer-document-leak.html
- dom/Document.cpp:
(WebCore::Document::commonTeardown):
- dom/Document.h:
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::disconnect):
No longer return early if hasObservationTargets() returns false. This is because
LayoutTests:
Add layout test coverage.
- fast/dom/intersection-observer-document-leak-expected.txt: Added.
- fast/dom/intersection-observer-document-leak.html: Added.
- fast/dom/resources/intersection-observer-document-leak-popup.html: Added.
- 7:34 PM Changeset in webkit [291029] by
-
- 5 edits2 adds in trunk
[Cocoa] metadata cue endTime may not be updated
https://bugs.webkit.org/show_bug.cgi?id=237630
rdar://88690874
Reviewed by Jer Noble.
Source/WebCore:
Data cues have a start time but not an explicit duration, a data cue ends when
the next data cue from the same track starts. This means we don’t know the
duration of cue #1 until cue #2 is delivered, so when cue #1 is delivered it is
given the end time of the media file’s duration and the actual end time is updated
when cue #2 arrives.
http://webkit.org/b/229924 refactored text, audio, and video tracks to not depend
on HTMLMediaElement. Because InbandDataTextTrack could no longer access the
HTMLMediaElement to get its duration, a duration property was added to TextTrackList
that InbandDataTextTrack uses to set the duration of temporary cues.
TextTrackList.duration is set when it is created and updated when the media player
reports a duration change.
This means that if the media file’s duration is not known when the text track list
is created, and the file's duration never changes, the text track list never has a
valid duration and data cues were not added to the temporary list.
Fix this by updating TextTrackList.duration when a HTMLMediaElement reaches HAVE_METADATA.
Test: http/tests/media/hls/track-in-band-hls-metadata-cue-duration.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::durationChanged): Update m_textTracks.duration and post
the 'durationchange' event.
(WebCore::HTMLMediaElement::setReadyState): Call durationChanged.
(WebCore::HTMLMediaElement::mediaPlayerDurationChanged): Ditto.
- html/HTMLMediaElement.h:
- html/track/InbandDataTextTrack.cpp:
(WebCore::InbandDataTextTrack::addDataCue): Add cues to the incomplete cue map
even if the track list doesn't have duration.
LayoutTests:
- http/tests/media/hls/track-in-band-hls-metadata-cue-duration-expected.txt: Added.
- http/tests/media/hls/track-in-band-hls-metadata-cue-duration.html: Added.
- 6:58 PM Changeset in webkit [291028] by
-
- 2 edits in trunk/Source/WebCore
Skip scheduling lazy UA shadow tree creation if already created or not needed
https://bugs.webkit.org/show_bug.cgi?id=237546
<rdar://problem/89922896>
Reviewed by Aditya Keerthi.
Bug 236747 made <input> element UA shadow trees get created lazily.
HTMLInputElement::insertedIntoAncestor now schedules the UA shadow tree
to be created the next time style is flushed. We currently do this every
time an <input> element is inserted into the document, but there's only
a need to do this if the particular input type needs a shadow tree and
we haven't already created it.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::insertedIntoAncestor):
- 6:56 PM Changeset in webkit [291027] by
-
- 6 edits in trunk/Source
[WTF] LikelyDenseUnsignedIntegerSet::add can cause a reindexing of the entire bit vector with every call in the worst case
https://bugs.webkit.org/show_bug.cgi?id=236997
Reviewed by Saam Barati.
Source/JavaScriptCore:
Just make it a little bit easier to change the number of stack slots in testZDefOfSpillSlotWithOffsetNeedingToBeMaterializedInARegister.
- b3/air/testair.cpp:
Source/WTF:
This problem was found while investigating https://bugs.webkit.org/show_bug.cgi?id=236269.
LikelyDenseUnsignedIntegerSet has two forms: either as a HashSet (if sparse) or as a BitVector representing numbers above some value m_min (if sufficiently dense).
This is a massive memory win in most situations (>4x in practice for register allocation in JS2, >20x on some pathological webpages).
But it means that when adding a value below m_min to a set in BitVector shape, we have to rebuild the whole set, which takes a time proportional to the time of the set.
So if building a set by repeatedly adding decreasing values (like in https://bugs.webkit.org/show_bug.cgi?id=236269 where we add 10000, then 9999, then 9998, etc..), we have some awful performance.
In this patch I improve this situation in two ways:
- First I always round down m_min to the next multiple of 64. This means that when adding contiguous values like above we only re-index once every 64 adds.
- It then allows me to do the reindexing by simple memcpy instead of costly iteration of all the set bits, since they are now always at the same offset within the words of the BitVector.
On an M1 MBP, on testair:: testZDefOfSpillSlotWithOffsetNeedingToBeMaterializedInARegister, with n=5000, in release mode, measuring just the time spent building the interference graph:
Before this patch: 107 s
After this patch: 77 ms (note the different unit, it is not a typo!)
Unfortunately, it does not seem to significantly improve the time spent in LikelyDenseUnsignedIntgerSet::add in JetStream2,
probably because the pattern of always adding a value just before the minimum is quite pathological/rare.
I still think it is worth landing, as we don't know what code out there may hit this performance problem.
- wtf/BitVector.cpp:
(WTF::BitVector::shiftRightByMultipleOf64):
(WTF::BitVector::resizeOutOfLine):
- wtf/BitVector.h:
- wtf/LikelyDenseUnsignedIntegerSet.h:
(WTF::LikelyDenseUnsignedIntegerSet::add):
(WTF::LikelyDenseUnsignedIntegerSet::validate const):
(WTF::LikelyDenseUnsignedIntegerSet::transitionToBitVector):
- 6:53 PM Changeset in webkit [291026] by
-
- 4 edits in trunk
Enable tier-up in loops created by recursive tail call optimizations.
https://bugs.webkit.org/show_bug.cgi?id=178389
Reviewed by Saam Barati.
PerformanceTests:
Just changed a constant for consistency with TailBench9000/merge-sort.js
- TailBench9000/merge-sort-cps.js:
Source/JavaScriptCore:
Made the recursive tail call optimization only run in FTL mode, since it is a significant progression on TailBench.
Also some trivial refactoring of handleRecursiveTailCall.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
- 6:25 PM Changeset in webkit [291025] by
-
- 29 edits1 copy1 add in trunk
Split SourceBufferParserWebM and have platform agnostic WebMParser
https://bugs.webkit.org/show_bug.cgi?id=237472
rdar://problem/89810969
Reviewed by Eric Carlson.
Source/WebCore:
Split raw WebMParser from SourceBufferParserWebM and introduce platform
agnostic MediaSamplesBlock objects and TrackInfo
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/MediaSample.h:
(WebCore::MediaSample::dump const):
(WebCore::TrackInfo::isAudio const):
(WebCore::TrackInfo::isVideo const):
(WebCore::TrackInfo::type const):
(WebCore::TrackInfo::operator== const):
(WebCore::TrackInfo::operator!= const):
(WebCore::TrackInfo::TrackInfo):
(WebCore::VideoInfo::create):
(WebCore::VideoInfo::VideoInfo):
(WebCore::AudioInfo::create):
(WebCore::AudioInfo::AudioInfo):
(WebCore::MediaSamplesBlock::setInfo):
(WebCore::MediaSamplesBlock::info const):
(WebCore::MediaSamplesBlock::isVideo const):
(WebCore::MediaSamplesBlock::isAudio const):
(WebCore::MediaSamplesBlock::type const):
(WebCore::MediaSamplesBlock::append):
(WebCore::MediaSamplesBlock::size const):
(WebCore::MediaSamplesBlock::isEmpty const):
(WebCore::MediaSamplesBlock::clear):
(WebCore::MediaSamplesBlock::takeSamples):
(WebCore::MediaSamplesBlock::operator[] const):
(WebCore::MediaSamplesBlock::first const):
(WebCore::MediaSamplesBlock::last const):
(WebCore::MediaSamplesBlock::begin const):
(WebCore::MediaSamplesBlock::end const):
(isType):
- platform/audio/cocoa/AudioFileReaderCocoa.cpp:
(WebCore::AudioFileReader::demuxWebMData const):
- platform/graphics/PlatformVideoColorPrimaries.h:
- platform/graphics/PlatformVideoMatrixCoefficients.h:
- platform/graphics/PlatformVideoTransferCharacteristics.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
- platform/graphics/cocoa/CMUtilities.h: Copied from Source/WebCore/platform/graphics/PlatformVideoColorPrimaries.h.
- platform/graphics/cocoa/CMUtilities.mm: Added.
(WebCore::createAudioFormatDescription):
(WebCore::convertToCMColorPrimaries):
(WebCore::convertToCMTransferFunction):
(WebCore::convertToCMYCbCRMatrix):
(WebCore::createFormatDescriptionFromTrackInfo):
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::segmentReadErrorToWebmStatus):
(WebCore::WebMParser::WebMParser):
(WebCore::WebMParser::~WebMParser):
(WebCore::WebMParser::resetState):
(WebCore::WebMParser::reset):
(WebCore::WebMParser::parse):
(WebCore::WebMParser::setLogger):
(WebCore::WebMParser::invalidate):
(WebCore::WebMParser::trackDataForTrackNumber):
(WebCore::WebMParser::OnElementBegin):
(WebCore::WebMParser::OnElementEnd):
(WebCore::WebMParser::OnEbml):
(WebCore::WebMParser::OnSegmentBegin):
(WebCore::WebMParser::OnInfo):
(WebCore::WebMParser::OnClusterBegin):
(WebCore::WebMParser::OnTrackEntry):
(WebCore::WebMParser::OnBlockBegin):
(WebCore::WebMParser::OnBlockEnd):
(WebCore::WebMParser::OnSimpleBlockBegin):
(WebCore::WebMParser::OnSimpleBlockEnd):
(WebCore::WebMParser::OnBlockGroupBegin):
(WebCore::WebMParser::OnBlockGroupEnd):
(WebCore::WebMParser::OnFrame):
(WebCore::WebMParser::TrackData::contiguousCompleteBlockBuffer const):
(WebCore::WebMParser::TrackData::readFrameData):
(WebCore::WebMParser::VideoTrackData::resetCompletedFramesState):
(WebCore::WebMParser::VideoTrackData::consumeFrameData):
(WebCore::WebMParser::AudioTrackData::resetCompletedFramesState):
(WebCore::WebMParser::AudioTrackData::consumeFrameData):
(WebCore::WebMParser::isSupportedVideoCodec):
(WebCore::WebMParser::isSupportedAudioCodec):
(WebCore::SourceBufferParserWebM::SourceBufferParserWebM):
(WebCore::SourceBufferParserWebM::isWebMFormatReaderAvailable):
(WebCore::SourceBufferParserWebM::isContentTypeSupported):
(WebCore::SourceBufferParserWebM::create):
(WebCore::WebMParser::provideMediaData):
(WebCore::SourceBufferParserWebM::parsedInitializationData):
(WebCore::SourceBufferParserWebM::parsedMediaData):
(WebCore::SourceBufferParserWebM::returnSamples):
(WebCore::SourceBufferParserWebM::parsedTrimmingData):
(WebCore::SourceBufferParserWebM::contentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferParserWebM::flushPendingAudioSamples):
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::flushPendingMediaData):
(WebCore::SourceBufferParserWebM::setShouldProvideMediaDataForTrackID):
(WebCore::SourceBufferParserWebM::shouldProvideMediadataForTrackID):
(WebCore::SourceBufferParserWebM::invalidate):
(WebCore::SourceBufferParserWebM::setLogger):
(WebCore::SourceBufferParserWebM::setMinimumAudioSampleDuration):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
(WebCore::WebMParser::Callback::parsedTrimmingData):
(WebCore::WebMParser::Callback::canDecrypt const):
(WebCore::WebMParser::Callback::contentKeyRequestInitializationDataForTrackID):
(WebCore::WebMParser::loggerPtr const):
(WebCore::WebMParser::logIdentifier const):
(WebCore::WebMParser::TrackData::create):
(WebCore::WebMParser::TrackData::TrackData):
(WebCore::WebMParser::TrackData::trackType const):
(WebCore::WebMParser::TrackData::formatDescription const):
(WebCore::WebMParser::TrackData::setFormatDescription):
(WebCore::WebMParser::TrackData::parser const):
(WebCore::WebMParser::TrackData::consumeFrameData):
(WebCore::WebMParser::TrackData::resetCompletedFramesState):
(WebCore::WebMParser::TrackData::drainPendingSamples):
(WebCore::WebMParser::VideoTrackData::create):
(WebCore::WebMParser::VideoTrackData::VideoTrackData):
(WebCore::WebMParser::AudioTrackData::create):
(WebCore::WebMParser::AudioTrackData::AudioTrackData):
(WebCore::SourceBufferParserWebM::type const):
(WebCore::SourceBufferParserWebM::appendData):
(WebCore::SourceBufferParserWebM::setDidParseTrimmingDataCallback):
(WebCore::SourceBufferParserWebM::loggerPtr const):
(WebCore::SourceBufferParserWebM::logIdentifier const):
(isType):
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::convertToPlatformVideoColorPrimaries):
(WebCore::convertToPlatformVideoTransferCharacteristics):
(WebCore::convertToPlatformVideoMatrixCoefficients):
(WebCore::createVideoInfoFromVPCodecConfigurationRecord):
(WebCore::createVideoInfoFromVP9HeaderParser):
(WebCore::createVideoInfoFromVP8Header):
- platform/graphics/cocoa/WebMAudioUtilitiesCocoa.h:
- platform/graphics/cocoa/WebMAudioUtilitiesCocoa.mm:
(WebCore::createAudioInfoForFormat):
(WebCore::parseOpusPrivateData):
(WebCore::createOpusAudioInfo):
(WebCore::createVorbisAudioInfo):
Source/WebCore/PAL:
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cf/CoreMediaSoftLink.h: Method CMSampleBufferCreateReady wasn't soft-linked.
Source/WebKit:
- Shared/mac/MediaFormatReader/MediaSampleByteRange.cpp:
(WebKit::MediaSampleByteRange::MediaSampleByteRange):
- Shared/mac/MediaFormatReader/MediaSampleByteRange.h: MediaSampleByteRange.h
didn't need to inherit from MediaSampleAVFObjC.
Tools:
- TestWebKitAPI/Tests/WebCore/SampleMap.cpp: Update following base class definition change.
- 6:09 PM Changeset in webkit [291024] by
-
- 2 edits in trunk/Source/WebKit
Allow adattributiond to read and execute dylibs in /usr/lib on iOS
https://bugs.webkit.org/show_bug.cgi?id=237625
<rdar://89809031>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-08
Reviewed by Per Arne Vollan.
WebKit's other sandboxes allow this.
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
- 5:58 PM Changeset in webkit [291023] by
-
- 12 edits1 delete in trunk
Remove unused _grantAccessToPreferenceService
https://bugs.webkit.org/show_bug.cgi?id=237623
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-08
Reviewed by Per Arne Vollan.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _grantAccessToPreferenceService]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::grantAccessToPreferenceService): Deleted.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockPreferenceServiceIfNeeded): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.h:
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::notifyPreferencesChanged):
(WebKit::WebProcess::unblockPreferenceService): Deleted.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/GrantAccessToPreferencesService.mm: Removed.
- 5:17 PM Changeset in webkit [291022] by
-
- 10 edits2 moves in trunk/Source/WebKit
Rename TextRecognitionUtilities.* to ImageAnalysisUtilities.*
https://bugs.webkit.org/show_bug.cgi?id=237613
rdar://89982051
Reviewed by Tim Horton and Kate Cheney.
Rename TextRecognitionUtilities.h and TextRecognitionUtilities.mm to ImageAnalysisUtilities.h and
ImageAnalysisUtilities.mm, respectively. This is because this file now contains helper functions that are not
specific to just the text recognition aspect of visual intelligence features on Cocoa, but rather encompass a
variety of image analysis helpers.
- Platform/cocoa/ImageAnalysisUtilities.h: Renamed from Source/WebKit/Platform/cocoa/TextRecognitionUtilities.h.
- Platform/cocoa/ImageAnalysisUtilities.mm: Renamed from Source/WebKit/Platform/cocoa/TextRecognitionUtilities.mm.
(WebKit::createImageAnalyzer):
(WebKit::createImageAnalyzerRequest):
(WebKit::floatQuad):
(WebKit::floatQuads):
(WebKit::makeTextRecognitionResult):
(WebKit::textRecognitionEnhancementsSystemFeatureEnabled):
(WebKit::imageAnalysisQueueSystemFeatureEnabled):
(WebKit::isImageAnalysisMarkupSystemFeatureEnabled):
(WebKit::isLiveTextAvailableAndEnabled):
- Shared/Cocoa/WebPreferencesDefaultValuesCocoa.mm:
- SourcesCocoa.txt:
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKRBSAssertionDelegate assertion:didInvalidateWithError:]):
Drive-by fix: additionally tweak a couple of release logging arguments that are currently in reverse order.
- UIProcess/ios/WKActionSheetAssistant.mm:
- UIProcess/ios/WKContentViewInteraction.mm:
- UIProcess/mac/WebContextMenuProxyMac.mm:
- UIProcess/mac/WebPageProxyMac.mm:
- WebKit.xcodeproj/project.pbxproj:
- 4:52 PM Changeset in webkit [291021] by
-
- 2 edits in trunk/Source/WebKit
Enable CFPrefs direct mode in adattributiond
https://bugs.webkit.org/show_bug.cgi?id=237620
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-08
Reviewed by Per Arne Vollan.
This makes it not try to connect to cfprefsd, which is not allowed by the sandbox.
- Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
(WebKit::PCMDaemonMain):
- 4:15 PM Changeset in webkit [291020] by
-
- 6 edits in trunk/Source/WebCore
Have SourceBufferParserWebM use SharedBuffer internally
https://bugs.webkit.org/show_bug.cgi?id=237078
rdar://89348752
Reviewed by Eric Carlson.
This is a refactor to allow SourceBufferParser to return SharedBuffer
rather than CMBlockBuffer.
No change in observable behaviours.
Covered by existing tests.
- platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::reenqueueMediaForTime): Fly-by fix: typo.
(WebCore::SourceBufferPrivate::didReceiveSample): Fly-by fix, exit early
if end time is lower than start time which can happen if the duration is
smaller than contiguousFrameTolerance.
- platform/graphics/cocoa/SourceBufferParserWebM.cpp:
(WebCore::SourceBufferParserWebM::TrackData::contiguousCompleteBlockBuffer const):
(WebCore::SourceBufferParserWebM::TrackData::readFrameData):
(WebCore::SourceBufferParserWebM::TrackData::createSampleBuffer):
(WebCore::SourceBufferParserWebM::VideoTrackData::resetCompleted):
(WebCore::SourceBufferParserWebM::VideoTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::VideoTrackData::postProcess):
(WebCore::SourceBufferParserWebM::AudioTrackData::resetCompleted):
(WebCore::SourceBufferParserWebM::AudioTrackData::consumeFrameData):
(WebCore::SourceBufferParserWebM::flushPendingAudioBuffers):
- platform/graphics/cocoa/SourceBufferParserWebM.h:
(WebCore::SourceBufferParserWebM::TrackData::resetCompleted):
(WebCore::SourceBufferParserWebM::TrackData::reset):
(WebCore::SourceBufferParserWebM::TrackData::drainPendingSamples):
(WebCore::SourceBufferParserWebM::TrackData::postProcess):
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
(WebCore::parseVP8FrameHeader): Make methods const.
- 3:54 PM Changeset in webkit [291019] by
-
- 5 edits in trunk/Source/WebKit
[macOS] Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=237586
- Shared/ModelIdentifier.h:
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerInternal.h:
- UIProcess/Cocoa/ModelElementControllerCocoa.mm:
- UIProcess/ModelElementController.h:
- 3:51 PM Changeset in webkit [291018] by
-
- 20 edits3 adds in trunk
[WebAuthn] Using WebAuthn within cross-origin iframe elements
https://bugs.webkit.org/show_bug.cgi?id=222240
rdar://problem/74830748
Reviewed by Brent Fulgham.
Source/WebCore:
This patch relaxes the requirement to perform a Web Authentication assertion
inside an i-frame with the "publickey-credentials-get" feature policy from
'same-site' to 'cross-origin with consent'.
There is an additional requirement that there is only a single cross-origin
parent to present to the user in the prompt. If we can't display the updated
prompt, then cross-origin assertions are not allowed.
Test: http/wpt/webauthn/public-key-credential-cross-origin.https.html
- Modules/credentialmanagement/CredentialsContainer.cpp:
(WebCore::CredentialsContainer::scopeAndSingleParent):
(WebCore::CredentialsContainer::get):
(WebCore::CredentialsContainer::isCreate):
(WebCore::CredentialsContainer::scope): Deleted.
- Modules/credentialmanagement/CredentialsContainer.h:
- Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
- Modules/webauthn/AuthenticatorCoordinator.h:
- Modules/webauthn/AuthenticatorCoordinatorClient.h:
Source/WebKit:
This patch relaxes the requirement to perform a Web Authentication assertion
inside an i-frame with the "publickey-credentials-get" feature policy from
'same-site' to 'cross-origin with consent'.
There is an additional requirement that there is only a single cross-origin
parent to present to the user in the prompt. If we can't display the updated
prompt, then cross-origin assertions are not allowed.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::configureAssertionOptions):
(WebKit::configurationAssertionRequestContext):
(WebKit::WebAuthenticatorCoordinatorProxy::contextForRequest):
- UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:
(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebAuthenticatorCoordinator::getAssertion):
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h:
LayoutTests:
Update existing tests and create new test for cross-origin, non same-site i-frames.
- http/wpt/webauthn/public-key-credential-cross-origin.https-expected.txt: Added.
- http/wpt/webauthn/public-key-credential-cross-origin.https.html: Added.
- http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt:
- http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html:
- http/wpt/webauthn/resources/public-key-credential-cross-origin.https.html: Added.
- 3:27 PM Changeset in webkit [291017] by
-
- 7 edits in trunk
Rename allow-custom-protocols-navigation to allow-top-navigation-to-custom-protocols
https://bugs.webkit.org/show_bug.cgi?id=237605
Reviewed by Darin Adler.
Source/WebCore:
Rename allow-custom-protocols-navigation sandbox flag to allow-top-navigation-to-custom-protocols as per:
There is no backward compatibility risk since support for this flag was added very recently
in r290958.
- dom/SecurityContext.cpp:
(WebCore::SecurityContext::isSupportedSandboxPolicy):
(WebCore::SecurityContext::parseSandboxPolicy):
- dom/SecurityContext.h:
Source/WebKit:
Rename allow-custom-protocols-navigation sandbox flag to allow-top-navigation-to-custom-protocols as per:
There is no backward compatibility risk since support for this flag was added very recently
in r290958.
- UIProcess/WebPageProxy.cpp:
(WebKit::frameSandboxAllowsOpeningExternalCustomProtocols):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(TEST):
- 3:18 PM Changeset in webkit [291016] by
-
- 4 edits in trunk/Source
Fix Windows debug build
https://bugs.webkit.org/show_bug.cgi?id=237617
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-08
Reviewed by Fujii Hironori.
Source/WebCore:
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::parseHeader):
Source/WTF:
MSVC's linker is limited to generating 4GB libraries.
Currently, I'm seeing WebCore.lib be 3.9GB and some bots are failing to link debug builds.
More source unification reduces WebCore.lib's size to 3.3GB.
- Scripts/generate-unified-source-bundles.rb:
- 3:17 PM Changeset in webkit [291015] by
-
- 113 edits10 adds in branches/safari-613-branch
Cherry-pick r288701. rdar://problem/83734079
"Unrecognized Content-Security-Policy directive 'worker-src'."
https://bugs.webkit.org/show_bug.cgi?id=235260
<rdar://problem/83734079>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/child-src/child-src-cross-origin-load.sub-expected.txt:
- web-platform-tests/content-security-policy/child-src/child-src-worker-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-fallback.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-none.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-script-fallback.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-self-fallback.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/service-none.https.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/shared-child.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-list.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-none.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-self.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-default-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-script-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-self-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/blob/self-doesnt-match-blob.sub-expected.txt:
- web-platform-tests/content-security-policy/blob/star-doesnt-match-blob.sub-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.https-expected.txt:
Source/WebCore:
Implementation of worker-src directive. According to https://www.w3.org/TR/CSP3/#changes-from-level-2
the worker-src directive now restricts URLs that can be loaded by
workers, and defers to child-src if not specified.
- bindings/js/WorkerModuleScriptLoader.cpp: (WebCore::WorkerModuleScriptLoader::load): Check worker-src instead of child-src for worker loads.
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
- loader/ThreadableLoader.h: Check worker-src instead of child-src for worker loads.
- page/csp/ContentSecurityPolicy.cpp: We can remove allowChildContextFromSource which is now fully replaced by allowWorkerFromSource.
(WebCore::ContentSecurityPolicy::allowWorkerFromSource const):
(WebCore::ContentSecurityPolicy::allowChildContextFromSource const): Deleted.
- page/csp/ContentSecurityPolicy.h:
- page/csp/ContentSecurityPolicyDirectiveList.cpp: (WebCore::ContentSecurityPolicyDirectiveList::operativeDirectiveForWorkerSrc const): worker-src defers to child-src, then script-src, then default-src.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForWorker):
(WebCore::ContentSecurityPolicyDirectiveList::addDirective):
- page/csp/ContentSecurityPolicyDirectiveList.h:
- page/csp/ContentSecurityPolicyDirectiveNames.cpp:
- page/csp/ContentSecurityPolicyDirectiveNames.h:
- workers/AbstractWorker.cpp: (WebCore::AbstractWorker::resolveURL):
- workers/AbstractWorker.h: We check LegacySchemeRegistry::schemeShouldBypassContentSecurityPolicy in allowWorkerFromSource, so we don't need to check in in AbstractWorker::resolveURL anymore. We can also replace the child-src checks with worker-src ones.
- workers/Worker.cpp: (WebCore::Worker::create):
- workers/WorkerFontLoadRequest.cpp: (WebCore::WorkerFontLoadRequest::load):
- workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::addRegistration): Block service worker registrations not specified by worker-src.
- workers/shared/SharedWorker.cpp: (WebCore::SharedWorker::create): Block shared worker urls not specified by worker-src.
- workers/shared/SharedWorkerScriptLoader.cpp: (WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
Source/WebKit:
- NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
LayoutTests:
Update tests now that worker-src defaults eventually to script-src.
Since this was not the case with child-src, legacy CSP tests do not
expect script-src policies to affect workers. We can fix this by
specifying a separate worker-src policy for these tests to maintain
behavior.
- TestExpectations: Some wpt tests log random URL strings that change for every test iteration. For now we can't unskip those.
- http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-blocks-eval.html:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports.html:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked.html:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp.html:
- http/tests/security/contentSecurityPolicy/worker-script-src.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-eval.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-importScript-redirect-cross-origin.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-xhr.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:04 PM Changeset in webkit [291014] by
-
- 4 edits in trunk/Source/WebKit
File System Access: throw exception if file or directory cannot be accessed in file system
https://bugs.webkit.org/show_bug.cgi?id=237537
Reviewed by Youenn Fablet.
When a FileSystemHandle is created, we will ensure that corresponding directory or file exists (create the
directory or file if it does not exist yet). However, we did not check the result of the file system calls.
That means, we may fail to create the file (e.g. due to no disk space, or cases in rdar://89291566), but we
still return success to the FileSystemHandle creation request. We should fix this by checking the file system
call's result before completing the request.
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::FileSystemStorageHandle::create):
(WebKit::FileSystemStorageHandle::FileSystemStorageHandle):
- NetworkProcess/storage/FileSystemStorageHandle.h:
- NetworkProcess/storage/FileSystemStorageManager.cpp:
(WebKit::FileSystemStorageManager::createHandle):
- 2:18 PM Changeset in webkit [291013] by
-
- 8 edits in trunk/Tools
[git-webkit] Prompt user when GitHub credentials are likely incorrect
https://bugs.webkit.org/show_bug.cgi?id=237450
<rdar://problem/89781069>
Reviewed by Dewei Zhu.
GitHub doesn't make it obvious when credentials are invalid, but our scripts
can make an educated guess when invalid credentials are the root cause.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker): Add REFRESH_TOKEN_PROMPT.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.PRGenerator.create):
(GitHub.PRGenerator.update):
(GitHub.request):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/checkout_unittest.py:
(TestCheckout.test_no_pr_github):
Canonical link: https://commits.webkit.org/248188@main
- 2:06 PM Changeset in webkit [291012] by
-
- 113 edits10 deletes in branches/safari-613-branch
Revert "Cherry-pick r288701. rdar://problem/83734079"
This reverts commit r291000.
- 1:58 PM Changeset in webkit [291011] by
-
- 4 edits in trunk/Tools
[git-webkit] Set bug tracker usernames from contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237608
<rdar://problem/89971547>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.init): Set GitHub and bugzilla usernames from contributors.json
Canonical link: https://commits.webkit.org/248187@main
- 1:42 PM Changeset in webkit [291010] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r291006.
https://bugs.webkit.org/show_bug.cgi?id=237618
Introduced build failure.
Reverted changeset:
"The accessibility library should be soft linked optionally"
https://bugs.webkit.org/show_bug.cgi?id=236513
https://commits.webkit.org/r291006
- 1:39 PM Changeset in webkit [291009] by
-
- 3 edits2 adds in trunk
AX: Speech Synthesis no longer returning list of voices in macOS 12.3
https://bugs.webkit.org/show_bug.cgi?id=237584
<rdar://problem/89952347>
Reviewed by Andres Gonzalez.
Source/WTF:
The minimum macOS version was meant to be 13 and above, but we started including 12.x releases inadvertently.
- wtf/PlatformHave.h:
LayoutTests:
- fast/speechsynthesis/voices-non-mock-expected.txt: Added.
- fast/speechsynthesis/voices-non-mock.html: Added.
- 1:25 PM Changeset in webkit [291008] by
-
- 8 edits in trunk
[web-animations] color-interpolation should support discrete animation
https://bugs.webkit.org/show_bug.cgi?id=237610
Reviewed by Tim Nguyen.
LayoutTests/imported/w3c:
Since the input for the strings used in comparison for the WPT tests is using toLowerCase(),
we need to also use toLowerCase() for the output, so that "linearRGB" and "linearrgb" are
both correct values for "color-interpolation" values.
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/property-list.js:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::colorInterpolation const):
(WebCore::RenderStyle::setColorInterpolation):
- 12:48 PM Changeset in webkit [291007] by
-
- 13 edits in trunk/Source/bmalloc
[libpas] Report more actionable crash in pas_enumerator
https://bugs.webkit.org/show_bug.cgi?id=237572
Reviewed by Saam Barati.
- Adds PAS_ASSERT_WITH_DETAIL, which can report more detailed crash information than PAS_ASSERT while it is not efficient as much as PAS_ASSERT. We use it only in pas_enumerator related code to report more actionable crash from these code. It is OK since pas_enumerator is not used usually, which will be used only when vmmap is attached.
- Extract enumerate_large_map, enumerate_small_large_map, and enumerate_tiny_large_map to report which part of these functions can crash (in very rare case).
- Ensure pas_thread_local_cache_create's thread_local_cache is exposed after setting up all the data.
- libpas/src/libpas/pas_enumerable_range_list.c:
(pas_enumerable_range_list_append):
(pas_enumerable_range_list_iterate):
(pas_enumerable_range_list_iterate_remote):
- libpas/src/libpas/pas_enumerate_bitfit_heaps.c:
(view_callback):
(enumerate_bitfit_heap_callback):
- libpas/src/libpas/pas_enumerate_initially_unaccounted_pages.c:
(range_list_iterate_add_unaccounted_callback):
(range_list_iterate_exclude_accounted_callback):
- libpas/src/libpas/pas_enumerate_large_heaps.c:
(range_list_iterate_add_large_payload_callback):
(record_span):
(large_map_hashtable_entry_callback):
(small_large_map_hashtable_entry_callback):
(tiny_large_map_hashtable_entry_callback):
(enumerate_large_map):
(enumerate_small_large_map):
(enumerate_tiny_large_map):
(pas_enumerate_large_heaps):
- libpas/src/libpas/pas_enumerate_segregated_heaps.c:
(local_allocator_map_entry_is_empty_or_deleted):
(local_allocator_map_entry_is_empty):
(local_allocator_map_entry_is_deleted):
(collect_shared_page_directories_heap_callback):
(enumerate_exclusive_view):
(enumerate_shared_view):
(enumerate_partial_view):
(shared_page_directory_view_callback):
(size_directory_view_callback):
(consider_allocator):
(pas_enumerate_segregated_heaps):
- libpas/src/libpas/pas_enumerate_unaccounted_pages_as_meta.c:
(pas_enumerate_unaccounted_pages_as_meta):
- libpas/src/libpas/pas_enumerator.c:
(pas_enumerator_create):
(pas_enumerator_read_compact):
(pas_enumerator_read):
(pas_enumerator_add_unaccounted_pages):
(pas_enumerator_exclude_accounted_page):
(pas_enumerator_exclude_accounted_pages):
(pas_enumerator_record):
(pas_enumerator_record_page_payload_and_meta):
- libpas/src/libpas/pas_enumerator.h:
(pas_enumerator_record_kind_get_string):
- libpas/src/libpas/pas_enumerator_region.c:
(pas_enumerator_region_allocate):
- libpas/src/libpas/pas_thread_local_cache.c:
(pas_thread_local_cache_create):
- libpas/src/libpas/pas_utils.c:
(pas_assertion_failed_no_inline):
- libpas/src/libpas/pas_utils.h:
(pas_zero_memory):
- 12:46 PM Changeset in webkit [291006] by
-
- 2 edits in trunk/Source/WebKit
The accessibility library should be soft linked optionally
https://bugs.webkit.org/show_bug.cgi?id=236513
Reviewed by Geoffrey Garen.
The accessibility library should be soft linked optionally, since it is not always present.
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::handleAXPreferenceChange):
(WebKit::AuxiliaryProcess::handlePreferenceChange):
- 12:41 PM Changeset in webkit [291005] by
-
- 6 edits24 adds1 delete in trunk/Source/WebGPU
[WGSL] Add enough of the AST for the simplest shaders
https://bugs.webkit.org/show_bug.cgi?id=236655
Reviewed by Myles Maxfield.
These AST nodes are just those required for the most trivial graphics and compute shaders.
I used the machinery from wtf/TypeCasts as suggested by Myles in https://bugs.webkit.org/show_bug.cgi?id=233276.
Currently all of the code for these nodes is included in WGSL.cpp to verify that they build. This will be removed in the parser patch.
Attributes are added in setAttributes methods instead of being part of the constructors, because it can fail, and returning an error from a constructor is tricky.
- WGSL/AST/Attribute.h: Added.
(WGSL::AST::Attribute::Attribute):
(WGSL::AST::Attribute::kind const):
(WGSL::AST::Attribute::isBlock const):
(WGSL::AST::Attribute::isGroup const):
(WGSL::AST::Attribute::isBinding const):
(WGSL::AST::Attribute::isStage const):
(WGSL::AST::Attribute::isLocation const):
(WGSL::AST::Attribute::isBuiltin const):
(WGSL::AST::BlockAttribute::BlockAttribute):
(WGSL::AST::GroupAttribute::GroupAttribute):
(WGSL::AST::GroupAttribute::group const):
(WGSL::AST::BindingAttribute::BindingAttribute):
(WGSL::AST::BindingAttribute::binding const):
(WGSL::AST::StageAttribute::StageAttribute):
(WGSL::AST::StageAttribute::stage const):
(WGSL::AST::BuiltinAttribute::BuiltinAttribute):
(WGSL::AST::BuiltinAttribute::name const):
(WGSL::AST::LocationAttribute::LocationAttribute):
(WGSL::AST::LocationAttribute::location const):
- WGSL/AST/Expression.h: Added.
(WGSL::AST::Expression::Expression):
(WGSL::AST::Expression::kind const):
(WGSL::AST::Expression::isBoolLiteral const):
(WGSL::AST::Expression::isInt32Literal const):
(WGSL::AST::Expression::isUInt32Literal const):
(WGSL::AST::Expression::isFloat32Literal const):
(WGSL::AST::Expression::isIdentifier const):
(WGSL::AST::Expression::isStructureAccess const):
(WGSL::AST::Expression::isTypeConversion const):
- WGSL/AST/Expressions/IdentifierExpression.h: Added.
(WGSL::AST::IdentifierExpression::IdentifierExpression):
(WGSL::AST::IdentifierExpression::identifier const):
- WGSL/AST/Expressions/LiteralExpressions.h: Added.
(WGSL::AST::BoolLiteral::BoolLiteral):
(WGSL::AST::BoolLiteral::value const):
(WGSL::AST::Int32Literal::Int32Literal):
(WGSL::AST::Int32Literal::value const):
(WGSL::AST::Uint32Literal::Uint32Literal):
(WGSL::AST::Uint32Literal::value const):
(WGSL::AST::Float32Literal::Float32Literal):
(WGSL::AST::Float32Literal::value const):
- WGSL/AST/Expressions/StructureAccess.h: Added.
(WGSL::AST::StructureAccess::StructureAccess):
(WGSL::AST::StructureAccess::base):
(WGSL::AST::StructureAccess::fieldName const):
- WGSL/AST/Expressions/TypeConversion.h: Added.
(WGSL::AST::TypeConversion::TypeConversion):
(WGSL::AST::TypeConversion::typeDecl):
(WGSL::AST::TypeConversion::arguments):
- WGSL/AST/FunctionDecl.h: Added.
(WGSL::AST::Parameter::Parameter):
(WGSL::AST::Parameter::setAttributes):
(WGSL::AST::Parameter::builtin const):
(WGSL::AST::Parameter::location const):
(WGSL::AST::Parameter::name const):
(WGSL::AST::Parameter::type):
(WGSL::AST::FunctionDecl::FunctionDecl):
(WGSL::AST::FunctionDecl::setAttributes):
(WGSL::AST::FunctionDecl::setReturnAttributes):
(WGSL::AST::FunctionDecl::entryPointStage const):
(WGSL::AST::FunctionDecl::name const):
(WGSL::AST::FunctionDecl::parameters):
(WGSL::AST::FunctionDecl::returnBuiltin const):
(WGSL::AST::FunctionDecl::returnLocation const):
(WGSL::AST::FunctionDecl::maybeReturnType):
(WGSL::AST::FunctionDecl::body):
- WGSL/AST/GlobalDecl.h: Added.
(WGSL::AST::GlobalDecl::GlobalDecl):
(WGSL::AST::GlobalDecl::kind const):
(WGSL::AST::GlobalDecl::isGlobalVariable const):
(WGSL::AST::GlobalDecl::isStruct const):
(WGSL::AST::GlobalDecl::isFunction const):
- WGSL/AST/GlobalDirective.h: Added.
(WGSL::AST::GlobalDirective::name const):
- WGSL/AST/GlobalVariableDecl.h: Added.
(WGSL::AST::GlobalVariableDecl::GlobalVariableDecl):
(WGSL::AST::GlobalVariableDecl::setAttributes):
(WGSL::AST::GlobalVariableDecl::group const):
(WGSL::AST::GlobalVariableDecl::binding const):
(WGSL::AST::GlobalVariableDecl::name const):
(WGSL::AST::GlobalVariableDecl::maybeQualifier):
(WGSL::AST::GlobalVariableDecl::maybeTypeDecl):
(WGSL::AST::GlobalVariableDecl::maybeInitializer):
- WGSL/AST/Shader.h: Renamed from Source/WebGPU/WGSL/AST.h.
- WGSL/AST/Statement.h: Added.
(WGSL::AST::Statement::Statement):
(WGSL::AST::Statement::kind const):
(WGSL::AST::Statement::isCompound const):
(WGSL::AST::Statement::isReturn const):
(WGSL::AST::Statement::isAssignment const):
- WGSL/AST/Statements/AssignmentStatement.h: Added.
(WGSL::AST::AssignmentStatement::AssignmentStatement):
(WGSL::AST::AssignmentStatement::maybeLhs):
(WGSL::AST::AssignmentStatement::rhs):
- WGSL/AST/Statements/ReturnStatement.h: Added.
(WGSL::AST::ReturnStatement::ReturnStatement):
(WGSL::AST::ReturnStatement::maybeExpression):
- WGSL/AST/StructureDecl.h: Added.
(WGSL::AST::StructMember::StructMember):
(WGSL::AST::StructMember::setAttributes):
(WGSL::AST::StructMember::builtin const):
(WGSL::AST::StructMember::location const):
(WGSL::AST::StructMember::name const):
(WGSL::AST::StructMember::type):
(WGSL::AST::StructDecl::StructDecl):
(WGSL::AST::StructDecl::setAttributes):
(WGSL::AST::StructDecl::isBlock const):
(WGSL::AST::StructDecl::name const):
(WGSL::AST::StructDecl::members):
- WGSL/AST/TypeDecl.h: Added.
(WGSL::AST::TypeDecl::TypeDecl):
(WGSL::AST::TypeDecl::kind const):
(WGSL::AST::TypeDecl::isNamed const):
(WGSL::AST::TypeDecl::isParameterized const):
- WGSL/AST/VariableQualifier.h: Added.
(WGSL::AST::VariableQualifier::VariableQualifier):
(WGSL::AST::VariableQualifier::storageClass const):
(WGSL::AST::VariableQualifier::accessMode const):
- WGSL/ASTNode.h: Added.
(WGSL::AST::ASTNode::ASTNode):
(WGSL::AST::ASTNode::span const):
- WGSL/CompilationMessage.cpp: Added.
(WGSL::CompilationMessage::dump const):
- WGSL/CompilationMessage.h: Added.
(WGSL::CompilationMessage::CompilationMessage):
- WGSL/WGSL.cpp:
- WGSL/WGSL.h:
- WebGPU.xcodeproj/project.pbxproj:
- 12:15 PM Changeset in webkit [291004] by
-
- 3 edits in trunk/Source/WebGPU
[WGSL] The lexer should use the functions from wtf/ASCIICType.h
https://bugs.webkit.org/show_bug.cgi?id=236783
Reviewed by Darin Adler.
I was not aware of these functions when I wrote the lexer, and I ended up reimplementing them.
Reusing them is both simpler, and slightly more efficient as some of them (especially isASCIISpace) have been optimized.
- WGSL/Lexer.cpp:
(WGSL::Lexer<T>::lex):
(WGSL::Lexer<T>::skipWhitespace):
(WGSL::Lexer<T>::parseDecimalInteger):
(WGSL::Lexer<T>::parseDecimalFloatExponent):
(WGSL::Lexer<T>::isWhiteSpace): Deleted.
(WGSL::Lexer<T>::isIdentifierStart): Deleted.
(WGSL::Lexer<T>::isValidIdentifierCharacter): Deleted.
(WGSL::Lexer<T>::isDecimal): Deleted.
(WGSL::Lexer<T>::isHexadecimal): Deleted.
(WGSL::Lexer<T>::readDecimal): Deleted.
(WGSL::Lexer<T>::readHexadecimal): Deleted.
- WGSL/Lexer.h:
- 12:05 PM Changeset in webkit [291003] by
-
- 77 edits in trunk/Source
Optimize further the passing of data across threads
https://bugs.webkit.org/show_bug.cgi?id=237568
Reviewed by Geoffrey Garen.
Optimize further the passing of data across threads by leveraging more broadly the optimized
versions of isolatedCopy() on r-value references.
Source/WebCore:
- Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::DOMFileSystem::listDirectory):
(WebCore::DOMFileSystem::getParent):
(WebCore::DOMFileSystem::getEntry):
(WebCore::DOMFileSystem::getFile):
- Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:
(WebCore::WorkerFileSystemStorageConnection::isSameEntry):
(WebCore::WorkerFileSystemStorageConnection::getFileHandle):
(WebCore::WorkerFileSystemStorageConnection::getDirectoryHandle):
(WebCore::WorkerFileSystemStorageConnection::removeEntry):
(WebCore::WorkerFileSystemStorageConnection::resolve):
(WebCore::WorkerFileSystemStorageConnection::getFile):
(WebCore::WorkerFileSystemStorageConnection::createSyncAccessHandle):
(WebCore::WorkerFileSystemStorageConnection::closeSyncAccessHandle):
(WebCore::WorkerFileSystemStorageConnection::getHandleNames):
(WebCore::WorkerFileSystemStorageConnection::getHandle):
(WebCore::WorkerFileSystemStorageConnection::move):
- Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
- Modules/indexeddb/shared/IndexKey.cpp:
(WebCore::IndexKey::isolatedCopy const):
(WebCore::IndexKey::isolatedCopy):
- Modules/indexeddb/shared/IndexKey.h:
- Modules/storage/StorageManager.cpp:
(WebCore::StorageManager::fileSystemAccessGetDirectory):
- Modules/storage/WorkerStorageConnection.cpp:
(WebCore::WorkerStorageConnection::fileSystemGetDirectory):
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
- crypto/CryptoAlgorithm.cpp:
(WebCore::dispatchAlgorithmOperation):
- dom/ExceptionOr.h:
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerBlobURL):
- fileapi/ThreadableBlobRegistry.h:
- workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::startScriptFetchForServer):
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerClients.cpp:
(WebCore::ServiceWorkerClients::get):
(WebCore::ServiceWorkerClients::matchAll):
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
(WebCore::ServiceWorkerContainer::notifyFailedFetchingScript):
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerJobClient.h:
- workers/service/WorkerSWClientConnection.cpp:
(WebCore::WorkerSWClientConnection::registerServiceWorkerClient):
(WebCore::WorkerSWClientConnection::finishFetchingScriptInServer):
(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):
(WebCore::WorkerSWClientConnection::subscribeToPushService):
(WebCore::WorkerSWClientConnection::unsubscribeFromPushService):
(WebCore::WorkerSWClientConnection::getPushSubscription):
(WebCore::WorkerSWClientConnection::getPushPermissionState):
- workers/service/WorkerSWClientConnection.h:
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::doPushChanges):
- worklets/Worklet.cpp:
(WebCore::Worklet::addModule):
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal):
(WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics):
(WebKit::ResourceLoadStatisticsDatabaseStore::clear):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlocking):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::ResourceLoadStatisticsStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsStore::logTestingEvent):
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::logFrameNavigation):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::logCrossSiteLoadWithLinkDecoration):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setLastSeen):
(WebKit::WebResourceLoadStatisticsStore::mergeStatisticForTesting):
(WebKit::WebResourceLoadStatisticsStore::isRelationshipOnlyInDatabaseOnce):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::dumpResourceLoadStatistics):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubresourceUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameDomain):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameDomain):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::insertExpiredStatisticForTesting):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::updateQuotaBasedOnSpaceUsageForTesting):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFilesForIndexedDB):
(WebKit::NetworkConnectionToWebProcess::logUserInteraction):
(WebKit::NetworkConnectionToWebProcess::hasStorageAccess):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccess):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::isGrandfathered):
(WebKit::NetworkProcess::isPrevalentResource):
(WebKit::NetworkProcess::isVeryPrevalentResource):
(WebKit::NetworkProcess::setGrandfathered):
(WebKit::NetworkProcess::setPrevalentResource):
(WebKit::NetworkProcess::setPrevalentResourceForDebugMode):
(WebKit::NetworkProcess::setVeryPrevalentResource):
(WebKit::NetworkProcess::clearPrevalentResource):
(WebKit::NetworkProcess::setSubframeUnderTopFrameDomain):
(WebKit::NetworkProcess::isRegisteredAsRedirectingTo):
(WebKit::NetworkProcess::isRegisteredAsSubFrameUnder):
(WebKit::NetworkProcess::setSubresourceUnderTopFrameDomain):
(WebKit::NetworkProcess::setSubresourceUniqueRedirectTo):
(WebKit::NetworkProcess::setSubresourceUniqueRedirectFrom):
(WebKit::NetworkProcess::isRegisteredAsSubresourceUnder):
(WebKit::NetworkProcess::setTopFrameUniqueRedirectTo):
(WebKit::NetworkProcess::setTopFrameUniqueRedirectFrom):
(WebKit::NetworkProcess::setLastSeen):
(WebKit::NetworkProcess::mergeStatisticForTesting):
(WebKit::NetworkProcess::insertExpiredStatisticForTesting):
(WebKit::NetworkProcess::logFrameNavigation):
(WebKit::NetworkProcess::logUserInteraction):
(WebKit::NetworkProcess::hadUserInteraction):
(WebKit::NetworkProcess::isRelationshipOnlyInDatabaseOnce):
(WebKit::NetworkProcess::clearUserInteraction):
(WebKit::NetworkProcess::didCommitCrossSiteLoadWithDataTransfer):
(WebKit::NetworkProcess::setCrossSiteLoadWithLinkDecorationForTesting):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::didIncreaseQuota):
(WebKit::NetworkProcess::renameOriginInWebsiteData):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::clearForRegistrableDomain):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.cpp:
(WebKit::PCM::ManagerProxy::clearForRegistrableDomain):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerProxy.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp:
(WebKit::PCM::Store::attributePrivateClickMeasurement):
(WebKit::PCM::Store::privateClickMeasurementToStringForTesting const):
(WebKit::PCM::Store::clearPrivateClickMeasurementForRegistrableDomain):
(WebKit::PCM::Store::clearSentAttribution):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.h:
- NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:
(WebKit::LocalStorageDatabaseTracker::OriginDetails::isolatedCopy const):
(WebKit::LocalStorageDatabaseTracker::OriginDetails::isolatedCopy):
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOriginsCrossThreadCopy const):
(WebKit::StorageManager::getLocalStorageOriginsCrossThreadCopy const):
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::writeFile):
(WebKit::CacheStorage::Engine::readFile):
(WebKit::CacheStorage::Engine::removeFile):
(WebKit::CacheStorage::Engine::writeSizeFile):
(WebKit::CacheStorage::Engine::getDirectories):
(WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories):
(WebKit::CacheStorage::Engine::deleteNonEmptyDirectoryOnBackgroundThread):
- NetworkProcess/cache/CacheStorageEngine.h:
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::RecordInformation::isolatedCopy):
(WebKit::CacheStorage::TraversalResult::isolatedCopy):
(WebKit::CacheStorage::Cache::open):
(WebKit::CacheStorage::isolatedCopy): Deleted.
- NetworkProcess/cache/CacheStorageEngineCache.h:
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):
(WebKit::CacheStorage::Caches::clear):
(WebKit::CacheStorage::Caches::readCachesFromDisk):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::clear):
- NetworkProcess/cache/NetworkCacheIOChannel.h:
(WebKit::NetworkCache::IOChannel::open):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::updateFileModificationTime):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::dispatchWriteOperation):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
- NetworkProcess/cache/NetworkCacheStorage.h:
- NetworkProcess/storage/IDBStorageConnectionToClient.cpp:
(WebKit::IDBStorageConnectionToClient::didGetAllDatabaseNamesAndVersions):
- NetworkProcess/storage/IDBStorageConnectionToClient.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::didIncreaseQuota):
(WebKit::NetworkStorageManager::moveData):
(WebKit::NetworkStorageManager::registerTemporaryBlobFilePaths):
(WebKit::NetworkStorageManager::resetQuotaUpdatedBasedOnUsageForTesting):
- NetworkProcess/storage/NetworkStorageManager.h:
- Shared/API/APIString.h:
- Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::isolatedCopy const):
(WebKit::WebsiteData::isolatedCopy):
(WebKit::WebsiteData::Entry::isolatedCopy const):
(WebKit::WebsiteData::Entry::isolatedCopy):
- Shared/WebsiteData/WebsiteData.h:
- UIProcess/API/APIContentRuleListStore.cpp:
(API::createExtension):
(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::compileContentRuleList):
(API::ContentRuleListStore::removeContentRuleList):
(API::ContentRuleListStore::getContentRuleListSource):
- UIProcess/API/APIContentRuleListStore.h:
- UIProcess/API/glib/WebKitUserContentFilterStore.cpp:
(webkitUserContentFilterStoreSaveBytes):
- UIProcess/DeviceIdHashSaltStorage.cpp:
(WebKit::DeviceIdHashSaltStorage::deleteHashSaltFromDisk):
- UIProcess/DeviceIdHashSaltStorage.h:
(WebKit::DeviceIdHashSaltStorage::HashSaltForOrigin::HashSaltForOrigin):
(WebKit::DeviceIdHashSaltStorage::HashSaltForOrigin::isolatedCopy const):
(WebKit::DeviceIdHashSaltStorage::HashSaltForOrigin::isolatedCopy):
- UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::isolatedCopy const):
(WebKit::WebsiteDataRecord::isolatedCopy):
- UIProcess/WebsiteData/WebsiteDataRecord.h:
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::finishFetchingScriptInServer):
(WebKit::WebSWClientConnection::registerServiceWorkerClient):
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):
Source/WebKitLegacy:
- Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::didGetAllDatabaseNamesAndVersions):
- Storage/InProcessIDBServer.h:
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::deleteOrigin):
- 11:29 AM Changeset in webkit [291002] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.9
- 11:27 AM Changeset in webkit [291001] by
-
- 4 edits in trunk/Source
Disable CFURLCache in WebKit
https://bugs.webkit.org/show_bug.cgi?id=237575
Reviewed by Geoffrey Garen.
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::addStorageSession):
Source/WebKitLegacy:
- WebCoreSupport/NetworkStorageSessionMap.cpp:
(NetworkStorageSessionMap::ensureSession):
- 11:17 AM Changeset in webkit [291000] by
-
- 113 edits10 adds in branches/safari-613-branch
Cherry-pick r288701. rdar://problem/83734079
"Unrecognized Content-Security-Policy directive 'worker-src'."
https://bugs.webkit.org/show_bug.cgi?id=235260
<rdar://problem/83734079>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/child-src/child-src-cross-origin-load.sub-expected.txt:
- web-platform-tests/content-security-policy/child-src/child-src-worker-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-self/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/script-src-wildcard/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-none/worker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/sharedworker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-wildcard/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-self/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/script-src-wildcard/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-fallback.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-none.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-child-fallback-blocked.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-script-fallback.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/dedicated-worker-src-self-fallback.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/service-none.https.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/service-worker-src-child-fallback-blocked.https.sub-expected.txt:
- web-platform-tests/content-security-policy/worker-src/shared-child.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-list.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-none.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-self.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-default-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-script-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/worker-src/shared-worker-src-self-fallback.sub-expected.txt: Added.
- web-platform-tests/content-security-policy/blob/self-doesnt-match-blob.sub-expected.txt:
- web-platform-tests/content-security-policy/blob/star-doesnt-match-blob.sub-expected.txt:
- web-platform-tests/content-security-policy/gen/top.http-rp/worker-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/sharedworker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-classic.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-import.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-none/worker-module.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/sharedworker-import-data.https-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.http-expected.txt:
- web-platform-tests/content-security-policy/gen/top.meta/worker-src-self/worker-import-data.https-expected.txt:
Source/WebCore:
Implementation of worker-src directive. According to https://www.w3.org/TR/CSP3/#changes-from-level-2
the worker-src directive now restricts URLs that can be loaded by
workers, and defers to child-src if not specified.
- bindings/js/WorkerModuleScriptLoader.cpp: (WebCore::WorkerModuleScriptLoader::load): Check worker-src instead of child-src for worker loads.
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
- loader/ThreadableLoader.h: Check worker-src instead of child-src for worker loads.
- page/csp/ContentSecurityPolicy.cpp: We can remove allowChildContextFromSource which is now fully replaced by allowWorkerFromSource.
(WebCore::ContentSecurityPolicy::allowWorkerFromSource const):
(WebCore::ContentSecurityPolicy::allowChildContextFromSource const): Deleted.
- page/csp/ContentSecurityPolicy.h:
- page/csp/ContentSecurityPolicyDirectiveList.cpp: (WebCore::ContentSecurityPolicyDirectiveList::operativeDirectiveForWorkerSrc const): worker-src defers to child-src, then script-src, then default-src.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForWorker):
(WebCore::ContentSecurityPolicyDirectiveList::addDirective):
- page/csp/ContentSecurityPolicyDirectiveList.h:
- page/csp/ContentSecurityPolicyDirectiveNames.cpp:
- page/csp/ContentSecurityPolicyDirectiveNames.h:
- workers/AbstractWorker.cpp: (WebCore::AbstractWorker::resolveURL):
- workers/AbstractWorker.h: We check LegacySchemeRegistry::schemeShouldBypassContentSecurityPolicy in allowWorkerFromSource, so we don't need to check in in AbstractWorker::resolveURL anymore. We can also replace the child-src checks with worker-src ones.
- workers/Worker.cpp: (WebCore::Worker::create):
- workers/WorkerFontLoadRequest.cpp: (WebCore::WorkerFontLoadRequest::load):
- workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::addRegistration): Block service worker registrations not specified by worker-src.
- workers/shared/SharedWorker.cpp: (WebCore::SharedWorker::create): Block shared worker urls not specified by worker-src.
- workers/shared/SharedWorkerScriptLoader.cpp: (WebCore::SharedWorkerScriptLoader::SharedWorkerScriptLoader):
Source/WebKit:
- NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
LayoutTests:
Update tests now that worker-src defaults eventually to script-src.
Since this was not the case with child-src, legacy CSP tests do not
expect script-src policies to affect workers. We can fix this by
specifying a separate worker-src policy for these tests to maintain
behavior.
- TestExpectations: Some wpt tests log random URL strings that change for every test iteration. For now we can't unskip those.
- http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-blocks-eval.html:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports.html:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked.html:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp.html:
- http/tests/security/contentSecurityPolicy/worker-script-src.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-eval.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-importScript-redirect-cross-origin.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker-blob-xhr.html:
- http/tests/security/isolatedWorld/bypass-main-world-csp-worker.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:12 AM Changeset in webkit [290999] by
-
- 2 edits in trunk/Source/WebCore
UniqueIDBDatabase::didFireVersionChangeEvent should capture identifier of UniqueIDBDatabaseConnection
https://bugs.webkit.org/show_bug.cgi?id=236950
rdar://problem/89218299
Reviewed by Chris Dumez.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::didFireVersionChangeEvent):
- 10:40 AM Changeset in webkit [290998] by
-
- 7 edits in trunk
File System Access: disallow empty name in FileSystemHandle
https://bugs.webkit.org/show_bug.cgi?id=237563
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
Source/WebKit:
Updated expectations of imported wpt tests.
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::isValidFileName):
- 9:29 AM Changeset in webkit [290997] by
-
- 5 edits in trunk/Source/WebCore
[iOS] Flash media controls when a fullscreen video resets its source
https://bugs.webkit.org/show_bug.cgi?id=237493
Reviewed by Jer Noble.
Source/WebCore:
Some pages reset the fullscreen video's source when a user rotates the device.
The screen will become black for a while, and users might think the player is broken.
With this patch, the player will show the media controls for 1 second when the source
is changed, so that users will know the player is working.
- platform/ios/VideoFullscreenInterfaceAVKit.h:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
_presentingViewControlleris only used for watchOS.
(-[WebAVPlayerViewController flashPlaybackControlsWithDuration:]):
(VideoFullscreenInterfaceAVKit::setPlayerIdentifier):
Source/WebCore/PAL:
- pal/spi/cocoa/AVKitSPI.h:
- 9:15 AM Changeset in webkit [290996] by
-
- 2 edits in trunk/Source/WebKit
Expand adattributiond sandbox to prevent sandbox exceptions during main functionality
https://bugs.webkit.org/show_bug.cgi?id=237580
<rdar://89855243>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-08
Reviewed by Per Arne Vollan.
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
- 9:03 AM Changeset in webkit [290995] by
-
- 29 edits15 adds32 deletes in trunk
WebSocket.send() should synchronously update bufferedAmount
https://bugs.webkit.org/show_bug.cgi?id=235707
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/websockets/Send-binary-65K-arraybuffer.any.worker-expected.txt:
- web-platform-tests/websockets/Send-binary-arraybuffer.any.worker-expected.txt:
- web-platform-tests/websockets/Send-data.any.worker-expected.txt:
- web-platform-tests/websockets/Send-paired-surrogates.any.worker-expected.txt:
- web-platform-tests/websockets/Send-unicode-data.any.worker-expected.txt:
- web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt:
- web-platform-tests/websockets/interfaces/WebSocket/close/close-basic-expected.txt:
- web-platform-tests/websockets/interfaces/WebSocket/close/close-connecting-expected.txt:
Source/WebCore:
This matches the behavior of Chrome and Firefox and is covered by web platform tests.
- Modules/websockets/ThreadableWebSocketChannel.h:
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::send):
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::send):
(WebCore::WebSocketChannel::enqueueTextFrame):
- Modules/websockets/WebSocketChannel.h:
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
Source/WebKit:
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::send):
- WebProcess/Network/WebSocketChannel.h:
- 8:56 AM Changeset in webkit [290994] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r290853): CrashTracer: com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::FrameLoader::clear
https://bugs.webkit.org/show_bug.cgi?id=237565
<rdar://problem/88356074>
Reviewed by Chris Dumez.
No new tests. Fixes crashing test: accessibility/mac/value-change/value-change-user-info-textarea.html
newDocument may be the frame's document. We should make it a RefPtr
because it could get set to null in this function.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
- loader/FrameLoader.h:
- 8:42 AM Changeset in webkit [290993] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Enable ThinLTO
https://bugs.webkit.org/show_bug.cgi?id=229019
<rdar://problem/82107543>
Reviewed by Mark Lam.
It's a 1% speedup on Speedometer2 across x86 and arm64, and 0.5-1% speedup on
JetStream2 depending on the device.
- Configurations/Base.xcconfig:
- 8:24 AM Changeset in webkit [290992] by
-
- 3 edits in trunk/LayoutTests
Unreviewed, silence console logging for http/tests/security/cookie-module-import-propagate.html
<rdar://88842347>
This is to address flakiness on the bots.
- TestExpectations:
- http/tests/security/cookie-module-import-propagate-expected.txt:
- 8:17 AM Changeset in webkit [290991] by
-
- 3 edits in trunk/LayoutTests
[ iOS ] 2X http/wpt/webauthn/public-key-credential-create-failure-local (layout-tests) are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=237548
rdar://problem/89923849
Unreviewed test gardening.
These console messages differing is causing test failures, fixing expectations.
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- 7:37 AM Changeset in webkit [290990] by
-
- 8 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r290975.
Broke the build for some configurations
Reverted changeset:
"[XCBuild] Emit a discovered dependency file from offlineasm"
https://bugs.webkit.org/show_bug.cgi?id=237329
https://commits.webkit.org/r290975
- 7:33 AM Changeset in webkit [290989] by
-
- 4 edits in trunk/Source/WebKit
Remove unneeded Async keywords in messages.in files after r290903
https://bugs.webkit.org/show_bug.cgi?id=237574
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-08
Reviewed by Chris Dumez.
- GPUProcess/graphics/wc/RemoteWCLayerTreeHost.messages.in:
- Scripts/webkit/tests/TestWithSuperclass.messages.in:
- WebProcess/glib/UserMediaCaptureManager.messages.in:
- 6:50 AM Changeset in webkit [290988] by
-
- 12 edits in trunk/Source
[GTK] Sync gtk-overlay-scrolling setting to web process
https://bugs.webkit.org/show_bug.cgi?id=236476
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-03-08
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- platform/adwaita/ScrollbarThemeAdwaita.cpp:
(WebCore::ScrollbarThemeAdwaita::usesOverlayScrollbars const):
- platform/gtk/GtkUtilities.cpp:
(WebCore::shouldUseOverlayScrollbars):
- platform/gtk/GtkUtilities.h:
- platform/gtk/RenderThemeScrollbar.cpp:
(WebCore::RenderThemeScrollbar::RenderThemeScrollbar):
- platform/gtk/ScrollbarThemeGtk.cpp:
(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk):
Source/WebKit:
- Shared/gtk/GtkSettingsState.cpp:
(WebKit::GtkSettingsState::encode const):
(WebKit::GtkSettingsState::decode):
- Shared/gtk/GtkSettingsState.h:
- UIProcess/gtk/GtkSettingsManager.cpp:
(WebKit::GtkSettingsManager::overlayScrolling const):
(WebKit::GtkSettingsManager::settingsDidChange):
(WebKit::GtkSettingsManager::GtkSettingsManager):
- UIProcess/gtk/GtkSettingsManager.h:
- WebProcess/gtk/GtkSettingsManagerProxy.cpp:
(WebKit::GtkSettingsManagerProxy::applySettings):
- 5:42 AM Changeset in webkit [290987] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
ANGLE display cache does not work with explicit device ids
https://bugs.webkit.org/show_bug.cgi?id=237522
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-08
Reviewed by Kenneth Russell.
Add EGL_PLATFORM_ANGLE_DEVICE_ID_HIGH_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_ID_LOW_ANGLE
to the display cache key, so that a request for a display with an explicit device does
not get resolved with a display without explicit device or with a display with another
explicit device.
WebKit tests will be added once this will be used.
ANGLE tests will be added once upstreamed.
- src/libANGLE/Display.cpp:
(egl::Display::GetDisplayFromNativeDisplay):
(egl::Display::~Display):
- 5:31 AM Changeset in webkit [290986] by
-
- 2 edits in trunk/Source/WebCore
[EME][Thunder] Disable hasBrokenEncryptedMediaAPISupportQuirk
https://bugs.webkit.org/show_bug.cgi?id=237595
Reviewed by Philippe Normand.
Hulu and YouTube work fine with Thunder, no need for this quirk.
Patch based on one by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>.
- page/Quirks.cpp:
(WebCore::Quirks::hasBrokenEncryptedMediaAPISupportQuirk const):
Return false if Thunder build is enabled.
- 4:24 AM Changeset in webkit [290985] by
-
- 45 edits2 adds in trunk
Add a preference to mute video capture in case audio capture gets interrupted
https://bugs.webkit.org/show_bug.cgi?id=237524
<rdar://78421282>
Reviewed by Eric Carlson.
Source/WebCore:
In case we detect that a microphone track source gets muted due to interruption, we mute
capture video tracks based if allowed by the new MuteCameraOnMicrophoneInterruptionEnabled setting.
Add support for mock microphone interruption and remove previous in process internals API.
Test: fast/mediastream/media-stream-video-track-interrupted-from-audio.html
- Modules/mediastream/MediaStreamTrack.cpp:
- Modules/mediastream/MediaStreamTrack.h:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::setIsInterrupted):
- platform/mock/MockRealtimeAudioSource.h:
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::setMockCaptureDevicesInterrupted):
(WebCore::MockRealtimeMediaSourceCenter::setMockCameraIsInterrupted): Deleted.
- platform/mock/MockRealtimeMediaSourceCenter.h:
Source/WebKit:
Add support for interrupt mock microphone devices.
Send to WebProcess sources whether sources are interrupted each time the source muted value changes.
Store that value in remote sources.
- GPUProcess/GPUProcess.cpp:
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- UIProcess/API/C/WKPage.cpp:
- UIProcess/API/C/WKPagePrivate.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/GPU/GPUProcessProxy.cpp:
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/cocoa/RemoteRealtimeAudioSource.h:
- WebProcess/cocoa/RemoteRealtimeDisplaySource.h:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.cpp:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
- WebProcess/cocoa/RemoteRealtimeVideoSource.h:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- WebProcess/cocoa/UserMediaCaptureManager.h:
- WebProcess/cocoa/UserMediaCaptureManager.messages.in:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
Add support for interrupt mock microphone devices.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
LayoutTests:
- fast/mediastream/media-stream-video-track-interrupted-from-audio-expected.txt: Added.
- fast/mediastream/media-stream-video-track-interrupted-from-audio.html: Added.
- fast/mediastream/media-stream-video-track-interrupted.html: Migrated to testRunner API.
- fast/mediastream/track-ended-while-muted.html:
- platform/glib/TestExpectations:
- 4:21 AM Changeset in webkit [290984] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Handle gst pad error as format error
https://bugs.webkit.org/show_bug.cgi?id=237526
Reviewed by Xabier Rodriguez-Calvar.
This patch is authored by Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/797
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
- 1:25 AM Changeset in webkit [290983] by
-
- 4 edits4 moves1 add in trunk/Source/WebCore
PDF.js content script is adding custom cocoa style unconditionally
https://bugs.webkit.org/show_bug.cgi?id=237516
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-03-08
Reviewed by Tim Nguyen.
Add the custom style from the WebKit code instead of injected content script to make it easier to add the style
depending on the platform. Move current cocoa specific style files to a cocoa directory.
- Modules/pdfjs-extras/cocoa/arrow.down.circle@2x.png: Renamed from Source/WebCore/Modules/pdfjs-extras/arrow.down.circle@2x.png.
- Modules/pdfjs-extras/cocoa/minus.magnifyingglass@2x.png: Renamed from Source/WebCore/Modules/pdfjs-extras/minus.magnifyingglass@2x.png.
- Modules/pdfjs-extras/cocoa/plus.magnifyingglass@2x.png: Renamed from Source/WebCore/Modules/pdfjs-extras/plus.magnifyingglass@2x.png.
- Modules/pdfjs-extras/cocoa/style.css: Renamed from Source/WebCore/Modules/pdfjs-extras/style-cocoa.css.
- Modules/pdfjs-extras/content-script.js:
(const.PDFJSContentScript.injectStyle): Deleted.
(const.PDFJSContentScript.init): Deleted.
- html/PDFDocument.cpp:
(WebCore::PDFDocumentEventListener::handleEvent):
(WebCore::PDFDocument::injectStyleAndContentScript):
(WebCore::PDFDocument::injectContentScript): Deleted.
- html/PDFDocument.h:
- 1:13 AM Changeset in webkit [290982] by
-
- 3 edits in trunk/Tools
[GTK][WPE] Do not add new modules under ThirdParty to the tarball
https://bugs.webkit.org/show_bug.cgi?id=237519
Reviewed by Michael Catanzaro.
We currently include ThirdParty and exclude individually what we don't want in the tarball. That means every
time something new is added to ThirdParty we have to manually exclude it. It's better to exclude ThirdParty and
manually add what we need instead.
- gtk/manifest.txt.in:
- wpe/manifest.txt.in:
- 1:09 AM Changeset in webkit [290981] by
-
- 3 edits1 add in trunk
Remove invalid ASSERT in LocaleIDBuilder::overrideLanguageScriptRegion().
https://bugs.webkit.org/show_bug.cgi?id=237573
<rdar://problem/83326232>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/handle-empty-localeID-in-localeIDBufferForLanguageTagWithNullTerminator.js: Added.
Source/JavaScriptCore:
The ASSERT(length) in LocaleIDBuilder::overrideLanguageScriptRegion() is simply
incorrect. The length can be 0 if uloc_forLanguageTag returns a 0 length in
localeIDBufferForLanguageTagWithNullTerminator(). LocaleIDBuilder::overrideLanguageScriptRegion()
already handles this scenario correctly. We just need to remove this incorrect ASSERT.
Also verified that we're producing the same result on the attached test case as
Chrome and Firefox produces.
- runtime/IntlObject.cpp:
(JSC::localeIDBufferForLanguageTagWithNullTerminator):
- 12:55 AM Changeset in webkit [290980] by
-
- 5 edits in trunk/Source/WebCore
[WinCairo] GraphicsContextGL should have one more output texture for double buffering WebGL
https://bugs.webkit.org/show_bug.cgi?id=237460
Reviewed by Žan Doberšek.
WinCairo's GraphicsContextGL had only a single output texture. If the
page was interactive WebGL, the user interaction was causing the
rendering to the texture while the compositor is running.
Coordinated Graphics has another output texture m_compositorTexture.
This change reuses the code for WinCairo.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::prepareTextureImpl):
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLTextureMapper::reshapeDisplayBufferBacking):
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):
- 12:53 AM Changeset in webkit [290979] by
-
- 8 edits in trunk
Improve WebRTC VPX media capabilities accuracy
https://bugs.webkit.org/show_bug.cgi?id=237462
Reviewed by Eric Carlson.
Source/WebCore:
Reuse VPx decoder media capabilities routines for WebRTC.
Use caseless string comparison for content type.
Covered by updated tests.
- platform/graphics/cocoa/VP9UtilitiesCocoa.h:
- platform/graphics/cocoa/VP9UtilitiesCocoa.mm:
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
LayoutTests:
- webrtc/video-mute-vp8.html:
- webrtc/vp9-expected.txt:
- webrtc/vp9.html:
- 12:06 AM Changeset in webkit [290978] by
-
- 4 edits in trunk
Add early return for empty path in makeAllDirectories
https://bugs.webkit.org/show_bug.cgi?id=237540
rdar://89901536
Reviewed by Chris Dumez.
Source/WTF:
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::makeAllDirectories):
Tools:
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 12:01 AM Changeset in webkit [290977] by
-
- 3 edits9 deletes in trunk/LayoutTests
Resync web-platform-tests/beacon from upstream
https://bugs.webkit.org/show_bug.cgi?id=237536
LayoutTests/imported/w3c:
Unreviewed, drop web-platform-tests/beacon tests that are no longer upstream (as of 30d5f8f4c7687a4f2c0).
- web-platform-tests/beacon/beacon-basic-blob-expected.txt: Removed.
- web-platform-tests/beacon/beacon-navigate-expected.txt: Removed.
- web-platform-tests/beacon/beacon-redirect.sub.window-expected.txt: Removed.
- web-platform-tests/beacon/beacon-redirect.sub.window.html: Removed.
- web-platform-tests/beacon/resources/beacon-preflight.py: Removed.
(respondToCORSPreflight): Deleted.
(main): Deleted.
- web-platform-tests/beacon/resources/redirect.py: Removed.
(main): Deleted.
- web-platform-tests/beacon/resources/upgrade-iframe.html: Removed.
- web-platform-tests/beacon/upgrade-beacon.https-expected.txt: Removed.
- web-platform-tests/beacon/upgrade-beacon.https.html: Removed.
LayoutTests:
Unreviewed, drop web-platform-tests/beacon tests that are no longer upstream.
Mar 7, 2022:
- 11:28 PM Changeset in webkit [290976] by
-
- 16 edits in trunk/Source
Rename VolatilityState to SetNonVolatileResult
https://bugs.webkit.org/show_bug.cgi?id=237562
Reviewed by Tim Horton.
Pure rename. I want to use VolatilityState to actually reflect state.
Source/WebCore:
- platform/graphics/ConcreteImageBuffer.h:
- platform/graphics/ImageBuffer.h:
- platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::setNonVolatile):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::setNonVolatile):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::state const):
(WebCore::IOSurface::setVolatile):
(WebCore::operator<<):
Source/WebKit:
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::markSurfaceNonVolatile):
(WebKit::RemoteRenderingBackend::swapToValidFrontBuffer):
- Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::setBufferNonVolatile):
(WebKit::RemoteLayerBackingStore::didMakeFrontBufferNonVolatile):
- UIProcess/ViewSnapshotStore.h:
- UIProcess/mac/ViewSnapshotStoreMac.mm:
(WebKit::ViewSnapshot::setVolatile):
(WebKit::ViewSnapshot::asLayerContents):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::markSurfaceNonVolatile):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- 11:18 PM Changeset in webkit [290975] by
-
- 8 edits in trunk/Source/JavaScriptCore
[XCBuild] Emit a discovered dependency file from offlineasm
https://bugs.webkit.org/show_bug.cgi?id=237329
Reviewed by Keith Miller.
Xcode needs to know what files offlineasm uses and produces in order to schedule it
correctly in incremental builds. Rather than use generated xcfilelists like WebKit does
elsewhere in the project, emit a depfile from offlineasm based on the parse tree's source
files.
Discovered dependency files ("depfiles") are Makefile-formatted files which list the inputs
used to produce an output. They are emitting during the build to a temporary directory, and
ensure that subsequent incremental builds will re-run offlineasm when any of the included
sources change. This is the same mechanism clang uses to track header dependencies.
Unfortunately, the legacy build system will refuse to execute a script phase or rule that
emits a depfile. To work around this, convert the offlineasm pipeline to be based on build
rules, to be used by XCBuild only. The idea is that LowLevelInterpreter.asm is listed as a
source build file in JSCLLIntSettingsExtractor, JSCLLIntOffsetsExtractor, and
JavaScriptCore. Each target uses a build rule to generate its respective header from
LowLevelInterpreter.asm. Xcode schedules these rule executions before any clang tasks.
The legacy build system avoids executing the rules via EXCLUDED_SOURCE_FILE_NAMES, and
instead uses the existing build phases, which have "(Legacy)" in their names and are now
no-ops under XCBuild.
Aside from working around the legacy build system's limitations, using build rules is
probably a superior way to express what we're doing, as it gives Xcode the opportunity to
compile other objects in parallel, and could be easily extended to compile multiple discrete
asm files should the need arise.
- Configurations/ToolExecutable.xcconfig: Build rules are XCBuild-only.
- JavaScriptCore.xcodeproj/project.pbxproj: Add build rules, rename legacy scripts.
- offlineasm/asm.rb: Add --depfile flag.
- offlineasm/generate_offset_extractor.rb: Add --depfile flag.
- offlineasm/generate_settings_extractor.rb: Add --depfile flag.
- 10:41 PM Changeset in webkit [290974] by
-
- 4 edits1 delete in trunk/Source/ThirdParty/libwebrtc
Unreviewed, reverting r290966.
Broke ews and make
Reverted changeset:
"[XCBuild] libwebrtc's headers are copied via rsync and do not
emit task outputs"
https://bugs.webkit.org/show_bug.cgi?id=237112
https://commits.webkit.org/r290966
- 9:18 PM Changeset in webkit [290973] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290961. rdar://problem/89912760
[macCatalyst] Compilation error: WebContentProcess.xib: error: macOS xibs do not support target device type "ipad".
https://bugs.webkit.org/show_bug.cgi?id=237549
rdar://89912760
Patch by Richard Houle <rhoule@apple.com> on 2022-03-07
Reviewed by Alexey Proskuryakov.
Xcode for macOS 12.5 complains that we bundle Mac XIBs inside our macCatalyst builds.
- Configurations/BaseXPCService.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290961 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:27 PM Changeset in webkit [290972] by
-
- 2 edits in trunk/Source/WebCore
Fix the build
- platform/graphics/GraphicsContext.h:
- 7:07 PM Changeset in webkit [290971] by
-
- 4 edits in trunk/Source/WebKit
Remove remnants of WebKit.Plugin.64.xpc service
https://bugs.webkit.org/show_bug.cgi?id=237555
<rdar://84485232>
Reviewed by Alexey Proskuryakov.
Although plugins have been disabled for a number of years, the actual code behind this
feature was only removed this cycle (see Bugs 232462, 234354, and 234379). I noticed a few
remaining bits of the removed plugin process that should also be cleaned up.
- Scripts/process-entitlements.sh:
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler):
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::sandboxDirectory):
(WebKit::applySandbox):
- 7:00 PM Changeset in webkit [290970] by
-
- 2 edits in trunk/Tools
Fix Release builds for sanitizers by defining RELEASE_WITHOUT_OPTIMIZATIONS
<https://webkit.org/b/237556>
<rdar://problem/89929061>
Reviewed by Kate Cheney.
- sanitizer/sanitizer.xcconfig:
(OTHER_CFLAGS): Add
-DRELEASE_WITHOUT_OPTIMIZATIONSso Release
builds at lower optimization levels don't fail.
- 6:12 PM Changeset in webkit [290969] by
-
- 10 edits in trunk/Source
Preconnecting after process swap is a page load time improvement on some devices
https://bugs.webkit.org/show_bug.cgi?id=237055
<rdar://problem/89638872>
Reviewed by Geoffrey Garen.
Source/WebCore:
Export method.
- platform/network/NetworkLoadMetrics.h:
Source/WebKit:
On some devices we see that doing a second preconnect on HTTP/1.1 is a significant page load time improvement.
This is due to the fact that most page loads on HTTP/1.1 will open several connections, and having two
preconnected connections instead of one, will speed up page load time. This patch implements this by starting
a second preconnect after the first has finished. It is important to wait until the first preconnect has
finished, otherwise the second preconnect will go to waste, since the underlying network layer does not yet
know if this is HTTP/1.1 or not. Since we do not see page load time improvement on iOS with this behavior,
it is currently only enabled for macOS. The next step is to investigate why it does not seem to be a page
load time improvement on iOS. We probably need to make sure the main resource load has started before we
start the second preconect. This will avoid that the second preconnect returns immediately.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::sendH2Ping):
(WebKit::NetworkConnectionToWebProcess::preconnectTo):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
- NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::PreconnectTask):
(WebKit::PreconnectTask::didFinishLoading):
(WebKit::PreconnectTask::didFailLoading):
(WebKit::PreconnectTask::didFinish):
- NetworkProcess/PreconnectTask.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):
Source/WTF:
Add ENABLE guard for this behavior.
- wtf/PlatformEnableCocoa.h:
- 5:39 PM Changeset in webkit [290968] by
-
- 6 edits in trunk
Add ability to convert FragmentedSharedBuffer to CMBlockBuffer
https://bugs.webkit.org/show_bug.cgi?id=237075
Source/WebCore:
rdar://89338447
Reviewed by Jer Noble.
Add FragmentedSharedBuffer::getContiguousData and
FragmentedSharedBuffer::createCMBlockBuffer methods.
API tests added for getContiguousData.
createCMBlockBuffer will be used in a follow-up patch.
- platform/SharedBuffer.cpp:
(WebCore::FragmentedSharedBuffer::getContiguousData const):
- platform/SharedBuffer.h:
- platform/cocoa/SharedBufferCocoa.mm:
(WebCore::FreeSharedBuffer):
(WebCore::FragmentedSharedBuffer::createCMBlockBuffer const):
Tools:
Reviewed by Jer Noble.
- TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:
(TestWebKitAPI::TEST_F):
- 5:28 PM Changeset in webkit [290967] by
-
- 2 edits in branches/safari-613-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:26 PM Changeset in webkit [290966] by
-
- 4 edits1 add in trunk/Source/ThirdParty/libwebrtc
[XCBuild] libwebrtc's headers are copied via rsync and do not emit task outputs
https://bugs.webkit.org/show_bug.cgi?id=237112
Reviewed by Alexey Proskuryakov.
Reconfigure the Xcode project to copy libwebrtc's headers natively, using the same approach
as https://commits.webkit.org/247585@main and https://commits.webkit.org/247656@main.
Add a target for absl's headers, so that they can be copied and configured separately from
webrtc's headers. This target does not have any source files, so it is effectively
headers-only.
libwebrtc.xcodeproj is very messy and doesn't always align with the on-disk representation
of the project's sources, but I have combed through all the source directories to ensure
that all headers which aren't obviously testing or non-Mac-related are included.
- Configurations/Base.xcconfig: Copy WK_WHICH_BUILD_SYSTEM from other projects.
- Configurations/libabsl.xcconfig: Added.
- Configurations/libwebrtc.xcconfig: Set header-related build settings.
- libwebrtc.xcodeproj/project.pbxproj: Tons of header additions and visibility changes.
- 4:32 PM Changeset in webkit [290965] by
-
- 5 edits2 adds in trunk
Fix for <select> elements in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=237483
rdar://89530022
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/dropdown-value.html
AXObjectCache was not updating the isolated tree for
AXMenuListValueChanged notifications. Added handleMenuListValueChanged()
for this purpose.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::performDeferredCacheUpdate):
(WebCore::AXObjectCache::handleMenuListValueChanged):
(WebCore::AXObjectCache::updateIsolatedTree):
- accessibility/AXObjectCache.h:
LayoutTests:
- accessibility/dropdown-value-expected.txt: Added.
- accessibility/dropdown-value.html: Added.
- 4:00 PM Changeset in webkit [290964] by
-
- 9 edits1 add in trunk
MediaTime::invalidTime() conversion to CMTime incorrectly creates a valid time.
https://bugs.webkit.org/show_bug.cgi?id=237473
rdar://problem/89814921
Reviewed by Jer Noble.
Source/WebCore:
Fly-by fix: update call to AVOutputContextOutputDevicesDidChangeNotification
now that the access macro got fixed.
API Test added.
- platform/audio/ios/MediaSessionHelperIOS.mm:
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
- platform/graphics/avfoundation/objc/AVRoutePickerViewTargetPicker.mm:
(WebCore::AVRoutePickerViewTargetPicker::outputContextInternal):
(WebCore::AVRoutePickerViewTargetPicker::routeDetector):
(WebCore::AVRoutePickerViewTargetPicker::invalidatePlaybackTargets):
(-[WebAVRoutePickerViewHelper notificationHandler:]):
Source/WebCore/PAL:
Fly-by fix: macro definition to access method
AVOutputContextOutputDevicesDidChangeNotification was incorrect.
- pal/avfoundation/MediaTimeAVFoundation.cpp:
(PAL::toCMTime): Ensure that if the converted time was invalid. The
flag is carried accross.
- pal/cocoa/AVFoundationSoftLink.h:
Tools:
Fly-by fixes: AVFoundationSoftLinkTest wasn't being compiled
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cocoa/CoreMediaUtilities.mm: Added.
(TestWebKitAPI::TEST):
- 3:51 PM Changeset in webkit [290963] by
-
- 1 copy in tags/Safari-614.1.5.8
Tag Safari-614.1.5.8.
- 3:50 PM Changeset in webkit [290962] by
-
- 3 edits in branches/safari-614.1.5-branch/Source/WebGPU
Cherry-pick r290960. rdar://problem/89920518
Catalyst build failure in WebGPU when building with SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=237542
Reviewed by Saam Barati.
Updated create-symlink-to-altroot.sh to create the directory containing the output if is doesn't
exist in lieu of specifying an output file in the build step.
This is the way that other projects are configured.
- Scripts/create-symlink-to-altroot.sh:
- WebGPU.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290960 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:47 PM Changeset in webkit [290961] by
-
- 2 edits in trunk/Source/WebKit
[macCatalyst] Compilation error: WebContentProcess.xib: error: macOS xibs do not support target device type "ipad".
https://bugs.webkit.org/show_bug.cgi?id=237549
rdar://89912760
Patch by Richard Houle <rhoule@apple.com> on 2022-03-07
Reviewed by Alexey Proskuryakov.
Xcode for macOS 12.5 complains that we bundle Mac XIBs inside our macCatalyst builds.
- Configurations/BaseXPCService.xcconfig:
- 3:08 PM Changeset in webkit [290960] by
-
- 3 edits in trunk/Source/WebGPU
Catalyst build failure in WebGPU when building with SYSTEM_CONTENT_PATH
https://bugs.webkit.org/show_bug.cgi?id=237542
Reviewed by Saam Barati.
Updated create-symlink-to-altroot.sh to create the directory containing the output if is doesn't
exist in lieu of specifying an output file in the build step.
This is the way that other projects are configured.
- Scripts/create-symlink-to-altroot.sh:
- WebGPU.xcodeproj/project.pbxproj:
- 3:07 PM Changeset in webkit [290959] by
-
- 2 edits in trunk/LayoutTests
Remove TestExpectations for imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.worker.html.
https://bugs.webkit.org/show_bug.cgi?id=229244
Not reviewed.
TestExpectaions says this test will either pass or crash. However, the test history
at https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2FIndexedDB%2Fkey-generators%2Freading-autoincrement-indexes-cursors.any.worker.html
shows that this test hasn't crashed in a very long time.
Also local runs of the test on AppleSilicon with Debug WK1 pass with no crash.
- platform/mac/TestExpectations:
- 2:32 PM Changeset in webkit [290958] by
-
- 7 edits in trunk
allow-custom-protocols-navigation sandbox flag.
https://bugs.webkit.org/show_bug.cgi?id=237269
<rdar://problem/89899736>
Reviewed by Geoffrey Garen.
Source/WebCore:
Add support for allow-custom-protocols-navigation iframe sandbox flag to allow sandboxed iframes
to navigate to custom protocols, as per:
We recently started preventing sandboxed iframes from navigating to custom protocols, which broke
Microsoft Teams. We added a quirk for Microsoft Teams which we should be able to drop once they
adopt this new sandbox flag.
- dom/SecurityContext.cpp:
(WebCore::SecurityContext::isSupportedSandboxPolicy):
(WebCore::SecurityContext::parseSandboxPolicy):
- dom/SecurityContext.h:
Source/WebKit:
Add support for allow-custom-protocols-navigation iframe sandbox flag to allow sandboxed iframes
to navigate to custom protocols, as per:
We recently started preventing sandboxed iframes from navigating to custom protocols, which broke
Microsoft Teams. We added a quirk for Microsoft Teams which we should be able to drop once they
adopt this new sandbox flag.
- UIProcess/WebPageProxy.cpp:
(WebKit::frameSandboxAllowsOpeningExternalCustomProtocols):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(TEST):
- 2:13 PM Changeset in webkit [290957] by
-
- 3 edits in trunk/Source/WebKit
DerivedSources.make: Regenerate message receiver sources on Makefile changes
https://bugs.webkit.org/show_bug.cgi?id=237543
Reviewed by Alexey Proskuryakov.
This script depends on configuration and other sources in DerivedSources.make, so it should
regenerate when they change. Fixes one-time incremental build failures caused by r290896.
- DerivedSources.make:
- 2:11 PM Changeset in webkit [290956] by
-
- 6 edits2 adds in branches/safari-613-branch
Cherry-pick r290853. rdar://problem/88669147
about:blank iframes do not always inherit parent CSP
https://bugs.webkit.org/show_bug.cgi?id=236347
<rdar://problem/88669147>
Reviewed by Brent Fulgham.
Source/WebCore:
Test: http/tests/security/contentSecurityPolicy/block-eval-onload-in-nested-about-blank-iframe.html
Usually we initialize CSP for window when we create a jsWindowProxy
for that frame. In this case, we load an about:blank iframe that
attempts to run eval() in the onload function of its own nested
iframe. Since we never run script in frame, we don't initialize a
jsWindowProxy and thus never propogate its CSP.
This fix checks the document's CSP in FrameLoader::clear when we
initialize a new JSGlobalObject and sets the eval value in the window
accordingly to properly enforce CSP.
- bindings/js/ScriptController.cpp: (WebCore::ScriptController::enableEval):
- bindings/js/ScriptController.h:
- loader/FrameLoader.cpp: (WebCore::FrameLoader::clear):
- page/csp/ContentSecurityPolicy.h: (WebCore::ContentSecurityPolicy::evalErrorMessage const):
LayoutTests:
- http/tests/security/contentSecurityPolicy/block-eval-onload-in-nested-about-blank-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/block-eval-onload-in-nested-about-blank-iframe.html: Added We can't use modern js-test.js and related functions because js-test.js uses eval() and loading it makes the test time out when the eval is blocked by the document's CSP. We can't specify unsafe-eval because the whole point of this test is to block eval.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290853 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290955] by
-
- 4 edits3 adds in branches/safari-613-branch
Cherry-pick r290812. rdar://problem/84662329
Element with position: sticky after sticking, starts to move incorrectly when scrolling
https://bugs.webkit.org/show_bug.cgi?id=231953
<rdar://84662329>
Reviewed by Sam Weinig.
Source/WebCore:
Sometimes we'd fail to push new StickyPositionViewportConstraints to the scrolling
tree, because operator== failed to compare m_constrainingRectAtLastLayout. This breaks
the requirement that the "last committed scroll position" for the overflow scrolling
node has to be updated in the same commit as the "constraining-rect-at-last-layout"
on the sticky node.
Test: scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints.html
- page/scrolling/ScrollingConstraints.cpp: (WebCore::operator<<):
- page/scrolling/ScrollingConstraints.h: (WebCore::StickyPositionViewportConstraints::operator== const):
LayoutTests:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints-expected.txt: Added.
- scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints-expected.txt: Added.
- scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290812 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290954] by
-
- 13 edits in branches/safari-613-branch/Source/JavaScriptCore
Cherry-pick r290788. rdar://problem/83494949
Add a DeferTraps scope
https://bugs.webkit.org/show_bug.cgi?id=237306
<rdar://83494949>
Reviewed by Mark Lam.
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::CodeBlock): (JSC::CodeBlock::jettison): (JSC::CodeBlock::noticeIncomingCall):
- bytecode/CodeBlock.h:
- bytecode/RepatchInlines.h: (JSC::linkFor): (JSC::virtualForWithFunction):
- dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- interpreter/Interpreter.cpp: (JSC::Interpreter::executeProgram): (JSC::Interpreter::executeCall): (JSC::Interpreter::executeConstruct): (JSC::Interpreter::execute): (JSC::Interpreter::executeModuleProgram):
- interpreter/InterpreterInlines.h: (JSC::Interpreter::execute):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::setUpCall):
- runtime/ExceptionScope.h:
- runtime/ScriptExecutable.cpp: (JSC::ScriptExecutable::installCode):
- runtime/VMTraps.cpp: (JSC::VMTraps::handleTraps): (JSC::VMTraps::takeTopPriorityTrap):
- runtime/VMTraps.h: (JSC::VMTraps::needHandling const): (JSC::VMTraps::maybeNeedHandling const): (JSC::VMTraps::hasTrapBit): (JSC::VMTraps::setTrapBit):
- runtime/VMTrapsInlines.h: (JSC::DeferTraps::DeferTraps): (JSC::DeferTraps::~DeferTraps):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290953] by
-
- 11 edits2 adds in branches/safari-613-branch
Cherry-pick r290785. rdar://problem/66568551
nasa.gov page with fixed backgrounds paints incorrectly on scroll
https://bugs.webkit.org/show_bug.cgi?id=237405
<rdar://66568551>
Reviewed by Antti Koivisto.
Source/WebCore:
https://www.nasa.gov/specials/artemis/ shows an issue where elements with background-attachment:fixed
don't repaint on scroll. This page has scrollable <html> and <body>, and the elements with fixed
backgrounds are composited, so this reveals that we fail to repaint composited children
of an overflow scroll in this case.
Fix by having RenderLayerScrollableArea::scrollTo() do repaints on slow repaint objects
which are scrolled by the current scroller.
Do some unrelated cleanup in code that I was going to use in this patch but turned out
not to need: rename hasFixedBackgroundImage() to hasAnyFixedBackground() for clarity,
and share the implementation with hasAnyLocalBackground().
Test: fast/repaint/background-attachment-fixed-in-composited-scroll.html
- rendering/RenderElement.cpp: (WebCore::RenderElement::styleWillChange): (WebCore::RenderElement::willBeDestroyed):
- rendering/RenderLayer.cpp:
- rendering/RenderLayerScrollableArea.cpp: (WebCore::RenderLayerScrollableArea::scrollTo):
- rendering/style/FillLayer.cpp: (WebCore::FillLayer::hasImageWithAttachment const): (WebCore::FillLayer::hasFixedImage const): Deleted.
- rendering/style/FillLayer.h:
- rendering/style/RenderStyle.cpp: (WebCore::RenderStyle::hasAnyLocalBackground const): Deleted.
- rendering/style/RenderStyle.h: (WebCore::RenderStyle::hasBackgroundImage const): (WebCore::RenderStyle::hasAnyFixedBackground const): (WebCore::RenderStyle::hasAnyLocalBackground const): (WebCore::RenderStyle::hasFixedBackgroundImage const): Deleted.
LayoutTests:
Repaint test which is only valid for mac-wk2 (iOS does not support background-attachment:fixed).
- TestExpectations:
- fast/repaint/background-attachment-fixed-in-composited-scroll-expected.txt: Added.
- fast/repaint/background-attachment-fixed-in-composited-scroll.html: Added.
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290952] by
-
- 6 edits2 adds in branches/safari-613-branch
Cherry-pick r290778. rdar://problem/88297045
macOS Safari 15.2 Audio Echo Issue after camera pause/unpause
https://bugs.webkit.org/show_bug.cgi?id=235544
<rdar://problem/88297045>
Reviewed by Eric Carlson.
Source/WebCore:
After https://commits.webkit.org/r275600, the muted state of MediaPlayer would be set to the page muted state
without taking into consideration HTMLMediaElement.muted.
Update the call site to use effectiveMuted instead.
Add internals API to write a corresponding layout test.
Test: fast/mediastream/mediastreamtrack-audiovideo-mutepage.html
- html/HTMLMediaElement.cpp:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/mediastream/mediastreamtrack-audiovideo-mutepage-expected.txt: Added.
- fast/mediastream/mediastreamtrack-audiovideo-mutepage.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290778 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290951] by
-
- 14 edits in branches/safari-613-branch
Cherry-pick r290765. rdar://problem/89232969
Throw proper exception on failed removeEntry() calls
https://bugs.webkit.org/show_bug.cgi?id=237382
<rdar://89232969>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
Source/WebKit:
Updated existing tests.
- NetworkProcess/storage/FileSystemStorageError.h: (WebKit::convertToException):
- NetworkProcess/storage/FileSystemStorageHandle.cpp: (WebKit::FileSystemStorageHandle::removeEntry):
LayoutTests:
- storage/filesystemaccess/handle-move-expected.txt:
- storage/filesystemaccess/handle-move-worker-expected.txt:
- storage/filesystemaccess/resources/handle-move.js: (async test):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290765 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290950] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290758. rdar://problem/89710486
[AppSSO] Correct logging messages to avoid confusing screeners that an error has occurred
https://bugs.webkit.org/show_bug.cgi?id=237390
<rdar://problem/89710486>
Reviewed by Simon Fraser.
The phrasing of the message in 'SOAuthorizationCoordinator::tryAuthorize' when a URL is not relevant for
AppSSO flows is:
AUTHORIZATIONCOORDINATOR_RELEASE_LOG("tryAuthorize: Cannot authorize the requested URL.");
This leads people spelunking logs to believe that the URL can't be authorized (perhaps due to an error).
Instead, we should more accurately report that the URL is not one that is mediated through an AppSSO flow,
and so no AppSSO processing is needed.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm: (WebKit::SOAuthorizationCoordinator::tryAuthorize):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290758 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290949] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290755. rdar://problem/89700242
[WebAuthn] Completion handler is not called when WebAuthn invoked without proper entitlements
https://bugs.webkit.org/show_bug.cgi?id=237380
<rdar://problem/89700242>
Reviewed by Chris Dumez.
WebAuthn is not permitted outside of Web Browser applications. When an application that lacks
the full web browser entitlement attempts to invoke WebAuthn flows, we do an early return. However,
the completion handler for this flow is bypassed, preventing applications from being informed of
this problem.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::makeCredential): (WebKit::WebAuthenticatorCoordinator::getAssertion): (WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:11 PM Changeset in webkit [290948] by
-
- 3 edits2 adds in branches/safari-613-branch
Cherry-pick r290706. rdar://problem/89566459
REGRESSION(r285232) https://alvaromontoro.github.io/almond.css/demo/ looks wrong in Safari, ok in Chrome and Firefox
https://bugs.webkit.org/show_bug.cgi?id=237276
<rdar://problem/89566459>
Reviewed by Simon Fraser.
Source/WebCore:
r285232 introduced the isFixed() check as a resolvable preferred width type, but percent values are also resolvable as
block layout gets the horizontal constraint from the containing block chain (unlike the height percent values) -i.e. 'width: 50%' can be resolved during preferred width computation.
Test: fast/css-grid-layout/ascpect-ratio-with-percent-width.html
- rendering/RenderBlock.cpp: (WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
LayoutTests:
- fast/css-grid-layout/ascpect-ratio-with-percent-width-expected.html: Added.
- fast/css-grid-layout/ascpect-ratio-with-percent-width.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290706 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290947] by
-
- 5 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290671. rdar://problem/87340464
Web app fails only when dev tools is open
https://bugs.webkit.org/show_bug.cgi?id=235017
Reviewed by Devin Rousso.
Using the
ScriptExecutionContextfromevent.target()->scriptExecutionContext()can result the either having a
different script context from the one used when callingwillHandleEvent, or the event target's context could be
nullptr. This can occur when handling the event inEventTarget::innerInvokeEventListenersresults in a
context change for the event's target, like a MessagePort that has beendisentangled, which sets the script
execution context tonullptr. Because we only need the script execution context to get the correct injected
script, and the correct injected script for the action below will always be the same injected script used in
willHandleEvent, we ignore the current script execution context of the event's target and use the context the
event's target had when it began invoking event listeners.
This change protects us both from the reported crash, as well as leaving an injected script in a bad state
because we did not callsetEventValueandclearEventValueon matching injected scripts for a single event.
- inspector/InspectorInstrumentation.cpp: (WebCore::InspectorInstrumentation::willHandleEventImpl): (WebCore::InspectorInstrumentation::didHandleEventImpl):
- inspector/InspectorInstrumentation.h: (WebCore::InspectorInstrumentation::willHandleEvent): (WebCore::InspectorInstrumentation::didHandleEvent):
- inspector/agents/InspectorDOMDebuggerAgent.cpp: (WebCore::InspectorDOMDebuggerAgent::willHandleEvent): (WebCore::InspectorDOMDebuggerAgent::didHandleEvent):
- inspector/agents/InspectorDOMDebuggerAgent.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290946] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290629. rdar://problem/88903506
[IPC] Do more hardening in WebSWServerConnection's client registration / unregistration
https://bugs.webkit.org/show_bug.cgi?id=237290
<rdar://88903506>
Reviewed by Alex Christensen.
Validate client identifiers sent by the WebContent process via IPC to make sure that the
process identifier of the client actually matches the process identifier of the process
we're connected to.
Also validate the SecurityOriginData to make sure it is not empty. We support sending
empty SecurityOriginData objects over IPC. However, they cannot be used as keys in
HashMaps.
If validation fails, we assume the WebContent process is compromised and we terminate it.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): (WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290945] by
-
- 5 edits7 adds in branches/safari-613-branch
Cherry-pick r290606. rdar://problem/89482882
[macOS] Unable to upload ".pages" files to file inputs accepting ".pages" and ".jpeg" files
https://bugs.webkit.org/show_bug.cgi?id=237219
rdar://89482882
Reviewed by Tim Horton and Said Abou-Hallawa.
Source/WebCore:
In r264286, WebKit began transcoding images of an unsupported format
to a supported format, for file inputs that accepted image types. For
example, selecting a HEIF image in an input that accepts JPEG images
would transcode the selected image to a JPEG image.
In order to determine when attempt transcoding, the logic added in
r264286 obtains the MIME type corresponding to the selected file's
extension, and compares that to the list of accepted MIME types.
If there is a mismatch, transcoding is attempted.
The ".pages" extension does not have a well-defined MIME type in
NSURLFileTypeMappings. This is due to the fact that a the extension
maps to both a file and a package type. Consequently, the retrieved
MIME type for ".pages" files is an empty string. Following r227051,
when the file input also accepts an image type, WebKit attempts to
transcode these files, and any others that do not have a well-defined
MIME type.
While the aforementioned behavior can be considered strange, it is not
an issue in practice, since WebKit will attempt to transcode the
image, fail to do so, and upload the original file. The failure is
detected in CGImageDestinationFinalize, which returns false if an image
was not successfully written. However, a recent regression in the
ImageIO framework is causing CGImageDestinationFinalize to return true,
even if image transcoding fails. This results in WebKit uploading a
zero byte JPEG file, when a user attempts to upload ".pages" files to
file inputs accepting ".pages" and ".jpeg" files.
Ideally, the described issue would be resolved by a fix in ImageIO.
However, a more immediate solution exists in WebKit: only attempt to
transcode files to an accepted image type, if the file selected is
image. ".pages" files are not images, and WebKit should not attempt
to transcode them. See below for further explanation of the solution.
Test: fast/forms/file/entries-api/pages-jpeg-open-panel.html
- platform/graphics/cg/ImageUtilitiesCG.cpp: (WebCore::transcodeImage):
Prior to using ImageIO to perform transcoding, WebKit obtains a Uniform
Type Identifier for the selected file using CGImageSourceCreateWithURL
and CGImageSourceGetType. If the file is not an image, a null string is
returned. WebKit can use this information to avoid the transcoding
attempt, and avoid calls to ImageIO methods further down this method.
Specifically, this solution works around the ImageIO bug by avoiding
the call to CGImageDestinationFinalize for non-images. The solution is
also an overall improvement, as WebKit now avoids unnecessary calls to
multiple ImageIO methods, in cases where we know transcoding will fail.
LayoutTests:
Add a layout test that contains a file input that accepts ".pages" and
".jpeg" files, and attempts to upload a ".pages" file.
- TestExpectations:
- fast/forms/file/entries-api/pages-jpeg-open-panel-expected.txt: Added.
- fast/forms/file/entries-api/pages-jpeg-open-panel.html: Added.
- fast/forms/file/entries-api/pdf-jpeg-open-panel-expected.txt: Added.
- fast/forms/file/entries-api/pdf-jpeg-open-panel.html: Added.
- fast/forms/file/entries-api/resources/documents/document.pages: Added.
- fast/forms/file/entries-api/resources/documents/document.pdf: Added.
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290606 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290944] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290562. rdar://problem/88767033
Loading a USDZ url as the main resource renders as garbage
https://bugs.webkit.org/show_bug.cgi?id=237240
rdar://88767033
Reviewed by Antoine Quint.
We can't render a USD document if the ModelDocument feature is not enabled.
- platform/MIMETypeRegistry.cpp: (WebCore::MIMETypeRegistry::canShowMIMEType):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290562 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290943] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290560. rdar://problem/89526227
Use hasAttributeWithoutSynchronisation for checking inert attribute in Adjuster::adjust
https://bugs.webkit.org/show_bug.cgi?id=237248
Reviewed by Dean Jackson.
hasAttributeWithoutSynchronisation should be slightly faster than hasAttribute.
- style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjust const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290560 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290942] by
-
- 3 edits2 adds in branches/safari-613-branch
Cherry-pick r290559. rdar://problem/89510628
Optimize StyleSharingResolver inert checks
https://bugs.webkit.org/show_bug.cgi?id=237235
Reviewed by Youenn Fablet.
Source/WebCore:
inert is an boolean attribute, the only thing that matters for the StyleAdjuster
inertness adjustment is the presence of the attribute, not its value. E.g.
inert=falseis the same asinert=inertorinert=true.
This saves getting and comparing values for those attributes, and also allows
inert=inertandinert=trueorinert=falseto start sharing style.
- style/StyleSharingResolver.cpp: (WebCore::Style::SharingResolver::canShareStyleWithElement const):
LayoutTests:
Add small test that style sharing is not wrongly applied.
- fast/css/inert-style-sharing-expected.html: Added.
- fast/css/inert-style-sharing.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290559 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290941] by
-
- 11 edits2 adds in branches/safari-613-branch
Cherry-pick r290554. rdar://problem/83757966
Remove Node::deprecatedIsInert
https://bugs.webkit.org/show_bug.cgi?id=230845
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.
However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:
- web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt:
- web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt:
Source/WebCore:
This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.
However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.
- dom/Element.cpp: (WebCore::Element::isFocusable const): (WebCore::Element::isFocusableWithoutResolvingFullStyle const): (WebCore::Element::isVisibleWithoutResolvingFullStyle const): Deleted.
- dom/Element.h:
- dom/Node.cpp: (WebCore::Node::deprecatedIsInert const): Deleted.
- dom/Node.h:
- html/HTMLAreaElement.cpp: (WebCore::HTMLAreaElement::isFocusable const):
LayoutTests:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-inert-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290554 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290940] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290537. rdar://problem/89239935
Do not trigger didFail during FileReaderLoader Destruction
https://bugs.webkit.org/show_bug.cgi?id=237060
Patch by Brandon Stewart <Brandon> on 2022-02-25
Reviewed by Darin Adler.
Setting cancel() instead of terminate() will prevent the didFail() method from being triggered.
This method has the unfortunate side effect of trying to allocate memory, which is not allowed when
under going a sweep event.
- fileapi/FileReaderLoader.cpp: (WebCore::FileReaderLoader::~FileReaderLoader):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290537 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290939] by
-
- 4 edits in branches/safari-613-branch/Source/JavaScriptCore
Cherry-pick r290510. rdar://problem/89364487
Web Inspector: [Cocoa] Split remote inspector message data into smaller chunks for large messages
https://bugs.webkit.org/show_bug.cgi?id=237110
<rdar://89364487>
Reviewed by Devin Rousso.
Messages over 2 MiB will now be split into multiple chunks, which allows us to not exceed any receiving daemon
process' memory limit under otherwise normal conditions. 2 MiB was chosen as a balance between not having to
split most messages at all and making sure that the messages (and any copies made during the relaying of the
messages) do not exceed the memory limits of the receiving daemon process.
In order to prevent us from sending chunked messages to a process that doesn't support them we check for a flag
to enable this functionality during connection setup.
- inspector/remote/RemoteInspector.h:
- inspector/remote/RemoteInspectorConstants.h:
- inspector/remote/cocoa/RemoteInspectorCocoa.mm: (Inspector::RemoteInspector::sendMessageToRemote): (Inspector::RemoteInspector::receivedSetupMessage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290510 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290938] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r290430. rdar://problem/87713597
RELEASE_ASSERT(!renderer()); in WebCore::Node::~Node() + 479 (Node.cpp:366)
https://bugs.webkit.org/show_bug.cgi?id=235380
Patch by Frédéric Wang <fwang@igalia.com> on 2022-02-24
Reviewed by Ryosuke Niwa.
Source/WebCore:
RenderTreeUpdater::tearDownRenderers() browse the composed tree to tear down descendants.
However, element with a shadow root are handled specially in
ComposedTreeIterator::ComposedTreeIterator(), they have to be handled specially by calling
a tearDownLeftoverShadowHostChildren(). This patch does the same for slot elements which
are also handled specially in ComposedTreeIterator(). It also makes names within
tearDownLeftoverShadowHostChildren() more generic. This in particular fixes a release assert
when a slot with pseudo elements children is torn down.
Test: fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown.html
- rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::tearDownRenderers): Also call tearDownLeftoverShadowHostChildren for a slot element and add a comment pointing to the method corresponding to these special cases. (WebCore::RenderTreeUpdater::tearDownLeftoverChildrenOfComposedTree): Renamed to remove "shadow host".
- rendering/updating/RenderTreeUpdater.h: Ditto.
LayoutTests:
Add non-regression test.
- fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown-expected.txt: Added.
- fast/shadow-dom/slot-with-pseudo-element-children-renderer-teardown.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290937] by
-
- 2 edits in branches/safari-613-branch/LayoutTests
Cherry-pick r290385. rdar://problem/70464703
[Subpixel] imported/w3c/web-platform-tests/css/css-flexbox/auto-margins-001.html fails at certain font sizes
https://bugs.webkit.org/show_bug.cgi?id=217643
<rdar://problem/70464703>
Unreviewed gardening.
- platform/ios-simulator-wk2/TestExpectations: It must have progressed at some point.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290936] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r290356. rdar://problem/85765536
Crash when calling WEBGL_lose_context.loseContext() after the context has been lost
https://bugs.webkit.org/show_bug.cgi?id=236966
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-23
Reviewed by Dean Jackson.
Source/WebCore:
WebGLRenderingContextBase::forceLostContext() would
try to synthesize a GL error to the underlying
m_context. However, m_context is cleared when a real
context loss happens. This happens for example when we
simulate a GPU status failure or when we create too
many contexts. The m_context is not currently cleared
when the page simulates context lost via WEBGL_lose_contexts.loseContext().
Test: webgl/lose-context-after-context-lost.html
- html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::synthesizeGLError):
LayoutTests:
- webgl/lose-context-after-context-lost-expected.txt: Added.
- webgl/lose-context-after-context-lost.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290935] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290343. rdar://problem/85811396
Further restrict received IPC boolean values to 0 or 1
https://bugs.webkit.org/show_bug.cgi?id=236801
rdar://85811396
Patch by Simon Lewis <simon.lewis@apple.com> on 2022-02-22
Reviewed by Chris Dumez.
Return std::nullopt if a value larger than 1 is received.
- Platform/IPC/ArgumentCoder.h: (IPC::ArgumentCoder<bool>::decode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290343 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290934] by
-
- 14 edits6 adds in branches/safari-613-branch
Cherry-pick r290306. rdar://problem/88352589
Make pointer-events checks for SVG take in account inert subtrees
https://bugs.webkit.org/show_bug.cgi?id=235836
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Added tests for both inert attribute & modal dialog cases.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest.html: Added.
- web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-svg-hittest.tentative.html: Added.
Source/WebCore:
Re-using visibleToHitTesting in SVG code isn't possible, because visibleToHitTesting removes visibility: hidden;
content from hit-testing, which we do not want to here, since pointer-events has values for SVG which still
allow clicking content regardless of their visibility value (pointer-events: painted/fill/stroke/all).
Instead, we add an inert-aware effectivePointerEvents, similar to effectiveUserSelect and re-use that across the codebase.
Tests: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest.html
imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative.html
- rendering/RenderElement.cpp: (WebCore::RenderElement::styleWillChange):
- rendering/RenderElement.h: (WebCore::RenderElement::visibleToHitTesting const):
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::layerStyleChanged):
- rendering/style/RenderStyle.h: (WebCore::RenderStyle::effectivePointerEvents const):
- rendering/svg/LegacyRenderSVGModelObject.cpp: (WebCore::LegacyRenderSVGModelObject::checkIntersection): (WebCore::LegacyRenderSVGModelObject::checkEnclosure):
- rendering/svg/LegacyRenderSVGShape.cpp: (WebCore::LegacyRenderSVGShape::nodeAtFloatPoint):
- rendering/svg/RenderSVGImage.cpp: (WebCore::RenderSVGImage::nodeAtFloatPoint):
- rendering/svg/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::checkIntersection): (WebCore::RenderSVGModelObject::checkEnclosure):
- rendering/svg/RenderSVGShape.cpp: (WebCore::RenderSVGShape::nodeAtPoint):
- rendering/svg/RenderSVGText.cpp: (WebCore::RenderSVGText::nodeAtFloatPoint):
- rendering/svg/SVGInlineTextBox.cpp: (WebCore::SVGInlineTextBox::nodeAtPoint):
LayoutTests:
iOS doesn't support test_actions, so it needs different baselines.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-svg-hittest-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290306 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:10 PM Changeset in webkit [290933] by
-
- 12 edits in branches/safari-613-branch/Source
Cherry-pick r290305. rdar://problem/89287719
Rename RenderStyle::userSelectIncludingInert to RenderStyle::effectiveUserSelect
https://bugs.webkit.org/show_bug.cgi?id=237033
Reviewed by Antti Koivisto.
This naming is consistent with other properties (effectiveDisplay/Appearance/PointerEvents/etc.).
Source/WebCore:
- dom/Node.cpp: (WebCore::computeEditabilityFromComputedStyle): (WebCore::Node::canStartSelection const):
- dom/Position.cpp: (WebCore::Position::nodeIsUserSelectNone): (WebCore::Position::nodeIsUserSelectAll):
- page/EventHandler.cpp: (WebCore::EventHandler::canMouseDownStartSelect): (WebCore::EventHandler::selectCursor):
- page/Frame.cpp: (WebCore::Frame::rangeForPoint):
- rendering/RenderElement.cpp: (WebCore::RenderElement::selectionBackgroundColor const): (WebCore::RenderElement::selectionColor const):
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderObject.cpp: (WebCore::RenderObject::collectSelectionGeometriesInternal):
- rendering/style/RenderStyle.h: (WebCore::RenderStyle::effectiveUserSelect const): (WebCore::RenderStyle::userSelectIncludingInert const): Deleted.
Source/WebKit:
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: (WebKit::InjectedBundleNodeHandle::isSelectableTextNode const):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::selectionPositionInformation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290305 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290932] by
-
- 4 edits1 add in branches/safari-613-branch
Cherry-pick r290265. rdar://problem/88258776
[JSC] Add explicit exception check after appendWithoutSideEffects
https://bugs.webkit.org/show_bug.cgi?id=236986
rdar://88258776
Reviewed by Saam Barati.
JSTests:
- stress/array-to-string-oom.js: Added.
Source/JavaScriptCore:
Add exception check after JSStringJoiner::appendWithoutSideEffects call since JSString::value can throw OOM error.
- runtime/ArrayPrototype.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSStringJoiner.h: (JSC::JSStringJoiner::append):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290931] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290246. rdar://problem/85811396
Change IPC encoding of boolean type to use one bit
https://bugs.webkit.org/show_bug.cgi?id=236801
rdar://85811396
Patch by Simon Lewis <simon.lewis@apple.com> on 2022-02-21
Reviewed by Chris Dumez.
This patch ensures that only the lower bit is set in a boolean for IPC messages.
- Platform/IPC/ArgumentCoder.h: (IPC::ArgumentCoder<bool>::encode): (IPC::ArgumentCoder<bool>::decode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290246 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290930] by
-
- 2 edits in branches/safari-613-branch/LayoutTests/imported/w3c
Cherry-pick r290232. rdar://problem/88818132
Rebaseline inert-focus-in-frames.html after r290197.
Unreviewed test gardening.
For some reason, the rebaselining changes didn't make it in the patch.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290929] by
-
- 3 edits in branches/safari-613-branch
Cherry-pick r290197. rdar://problem/88818132
Stop propagating inertness through iframes in Node::deprecatedIsInert()
https://bugs.webkit.org/show_bug.cgi?id=236512
Reviewed by Chris Dumez.
This is only a bug for Node::deprecatedIsInert(), so it only affects focus. Selection APIs, etc. weren't affected
before this bug.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:
Source/WebCore:
Test: web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames.html
- dom/Node.cpp: (WebCore::Node::deprecatedIsInert const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290197 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290928] by
-
- 4 edits in branches/safari-613-branch/Source/bmalloc
Cherry-pick r290195. rdar://problem/88402366
[libpas] Increase scavenger period from 100ms to 125ms in Darwin x64
https://bugs.webkit.org/show_bug.cgi?id=236873
Reviewed by Saam Barati.
Make x64 scavenger less aggressive while maintaining Membuster neutral
to make it less work.
- libpas/src/libpas/pas_config_prefix.h:
- libpas/src/libpas/pas_scavenger.c:
- libpas/src/libpas/pas_utils.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290195 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290927] by
-
- 13 edits2 moves14 adds in branches/safari-613-branch/LayoutTests
Cherry-pick r290164. rdar://problem/89162532
Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=236808
Reviewed by Simon Fraser.
Commit: https://github.com/web-platform-tests/wpt/commit/0d483a3bea340a2c60cb7a4add49eb63cbba2a64
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-double-nested-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus-expected.txt.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-double-nested.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-delegatesfocus.html.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focus-shadow.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-focus-in-frames.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inert-label-focus.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes-expected.txt:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-scroll-height.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
- web-platform-tests/inert/dynamic-inert-on-focused-element.tentative-expected.txt: Added.
- web-platform-tests/inert/dynamic-inert-on-focused-element.tentative.html: Added.
- web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-canvas-fallback-content.tentative.html: Added.
- web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-iframe-hittest.tentative.html: Added.
- web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-iframe-tabbing.tentative.html: Added.
- web-platform-tests/inert/inert-node-is-uneditable.tentative.html:
- web-platform-tests/inert/inert-with-modal-dialog-001.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-with-modal-dialog-001.tentative.html: Added.
- web-platform-tests/inert/inert-with-modal-dialog-002.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-with-modal-dialog-002.tentative.html: Added.
- web-platform-tests/inert/w3c-import.log:
LayoutTests:
- platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290164 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290926] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations: Remove tests that were resolved by r290813.
- 2:09 PM Changeset in webkit [290925] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r289859. rdar://problem/88491516
Skip positioned objects and line break boxes as they have no affect on width
https://bugs.webkit.org/show_bug.cgi?id=236514
Patch by Brandon Stewart <Brandon> on 2022-02-15
Reviewed by Myles C. Maxfield.
Align computeInlineDirectionPositionsForSegment() and computeExpansionForJustifiedText() logic.
Skipping positioned objects and line break boxes as they will not affect the width.
- rendering/LegacyLineLayout.cpp: (WebCore::LegacyLineLayout::computeExpansionForJustifiedText):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290924] by
-
- 5 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r289814. rdar://problem/83101090
Do not update the fragmented flow state while internally mutating the render tree
https://bugs.webkit.org/show_bug.cgi?id=230896
Reviewed by Darin Adler.
RenderTree mutations (like those happening when creating/destroying anonymous blocks)
should not affect the fragment state of any renderer. This means that we should not have
to deal with things like creating/restoring placeholders/spanners while doing that.
There is already a IsInternalMove flag that is being used for that. Expand its usage
to a couple more methods to improve correctness.
- rendering/LegacyRootInlineBox.cpp: (WebCore::LegacyRootInlineBox::~LegacyRootInlineBox): Do not remove the inline box from the ContainingFragmentMap if we're deleting the tree. It was causing ASSERTs trying to retrieve the enclosing fragmented flow in some cases.
- rendering/updating/RenderTreeBuilder.cpp: (WebCore::RenderTreeBuilder::attachToRenderElementInternal): Use the RenderTreeBuilder's m_internalTreeBuilding instead of the argument. (WebCore::RenderTreeBuilder::move): Replace passing the IsInternalMove argument by a scope where we don't update the fragmented flow state. (WebCore::RenderTreeBuilder::detachFromRenderElement): Use the RenderTreeBuilder's m_internalMovesType instead of the argument.
- rendering/updating/RenderTreeBuilder.h:
- rendering/updating/RenderTreeBuilderInline.cpp: (WebCore::RenderTreeBuilder::Inline::splitInlines): Wrap the method by a scope in which fragmented flow state is not updated because we consider those operations internal arrangements of the tree.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290923] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r289700. rdar://problem/85249360
WebGL2 AllowShared TypedArray should be accepted
https://bugs.webkit.org/show_bug.cgi?id=232662
Reviewed by Dean Jackson.
Source/WebCore:
Test: webgl/webgl-allow-shared-typed-array.html
TypedArray with [AllowShared] annotation is not handled properly, which results in handling it as Sequence<T>,
invoking iteration protocol to copy them. This patch adds that as the same to [AllowShared] ArrayBuffer / ArrayBufferView.
- bindings/IDLTypes.h:
- bindings/js/JSDOMConvertUnion.h:
LayoutTests:
- webgl/webgl-allow-shared-typed-array-expected.txt: Added.
- webgl/webgl-allow-shared-typed-array.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290922] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r289597. rdar://problem/88324745
Check bidiLevels are valid before reordering
https://bugs.webkit.org/show_bug.cgi?id=236378
Patch by Brandon Stewart <Brandon> on 2022-02-10
Reviewed by Alan Bujtas.
We were trusting that the bidiLevel was valid before calling the reorder.
If the bidiLevel ends up being greater than the MAX + 1 we end up in a situation where
the reordering will fail. The function returns void, so there is not a good way to check
for an error.
- layout/formattingContexts/inline/InlineLineBuilder.cpp: (WebCore::Layout::LineBuilder::layoutInlineContent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290921] by
-
- 6 edits2 adds in branches/safari-613-branch
Cherry-pick r289533. rdar://problem/88452971
Settling of a fetch promise should be delayed in case page is entering page cache
https://bugs.webkit.org/show_bug.cgi?id=236292
<rdar://88452971>
Reviewed by Chris Dumez.
Source/WebCore:
Make sure to enqueue a task before resolving fetch promise as otherwise, page might continue running JavaScript.
Do this for worker as well for good measure.
We move signal aborted checks to two clients to handle rejecting fetch promise synchronously.
Test: http/tests/navigation/fetch-pagecache.html
- Modules/cache/DOMCache.cpp:
- Modules/fetch/FetchResponse.cpp:
- Modules/fetch/FetchResponse.h:
- Modules/fetch/WindowOrWorkerGlobalScopeFetch.cpp:
- workers/service/FetchEvent.cpp:
LayoutTests:
- http/tests/navigation/fetch-pagecache-expected.txt: Added.
- http/tests/navigation/fetch-pagecache.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289533 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290920] by
-
- 11 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r289476. rdar://problem/88693354
AudioBuffer should take a lock while visiting m_channelWrappers
https://bugs.webkit.org/show_bug.cgi?id=236279
Reviewed by Keith Miller.
This patch fixes AudioBuffer's m_channelWrappers concurrency bug and related issues.
- This patch removes problematic (and almost always wrong) move operator of JSValueInWrappedObject. To do that, we fixed AudioBuffer's concurrency issue where we access m_channelWrappers while it can be cleared concurrently in AudioBuffer::releaseMemory.
- MessageEvent's m_data access is broken with concurrent GC thread. We must take a lock. And we must not use JSValueInWrappedObject in std::variant if it can be changed after constructor invocation.
- Use JSValueInWrappedObject::clear instead of move with empty value.
- File https://bugs.webkit.org/show_bug.cgi?id=236353. AbortSignal, MessageEvent, and CustomEvent miss write-barrier, which is semantically wrong.
- Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::AudioBuffer): (WebCore::AudioBuffer::releaseMemory): (WebCore::AudioBuffer::visitChannelWrappers):
- Modules/webaudio/AudioBuffer.h:
- Modules/webaudio/AudioWorkletProcessor.cpp: (WebCore::AudioWorkletProcessor::buildJSArguments):
- bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::data const): (WebCore::JSMessageEvent::visitAdditionalChildren):
- bindings/js/JSValueInWrappedObject.h:
- dom/AbortSignal.cpp: (WebCore::AbortSignal::signalAbort):
- dom/CustomEvent.cpp: (WebCore::CustomEvent::initCustomEvent):
- dom/MessageEvent.cpp: (WebCore::MessageEvent::MessageEvent): (WebCore::m_jsData): (WebCore::MessageEvent::initMessageEvent): (WebCore::MessageEvent::memoryCost const): (WebCore::m_ports): Deleted.
- dom/MessageEvent.h:
- page/History.cpp: (WebCore::History::stateObjectAdded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289476 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290919] by
-
- 8 edits in branches/safari-613-branch
Cherry-pick r289255. rdar://problem/88490742
Always sync ResourceRequest isAppInitiated request with NSURLRequest attribution value
https://bugs.webkit.org/show_bug.cgi?id=236167
<rdar://88490742>
Reviewed by Darin Adler.
Source/WebCore:
We should always keep the state of our 'isAppInitiated' flag in sync with the underlying
NSURLRequest object. This also corrects a problem where the 'setIsAppInitiated' method
does not mark the platform URL request as dirty, so it does not update with the correct
state of the flag.
Tests: New TestWebKitAPI Test (AppPrivacyReport.NSURLRequestConstructorAttribution)
- platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::setIsAppInitiated):
- platform/network/ResourceRequestBase.h:
- platform/network/cf/ResourceRequest.h:
- platform/network/cocoa/ResourceRequestCocoa.mm: (WebCore::ResourceRequest::ResourceRequest): (WebCore::ResourceRequest::doUpdatePlatformRequest): (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): (WebCore::copyRequestWithStorageSession):
- rendering/RenderThemeIOS.mm:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
- TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289255 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:09 PM Changeset in webkit [290918] by
-
- 5 edits5 adds in branches/safari-613-branch
Cherry-pick r289121. rdar://problem/88492251
Fix App Privacy Report redirect attribution
https://bugs.webkit.org/show_bug.cgi?id=236111
Reviewed by Brent Fulgham.
Source/WebCore:
Test: http/tests/app-privacy-report/user-attribution-redirect.html
Test: http/tests/app-privacy-report/app-attribution-redirect.html
- platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
LayoutTests:
- http/tests/app-privacy-report/resources/redirect.js: Added.
- http/tests/app-privacy-report/app-attribution-redirect-expected.txt: Added.
- http/tests/app-privacy-report/app-attribution-redirect.html: Added.
- http/tests/app-privacy-report/user-attribution-redirect-expected.txt: Added.
- http/tests/app-privacy-report/user-attribution-redirect.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289121 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290917] by
-
- 5 edits7 adds in branches/safari-613-branch
Cherry-pick r289101. rdar://problem/87625596
Two bopomofo tone marks are not moved to the correct place in vertical text with a particular bopomofo font
https://bugs.webkit.org/show_bug.cgi?id=235257
<rdar://problem/87625596>
Reviewed by Darin Adler.
.:
Thank you so much to Bobby Tung and But Ko for reporting this bug and providing a test font for it!!!
- metadata/contributors.json:
Source/WebCore:
Turns out one of our character data tables was missing some characters.
I really dislike these kinds of fixes, because it's just perpetuating the fact that WebKit has big tables of characters
in its source code. A long-term fix would be a systemic replacement of this entire table with either Unicode property
lookup, or more ideally, removing the need for it in the first place. Unfortunately, at this point in the release cycle,
this fix probably needs to be smaller and more targetted.
Tests: fast/text/bopomofo-tone-marks-2.html
fast/text/bopomofo-tone-marks.html
- platform/graphics/FontCascade.cpp: (WebCore::FontCascade::isCJKIdeographOrSymbol):
LayoutTests:
This can't be a WPT test because we only have permission to add the test font to the WebKit repository.
Thank you so much to Bobby Tung and But Ko for reporting this bug and providing a test font for it!!!
- fast/text/bopomofo-tone-marks-2-expected-mismatch.html: Added.
- fast/text/bopomofo-tone-marks-2.html: Added.
- fast/text/bopomofo-tone-marks-expected-mismatch.html: Added.
- fast/text/bopomofo-tone-marks.html: Added.
- fast/text/resources/BopomofoGposSubset-Regular/BopomofoGposSubset-Regular.ttf: Added.
- fast/text/resources/BopomofoGposSubset-Regular/LICENSE: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289101 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290916] by
-
- 3 edits in branches/safari-613-branch/Source/JavaScriptCore
Cherry-pick r289001. rdar://problem/88404556
[JSC] Crash on several pages after r287986
https://bugs.webkit.org/show_bug.cgi?id=236033
Reviewed by Tim Horton.
I noticed that Safari crashes when opening https://linux.die.net/man/3/localtime.
This is happening after r287986: we are calling [self release], but the [JSValue dealloc]
cannot work if _context is nil. We should add a guard.
- API/JSValue.mm: (-[JSValue dealloc]):
- API/tests/testapi.mm: (testObjectiveCAPIMain):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289001 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290915] by
-
- 2 edits in branches/safari-613-branch/Source/WTF
Cherry-pick r288746. rdar://problem/88093198
Enable inert attribute feature flag
https://bugs.webkit.org/show_bug.cgi?id=235668
Reviewed by Darin Adler.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288746 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290914] by
-
- 5 edits in branches/safari-613-branch
Cherry-pick r288700. rdar://problem/86602114
Default to 32 bit refcount for CanMakeCheckedPtr
https://bugs.webkit.org/show_bug.cgi?id=235723
rdar://86602114
Reviewed by Darin Adler.
Source/WTF:
It is currently uint16_t for no good reason. It is no unreasonable to have an object being referenced
by a large number of other objects.
We just hit the first bug caused by overrunning it (in IFC).
- wtf/CheckedRef.h:
uint16_t -> uint32_t
Tools:
- TestWebKitAPI/Tests/WTF/CheckedPtr.cpp: (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/CheckedRef.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290913] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r288450. rdar://problem/74932445
Remove customElements when transitioning documents
https://bugs.webkit.org/show_bug.cgi?id=222727
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-24
Reviewed by Ryosuke Niwa.
Remove customElements when transitioning documents
of Window since the old document may be gone.
Test: fast/js-promise/js-promise-invalid-context-access.html
- page/DOMWindow.cpp: (WebCore::DOMWindow::didSecureTransitionTo): (WebCore::DOMWindow::ensureCustomElementRegistry):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290912] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r288413. rdar://problem/86287467
REGRESSION (Safari 15?): Blob videos slow to pause, affects CBS and CNN
https://bugs.webkit.org/show_bug.cgi?id=234066
Reviewed by Jer Noble.
MediaPlayerPrivateMediaSourceAVFObjC::playInternal()calls[m_synchronizer setRate:],
which will make the return value ofMediaPlayerPrivateMediaSourceAVFObjC::paused()change
from true to false. But it won't push the newpausedvalue back to the Web process.
RemoteMediaPlayerProxy::play()does callsendCachedState()after calling
m_player->play(), but becauseMediaPlayerPrivateMediaSourceAVFObjC::playInternal()is not
called in the same run loop,sendCachedState()won't send back the updatedpausedvalue either.
In most cases, this is not an issue, because other member functions of
RemoteMediaPlayerProxy
will callsendCachedState()to push the updatedpausedvalue back to the Web process later.
However, we did find some videos need thepausedvalue to be pushed back the Web process
in a timely manner.
No new tests, manually tested.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288413 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290911] by
-
- 2 edits in branches/safari-613-branch/Tools
Cherry-pick r288310. rdar://problem/80352256
[ iOS15 ] TestWebKitAPI.WebKit.ServerTrust and TestWebKitAPI.WebKit.FastServerTrust tests timing out
https://bugs.webkit.org/show_bug.cgi?id=231320
<rdar://80352256>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-20
Reviewed by Chris Dumez.
SecTrustCopyCertificateChain returns a CFArrayRef of SecCertificateRef, not CFData.
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: (verifyCertificateAndPublicKey): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290910] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288237. rdar://problem/87275093
WebKit::AuthenticatorPresenterCoordinator() constructor falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234991
<rdar://problem/87275093>
Reviewed by Darin Adler.
Drop unnecessary default: case in the switch statement since it handles all enum values already.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm: (WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288237 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290909] by
-
- 8 edits in branches/safari-613-branch/Source
Cherry-pick r287986. rdar://problem/87489048
Fix a few Objective-C object leaks due to early returns in
init
https://bugs.webkit.org/show_bug.cgi?id=235162
<rdar://problem/87489048>
Reviewed by Wenson Hsieh.
Source/JavaScriptCore:
- API/JSValue.mm: (-[JSValue initWithValue:inContext:]):
Source/WebCore:
- platform/ios/WebAVPlayerController.mm: (-[WebAVPlayerController init]):
Source/WebKit:
- UIProcess/ios/WKHoverPlatter.mm: (-[WKHoverPlatter initWithView:delegate:]):
Source/WebKitLegacy/mac:
- Storage/WebDatabaseQuotaManager.mm: (WebCore::if):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287986 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:08 PM Changeset in webkit [290908] by
-
- 14 edits in branches/safari-613-branch/LayoutTests
Cherry-pick r287898. rdar://problem/86035420
Rewrite touch and drag tests to be more robust.
https://bugs.webkit.org/show_bug.cgi?id=235057
rdar://86035420
Reviewed by Wenson Hsieh.
Rewrite the touch-and-drag tests to check for selection changes, not specific text selections.
Specific selections and subject to small changes in font and layout, and all that is actually important is that
there have been selection changes based off of dragged touches.
The touch-event-radius test has been updated to use the screen size directly, since the radius is scaled by the screen size
internally. The output has been changed to not need to be updated when the test phone changes.
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text-expected.txt:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text-expected.txt:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
- 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-down-to-change-selected-text-expected.txt:
- fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/long-press-then-drag-to-select-text-expected.txt:
- fast/events/touch/ios/long-press-then-drag-to-select-text.html:
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-expected.txt:
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/touch-event-radius-expected.txt:
- fast/events/touch/ios/touch-event-radius.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:55 PM Changeset in webkit [290907] by
-
- 6 edits in trunk/Source/JavaScriptCore
AssemblyHelpersSpoolers: use load/store pair on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=235112
Reviewed by Žan Doberšek.
Save ~1% code size for baseline JIT on JS2 by emitting load/store pair
instructions on 32-bit ARM.
- assembler/ARMv7Assembler.h:
(JSC::ARMv6Assembler::vldmia):
(JSC::ARMv7Assembler::vstmia):
- assembler/CPU.h:
(JSC::isARM):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::loadPair64):
(JSC::MacroAssemblerARMv7::storePair64):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer):
- jit/AssemblyHelpersSpoolers.h:
(JSC::AssemblyHelpers::LoadRegSpooler::executePair):
(JSC::AssemblyHelpers::StoreRegSpooler::executePair):
(JSC::AssemblyHelpers::CopySpooler::CopySpooler):
(JSC::AssemblyHelpers::CopySpooler::loadPair):
(JSC::AssemblyHelpers::CopySpooler::storePair):
- 1:19 PM Changeset in webkit [290906] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.8
- 1:16 PM Changeset in webkit [290905] by
-
- 2 edits in trunk/Tools
[iOS] editing/async-clipboard/* 20 tests are flaky timeouts on iOS
https://bugs.webkit.org/show_bug.cgi?id=237372
<rdar://problem/89689914>
Reviewed by Alexey Proskuryakov.
- Tools/CISupport/kill-old-processes: Kill "Simulator" process (since killing Simulator.app
won't do anything), shutdown simulators before killing processes. Check that simulators
are shut down before continuing.
Canonical link: https://commits.webkit.org/248136@main
- 1:11 PM Changeset in webkit [290904] by
-
- 2 edits in trunk
Update Basuke Suzuki's status to reviewer
https://bugs.webkit.org/show_bug.cgi?id=237545
Unreviewed.
- metadata/contributors.json:
- 12:59 PM Changeset in webkit [290903] by
-
- 88 edits1 delete in trunk/Source/WebKit
Remove unnecessary Async attribute in .messages.in files
https://bugs.webkit.org/show_bug.cgi?id=237491
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-07
Reviewed by Chris Dumez.
If there is a reply and no "Synchronous" then we can infer that it is asynchronous.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUProcess.messages.in:
- GPUProcess/media/RemoteAudioDestinationManager.messages.in:
- GPUProcess/media/RemoteCDMFactoryProxy.h:
- GPUProcess/media/RemoteCDMInstanceProxy.messages.in:
- GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in:
- GPUProcess/media/RemoteCDMProxy.messages.in:
- GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
- GPUProcess/media/RemoteMediaEngineConfigurationFactoryProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/RemoteMediaResourceManager.messages.in:
- GPUProcess/media/RemoteSourceBufferProxy.messages.in:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.messages.in:
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
- GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in:
- NetworkProcess/Cookies/WebCookieManager.messages.in:
- NetworkProcess/NetworkBroadcastChannelRegistry.messages.in:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSocketChannel.messages.in:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
- NetworkProcess/WebStorage/StorageManagerSet.messages.in:
- NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
- NetworkProcess/storage/NetworkStorageManager.messages.in:
- Scripts/webkit/messages.py:
(message_to_reply_forward_declaration):
(message_to_struct_declaration):
(forward_declarations_and_headers_for_replies):
(async_message_statement):
(sync_message_statement):
(generate_message_handler):
(generate_message_argument_description_implementation):
- Scripts/webkit/model.py:
(generate_global_model):
- Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
- Shared/AuxiliaryProcess.messages.in:
- Shared/Notifications/NotificationManagerMessageHandler.messages.in:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
- UIProcess/Downloads/DownloadProxy.messages.in:
- UIProcess/Media/AudioSessionRoutingArbitratorProxy.messages.in:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.messages.in:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/UserContent/WebUserContentControllerProxy.messages.in:
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
- UIProcess/WebAuthentication/WebAuthnProcessProxy.cpp:
- UIProcess/WebAuthentication/WebAuthnProcessProxy.messages.in: Removed.
- UIProcess/WebLockRegistryProxy.messages.in:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebProcessProxy.messages.in:
- UIProcess/XR/PlatformXRSystem.messages.in:
- UIProcess/mac/SecItemShimProxy.messages.in:
- WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in:
- WebAuthnProcess/WebAuthnProcess.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Automation/WebAutomationSessionProxy.messages.in:
- WebProcess/GPU/GPUProcessConnection.messages.in:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
- WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
- WebProcess/Inspector/WebInspectorUIExtensionController.messages.in:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
- WebProcess/Network/NetworkProcessConnection.messages.in:
- WebProcess/Storage/WebSWClientConnection.messages.in:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
- WebProcess/Storage/WebSharedWorkerObjectConnection.messages.in:
- WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.messages.in:
- WebProcess/WebPage/EventDispatcher.messages.in:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/VideoFullscreenManager.messages.in:
- 12:53 PM Changeset in webkit [290902] by
-
- 1 edit4 deletes in trunk/LayoutTests
Remove duplicated platform expectations for computed-style.html, computed-style-without-renderer.html, getComputedStyle-basic.xhtml
https://bugs.webkit.org/show_bug.cgi?id=237534
Unreviewed test gardening.
- platform/glib/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
- platform/glib/svg/css/getComputedStyle-basic-expected.txt: Removed.
- platform/ios/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
- platform/ios/svg/css/getComputedStyle-basic-expected.txt: Removed.
- 12:29 PM Changeset in webkit [290901] by
-
- 101 edits1 delete in trunk
Optimize the passing of data across threads
https://bugs.webkit.org/show_bug.cgi?id=237502
Reviewed by Geoff Garen.
Source/WebCore:
Add more isolatedCopy() overloads that work on r-value references when the implementation
can be optimized. Also call isolatedCopy() / crossThreadCopy() on a r-value reference
whenever possible to leverage these optimizations.
- Modules/cache/CacheQueryOptions.h:
(WebCore::CacheQueryOptions::isolatedCopy const):
(WebCore::CacheQueryOptions::isolatedCopy):
- Modules/cache/DOMCacheEngine.cpp:
(WebCore::DOMCacheEngine::isolateCacheInfo): Deleted.
(WebCore::DOMCacheEngine::CacheInfos::isolatedCopy): Deleted.
- Modules/cache/DOMCacheEngine.h:
(WebCore::DOMCacheEngine::CacheInfo::isolatedCopy const):
(WebCore::DOMCacheEngine::CacheInfo::isolatedCopy):
(WebCore::DOMCacheEngine::CacheInfos::isolatedCopy const):
(WebCore::DOMCacheEngine::CacheInfos::isolatedCopy):
- Modules/cache/RetrieveRecordsOptions.h:
(WebCore::RetrieveRecordsOptions::isolatedCopy const):
(WebCore::RetrieveRecordsOptions::isolatedCopy):
- Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::retrieveCaches):
(WebCore::WorkerCacheStorageConnection::batchDeleteOperation):
- Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::ListedChild::isolatedCopy const):
(WebCore::ListedChild::isolatedCopy):
(WebCore::DOMFileSystem::listDirectory):
- Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::isolatedCopy const):
(WebCore::IDBDatabaseIdentifier::isolatedCopy):
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/IDBGetResult.cpp:
(WebCore::IDBGetResult::isolatedCopy):
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
- Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
- Modules/indexeddb/shared/IDBDatabaseNameAndVersion.h:
(WebCore::IDBDatabaseNameAndVersion::isolatedCopy const):
(WebCore::IDBDatabaseNameAndVersion::isolatedCopy):
- Modules/indexeddb/shared/IDBError.cpp:
(WebCore::IDBError::isolatedCopy const): Deleted.
- Modules/indexeddb/shared/IDBError.h:
(WebCore::IDBError::isolatedCopy const):
(WebCore::IDBError::isolatedCopy):
- Modules/indexeddb/shared/IDBIndexInfo.cpp:
(WebCore::IDBIndexInfo::isolatedCopy const):
(WebCore::IDBIndexInfo::isolatedCopy):
- Modules/indexeddb/shared/IDBIndexInfo.h:
- Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
(WebCore::IDBObjectStoreInfo::isolatedCopy const):
(WebCore::IDBObjectStoreInfo::isolatedCopy):
- Modules/indexeddb/shared/IDBObjectStoreInfo.h:
- Modules/web-locks/WebLockManagerSnapshot.h:
(WebCore::WebLockManagerSnapshot::Info::isolatedCopy const):
(WebCore::WebLockManagerSnapshot::Info::isolatedCopy):
(WebCore::WebLockManagerSnapshot::isolatedCopy const):
(WebCore::WebLockManagerSnapshot::isolatedCopy):
- Modules/webaudio/AudioParamDescriptor.h:
(WebCore::AudioParamDescriptor::isolatedCopy const):
(WebCore::AudioParamDescriptor::isolatedCopy):
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
- Modules/webaudio/AudioWorkletThread.cpp:
(WebCore::AudioWorkletThread::AudioWorkletThread):
- Modules/webaudio/AudioWorkletThread.h:
(WebCore::AudioWorkletThread::create):
- Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseOpenTask::doPerformTask):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::originLockFor):
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- contentextensions/ContentExtensionActions.cpp:
(WebCore::ContentExtensions::ModifyHeadersAction::isolatedCopy const):
(WebCore::ContentExtensions::ModifyHeadersAction::isolatedCopy):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::isolatedCopy const):
(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::isolatedCopy):
(WebCore::ContentExtensions::RedirectAction::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::isolatedCopy):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::isolatedCopy):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::isolatedCopy const):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::isolatedCopy):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::QueryTransform::QueryKeyValue::isolatedCopy const): Deleted.
- contentextensions/ContentExtensionActions.h:
(WebCore::ContentExtensions::ActionWithStringMetadata::isolatedCopy const):
(WebCore::ContentExtensions::ActionWithStringMetadata::isolatedCopy):
- contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
- contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::loadTrigger):
- contentextensions/ContentExtensionRule.cpp:
(WebCore::ContentExtensions::Trigger::isolatedCopy const):
(WebCore::ContentExtensions::Trigger::isolatedCopy):
(WebCore::ContentExtensions::Action::isolatedCopy const):
(WebCore::ContentExtensions::Action::isolatedCopy):
- contentextensions/ContentExtensionRule.h:
(WebCore::ContentExtensions::Trigger::checkValidity):
(WebCore::ContentExtensions::ContentExtensionRule::isolatedCopy const):
(WebCore::ContentExtensions::ContentExtensionRule::isolatedCopy):
(WebCore::ContentExtensions::Trigger::~Trigger): Deleted.
- dom/Exception.h:
(WebCore::Exception::isolatedCopy const):
(WebCore::Exception::isolatedCopy):
(WebCore::isolatedCopy): Deleted.
- dom/ExceptionData.cpp: Removed.
(WebCore::ExceptionData::isolatedCopy const): Deleted.
- dom/ExceptionData.h:
(WebCore::ExceptionData::isolatedCopy const):
(WebCore::ExceptionData::isolatedCopy):
- dom/ExceptionOr.h:
(WebCore::isolatedCopy): Deleted.
- html/DirectoryFileListCreator.cpp:
(WebCore::FileInformation::isolatedCopy const):
(WebCore::FileInformation::isolatedCopy):
- html/FileInputType.cpp:
(WebCore::FileInputType::receiveDroppedFilesWithImageTranscoding):
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
- loader/CrossOriginOpenerPolicy.cpp:
(WebCore::CrossOriginOpenerPolicy::isolatedCopy const):
(WebCore::CrossOriginOpenerPolicy::isolatedCopy):
- loader/CrossOriginOpenerPolicy.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::handleContentFilterDidBlock):
- loader/FetchOptions.h:
(WebCore::FetchOptions::isolatedCopy const):
(WebCore::FetchOptions::isolatedCopy):
- loader/PolicyContainer.h:
(WebCore::PolicyContainer::isolatedCopy const):
(WebCore::PolicyContainer::isolatedCopy):
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::UnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::UnlinkableToken::isolatedCopy):
(WebCore::PrivateClickMeasurement::isolatedCopy const):
(WebCore::PrivateClickMeasurement::isolatedCopy):
(WebCore::PrivateClickMeasurement::SecretToken::isolatedCopy const): Deleted.
(WebCore::PrivateClickMeasurement::SourceSecretToken::isolatedCopy const): Deleted.
(WebCore::PrivateClickMeasurement::DestinationSecretToken::isolatedCopy const): Deleted.
(WebCore::PrivateClickMeasurement::EphemeralNonce::isolatedCopy const): Deleted.
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isolatedCopy const): Deleted.
(WebCore::PrivateClickMeasurement::DestinationUnlinkableToken::isolatedCopy const): Deleted.
- loader/PrivateClickMeasurement.h:
(WebCore::PrivateClickMeasurement::SourceSite::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SourceSite::isolatedCopy):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::isolatedCopy const):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::isolatedCopy):
(WebCore::PrivateClickMeasurement::EphemeralNonce::isolatedCopy const):
(WebCore::PrivateClickMeasurement::EphemeralNonce::isolatedCopy):
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SourceUnlinkableToken::isolatedCopy):
(WebCore::PrivateClickMeasurement::DestinationUnlinkableToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::DestinationUnlinkableToken::isolatedCopy):
(WebCore::PrivateClickMeasurement::SecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SecretToken::isolatedCopy):
(WebCore::PrivateClickMeasurement::SourceSecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::SourceSecretToken::isolatedCopy):
(WebCore::PrivateClickMeasurement::DestinationSecretToken::isolatedCopy const):
(WebCore::PrivateClickMeasurement::DestinationSecretToken::isolatedCopy):
- loader/ResourceTiming.cpp:
(WebCore::ResourceTiming::isolatedCopy const):
(WebCore::ResourceTiming::isolatedCopy):
- loader/ResourceTiming.h:
- loader/ServerTiming.cpp:
(WebCore::ServerTiming::isolatedCopy const):
(WebCore::ServerTiming::isolatedCopy):
- loader/ServerTiming.h:
- loader/WorkerThreadableLoader.cpp:
- page/ClientOrigin.h:
(WebCore::ClientOrigin::isolatedCopy const):
(WebCore::ClientOrigin::isolatedCopy):
- page/ProcessWarming.cpp:
(WebCore::ProcessWarming::prewarmWithInformation):
- page/ProcessWarming.h:
- page/csp/ContentSecurityPolicyResponseHeaders.cpp:
(WebCore::ContentSecurityPolicyResponseHeaders::isolatedCopy const):
(WebCore::ContentSecurityPolicyResponseHeaders::isolatedCopy):
- page/csp/ContentSecurityPolicyResponseHeaders.h:
- platform/FileChooser.h:
(WebCore::FileChooserFileInfo::isolatedCopy const):
(WebCore::FileChooserFileInfo::isolatedCopy):
- platform/MediaSelectionOption.h:
(WebCore::MediaSelectionOption::isolatedCopy const):
(WebCore::MediaSelectionOption::isolatedCopy):
- platform/RegistrableDomain.h:
(WebCore::RegistrableDomain::isolatedCopy const):
(WebCore::RegistrableDomain::isolatedCopy):
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::prewarm):
- platform/graphics/FontCache.h:
(WebCore::FontCache::PrewarmInformation::isolatedCopy const):
(WebCore::FontCache::PrewarmInformation::isolatedCopy):
- platform/graphics/FontGenericFamilies.cpp:
(WebCore::FontGenericFamilies::isolatedCopy const):
(WebCore::FontGenericFamilies::isolatedCopy):
- platform/graphics/FontGenericFamilies.h:
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::startAsyncDecodingQueue):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontCache::prewarm):
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::audioMediaSelectionOptionsChanged):
(VideoFullscreenControllerContext::legibleMediaSelectionOptionsChanged):
(isolatedCopy): Deleted.
- platform/mediacapabilities/AudioConfiguration.h:
(WebCore::AudioConfiguration::isolatedCopy const):
(WebCore::AudioConfiguration::isolatedCopy):
- platform/mediacapabilities/MediaConfiguration.h:
(WebCore::MediaConfiguration::isolatedCopy const):
(WebCore::MediaConfiguration::isolatedCopy):
- platform/mediacapabilities/VideoConfiguration.h:
(WebCore::VideoConfiguration::isolatedCopy const):
(WebCore::VideoConfiguration::isolatedCopy):
- platform/mediastream/RTCDataChannelHandler.h:
(WebCore::RTCDataChannelInit::isolatedCopy const):
(WebCore::RTCDataChannelInit::isolatedCopy):
- platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::refreshCaptureDevices):
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::isolatedCopy const):
(WebCore::HTTPHeaderMap::isolatedCopy):
- platform/network/HTTPHeaderMap.h:
(WebCore::HTTPHeaderMap::CommonHeader::isolatedCopy const):
(WebCore::HTTPHeaderMap::CommonHeader::isolatedCopy):
(WebCore::HTTPHeaderMap::UncommonHeader::isolatedCopy const):
(WebCore::HTTPHeaderMap::UncommonHeader::isolatedCopy):
- workers/service/ServiceWorkerClients.cpp:
(WebCore::ServiceWorkerClients::claim):
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::schedulePushChanges):
- worklets/WorkletParameters.h:
(WebCore::WorkletParameters::isolatedCopy const):
(WebCore::WorkletParameters::isolatedCopy):
Source/WebKit:
Add more isolatedCopy() overloads that work on r-value references when the implementation
can be optimized. Also call isolatedCopy() / crossThreadCopy() on a r-value reference
whenever possible to leverage these optimizations.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToPCMDatabaseIfNecessary):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
(WebKit::RegistrableDomainsToBlockCookiesFor::isolatedCopy const):
(WebKit::RegistrableDomainsToBlockCookiesFor::isolatedCopy):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy):
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.cpp:
(WebKit::PCM::DebugInfo::isolatedCopy const):
(WebKit::PCM::DebugInfo::isolatedCopy):
(WebKit::PCM::DebugInfo::Message::isolatedCopy const):
(WebKit::PCM::DebugInfo::Message::isolatedCopy):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDebugInfo.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementStore.cpp:
(WebKit::PCM::Store::allAttributedPrivateClickMeasurement):
- UIProcess/API/APIContentRuleListStore.cpp:
(API::ContentRuleListStore::compileContentRuleList):
- UIProcess/Cocoa/ModalContainerControlClassifier.mm:
(WebKit::ModalContainerControlClassifier::classify):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::setMediaAccessibilityPreferences):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::prewarmWithDomainInformation):
- WebProcess/WebProcess.h:
Source/WebKitLegacy:
Add more isolatedCopy() overloads that work on r-value references when the implementation
can be optimized. Also call isolatedCopy() / crossThreadCopy() on a r-value reference
whenever possible to leverage these optimizations.
- Storage/InProcessIDBServer.cpp:
(InProcessIDBServer::didGetAllDatabaseNamesAndVersions):
Source/WTF:
Drop isolatedCopy() on Vector since CrossThreadCopier already has logic to
isolate-copy a Vector. The logic in CrossThreadCopier has the benefit of
working on types that do not implement isolatedCopy() (e.g. a Vector of
std::optional or a Vector of std::variant).
Improve the CrossThreadCopier to optimize the case where crossThreadCopy()
is called on a r-value reference in more cases. In particular, the logic
for Vector, HashSet, HashMap, std::pair, std::variant was improved. I
also added API test coverage for those.
The API tests also found a bug where crossThreadCopy() was incorrectly
moving the source when called on a std::variant that was not a r-value
reference. This bug is fixed in this patch too.
- wtf/CrossThreadCopier.h:
- wtf/Vector.h:
(WTF::Malloc>::isolatedCopy const): Deleted.
(WTF::Malloc>::isolatedCopy): Deleted.
- wtf/mac/FileSystemMac.mm:
(WTF::FileSystem::setMetadataURL):
Tools:
Expand test coverage for crossThreadCopy() and make sure the optimizations are working
when called on a r-value reference.
- TestWebKitAPI/Tests/WTF/CrossThreadCopier.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):
- 11:27 AM Changeset in webkit [290900] by
-
- 2 edits in trunk/LayoutTests
LayoutTests/webgl/max-active-contexts-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=237466
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-07
Reviewed by Alexey Proskuryakov.
The test:
- created 16 WebGL contexts
- unreferenced 8 WebGL contexts.
- forced gc
- added 9 WebGL contexts.
The test tries to test that GC removes unreferenced contexts.
To assert this, it ends up with 17 contexts, which is 1 above
the maximum active limit. This means one context is lost and the
implementation prints one line of error.
Since the GC is not exact, sometimes it would only collect 7 of the 8
unreferenced contexts. This would mean two error messages.
Fix by trying to collect each time a context is unreferenced. This seems to be
more predictable.
- webgl/max-active-contexts-gc.html:
- 11:21 AM Changeset in webkit [290899] by
-
- 10 edits3 adds in trunk
Make "true" count as truthy in window.open()'s boolean features
https://bugs.webkit.org/show_bug.cgi?id=237530
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Import WPT test coverage.
- resources/resource-files.json:
- web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-is-popup-condition.html:
- web-platform-tests/html/browsers/the-window-object/support/w3c-import.log:
- web-platform-tests/html/browsers/the-window-object/support/windowFeature-values-target.html: Added.
- web-platform-tests/html/browsers/the-window-object/w3c-import.log:
- web-platform-tests/html/browsers/the-window-object/window-open-noopener.html:
- web-platform-tests/html/browsers/the-window-object/window-open-windowfeatures-values-expected.txt: Added.
- web-platform-tests/html/browsers/the-window-object/window-open-windowfeatures-values.html: Added.
Source/WebCore:
Make "true" count as truthy in window.open()'s boolean features, as per:
Test: imported/w3c/web-platform-tests/html/browsers/the-window-object/window-open-windowfeatures-values.html
- page/WindowFeatures.cpp:
(WebCore::setWindowFeature):
LayoutTests:
- tests-options.json:
- 11:13 AM Changeset in webkit [290898] by
-
- 4 edits in trunk
[web-animations] animating "fill" and "stroke" to or from "currentColor" should work
https://bugs.webkit.org/show_bug.cgi?id=237531
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/responsive/to-color-change-expected.txt:
Source/WebCore:
Invalid colors should use the value for the "color" property on the provided RenderStyle.
- animation/CSSPropertyAnimation.cpp:
- 10:18 AM Changeset in webkit [290897] by
-
- 4 edits in trunk
Transition on text-decoration-color from currentColor jumps
https://bugs.webkit.org/show_bug.cgi?id=236992
<rdar://problem/89382835>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/responsive/to-color-change-expected.txt:
Source/WebCore:
We need to use the MaybeInvalidColor tag to identify that this property can work with
currentColor.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 10:00 AM Changeset in webkit [290896] by
-
- 11 edits1 delete in trunk/Source/WebKit
Delete WebIDBServer and WebIDBConnectionToClient
https://bugs.webkit.org/show_bug.cgi?id=237479
Reviewed by Chris Dumez.
The code is unused since r289474; remove it to avoid confusion when investigating issues including related
symbols.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: Removed.
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: Removed.
- NetworkProcess/IndexedDB/WebIDBServer.cpp: Removed.
- NetworkProcess/IndexedDB/WebIDBServer.h: Removed.
- NetworkProcess/IndexedDB/WebIDBServer.messages.in: Removed.
- NetworkProcess/NetworkProcess.cpp:
- NetworkProcess/NetworkSession.cpp:
- NetworkProcess/NetworkSession.h:
- NetworkProcess/ios/NetworkProcessIOS.mm:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- 9:53 AM Changeset in webkit [290895] by
-
- 6 edits in trunk
[web-animations] text-emphasis shorthand should be animatable
https://bugs.webkit.org/show_bug.cgi?id=237529
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForTextEmphasisStyle):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- 9:52 AM Changeset in webkit [290894] by
-
- 4 edits in trunk/Tools
[git-webkit] Derive branch name from bug title (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=237284
<rdar://problem/89578241>
Unreviewed follow-up fix.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:
(TestBranch.test_basic_svn): Using an integer will attempt to find a bug number.
(TestBranch.test_basic_git): Ditto.
Canonical link: https://commits.webkit.org/248125@main
- 9:37 AM Changeset in webkit [290893] by
-
- 7 edits in trunk/Source/WebKit
[WebAuthn] Provide global frame identifier to ASCAgent SPI
https://bugs.webkit.org/show_bug.cgi?id=237454
rdar://problem/89782147
Reviewed by Brent Fulgham.
For purposes related to conditional mediation, the ASCAgent SPI
need to know what frame requested the assertion. This patch starts
passing that along.
- Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::cancelRequest):
(WebKit::AuthenticatorManager::runPanel):
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
- UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
- UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:
(WebKit::configurationAssertionRequestContext):
(WebKit::WebAuthenticatorCoordinatorProxy::contextForRequest):
- UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
- 9:29 AM Changeset in webkit [290892] by
-
- 4 edits in trunk/Source
Small cleanups of media code
https://bugs.webkit.org/show_bug.cgi?id=237496
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
No new tests. No behavior change.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updatePlayState):
schedulePlaybackControlsManagerUpdate()is
called in both branches.
Source/WebKit:
- WebProcess/cocoa/PlaybackSessionManager.h:
protectedis not needed here.
- 9:13 AM Changeset in webkit [290891] by
-
- 2 edits in trunk/LayoutTests
[Catalina Release wk1] imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=230729
<rdar://problem/83469625>
Unreviewed, unskip test as the bots show no recent flakiness.
- platform/mac-wk1/TestExpectations:
- 8:42 AM WebKitGTK/2.36.x edited by
- Reproducible build fixes (diff)
- 8:37 AM Changeset in webkit [290890] by
-
- 2 edits in trunk/Source/WebKit
[GTK] generate-automation-atom.py breaks reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=237506
Reviewed by Carlos Garcia Campos.
- Scripts/generate-automation-atom.py:
(append_functions): Sort utility functions to produce stable output.
- 7:56 AM Changeset in webkit [290889] by
-
- 18 edits in trunk
[webkitbugspy] Allow creation of new issues
https://bugs.webkit.org/show_bug.cgi?id=237123
<rdar://problem/89388181>
Reviewed by Dewei Zhu.
- metadata/trackers.json: Define project.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
(Tracker.projects): Return a dictionary of projects, components and versions.
(Tracker.create): Create a new bug, prompting user for product, component and version
if needed.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.labels): Return a dictionary of all labels associated with the project.
(Tracker.projects): Return an empty dictionary.
(Tracker.create): Create a new issue.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/init.py: Export PROJECT data.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/base.py:
(Base.init): Mock trackers should define a project dictionary.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:
(Bugzilla.init):
(Bugzilla._product_details): Derive product details from project dictionary.
(Bugzilla._create): Create a new bug.
(Bugzilla.request): Handle requests for product details and bug creation.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/data.py:
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:
(GitHub.init):
(GitHub._labels): Return a list of project labels.
(GitHub._create): Create a new issue.
(GitHub.request): Handle requests for labels and issue creation.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py:
(RadarClient.find_components): Mock radarclient's component search API.
(RadarClient.create_radar): Mock radarclient's radar creation API.
(Radar.Component): Added.
(Radar.exceptions): Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:
(Tracker):
(Tracker.Encoder.default): Pass 'projects' to radar instances.
(Tracker.init): Callers should define projects to limit component scope.
(Tracker.projects): Search radar components to provide a subset relevant to the declared projects.
(Tracker.create): Create a radar, prompting user for component and version if needed.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:
(TestBugzilla.test_state_why):
(TestBugzilla):
(TestBugzilla.test_projects):
(TestBugzilla.test_create):
(TestBugzilla.test_create_prompt):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:
(TestGitHub.test_state_why):
(TestGitHub):
(TestGitHub.test_labels):
(TestGitHub.test_projects):
(TestGitHub.test_create):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:
(TestRadar.test_state_why):
(TestRadar):
(TestRadar.test_projects):
(TestRadar.test_create):
(TestRadar.test_create_prompt):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:
(Tracker.from_json): Pass 'projects' to radar instances.
(Tracker.projects): Add base-class implementation.
(Tracker.create): Ditto.
Canonical link: https://commits.webkit.org/248120@main
- 6:26 AM Changeset in webkit [290888] by
-
- 10 edits in trunk
[web-animations] text-emphasis-style should support discrete animations
https://bugs.webkit.org/show_bug.cgi?id=237514
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/css/css-text-decor/inheritance-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- 6:24 AM Changeset in webkit [290887] by
-
- 7 edits in trunk
[web-animations] text-emphasis-color should support non-discrete animations
https://bugs.webkit.org/show_bug.cgi?id=237518
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
Source/WebCore:
This property was mistakenly added as a discrete property when it was unprefixed.
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:22 AM Changeset in webkit [290886] by
-
- 4 edits in trunk
[web-animations] text-decoration-skip-ink should support discrete animations
https://bugs.webkit.org/show_bug.cgi?id=237512
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:19 AM Changeset in webkit [290885] by
-
- 4 edits in trunk
[web-animations] line-break should support discrete animations
https://bugs.webkit.org/show_bug.cgi?id=237520
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 6:15 AM Changeset in webkit [290884] by
-
- 15 edits in trunk
Parsing of list-style shorthand is incorrect
https://bugs.webkit.org/show_bug.cgi?id=237515
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-lists/parsing/list-style-computed.sub-expected.txt:
- web-platform-tests/css/css-lists/parsing/list-style-valid-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/css/cssom/shorthand-values-expected.txt:
Source/WebCore:
The spec at https://drafts.csswg.org/css-lists/#list-style-property says the order of the properties
in the "list-style" shorthand is <'list-style-position'> <'list-style-image'> <'list-style-type'>. Additionally, the "none" value needs special handling such that it sets "list-style-type".
- css/CSSProperties.json:
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseShorthand):
LayoutTests:
Some non-WPT tests had the wrong assumption on the shorthand order
for list-style, so we update those tests to match the spec.
Additionally, the WPT test css/css-lists/list-style-type-string-004.html now passes.
- fast/css/cssText-shorthand-expected.txt:
- fast/css/cssText-shorthand.html:
- fast/css/getComputedStyle/getComputedStyle-list-style-shorthand-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html:
- platform/mac/TestExpectations:
- 4:43 AM Changeset in webkit [290883] by
-
- 2 edits in trunk/Source/WebCore
makeprop.pl breaks reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=237521
Reviewed by Carlos Garcia Campos.
- css/makeprop.pl: Sort hash elements so the output file is always
the same across different builds.
- 3:47 AM Changeset in webkit [290882] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Add missing CPU(RISCV64) guards in CTI thunk prologue, epilogue generators
https://bugs.webkit.org/show_bug.cgi?id=237517
Unreviewed, adding missing CPU(RISCV64) guards to the CTI thunk prologue
and epilogue generators in CCallHelpers, reusing the ARM variants of the
pair push/pop calls.
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-07
- jit/CCallHelpers.cpp:
(JSC::CCallHelpers::emitCTIThunkPrologue):
(JSC::CCallHelpers::emitCTIThunkEpilogue):
- 3:18 AM Changeset in webkit [290881] by
-
- 3 edits in trunk/Source/WebCore
Add hasTransformOrPerspective() helper to RenderObject
https://bugs.webkit.org/show_bug.cgi?id=237469
Reviewed by Darin Adler.
Avoid duplicating the logic to test if a renderer is transformed in
multiple places. Currently RenderGeometryMap duplicates the logic to add
one extra condition, the presence of a 'perspective' property.
While I was at it: remove the redundant offsetPath() check in
RenderObject::hasTransform(), since RenderStyle::hasTransform()
already returns true if offsetPath() is non-null.
LBSE wants to extend hasTransform() by a new condition: hasSVGTransform().
Before this patch, the place in RenderGeometryMap was easy to miss, fix that,
by centralizing the logic in one place.
Covered by existing tests, no change in behaviour.
- rendering/RenderGeometryMap.cpp:
(WebCore::canMapBetweenRenderersViaLayers): Use RenderObject::hasTransformOrPespective().
- rendering/RenderObject.h:
(WebCore::RenderObject::hasTransform const): Remove redundant offsetPath() check.
(WebCore::RenderObject::hasTransformOrPespective const): Add new helper.
- 3:16 AM Changeset in webkit [290880] by
-
- 7 edits2 adds in trunk/Source/WebCore
[LBSE] Begin layer-aware RenderSVGTransformableContainer implementation
https://bugs.webkit.org/show_bug.cgi?id=237024
Reviewed by Rob Buis.
Create RenderSVGContainer based on the downstream LBSE implementation.
This patch does not yet enable the creation of RenderSVGContainer
renderers if LBSE is enabled, since the derived classes, such as
RenderSVGHiddenContainer / RenderSVGViewportContainer / ..., are still
missing in LBSE.
Covered by existing tests, no change in behaviour.
- Sources.txt: Add RenderSVGTransformableContainer.* to build.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- rendering/RenderObject.h:
(WebCore::RenderObject::isSVGTransformableContainer const):
- rendering/svg/RenderSVGTransformableContainer.cpp: Added.
(WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
(WebCore::associatedUseElement):
(WebCore::RenderSVGTransformableContainer::additionalContainerTranslation const):
(WebCore::RenderSVGTransformableContainer::calculateViewport):
(WebCore::RenderSVGTransformableContainer::layoutChildren):
(WebCore::RenderSVGTransformableContainer::updateFromStyle):
(WebCore::RenderSVGTransformableContainer::applyTransform const):
(WebCore::RenderSVGTransformableContainer::styleWillChange):
(WebCore::RenderSVGTransformableContainer::graphicsElement const):
- rendering/svg/RenderSVGTransformableContainer.h: Added.
- rendering/svg/SVGContainerLayout.cpp:
(WebCore::SVGContainerLayout::transformToRootChanged):
- svg/SVGElement.cpp: Create renderer for <g> elements in LBSE mode.
(WebCore::createSVGLayerAwareElementSet):
- svg/SVGGElement.cpp: Ditto.
(WebCore::SVGGElement::createElementRenderer):
- 2:19 AM Changeset in webkit [290879] by
-
- 9 edits2 adds in trunk
Compute correct containing block override size for items that are subgridden in one dimension only.
https://bugs.webkit.org/show_bug.cgi?id=236951
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Added new WPT similar to auto-track-sizing-001 which adds new variations
with nested subgrids and varying whether the other axis is subgridded.
- web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002-expected.html: Added.
- web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002.html: Added.
Source/WebCore:
Items that are subgridded in one dimension will be included in the track sizing algorithm of the
outer grid for that dimension. When measuring their size in the subgridded dimension, we need to
set their containing block size in the other (non-subgridded) dimension, which is only available
from the subgrid's track sizing, not the outer track sizes.
This recurses up to set the override size on the subgrid element instead, and forces a layout
there, which should copy down subgrid track sizes and compute the other dimension, making it
available on the inner item we need.
Test: imported/w3c/web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002.html
- rendering/GridLayoutFunctions.cpp:
(WebCore::GridLayoutFunctions::extraMarginForSubgridAncestors):
- rendering/GridLayoutFunctions.h:
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForChild const):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::isSubgridOf):
- rendering/RenderGrid.h:
LayoutTests:
Marked existing WPT as passing.
- 2:17 AM Changeset in webkit [290878] by
-
- 2 edits in trunk/Source/WebCore
Release_Assert | WebCore::Document::addTopLayerElement()
https://bugs.webkit.org/show_bug.cgi?id=237307
Patch by Frédéric Wang <fwang@igalia.com> on 2022-03-07
Reviewed by Chris Dumez.
setBooleanAttribute() call in HTMLDialogElement::showModal() dispatches a DOMSubtreeModified
event. Postpone it so that listeners cannot disconnect the dialog element.
- html/HTMLDialogElement.cpp:
(WebCore::HTMLDialogElement::showModal): Add a queue to postpone event.
Mar 6, 2022:
- 10:43 PM Changeset in webkit [290877] by
-
- 28 edits in trunk/Source/WebGPU
[WebGPU] Use C++ references instead of pointers where applicable
https://bugs.webkit.org/show_bug.cgi?id=237508
Reviewed by Tim Horton.
The header we're implementing uses pointers because it's a C header.
Our internal implementation can use references instead.
- WebGPU/Adapter.h:
- WebGPU/Adapter.mm:
(WebGPU::Adapter::getLimits):
(WebGPU::Adapter::getProperties):
(WebGPU::Adapter::requestDevice):
(wgpuAdapterGetLimits):
(wgpuAdapterGetProperties):
(wgpuAdapterRequestDevice):
(wgpuAdapterRequestDeviceWithBlock):
- WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
- WebGPU/BindGroupLayout.mm:
(WebGPU::Device::createBindGroupLayout):
- WebGPU/Buffer.mm:
(WebGPU::Device::createBuffer):
- WebGPU/CommandEncoder.h:
- WebGPU/CommandEncoder.mm:
(WebGPU::Device::createCommandEncoder):
(WebGPU::CommandEncoder::beginComputePass):
(WebGPU::CommandEncoder::beginRenderPass):
(WebGPU::CommandEncoder::copyBufferToTexture):
(WebGPU::CommandEncoder::copyTextureToBuffer):
(WebGPU::CommandEncoder::copyTextureToTexture):
(WebGPU::CommandEncoder::finish):
(wgpuCommandEncoderBeginComputePass):
(wgpuCommandEncoderBeginRenderPass):
(wgpuCommandEncoderCopyBufferToTexture):
(wgpuCommandEncoderCopyTextureToBuffer):
(wgpuCommandEncoderCopyTextureToTexture):
(wgpuCommandEncoderFinish):
- WebGPU/ComputePipeline.mm:
(WebGPU::Device::createComputePipeline):
(WebGPU::Device::createComputePipelineAsync):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::getLimits):
(wgpuDeviceCreateBindGroup):
(wgpuDeviceCreateBindGroupLayout):
(wgpuDeviceCreateBuffer):
(wgpuDeviceCreateCommandEncoder):
(wgpuDeviceCreateComputePipeline):
(wgpuDeviceCreateComputePipelineAsync):
(wgpuDeviceCreateComputePipelineAsyncWithBlock):
(wgpuDeviceCreatePipelineLayout):
(wgpuDeviceCreateQuerySet):
(wgpuDeviceCreateRenderBundleEncoder):
(wgpuDeviceCreateRenderPipeline):
(wgpuDeviceCreateRenderPipelineAsync):
(wgpuDeviceCreateRenderPipelineAsyncWithBlock):
(wgpuDeviceCreateSampler):
(wgpuDeviceCreateShaderModule):
(wgpuDeviceCreateSwapChain):
(wgpuDeviceCreateTexture):
(wgpuDeviceGetLimits):
- WebGPU/Instance.h:
- WebGPU/Instance.mm:
(WebGPU::Instance::create):
(WebGPU::Instance::createSurface):
(WebGPU::Instance::requestAdapter):
(wgpuCreateInstance):
(wgpuInstanceCreateSurface):
(wgpuInstanceRequestAdapter):
(wgpuInstanceRequestAdapterWithBlock):
- WebGPU/PipelineLayout.mm:
(WebGPU::Device::createPipelineLayout):
- WebGPU/QuerySet.mm:
(WebGPU::Device::createQuerySet):
- WebGPU/Queue.h:
- WebGPU/Queue.mm:
(WebGPU::Queue::writeTexture):
(wgpuQueueWriteTexture):
- WebGPU/RenderBundleEncoder.h:
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::Device::createRenderBundleEncoder):
(WebGPU::RenderBundleEncoder::finish):
(wgpuRenderBundleEncoderFinish):
- WebGPU/RenderPassEncoder.h:
- WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::setBlendConstant):
(wgpuRenderPassEncoderSetBlendConstant):
- WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipeline):
(WebGPU::Device::createRenderPipelineAsync):
- WebGPU/Sampler.mm:
(WebGPU::Device::createSampler):
- WebGPU/ShaderModule.h:
- WebGPU/ShaderModule.mm:
(WebGPU::findShaderModuleParameters):
(WebGPU::Device::createShaderModule):
(WebGPU::ShaderModule::getCompilationInfo):
(wgpuShaderModuleGetCompilationInfo):
(wgpuShaderModuleGetCompilationInfoWithBlock):
- WebGPU/SwapChain.mm:
(WebGPU::Device::createSwapChain):
- WebGPU/Texture.h:
- WebGPU/Texture.mm:
(WebGPU::Device::createTexture):
(WebGPU::Texture::createView):
(wgpuTextureCreateView):
- 7:52 PM Changeset in webkit [290876] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Fix key expired treatment with Python3
https://bugs.webkit.org/show_bug.cgi?id=237509
Reviewed by Fujii Hironori.
- flatpak/flatpakutils.py:
(FlatpakObject.flatpak_update):
- 9:39 AM Changeset in webkit [290875] by
-
- 4 edits1 add in trunk
[iOS] Layer tree can get indefinitely frozen if WKWebView is unparented underneath -[UIWindow dealloc]
https://bugs.webkit.org/show_bug.cgi?id=237505
rdar://85563958
Reviewed by Tim Horton.
Source/WebKit:
It's currently possible for the web page to get permanently stuck in frozen state, due to the
BackgroundApplicationlayer tree freeze reason; this occurs when the web view is unparented from the view
hierarchy underneath the scope of UIWindow's-deallocmethod.
During
-[UIWindow dealloc], the backpointer underlying the implementation of-[UIView window]is set tonil
immediately before the subclassing method hook-willMoveToWindow:is invoked on the view hierarchy. This means
that when-willMoveToWindow:is invoked,self.windowwill returnnil. This, in turn, puts
WKApplicationStateTrackingViewin a bad state because we bail early before resetting_applicationStateTracker
in the early return below, since we (erroneously) believe that we've already been unparented from the view
hierarchy, so we don't need to do anything.
`
if (!self._contentView.window newWindow) return;
`
As a result, if the same web view is eventually moved back into another visible window,
-didMoveToWindowbails
before setting up the_applicationStateTrackeragain, since it already exists from when the previous window
was still active. This means-_applicationWillEnterForegroundis never called when the web view is
reintroduced to the view hierarchy, soLayerTreeFreezeReason::BackgroundApplicationis never lifted.
To address this, we simply remove the debug assertion for
_applicationStateTracker, and instead check whether
the application state tracker exists or not for the logic of the early return. Doing so also makes the early
return in-willMoveToWindow:consistent with the logic in one in-didMoveToWindow, which already consults
_applicationStateTracker:
`
- (void)didMoveToWindow
{
if (!self._contentView.window _applicationStateTracker) return;
`
Test: ApplicationStateTracking.WindowDeallocDoesNotPermanentlyFreezeLayerTree
- UIProcess/ios/WKApplicationStateTrackingView.mm:
(-[WKApplicationStateTrackingView willMoveToWindow:]): See above.
Tools:
Add an API test to exercise the bug. This API test is comprised of the following series of steps:
- Create the web view and add it under window #1.
- Post a "did enter background" notification.
- Deallocate window #1 (thereby unparenting the web view in the process).
- Post a "will enter foreground" notification.
- Add the web view under window #2.
- Load some HTML content and wait for a presentation update.
Before the fix, this test times out because the layer tree is permanently frozen after step (3), due to the
BackgroundApplicationreason, so the presentation update in step (6) never finishes.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/ApplicationStateTracking.mm: Added.
(TestWebKitAPI::TEST):
- 9:28 AM Changeset in webkit [290874] by
-
- 14 edits in trunk/Source
Push HTMLMediaElement renderer's contentBox rect to GPU process
https://bugs.webkit.org/show_bug.cgi?id=237444
rdar://84869202
Reviewed by Jer Noble.
Source/WebCore:
No new tests. This is a speculative fix, with new logging, for an issue I haven't
been able to reproduce.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateRenderer): Push mediaPlayerContentBoxRect to the
media player.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::playerContentBoxRectChanged): Pass rect to platform player.
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::playerContentBoxRectChanged):
Source/WebKit:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy): Configuration now has
playerContentBoxRect.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerContentBoxRect const):
(WebKit::RemoteMediaPlayerProxy::playerContentBoxRectChanged): Update playerContentBoxRect.
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:
(WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
(WebKit::RemoteMediaPlayerProxyConfiguration::decode):
- GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
(WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeIfPossible): Convert from static
function so we can log.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable): Add logging.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged): Ditto.
(WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeFenced): Ditto.
(WebKit::setVideoInlineSizeIfPossible): Deleted.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::playerContentBoxRectChanged):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
Mar 5, 2022:
- 10:59 PM Changeset in webkit [290873] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix JITOperationList::addPointers() to support JIT_OPERATION_VALIDATION_ASSERT_ENABLED.
https://bugs.webkit.org/show_bug.cgi?id=237504
<rdar://problem/89770507>
Reviewed by Saam Barati.
According to tagJSCCodePtrImpl(), we will only use an operation's validation entry
if Options::useJITCage(). Make JITOperationList::addPointers() conform to this.
- assembler/JITOperationList.cpp:
(JSC::JITOperationList::addPointers):
- 10:50 PM Changeset in webkit [290872] by
-
- 13 edits1 delete in trunk/Source/WebCore
Replace IntRectExtent with RectEdges<int>
https://bugs.webkit.org/show_bug.cgi?id=237495
Reviewed by Sam Weinig.
IntRectExtent was just like RectEdges<int>, so remove it.
Add operator+= for RectEdges<>, and helpers to convert from RectEdges<int> to RectEdges<LayoutUnit>.
Code that previously added a IntRectExtent to a rect now uses .expand().
For some reason initializing a RectEdges<T> with arguments std::max<T> fails to
compile, so use intermediate variables in two places.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/LengthBox.cpp:
(WebCore::operator<<):
- platform/LengthBox.h:
(WebCore::toLayoutBoxExtent):
- platform/RectEdges.h:
(WebCore::RectEdges::isZero const):
(WebCore::operator+=):
- platform/graphics/IntRectExtent.h: Removed.
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::outsets const):
- platform/graphics/filters/FilterFunction.h:
- platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::outsets const):
- platform/graphics/filters/FilterOperations.h:
- rendering/CSSFilter.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
(WebCore::transparencyClipBox):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::beginFilterEffect):
- 1:55 PM Changeset in webkit [290871] by
-
- 3 edits in trunk/Source/JavaScriptCore
Optimize VMTraps::maybeNeedHandling().
https://bugs.webkit.org/show_bug.cgi?id=237503
Reviewed by Saam Barati.
There's no need for VMTraps::maybeNeedHandling() to mask the VMTraps bits for
events. Under normal circumstances, there are no traps firing and the traps bits
are 0 anyway. We should optimize for this and do away with the masking. Clients
who use VMTraps::maybeNeedHandling() should and current do call VMTraps::needHandling()
to get the real story on whether there are actually traps to handle or not. Hence,
the masking in VMTraps::maybeNeedHandling() is also not needed for correctness.
We know from experience that changes in RETURN_IN_EXCEPTION can have an impact on
performance. Perhaps this change can also help performance.
- runtime/ExceptionScope.h:
- runtime/VMTraps.h:
(JSC::VMTraps::maybeNeedHandling const):
- 1:24 PM Changeset in webkit [290870] by
-
- 4 edits in trunk
Remove non-standard display:block UA stylesheet rule for <layer>
https://bugs.webkit.org/show_bug.cgi?id=236730
<rdar://problem/89372670>
Reviewed by Antti Koivisto.
Source/WebCore:
This looks to be an old WebKit (khtml?) quirk.
See also https://bugs.chromium.org/p/chromium/issues/detail?id=1298197
- css/html.css:
(address, article, aside, div, footer, header, hgroup, main, nav, section):
(address, article, aside, div, footer, header, hgroup, layer, main, nav, section): Deleted.
LayoutTests:
- inspector/css/shadow-scoped-style-expected.txt:
- 10:55 AM Changeset in webkit [290869] by
-
- 8 edits in trunk/Source
Fix broken SuspendExceptionScope and remove redundant VM::DeferExceptionScope.
https://bugs.webkit.org/show_bug.cgi?id=237441
<rdar://problem/89769627>
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
SuspendExceptionScope was meant to do exactly the same thing that VM::DeferExceptionScope
does, except that SuspendExceptionScope hasn't been updated to handle exception
handling via VMTraps bits.
This patch will fix SuspendExceptionScope to work like VM::DeferExceptionScope,
and remove the now redundant VM::DeferExceptionScope. SuspendExceptionScope is
the better name here because the scope actually suspends any pending exception.
This is different from other Defer scopes where we prevent some new event from
arising and defer the event to a later time.
- interpreter/FrameTracers.h:
(JSC::SuspendExceptionScope::SuspendExceptionScope):
(JSC::SuspendExceptionScope::~SuspendExceptionScope):
- interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::notifyDebuggerOfUnwinding):
- runtime/TypeProfilerLog.cpp:
(JSC::TypeProfilerLog::processLogEntries):
- runtime/VM.h:
(JSC::VM::restorePreviousException): Deleted.
(JSC::VM::DeferExceptionScope::DeferExceptionScope): Deleted.
(JSC::VM::DeferExceptionScope::~DeferExceptionScope): Deleted.
Source/WebCore:
- inspector/InspectorFrontendAPIDispatcher.cpp:
(WebCore::InspectorFrontendAPIDispatcher::evaluateExpression):
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::evaluateScriptInExtensionTab):
- 9:18 AM Changeset in webkit [290868] by
-
- 5 edits in trunk
[IFC][Integration] Do not bail out on IFC content with floats inside.
https://bugs.webkit.org/show_bug.cgi?id=237494
Reviewed by Antti Koivisto.
Source/WebCore:
We have support for such content now.
(This gives a noticeable coverage boost on PLT5 content.)
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
LayoutTests:
- platform/ios/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
- platform/mac/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
- 8:57 AM Changeset in webkit [290867] by
-
- 24 edits in trunk
Resolve ::first-line style eagerly
https://bugs.webkit.org/show_bug.cgi?id=237362
Reviewed by Alan Bujtas.
Source/WebCore:
Compute ::first-line style during style resolution instead of lazily in render tree.
This fixes bugs and clarifies the architecture in ways that a helpful for features like
container queries.
As a side effect it also makes ::first-line style animatable.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::firstLineBlock const): Deleted.
- rendering/RenderBlock.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::RenderElement):
(WebCore::RenderElement::firstLineStyle const):
(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::computeFirstLineStyle const): Deleted.
(WebCore::RenderElement::invalidateCachedFirstLineStyle): Deleted.
- rendering/RenderElement.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::firstLineBlock const): Deleted.
- rendering/RenderObject.h:
- rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::firstLineBlock const): Deleted.
- rendering/RenderRubyRun.h:
- rendering/RenderTable.cpp:
(WebCore::RenderTable::firstLineBlock const): Deleted.
- rendering/RenderTable.h:
- rendering/RenderText.cpp:
(WebCore::RenderText::findByDisplayContentsInlineWrapperCandidate): Deleted.
- rendering/RenderText.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getCachedPseudoStyle const):
- rendering/style/RenderStyle.h:
(WebCore::generatesBox):
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::firstLineBlock const): Deleted.
- rendering/svg/RenderSVGText.h:
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolvePseudoElement):
(WebCore::Style::TreeResolver::resolveInheritedFirstLinePseudoElement):
(WebCore::Style::TreeResolver::makeResolutionContextForInheritedFirstLine):
(WebCore::Style::TreeResolver::boxGeneratingParent const const):
(WebCore::Style::TreeResolver::parentBoxStyle const):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::TreeResolver::resolvePseudoStyle): Deleted.
- style/StyleTreeResolver.h:
LayoutTests:
- TestExpectations:
- platform/mac/fast/forms/input-baseline-expected.txt:
- 8:26 AM Changeset in webkit [290866] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] RenderInline should use ADD_REASONS_AND_RETURN_IF_NEEDED
https://bugs.webkit.org/show_bug.cgi?id=237492
Reviewed by Antti Koivisto.
Content inside RenderInline should be accounted for when collecting coverage information.
(This patch also has a bit of a printModernLineLayoutCoverage&co refactoring.)
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printTextForSubtree):
(WebCore::LayoutIntegration::contentLengthForSubtreeStayWithinBlockFlow):
(WebCore::LayoutIntegration::contentLengthForBlockFlow):
(WebCore::LayoutIntegration::printModernLineLayoutBlockList):
(WebCore::LayoutIntegration::printModernLineLayoutCoverage):
(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::textLengthForSubtree): Deleted.
(WebCore::LayoutIntegration::collectNonEmptyLeafRenderBlockFlows): Deleted.
(WebCore::LayoutIntegration::collectNonEmptyLeafRenderBlockFlowsForCurrentPage): Deleted.
- 3:33 AM Changeset in webkit [290865] by
-
- 5 edits in trunk
Implement remote-inbound-rtp packetsLost
https://bugs.webkit.org/show_bug.cgi?id=237443
Reviewed by Eric Carlson.
Source/WebCore:
Take benefit of latest backend to expose RemoteInboundRtpStreamStats values inherited from ReceivedRtpStreamStats.
Covered by updated test.
- Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:
(WebCore::fillReceivedRtpStreamStats):
(WebCore::fillInboundRtpStreamStats):
(WebCore::fillRemoteInboundRtpStreamStats):
LayoutTests:
- platform/mac/TestExpectations:
- webrtc/video-stats.html:
- 3:18 AM Changeset in webkit [290864] by
-
- 3 edits2 adds in trunk
[css-cascade] Let 'revert-layer' in lowest layer roll back to user styles
https://bugs.webkit.org/show_bug.cgi?id=237486
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add test. It still has some remaining failures due to bug 236272.
- web-platform-tests/css/css-cascade/all-prop-revert-layer-noop-expected.txt: Added.
- web-platform-tests/css/css-cascade/all-prop-revert-layer-noop.html: Added.
Source/WebCore:
When 'revert-layer' was used in the lowest @layer, then it would behave
as 'unset'. This patch fixes ensureRollbackCascadeForRevertLayer() to
not return nullptr and instead return ensureRollbackCascadeForRevert()
in that case. This imples that 'revert-layer' will behave like 'revert'
and roll back to user (or UA) styles.
Test: imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-noop.html
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::ensureRollbackCascadeForRevertLayer):
Mar 4, 2022:
- 11:22 PM Changeset in webkit [290863] by
-
- 3 edits in trunk/Source/WebKit
Stop setting NSURLIsExcludedFromBackupKey attribute for localSorageDirectory in UI process
https://bugs.webkit.org/show_bug.cgi?id=237447
Reviewed by Chris Dumez.
Let's do that on storage thread in network process when the directory is used.
Covered by existing test: WKWebView.LocalStorageDirectoryExcludedFromBackup.
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- 10:48 PM Clangd edited by
- (diff)
- 10:02 PM Changeset in webkit [290862] by
-
- 4 edits in trunk
Add null check for path in makeAllDirectories
https://bugs.webkit.org/show_bug.cgi?id=237477
Reviewed by Darin Adler.
Source/WTF:
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::makeAllDirectories):
Tools:
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 9:39 PM Changeset in webkit [290861] by
-
- 3 edits in trunk/Source/WebCore
Optimize the padding in StyleRareInheritedData
https://bugs.webkit.org/show_bug.cgi?id=237488
Reviewed by Cameron McCormack.
Shrink StyleRareInheritedData from 280 bytes to 264 bytes on macOS.
Also fix a missing comparison of wordSpacing in operator==.
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
- rendering/style/StyleRareInheritedData.h:
- 6:38 PM Changeset in webkit [290860] by
-
- 2 edits in trunk/Source/WebCore
AX: Protect incoming object with Ref in AXObjectCache::textChanged
https://bugs.webkit.org/show_bug.cgi?id=237475
Reviewed by Chris Fleizach.
This is better practice as ascending the hierarchy could cause
the object to get deleted.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::textChanged):
- 6:21 PM Changeset in webkit [290859] by
-
- 3 edits in trunk/Source/WebKit
Change app launch scheme
https://bugs.webkit.org/show_bug.cgi?id=237480
rdar://89781553
Patch by Harrison Weinerman <hweinerman@apple.com> on 2022-03-04
Reviewed by Brady Eidson.
We need to change the app launch scheme and remove an entitlement that is no longer required.
- Scripts/process-entitlements.sh:
- webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::notifyClientPushMessageIsAvailable):
- 6:03 PM Changeset in webkit [290858] by
-
- 9 edits3 adds in trunk
AX: [WebAccessibilityObjectWrapperMac AXAttributeStringSetFont] crashes when given a font with a nil postscript name, font family, or display name
https://bugs.webkit.org/show_bug.cgi?id=237373
Reviewed by Chris Fleizach and Andres Gonzalez.
Source/WebCore:
[WebAccessibilityObjectWrapperMac AXAttributeStringSetFont] crashes when given a font with a
nil postscript name, font family, or display name. This can be
triggered with a custom SVG @font-face -- for example:
@font-face {
font-family: 'Litherum';
src: url("resources/Litherum.svg") format(svg);
}
- { font-family: 'Litherum'; }
We fix this by checking if these values are nil before trying to add
them to a dictionary.
This patch also centralizes application of fonts to attributed strings
by moving AXAttributeStringSetFont to the base wrapper. In doing so,
we fix a bug where if [WebAccessibilityObjectWrapperBase AXAttributeStringSetStyle] was
called from a Mac-context, it set iOS font properties (e.g.
UIAccessibilityTokenFontFamily instead of NSAccessibilityFontFamilyKey).
Test: accessibility/svg-font-face.html
- accessibility/mac/WebAccessibilityObjectWrapperBase.h:
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(AXAttributedStringRangeIsValid): Added.
(AXAttributedStringSetFont): Added.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetStyle):
(AXAttributedStringAppendText):
(AXAttributedStringRangeIsValid):
Moved to base wrapper.
(AXAttributeStringSetFont):
Moved to base wrapper.
LayoutTests:
- accessibility/resources/Litherum.svg: Added.
- accessibility/svg-font-face-expected.txt: Added.
- accessibility/svg-font-face.html: Added.
- platform/glib/TestExpectations: Skip new test.
- platform/ios/TestExpectations: Enable new test.
- platform/win/TestExpectations: Skip new test.
- platform/mac/accessibility/element-line-rects-and-text-expected.txt:
Before this patch, [WebAccessibilityObjectWrapperBase AXAttributeStringSetStyle] called the iOS
version of AXAttributeStringSetFont. This patch fixes this. The expectation for this test is updated as a result.
- 5:44 PM Changeset in webkit [290857] by
-
- 18 edits2 deletes in branches/safari-613-branch/Source/bmalloc
Apply patch. rdar://problem/89071706
- 5:06 PM Changeset in webkit [290856] by
-
- 16 edits in trunk/Source
REGRESSION (r284472): [ Monterey ] http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is failing
https://bugs.webkit.org/show_bug.cgi?id=237280
Reviewed by Devin Rousso.
Source/WebCore:
Covered by existing http/tests/websocket/tests/hybi/inspector/* test cases.
On macOS Monterey we use NSURLSession-based WebSockets by default, unlike earlier versions of macOS. The channel
for these sockets is implemented inWebKit::WebSocketChannel. The non-NSURLSession WebSockets channel (at
least on Cocoa platforms) is implemented inWebCore::WebSocketChannel.
As of r284472 the logic to delay the dispatch of received WebSocket message on platforms using
NSURLSession-based WebSockets is handled byWebCore::WebSocket, not theWebKit::WebSocketChannel.
WebKit::WebSocketChannelnow immediately does the work it needs to, and only the delegated work toWebSocket
is queued and taken care of when the socket has resumed. This resulted in some of the instrumentation in
WebKit::WebSocketChannelbeing able to be called while the socket was suspended leading to events being logged
in the frontend "in the future" (e.g. before the paused script would have been able to be aware of them). To
correct this theWebKit::WebSocketChannelnow provides a hook into its helperWebSocketChannelInspector
object to allow theWebCore::WebSocketto notify Web Inspector of events at the same time it is being
logically handled by the page.
Other
ThreadableWebSocketChannelimplementations will instead providenullptrin place of a pointer to a
WebInspectorChannelInspector.WebCore::WebSocketChannelwas not affected by the changes in r284472 as it has
a different way to guarantee that the methods containing InspectorInstrumentation were not called while the
channel was suspended (and enforced with numerousASSERT(!m_suspended)checks).
- Modules/websockets/ThreadableWebSocketChannel.h:
(WebCore::ThreadableWebSocketChannel::channelInspector const):
- Modules/websockets/WebSocketChannelClient.h:
- Add
reasonfor error messages so they can be sent to Web Inspector.
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveMessage):
(WebCore::WebSocket::didReceiveBinaryData):
(WebCore::WebSocket::didReceiveMessageError):
(WebCore::WebSocket::didClose):
- Modules/websockets/WebSocket.h:
- Move inspector instrumentation calls from
WebKit::WebSocketChannelto here so that they are not called until
the socket is resumed.
- We also now wrap these instrumentation calls in an unlikely check for frontends to avoid allocating the
simulated call frames when Web Inspector isn't even open.
- Modules/websockets/WebSocketChannelInspector.cpp:
(WebCore::WebSocketChannelInspector::WebSocketChannelInspector):
(WebCore::WebSocketChannelInspector::didCreateWebSocket const):
(WebCore::WebSocketChannelInspector::willSendWebSocketHandshakeRequest const):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketHandshakeResponse const):
(WebCore::WebSocketChannelInspector::didCloseWebSocket const):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrame const):
(WebCore::WebSocketChannelInspector::didSendWebSocketFrame const):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrameError const):
(WebCore::WebSocketChannelInspector::createFrame):
(WebCore::WebSocketChannelInspector::didCreateWebSocket): Deleted.
(WebCore::WebSocketChannelInspector::willSendWebSocketHandshakeRequest): Deleted.
(WebCore::WebSocketChannelInspector::didReceiveWebSocketHandshakeResponse): Deleted.
(WebCore::WebSocketChannelInspector::didCloseWebSocket): Deleted.
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrame): Deleted.
(WebCore::WebSocketChannelInspector::didSendWebSocketFrame): Deleted.
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrameError): Deleted.
- Modules/websockets/WebSocketChannelInspector.h:
- Update to keep a WeakRef to the
Documentto reduce the amount of plumbing necessary to call these methods
from
WebSocket.
- Move static utility method
createFramehere fromWebKit::WebSocketChannelsince it is only used for
inspector instrumentation.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::didFailSocketStream):
- Modules/websockets/WebSocketChannel.h:
- Update these classes to pass along a reason, if available, for errors.
Source/WebKit:
Move inspector instrumentation for things that should be delayed until the websocket has resumed (in general,
these are instrumentation points for receiving messages) into WebCore::WebSocket so that they are sent at the
expected time in the frontend, not "in the future" when script execution is suspended (e.g. while debugging).
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::notifySendFrame):
(WebKit::WebSocketChannel::connect):
(WebKit::WebSocketChannel::close):
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::disconnect):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveBinaryData):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::didReceiveMessageError):
(WebKit::WebSocketChannel::didSendHandshakeRequest):
(WebKit::WebSocketChannel::didReceiveHandshakeResponse):
(WebKit::createWebSocketFrameForWebInspector): Deleted.
- WebProcess/Network/WebSocketChannel.h:
- 5:01 PM Changeset in webkit [290855] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector: [Cocoa] Continually opening and closing Web Inspector sometimes crashes
https://bugs.webkit.org/show_bug.cgi?id=237484
Reviewed by Darin Adler.
We need to handle operations on the main queue because
webView:stopURLSchemeTask:will be called from the main
queue, and we must not be in middle the operation when we get the request to stop said operation, otherwise we
may attempt to call[urlSchemeTask did*], which is not permitted after we have been asked to stop that task.
If we add the operation for theWKURLSchemeTaskto a different queue it is possible we will have already
started the operation on a background queue while at the same time are receiving a request to stop that same
WKURLSchemeTask.
- UIProcess/Inspector/mac/WKInspectorResourceURLSchemeHandler.mm:
(-[WKInspectorResourceURLSchemeHandler webView:startURLSchemeTask:]):
(-[WKInspectorResourceURLSchemeHandler webView:stopURLSchemeTask:]):
- 4:48 PM Changeset in webkit [290854] by
-
- 5 edits in trunk/Source/WebCore
Modernize OriginLock
https://bugs.webkit.org/show_bug.cgi?id=237485
Reviewed by Darin Adler.
OriginLock subclasses ThreadSafeRefCounted. As a result, it should have a create()
factory function instead of an error-prone public constructor. Its functions should
also take String parameters by const reference instead of by value.
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::originLockFor):
- Modules/webdatabase/DatabaseTracker.h:
- Modules/webdatabase/OriginLock.cpp:
(WebCore::lockFileNameForPath):
(WebCore::OriginLock::OriginLock):
(WebCore::OriginLock::deleteLockFile):
(WebCore::OriginLock::lockFileNameForPath): Deleted.
- Modules/webdatabase/OriginLock.h:
(WebCore::OriginLock::create):
- 3:45 PM Changeset in webkit [290853] by
-
- 6 edits2 adds in trunk
about:blank iframes do not always inherit parent CSP
https://bugs.webkit.org/show_bug.cgi?id=236347
<rdar://problem/88669147>
Reviewed by Brent Fulgham.
Source/WebCore:
Test: http/tests/security/contentSecurityPolicy/block-eval-onload-in-nested-about-blank-iframe.html
Usually we initialize CSP for window when we create a jsWindowProxy
for that frame. In this case, we load an about:blank iframe that
attempts to run eval() in the onload function of its own nested
iframe. Since we never run script in frame, we don't initialize a
jsWindowProxy and thus never propogate its CSP.
This fix checks the document's CSP in FrameLoader::clear when we
initialize a new JSGlobalObject and sets the eval value in the window
accordingly to properly enforce CSP.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::enableEval):
- bindings/js/ScriptController.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
- page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::evalErrorMessage const):
LayoutTests:
- http/tests/security/contentSecurityPolicy/block-eval-onload-in-nested-about-blank-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/block-eval-onload-in-nested-about-blank-iframe.html: Added
We can't use modern js-test.js and related functions because
js-test.js uses eval() and loading it makes the test time out when the
eval is blocked by the document's CSP. We can't specify unsafe-eval
because the whole point of this test is to block eval.
- 3:31 PM Changeset in webkit [290852] by
-
- 2 edits in trunk/LayoutTests
Update WPT css-scroll-snap tests
https://bugs.webkit.org/show_bug.cgi?id=237358
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:30 PM Changeset in webkit [290851] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.2.2
- 3:08 PM Changeset in webkit [290850] by
-
- 11 edits in trunk
[iOS] Books ASSERTs upon opening a book with a debug build of WebKit
https://bugs.webkit.org/show_bug.cgi?id=237445
<rdar://problem/89776531>
Reviewed by Alex Christensen.
Source/WebCore:
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):
Source/WebKit:
- NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::add):
- UIProcess/API/APIContentRuleListStore.cpp:
(API::openAndMapContentRuleList):
(API::compiledToFile):
Source/WTF:
makeSafeToUseMemoryMapForPath() runs an ASSERT() that it was successful.
However, it's not always successful, so this ASSERT() was getting hit when
trying to open a book in Books. So, this patch makes the function return a
bool to indicate success, and updates callers to do something sensible if
it failed.
Test: FileSystemTest.makeSafeToUseMemoryMapForPath
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
(WTF::FileSystemImpl::mapToFile):
- wtf/FileSystem.h:
- wtf/cocoa/FileSystemCocoa.mm:
(WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
Tools:
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 2:57 PM Changeset in webkit [290849] by
-
- 21 edits2 adds in trunk
Home link on weather.gov is not working
https://bugs.webkit.org/show_bug.cgi?id=237451
<rdar://60409277>
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
- web-platform-tests/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/tentative/anchor-fragment-history-back-on-click-expected.txt: Added.
- web-platform-tests/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/tentative/anchor-fragment-history-back-on-click.html: Added.
Add layout test coverage (already upstreamed to WPT).
- web-platform-tests/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/tentative/cross-document-traversal-same-document-nav-expected.txt:
- web-platform-tests/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/tentative/same-document-traversal-same-document-nav-expected.txt:
Rebaseline a couple of WPT tests that are now failing. I have verified that these tests are fully failing (and in the same way) in Blink.
In Gecko, only the second subtest in each of these tests is failing.
Source/WebCore:
According to the HTML specification [1], when history.back() is called, we are supposed to
resolve the history entry based on the delta (-1), then we're supposed to queue a task to
traverse the history to that particular entry.
However, WebKit was merely scheduling a task to navigate the history with a delta of -1.
We only resolve the target history entry once the scheduled task runs asynchronously.
As a result, we could end up navigating to a different history entry than we'd expect if
the history list changes between the call to history.back() and the actual execution of
the task to traverse the history list. In particular, fragment navigations can cause
synchronous navigations and thus add new history entries.
On weather.gov, the "HOME" anchor looks like so:
<a href="#" onclick="history.back();">HOME</a>
Per the DOM specification, when clicking the anchor, we'd first call
history.back()and
then run the anchor activation behavior that would do a fragment navigation to "#".
Thehistory.back()call would schedule to task to navigate back, then we'd navigate to
"#" synchronously, which would add a new history entry. Once the task to navigate back
would run asynchronously, we would navigate back to the same page (but without the fragment)
instead of going back to the home page.
[1] https://html.spec.whatwg.org/multipage/history.html#traverse-the-history-by-a-delta
Test: imported/w3c/web-platform-tests/html/browsers/browsing-the-web/overlapping-navigations-and-traversals/tentative/anchor-fragment-history-back-on-click.html
- history/BackForwardClient.h:
- history/BackForwardController.cpp:
(WebCore::BackForwardController::containsItem const):
- history/BackForwardController.h:
- loader/EmptyClients.cpp:
- loader/NavigationScheduler.cpp:
(WebCore::ScheduledHistoryNavigation::ScheduledHistoryNavigation):
(WebCore::NavigationScheduler::scheduleHistoryNavigation):
Source/WebKit:
- WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::removeItem):
(WebKit::WebBackForwardListProxy::containsItem const):
- WebProcess/WebPage/WebBackForwardListProxy.h:
Source/WebKitLegacy/mac:
- History/BackForwardList.h:
- History/BackForwardList.mm:
(BackForwardList::containsItem const):
(BackForwardList::containsItem): Deleted.
Source/WebKitLegacy/win:
- BackForwardList.cpp:
(BackForwardList::containsItem):
- BackForwardList.h:
- WebBackForwardList.cpp:
(WebBackForwardList::containsItem):
LayoutTests:
Skip WPT tests that is timing out. I have verified that this WPT test is timing out in Blink as well.
- 2:43 PM Changeset in webkit [290848] by
-
- 3 edits in trunk/Source/WebCore
Use an OptionSet<> for GraphicsContextCGFlags
https://bugs.webkit.org/show_bug.cgi?id=237482
Reviewed by Wenson Hsieh.
Mechanical change to use an OptionSet<> for GraphicsContextCG::m_contextFlags.
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::setIsCALayerContext):
(WebCore::GraphicsContextCG::isCALayerContext const):
(WebCore::GraphicsContextCG::setIsAcceleratedContext):
(WebCore::GraphicsContextCG::renderingMode const):
- platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(): Deleted.
- 2:12 PM Changeset in webkit [290847] by
-
- 2 edits in trunk/Source/WebKit
Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
https://bugs.webkit.org/show_bug.cgi?id=237478
<rdar://89072235>
Reviewed by Alan Bujtas.
Crash data show that r290109 failed to fix this crash; the actual cause of the crash is a
null m_page on TiledCoreAnimationScrollingCoordinator, diagnosed by noting that the crash
offset corresponds to the offset of m_renderingUpdateRemainingSteps in Page.
- WebProcess/WebPage/mac/TiledCoreAnimationScrollingCoordinator.mm:
(WebKit::TiledCoreAnimationScrollingCoordinator::hasNodeWithAnimatedScrollChanged):
- 2:10 PM Changeset in webkit [290846] by
-
- 4 edits in trunk
URL's isolatedCopy() optimization when called on a r-value reference doesn't work
https://bugs.webkit.org/show_bug.cgi?id=237481
Reviewed by Geoffrey Garen.
Source/WTF:
URL has an isolatedCopy() implementation that attempts to optimize the case where
it is called on a r-value reference. The idea is to rely on the String's
isolatedCopy() implementation which is optimized when called on a r-value reference.
Note that there are some specific conditions under which the String implementation
is able to avoid the copy (see String::isSafeToSendToAnotherThread()).
Namely, the StringImpl's refcount needs to be 1 and it cannot be backed by an
AtomStringImpl.
The issue was that URL::isolatedCopy() would first copy the URL, which would copy
its m_string and thus bump its refcount. As a result, m_string's refcount could
never be 1 and the optimization could never kick in.
- wtf/URL.cpp:
(WTF::URL::isolatedCopy):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WTF/URL.cpp:
(TestWebKitAPI::TEST_F):
- 2:08 PM Changeset in webkit [290845] by
-
- 6 edits3 adds in trunk/Source/WebCore
Support constants in IDL namespaces.
https://bugs.webkit.org/show_bug.cgi?id=232557
<radr://problem/85142162>
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-04
Reviewed by Sam Weinig.
Test: bindings/script/test/TestNamespaceConst.idl
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateConstructorHelperMethods):
If namespace contains only constants, globalObject is unused
produces a compile error. Add UNUSED_PARAM to quiet error.
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/IDLParser.pm:
(convertNamespaceToInterface): Copy namespace constants to new interface.
(applyTypedefs): Apply typedefs to namespace constants.
(parseNamespace): Added parsed constants to namespace's list of constants.
(parseNamespaceMember): Accept constants as namespace members.
- bindings/scripts/test/BindingTestGlobalConstructors.idl:
- bindings/scripts/test/JS/*: Updated.
- bindings/scripts/test/SupplementalDependencies.dep:
- bindings/scripts/test/TestNamespaceConst.idl: Added.
- 1:58 PM Changeset in webkit [290844] by
-
- 1 copy in tags/Safari-614.1.5.7
Tag Safari-614.1.5.7.
- 1:44 PM Changeset in webkit [290843] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.7
- 1:00 PM Changeset in webkit [290842] by
-
- 1 copy in tags/Safari-613.2.1
Tag Safari-613.2.1.
- 12:35 PM Changeset in webkit [290841] by
-
- 8 edits2 adds in trunk
Load event never firing after form is submitted
https://bugs.webkit.org/show_bug.cgi?id=235407
<rdar://problem/87831049>
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are no longer timing out.
- web-platform-tests/html/semantics/forms/form-submission-target/rel-base-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-button-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-form-target-expected.txt:
- web-platform-tests/html/semantics/forms/form-submission-target/rel-input-target-expected.txt:
Source/WebCore:
In Document::implicitClose(), we early return (and thus don't fire the load
event) if there is a location change pending. To determine if there is a
location change pending, we rely on NavigationScheduler::locationChangePending()
which checks if there is a schedule navigation or not. This usually works fine.
However, when a form gets submitted with a target that is "_blank",
FrameLoader::submitForm() is not able to find the target frame (since we'll need
to create one) and it ends up using the current frame's scheduler. The idea is
that once the navigation actually triggers, FrameLoader::loadFrameRequest() will
check the target and create the new Frame.
The issue is that as a result of this, NavigationScheduler::locationChangePending()
returns true for the submitter's frame while such form submission is scheduled,
even though the navigation will actually happen in another (new) frame. To address
the issue, I updated NavigationScheduler::locationChangePending() to check that
the pending navigation is actually for the current frame.
Test: http/tests/loading/form-submission-no-load-event.html
- loader/NavigationScheduler.cpp:
(WebCore::ScheduledNavigation::targetIsCurrentFrame const):
(WebCore::NavigationScheduler::locationChangePending):
(WebCore::ScheduledFormSubmission::ScheduledFormSubmission): Deleted.
LayoutTests:
Add layout test coverage (Based on reduction from Sam Sneddon).
- http/tests/loading/form-submission-no-load-event-expected.txt: Added.
- http/tests/loading/form-submission-no-load-event.html: Added.
- 12:33 PM Changeset in webkit [290840] by
-
- 2 edits in trunk/Source/WebKit
[WebAuthn] Don't use decidePolicyForLocalAuthenticator for Web Authentication Modern
https://bugs.webkit.org/show_bug.cgi?id=225646
rdar://78147681
Reviewed by Brent Fulgham.
decidePolicyForLocalAuthenticator is not implemented for the _WKWebAuthenticationPanelDelegate
used for modern because the prompt to allow Touch/FaceID comes earlier in the process.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
- 11:40 AM Changeset in webkit [290839] by
-
- 5 edits in trunk
[GPU Process] Canvas compositing buffer should be created through its GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=237260
rdar://89196918
Reviewed by Simon Fraser.
Source/WebCore:
If the backend of the underlying ImageBuffer of the canvas is remote the
compositing ImageBuffer will also be remote. This will transfer the whole
compositing operation to GPUProcess.
The layout test fast/canvas/canvas-composite-canvas.html crashes because
of this bug on the GPUP layout bots.
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):
(WebCore::CanvasRenderingContext2DBase::createCompositingBuffer): Deleted.
- html/canvas/CanvasRenderingContext2DBase.h:
LayoutTests:
- gpu-process/TestExpectations:
- 11:15 AM Changeset in webkit [290838] by
-
- 6 edits in trunk/Source/WebCore
"OffscreenCanvas" in IDLs doesn't seem to be able to be compiled
https://bugs.webkit.org/show_bug.cgi?id=232733
<rdar://problem/85318653>
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-04
Reviewed by Sam Weinig.
OffscreenCanvas is controlled by ENABLE flags. Add conditional
compilation to handle OffscreenCanvas to the WebGPU IDL bindings
when the OffscreenCanvas feature is enabled.
- Modules/WebGPU/GPUCanvasContext.cpp:
(WebCore::GPUCanvasContext::canvas):
- Modules/WebGPU/GPUCanvasContext.h:
- Modules/WebGPU/GPUCanvasContext.idl:
Add OffscreenCanvas to canvas attribute when it is enabled.
- Modules/WebGPU/GPUImageCopyExternalImage.h:
- Modules/WebGPU/GPUImageCopyExternalImage.idl:
Add OffscreenCanvas to source attribute when it is enabled.
- 10:46 AM Changeset in webkit [290837] by
-
- 5 edits in trunk/Source/WebCore
[Cocoa] Crash in MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL
https://bugs.webkit.org/show_bug.cgi?id=237456
rdar://80407863
Reviewed by Jer Noble.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::enableInheritURIQueryComponent const): Create
and use a static, never destroyed, AtomString instead of creating one every time
a AVURLAsset is created. New method used by both AVF media players.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createAVAssetForURL): Call enableInheritURIQueryComponent.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Ditto.
- 10:03 AM Changeset in webkit [290836] by
-
- 5 edits in trunk/Source/WebCore
IDB serialization thread should pass isolated copy of IndexIDToIndexKeyMap to storage thread
https://bugs.webkit.org/show_bug.cgi?id=237455
Reviewed by Chris Dumez.
- Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::addRecord):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::generateIndexKeyMapForValueIsolatedCopy):
(WebCore::generateIndexKeyMapForValue): Deleted.
- bindings/js/IDBBindingUtilities.h:
- 9:44 AM Changeset in webkit [290835] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Hard link AVPictureInPictureController
https://bugs.webkit.org/show_bug.cgi?id=237227
Reviewed by Brent Fulgham.
Hard linking instead of soft linking should be a small performance improvement.
- Configurations/WebKit.xcconfig:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- 9:16 AM Changeset in webkit [290834] by
-
- 5 edits in trunk
[iOS] Unable to scroll to a found text range when there is an existing selection
https://bugs.webkit.org/show_bug.cgi?id=237407
rdar://89653213
Reviewed by Wenson Hsieh.
Source/WebCore:
Scrolling to a found text range is performed by creating a
TemporarySelectionChangeand using theRevealSelectionBounds
TemporarySelectionOption. When aTemporarySelectionChangeis
destroyed, the original selection is restored.
Currently, the selection is restored using the same set of selection
options used to make the temporary selection. Consequently, whenever a
"reveal" option is specified, WebKit scrolls to reveal the temporary
selection, and then scrolls again to reveal the original selection.
This behavior means that an attempt to scroll to a found text range
will fail if the document has an existing selection.
To fix, do not add any of the "reveal" options to the set of selection
options when restoring the original selection during a
TemporarySelectionChange. The only other features that use
TemporarySelectionChangewith "reveal" options are App Highlights
and Scroll To Text Fragment. Neither of these features require WebKit
to scroll to the original selection.
- editing/Editor.cpp:
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::TemporarySelectionChange::~TemporarySelectionChange):
(WebCore::TemporarySelectionChange::setSelection):
- editing/Editor.h:
Tools:
Add an API test that sets a selection in the document, finds some
text outside the viewport, and scrolls to make the found text
visible.
- TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
(-[TestScrollViewDelegate init]):
(-[TestScrollViewDelegate scrollViewDidEndScrollingAnimation:]):
(TEST):
- 8:51 AM Changeset in webkit [290833] by
-
- 3 edits in trunk/Source/WebCore
AX ITM: Updating m_pendingLoadingProgress can cause deadlock on AXIsolatedTree::m_changeLogLock
https://bugs.webkit.org/show_bug.cgi?id=237402
Reviewed by Chris Fleizach.
AXIsolatedTree::m_pendingLoadingProgress is currently guarded by
AXIsolatedTree::m_changeLogLock. Because loading can happen at any time,
deadlocks can happen in this sequence:
- AXIsolatedTree::updateLoadingProgress is called on the main thread while the secondary thread holds the lock
- The secondary thread is holding the lock to service an AX request, and said AX request does something to call into the main thread (e.g. AXLOGs an isolated object, which causes a dispatch to the main thread as part of AXIsolatedObject::outerHTML).
- Deadlock
This patch fixes this by making m_loadingProgress threadsafe
via std::atomic<double> and removing m_pendingLoadingProgress.
This patch also removes an unnecessary acquisition of m_changeLogLock
in AXIsolatedTree::focusedNode(). This function is only called on the
secondary-thread, and only accesses secondary-thread safe functions
and member variables (nodeForID, m_focusedNodeID), so we don't need the lock.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::focusedNode):
Removed unnecessary m_changeLogLock acquisition.
(WebCore::AXIsolatedTree::updateLoadingProgress):
Update m_loadingProgress directly instead of the now deleted intermediary
m_pendingLoadingProgress.
(WebCore::AXIsolatedTree::applyPendingChanges):
- accessibility/isolatedtree/AXIsolatedTree.h:
Remove m_pendingLoadingProgress.
- 7:49 AM Changeset in webkit [290832] by
-
- 2 edits in trunk/Source/WebCore
Top layers should not be moved
https://bugs.webkit.org/show_bug.cgi?id=237305
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-04
Reviewed by Tim Nguyen.
Top layers are always children of RenderView and should not be moved.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::moveLayers):
- 7:42 AM Changeset in webkit [290831] by
-
- 4 edits in trunk
[web-animations] "inherit" values should trigger keyframe recomputation if any previous effect has changed that property
https://bugs.webkit.org/show_bug.cgi?id=237471
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/responsive/textIndent-expected.txt:
Source/WebCore:
When we fixed 237371 we only looked at the unanimated style, but we should account for any previous keyframe effect
modifying a property set to "inherit" for the current effect.
- animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::applyKeyframeEffects):
- 7:11 AM Changeset in webkit [290830] by
-
- 4 edits2 adds in trunk
CSP report does not get sent to the document in the case of a detached element
https://bugs.webkit.org/show_bug.cgi?id=237440
<rdar://problem/89081463>
Reviewed by Chris Dumez.
Source/WebCore:
Test: http/tests/security/contentSecurityPolicy/report-violation-to-document-after-element-has-been-detached.html
Only send a violation report to the element if it is connected. Check
right before dispatching in case the element gets detached after the
security policy violation has been created. If the element is not
connected in this case, we send the report to the document.
- dom/Element.cpp:
(WebCore::Element::enqueueSecurityPolicyViolationEvent):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation const):
Also sets the composed value on the violation event as per the spec.
LayoutTests:
- http/tests/security/contentSecurityPolicy/report-violation-to-document-after-element-has-been-detached-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/report-violation-to-document-after-element-has-been-detached.html: Added.
- 5:22 AM Changeset in webkit [290829] by
-
- 3 edits in trunk/Source/WebKit
LibWebRTCCodecs::setEncodeRates should send LibWebRTCCodecsProxy::SetEncodeRates only when the encoder is live
https://bugs.webkit.org/show_bug.cgi?id=237421
Reviewed by Darin Adler.
We were previously not asserting in LibWebRTCCodecsProxy::setEncodeRates and we were missing some encode rate orders.
This is due to the fact that when creating an encoder, we are hopping to main thread, then to work queue to send the message to create an encoder.
In LibWebRTCCodecs::setEncodeRates, we were hopping to main thread if needed.
If the encoder connection is null, we are now hopping to main thread, then to work queue as done when creating an encoder.
Since there is a time where LibWebRTCCodecsProxy::setEncodeRates might have sent encode rates, we bail out early to not set based on old bitrates.
Covered by existing tests not crashing in LibWebRTCCodecsProxy::setEncodeRates.
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::setEncodeRates):
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
- 5:16 AM Changeset in webkit [290828] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Improve reuse of known register values on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=237424
Reviewed by Žan Doberšek.
Reduce the generated code size by introducing and pervasively using
setupArmAddress(AbsoluteAddress address, ...). This effectively
replaces sequences of e.g.
with
when a close enough address is already available in r6.
While here, change short_move to only emit an add/sub if this results in an
actual reduction in code size. When the add/sub would be neutral,
prefer loading an immediate as that doesn't introduce a data dependency
between the instructions.
This results in a measurable but small (< 1%) reduction in the
generated code size on JS2.
Hat tip to Geza Lore for the suggestions.
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::add32):
(JSC::MacroAssemblerARMv7::add64):
(JSC::MacroAssemblerARMv7::or8):
(JSC::MacroAssemblerARMv7::or16):
(JSC::MacroAssemblerARMv7::or32):
(JSC::MacroAssemblerARMv7::sub32):
(JSC::MacroAssemblerARMv7::load32):
(JSC::MacroAssemblerARMv7::load8):
(JSC::MacroAssemblerARMv7::load16):
(JSC::MacroAssemblerARMv7::store32):
(JSC::MacroAssemblerARMv7::store8):
(JSC::MacroAssemblerARMv7::store16):
(JSC::MacroAssemblerARMv7::storePair32):
(JSC::MacroAssemblerARMv7::short_move):
(JSC::MacroAssemblerARMv7::add32Impl):
(JSC::MacroAssemblerARMv7::branch8):
(JSC::MacroAssemblerARMv7::branchTest32):
(JSC::MacroAssemblerARMv7::branchTest8):
(JSC::MacroAssemblerARMv7::branchTest16):
(JSC::MacroAssemblerARMv7::farJump):
(JSC::MacroAssemblerARMv7::absoluteAddressWithinShortOffset):
(JSC::MacroAssemblerARMv7::setupArmAddress):
- 4:01 AM Changeset in webkit [290827] by
-
- 2 edits in trunk/Source/WebCore
Iteration to search for least active WebGLRenderingContextBase could use min_element
https://bugs.webkit.org/show_bug.cgi?id=237464
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-04
Reviewed by Antti Koivisto.
Apply review comments after landing bug 222411 r290816.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::addActiveContext):
- 3:55 AM Changeset in webkit [290826] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Upgrade from llvm12 to llvm13
https://bugs.webkit.org/show_bug.cgi?id=237430
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-04
Reviewed by Adrian Perez de Castro.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak._get_dependency_packages):
- 3:37 AM Changeset in webkit [290825] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Documentation for webkit_web_context_set_spell_checking_languages() is incomplete
https://bugs.webkit.org/show_bug.cgi?id=237465
Reviewed by Carlos Garcia Campos.
- UIProcess/API/glib/WebKitWebContext.cpp: Improve documentation.
- 1:15 AM Changeset in webkit [290824] by
-
- 16 edits in trunk/Source/WebKit
Introduce routines to exchange SharedVideoFrame::Buffer directly
https://bugs.webkit.org/show_bug.cgi?id=237267
Reviewed by Eric Carlson.
Define explictly SharedVideoFrame::Buffer as Variant of the various buffer representations.
This allows to move more code in SharedVideoFrame for instance by adding direct support of sending webrtc::VideoFrame buffers in SharedVideoFrame.
Reuse that code in LibWebRTCCodecs as a refactoring/simplification.
Reuse that code in RemoteVideoFrameObjectHeap which allows to exchange IOSurfaces in case WebProcess can use them.
This is used when encoding such frames using software encoders.
Covered by existing tests.
- GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
- GPUProcess/media/RemoteVideoFrameObjectHeap.h:
- GPUProcess/media/RemoteVideoFrameObjectHeap.messages.in:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
- WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxy.h:
- WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
- WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.h:
- WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.messages.in:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.h:
- 12:53 AM Changeset in webkit [290823] by
-
- 8 edits in trunk
[web-animations] keyframe values set to "inherit" should recompute their values when the inherited value changes
https://bugs.webkit.org/show_bug.cgi?id=237371
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/responsive/lineHeight-expected.txt:
- web-platform-tests/web-animations/responsive/opacity-expected.txt:
- web-platform-tests/web-animations/responsive/textIndent-expected.txt:
Source/WebCore:
We now keep track of properties set to "inherit" in keyframes such that we may determine when the
computed value may have changed when resolving animations.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::processKeyframes):
- animation/KeyframeEffect.h:
(WebCore::KeyframeEffect::inheritedProperties const):
- animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::applyKeyframeEffects):
- 12:42 AM Changeset in webkit [290822] by
-
- 3 edits in trunk/Source/WebCore
SQLiteDatabase::open should return early if journal mode cannot be set
https://bugs.webkit.org/show_bug.cgi?id=237130
<rdar://83130954>
Reviewed by Darin Adler.
Add early return in SQLiteDatabase::open if key operation fails; also make sure error is properly set and
database is closed in the case.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::useWALJournalMode):
(WebCore::SQLiteDatabase::close):
- platform/sql/SQLiteDatabase.h:
- 12:10 AM Changeset in webkit [290821] by
-
- 5 edits in trunk
webrtc/canvas-to-peer-connection.html is flakily failing a test assertion
https://bugs.webkit.org/show_bug.cgi?id=237423
Reviewed by Eric Carlson.
Source/WebCore:
Make sure the rotation session size is matching the buffer size.
Covered by updated test.
- platform/graphics/cocoa/GraphicsContextGLCocoa.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::paintCompositedResultsToMediaSample):
LayoutTests:
WebRTC pipeline is lossy so frames might disappear.
For that reason, we need to send multiple times the same frame to ensure we can read the expected frame.
To ensure we are not reading a previous test frame, what we do is changing the size of the canvas before doing the test.
This patch reduces the number of iterations to ensure the test is not too long to run.
- webrtc/canvas-to-peer-connection.html:
- 12:07 AM Changeset in webkit [290820] by
-
- 4 edits in trunk/Source/WebCore
AVVideoCaptureSource should reuse CaptureDevice label
https://bugs.webkit.org/show_bug.cgi?id=237363
<rdar://88301613>
Reviewed by Eric Carlson.
We are getting AV device name through AVCaptureDevice.localizedName, first in UIProcess, then in GPUProcess.
To make sure we always use the ones from UIProcess (which are the ones exposed through mediaDevices.enumerateDevices),
We make sure to use CaptureDevice.label when creating an AVVideoCaptureSource.
Manually tested.
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::create):
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
Mar 3, 2022:
- 11:55 PM Changeset in webkit [290819] by
-
- 4 edits in trunk/LayoutTests
fast/mediastream/getUserMedia-to-canvas-1.html and fast/mediastream/getUserMedia-to-canvas-2.html are failing on MacOS when remote video frame flag is enabled
https://bugs.webkit.org/show_bug.cgi?id=237042
<rdar://problem/89298601>
Reviewed by Eric Carlson.
Video element videoWidth/videoHeight are updated when track settings are changed,
and not when video frames being received.
This does not guarantee that videoWidth/videoHeight (main thread) are fully in sync
with the actual video frames (background thread) when there is a change of size.
We might be able to tighten this in MediaPlayerPrivateMediaStreamAVFObjC by only resorting on video frames.
In the meantime, we update the test to use requestVideoFrameCallback which provides accurate per frame metadata.
- fast/mediastream/getUserMedia-to-canvas-1.html:
- fast/mediastream/getUserMedia-to-canvas-2.html:
- webrtc/routines.js:
- 10:58 PM Changeset in webkit [290818] by
-
- 13 edits in trunk/Source/WebKit
Add a new "Daemon -> Client" message type to webpushd
https://bugs.webkit.org/show_bug.cgi?id=237391
Reviewed by Alex Christensen.
Future work will need more messages like this.
So let's add the mechanism in a small standalone patch that uses it for debug messages.
No behavior change for now.
- NetworkProcess/Notifications/Cocoa/WebPushDaemonConnectionCocoa.mm:
(WebKit::WebPushD::handleWebPushDaemonMessage):
(WebKit::WebPushD::Connection::connectionReceivedEvent):
(WebKit::WebPushD::Connection::connectionReceivedEvent const): Deleted.
- NetworkProcess/Notifications/WebPushDaemonConnection.cpp:
(WebKit::WebPushD::Connection::debugMessage):
- NetworkProcess/Notifications/WebPushDaemonConnection.h:
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementConnection.h:
- NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementConnectionCocoa.mm:
(WebKit::PCM::Connection::connectionReceivedEvent):
(WebKit::PCM::Connection::connectionReceivedEvent const): Deleted.
- Platform/IPC/DaemonConnection.h:
- Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::daemonMessageTypeSendsReply):
- webpushd/ICAppBundle.mm:
(WebPushD::broadcastDebugMessage):
- webpushd/PushClientConnection.h:
- webpushd/PushClientConnection.mm:
(WebPushD::ClientConnection::broadcastDebugMessage):
(WebPushD::ClientConnection::sendDebugMessage):
(WebPushD::ClientConnection::sendDaemonMessage const):
- webpushd/WebPushDaemon.h:
- webpushd/WebPushDaemon.mm:
(WebPushD::Daemon::broadcastDebugMessage):
(WebPushD::Daemon::broadcastAllConnectionIdentities):
(WebPushD::Daemon::connectionAdded):
- 10:38 PM Changeset in webkit [290817] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r290815): Fix even more incorrect #if ENABLE(SERVICE_WORKER) usage in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=237461
Unreviewed build fix.
- NetworkProcess/NetworkProcess.cpp:
The existence of NetworkProcess::{getPendingPushMessages, processPushMessages} depend on ENABLE(SERVICE_WORKER);
it is only when they exist that their implementation depends on ENABLE(BUILT_IN_NOTIFICATIONS).
- 10:02 PM Changeset in webkit [290816] by
-
- 14 edits2 deletes in trunk
WebGL context count is not limited for GPU process
https://bugs.webkit.org/show_bug.cgi?id=222411
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-03
Reviewed by Kenneth Russell.
Source/WebCore:
Move the context limit from the GraphicsContextGL implementation
level to WebGLRenderingContext level. This way the limit
is applied to the GPUP implementation too.
Recycle the context with the earliest activity (draw, readpixels)
instead of the creation order.
Stores the WebGL contexts to per-thread set and limits the size of the set.
The set is per-thread to support WebGL contexts in DOM as well as
offscreen canvas use-cases. Offscreen canvas is not implemented for Cocoa
but other ports may enable it.
Tested by:
LayoutTests/webgl/lose-context-after-context-lost.html
LayoutTests/webgl/many-contexts-access-after-loss.html
LayoutTests/webgl/many-contexts.html
LayoutTests/webgl/max-active-contexts-console-warning.html
LayoutTests/webgl/max-active-contexts-gc.html
LayoutTests/webgl/max-active-contexts-oldest-context-lost.html
LayoutTests/webgl/max-active-contexts-webglcontextlost-prevent-default.html
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::activeContexts):
(WebCore::addActiveContext):
(WebCore::removeActiveContext):
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::setGraphicsContextGL):
(WebCore::WebGLRenderingContextBase::destroyGraphicsContextGL):
(WebCore::WebGLRenderingContextBase::clearIfComposited):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::updateActiveOrdinal):
- html/canvas/WebGLRenderingContextBase.h:
(WebCore::WebGLRenderingContextBase::activeOrdinal const):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
- platform/graphics/cocoa/WebProcessGraphicsContextGLCocoa.mm:
(WebCore::createWebProcessGraphicsContextGL):
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::~GraphicsContextGLOpenGL):
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.cpp: Removed.
- platform/graphics/opengl/GraphicsContextGLOpenGLManager.h: Removed.
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::createWebProcessGraphicsContextGL):
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::~GraphicsContextGLANGLE):
LayoutTests:
- platform/ios-wk2/TestExpectations:
- 9:28 PM Changeset in webkit [290815] by
-
- 28 edits2 adds in trunk
Enforce silent push quota
https://bugs.webkit.org/show_bug.cgi?id=236863
Reviewed by Brady Eidson.
Source/WebCore:
All PushSubscriptions are created with the userVisibleOnly flag set. This means that all
push events should result in a user-facing notification.
To enforce this, we use a quota system. A push subscription can process up to three silent
pushes. After three silent pushes, we remove the push subscription. To continue to receive
pushes, the user must navigate back to the website and the site must request permission to
send pushes again.
Originally we were going to use a more complicated quota system that moved subscriptions
from waking to non-waking before finally unsubscribing, but this seemed like it could lead
to subscriptions being in a partially-working state that would be hard to explain and reason
about. As a result, I've removed the wakeState column from PushDatabase and replaced it
a silentPushCount column.
To track whether or not a service worker has shown a notification while processing a push
event, we use a boolean flag on ServiceWorkerGlobalScope. This should be sufficient because
we currently only process one push event at a time.
Covered by existing and new API tests.
- Modules/push-api/PushDatabase.cpp:
(WebCore::PushRecord::isolatedCopy const):
(WebCore::PushRecord::isolatedCopy):
(WebCore::PushDatabase::insertRecord):
(WebCore::makePushRecordFromRow):
(WebCore::PushDatabase::getRecordByTopic):
(WebCore::PushDatabase::getRecordByBundleIdentifierAndScope):
(WebCore::PushDatabase::getTopics):
(WebCore::PushDatabase::incrementSilentPushCount):
(WebCore::PushDatabase::removeRecordsByBundleIdentifierAndSecurityOrigin):
- Modules/push-api/PushDatabase.h:
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::showNotification):
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::queueTaskToFirePushEvent):
Source/WebKit:
- If a push event doesn't result in a notification or if the associated promise rejects, then we increment the silent push count associated with that origin.
- PushService now removes a subscription if the origin has reached its quota of silent pushes.
Covered by existing and new API tests.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::processPushMessage):
- NetworkProcess/Notifications/NetworkNotificationManager.cpp:
(WebKit::NetworkNotificationManager::incrementSilentPushCount):
(WebKit::ReplyCaller<int>::callReply):
- Shared/WebPushDaemonConstants.h:
(WebKit::WebPushD::messageTypeSendsReply):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _notificationManagerForTesting]):
- webpushd/PushService.mm:
(WebPushD::updateTopicLists):
(WebPushD::PushService::incrementSilentPushCount):
- webpushd/WebPushDaemon.mm:
(WebPushD::MessageInfo::incrementSilentPushCount::encodeReply):
(WebPushD::Daemon::decodeAndHandleMessage):
(WebPushD::Daemon::incrementSilentPushCount):
Tools:
Modified existing push tests to show a notification. Added a new test case to make sure that
subscriptions are removed when an origin reaches its quota of silent pushes.
- TestWebKitAPI/TestNotificationProvider.cpp:
(TestWebKitAPI::notificationPermissions):
(TestWebKitAPI::TestNotificationProvider::TestNotificationProvider):
(TestWebKitAPI::TestNotificationProvider::~TestNotificationProvider):
(TestWebKitAPI::TestNotificationProvider::notificationPermissions):
(TestWebKitAPI::TestNotificationProvider::setPermission):
- TestWebKitAPI/Tests/WebCore/PushDatabase.cpp:
(TestWebKitAPI::makeTemporaryDatabasePath):
(TestWebKitAPI::getTopicsSync):
(TestWebKitAPI::PushDatabaseTest::getTopics):
(TestWebKitAPI::PushDatabaseTest::removeRecordsByBundleIdentifierAndSecurityOrigin):
(TestWebKitAPI::PushDatabaseTest::incrementSilentPushCount):
(TestWebKitAPI::operator==):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::origin const):
LayoutTests:
Update PushEvent tests to check that notifications are displayed.
- http/wpt/push-api/pushEvent.any.js:
(promise_test.async const):
(promise_test.async if):
- http/wpt/push-api/pushEvent.any.serviceworker-expected.txt:
- 8:40 PM Changeset in webkit [290814] by
-
- 2 edits in trunk/Source/WebKit
Allow webpushd to launch browser in background
https://bugs.webkit.org/show_bug.cgi?id=237114
Reviewed by Brady Eidson.
Now that webpushd is sandboxed on Mac (r289566), the LaunchServices SPI call to launch
Safari is now failing, because LaunchServices goes down a different path when there is a
sandboxed caller. In particular, it fails to launch Safari because Safari doesn't register
for the webkit-app-launch scheme. Safari also doesn't want to list this scheme in its plist.
For now, to unblock our testing, we're giving ourselves an entitlement to restore the
pre-sandboxed behavior of being able to launch Safari even though it doesn't register for
the webkit-app-launch scheme. We are still in discussions with LaunchServices and Safari
about if there is a better and more restrictive way of granting ourselves this ability.
- Scripts/process-entitlements.sh:
- 8:08 PM Changeset in webkit [290813] by
-
- 35 edits5 adds in trunk/Source
[GPU Process] dont load Apple Pay button/logo PDFs in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=237177
Reviewed by Simon Fraser.
Source/WebCore:
- platform/graphics/SystemImage.h: Added.
(WebCore::SystemImage::draw const):
(WebCore::SystemImage::SystemImage):
Introduce a new extendable classSystemImagethat represents a collection of arguments
and methodology (that uses those arguments) to draw something from the system.
This patch introduces two concrete uses:
ApplePayButtonSystemImageuses PassKit SPI to draw an Apple Pay button.ApplePayLogoSystemImageloads a PDF file of the Apple Pay logo from inside PassKit.
This architecture was chosen so that
GraphicsContextdoesn't have to know about Apple Pay
specific things, instead only dealing with a very generic interface (whos subclasses know
more specifically what to do with the data they're given).
- Modules/applepay/ApplePayButtonSystemImage.h: Added.
(WebCore::ApplePayButtonSystemImage::create):
(WebCore::ApplePayButtonSystemImage::ApplePayButtonSystemImage):
(WebCore::ApplePayButtonSystemImage::encode const):
(WebCore::ApplePayButtonSystemImage::decode):
(isType):
- Modules/applepay/ApplePayButtonSystemImage.mm: Added.
(WebCore::toPKPaymentButtonType):
(WebCore::toPKPaymentButtonStyle):
(WebCore::ApplePayButtonSystemImage::draw const):
- css/CSSPrimitiveValueMappings.h:
- rendering/style/RenderStyle.h:
- rendering/style/RenderStyleConstants.cpp:
- rendering/style/RenderStyleConstants.h:
Drive-by: Move
ApplePayButtonStyleandApplePayButtonTypetoApplePayButtonSystemImage.h
so they can be used elsewhere (e.g. GPUProcess) without having to include everything else.
- Modules/applepay/ApplePayLogoSystemImage.h: Added.
(WebCore::ApplePayLogoSystemImage::create):
(WebCore::ApplePayLogoSystemImage::ApplePayLogoSystemImage):
(WebCore::ApplePayLogoSystemImage::encode const):
(WebCore::ApplePayLogoSystemImage::decode):
(isType):
- Modules/applepay/ApplePayLogoSystemImage.mm: Added.
(WebCore::passKitBundle):
(WebCore::loadPassKitPDFPage):
(WebCore::applePayLogoWhite):
(WebCore::applePayLogoBlack):
(WebCore::applePayLogoForStyle):
(WebCore::ApplePayLogoSystemImage::draw const):
Add a newApplePayLogoStyleso that the WebProcess isn't able to provide an arbitrary PDF
to load when rendering-webkit-named-image(apple-pay-logo-[white,black]).
- platform/cocoa/ThemeCocoa.mm:
(WebCore::ThemeCocoa::drawNamedImage const):
(WebCore::fitContextToBox): Deleted.
(WebCore::passKitBundle): Deleted.
(WebCore::loadPassKitPDFPage): Deleted.
(WebCore::applePayButtonLogoBlack): Deleted.
(WebCore::applePayButtonLogoWhite): Deleted.
(WebCore::drawApplePayButton): Deleted.
- rendering/RenderThemeCocoa.mm:
(WebCore::RenderThemeCocoa::paintApplePayButton):
(WebCore::toPKPaymentButtonStyle): Deleted.
(WebCore::toPKPaymentButtonType): Deleted.
Move the logic that draws the Apple Pay button to a method onGraphicsContextso that it
can hook into the various GPUProcess flags/systems.
- platform/graphics/GraphicsContext.h:
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawSystemImage): Added.
- platform/graphics/BifurcatedGraphicsContext.h:
- platform/graphics/BifurcatedGraphicsContext.cpp:
(WebCore::BifurcatedGraphicsContext::drawSystemImage): Added.
- platform/graphics/NullGraphicsContext.h:
(WebCore::NullGraphicsContext::drawSystemImage): Added.
- platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):
- platform/graphics/displaylists/DisplayListItemType.h:
- platform/graphics/displaylists/DisplayListItemType.cpp:
(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::DrawSystemImage::DrawSystemImage): Added.
(WebCore::DisplayList::DrawSystemImage::systemImage const): Added.
(WebCore::DisplayList::DrawSystemImage::destination const): Added.
(WebCore::DisplayList::DrawSystemImage::globalBounds const): Added.
(WebCore::DisplayList::DrawSystemImage::localBounds const): Added.
(WebCore::DisplayList::DrawSystemImage::encode const): Added.
(WebCore::DisplayList::DrawSystemImage::decode): Added.
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawSystemImage::apply const): Added.
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawSystemImage): Added.
- platform/graphics/displaylists/DisplayListRecorderImpl.h:
- platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordDrawSystemImage): Added.
Add newDrawSystemImagedisplay list item to handle GPUProcess drawing ofSystemImage.
- Headers.cmake:
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- Modules/model-element/scenekit/SceneKitModelLoaderUSD.mm:
Drive-by: Unified sources build fix.
Source/WebKit:
See
Source/WebCore/ChangeLogfor an explanation ofSystemImage.
- Shared/WebCoreArgumentCoders.h:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Ref<SystemImage>>::encode): Added.
(IPC::ArgumentCoder<Ref<SystemImage>>::decode): Added.
Support sendingSystemImage(technicallyRef<SystemImage>) across processes.
- GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
- GPUProcess/graphics/RemoteDisplayListRecorder.h:
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawSystemImage): Added.
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordDrawSystemImage): Addded.
Add newDrawSystemImagedisplay list item.
- Scripts/webkit/messages.py:
(class_template_headers):
Add support forRef<T>in IPC messages.
- 6:54 PM Changeset in webkit [290812] by
-
- 4 edits3 adds in trunk
Element with position: sticky after sticking, starts to move incorrectly when scrolling
https://bugs.webkit.org/show_bug.cgi?id=231953
<rdar://84662329>
Reviewed by Sam Weinig.
Source/WebCore:
Sometimes we'd fail to push new StickyPositionViewportConstraints to the scrolling
tree, because operator== failed to compare m_constrainingRectAtLastLayout. This breaks
the requirement that the "last committed scroll position" for the overflow scrolling
node has to be updated in the same commit as the "constraining-rect-at-last-layout"
on the sticky node.
Test: scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints.html
- page/scrolling/ScrollingConstraints.cpp:
(WebCore::operator<<):
- page/scrolling/ScrollingConstraints.h:
(WebCore::StickyPositionViewportConstraints::operator== const):
LayoutTests:
- platform/ios-wk2/scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints-expected.txt: Added.
- scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints-expected.txt: Added.
- scrollingcoordinator/scrolling-tree/sticky-in-overflow-stale-constraints.html: Added.
- 6:40 PM Changeset in webkit [290811] by
-
- 10 edits in trunk/Tools
'run-benchmark' script should log http requests during benchmark run.
https://bugs.webkit.org/show_bug.cgi?id=237076
<rdar://89270825>
Reviewed by Jonathan Bedard.
Relanding 290583 with fix.
Add support to log http requests during benchmark run for diagnostic purpose.
AutoInstall sets 'AUTOINSTALL_CA_CERT_PATH' to environment variables when certificate is specified,
and uses 'AUTOINSTALL_CA_CERT_PATH' when it's present in environment variables. This ensures scripts invoked
from subprocess can use autoinstalled correcctly.
- Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
(AutoInstall):
(AutoInstall.set_index):
- Scripts/webkitpy/init.py: Update 'attr' package version to 20.3.0 so match upgraded twisted version
- Scripts/webkitpy/autoinstalled/twisted.py: Upgrade twisted version to latest python2 & python3 compatibile
version with specified implicit dependencies.
- Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Ensure benchmark diagnostic directory is created.
(BenchmarkRunner.init):
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py: Add '--log-path'
arugment to allow specify logging output and it defaults to '/tmp/run-benchmark-http.log'
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver.set_device_id):
(HTTPServerDriver):
(HTTPServerDriver.set_http_log):
- Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Pass http log path to
twisted http server if specified.
(SimpleHTTPServerDriver.init):
(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.set_http_log):
- Scripts/webkitpy/benchmark_runner/run_benchmark.py: Fix a tiny bug that default_diagnose_dir() is involked twice in
argument parser help message.
(config_argument_parser):
- Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: Set http request log path if diagnostic directory
is specified.
(WebServerBenchmarkRunner.init):
Canonical link: https://commits.webkit.org/248047@main
- 6:19 PM Changeset in webkit [290810] by
-
- 4 edits in trunk/Tools
[git-webkit] Handle new PR with old branch name
https://bugs.webkit.org/show_bug.cgi?id=237457
<rdar://problem/89788939>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.main):
Canonical link: https://commits.webkit.org/248046@main
- 5:38 PM Changeset in webkit [290809] by
-
- 1 copy in tags/Safari-614.1.5.6
Tag Safari-614.1.5.6.
- 5:38 PM Changeset in webkit [290808] by
-
- 1 delete in tags/Safari-614.1.5.6
Remove tag.
- 5:36 PM Changeset in webkit [290807] by
-
- 26 edits12 adds in branches/safari-614.1.5-branch/Source
Cherry-pick r290805. rdar://problem/89053248
Copy WebKit frameworks and XPC processes to Secondary Path
https://bugs.webkit.org/show_bug.cgi?id=237394
Reviewed by Saam Barati.
Source/JavaScriptCore:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/Base.xcconfig:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
Source/ThirdParty/ANGLE:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- ANGLE.xcodeproj/project.pbxproj:
- Configurations/ANGLE-dynamic.xcconfig:
- scripts/copy-frameworks-to-secondary-path.sh: Added.
Source/ThirdParty/libwebrtc:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/libwebrtc.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/WebCore.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- WebCore.xcodeproj/project.pbxproj:
Source/WebGPU:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/WebGPU.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- WebGPU.xcodeproj/project.pbxproj:
Source/WebInspectorUI:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/WebInspectorUIFramework.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- WebInspectorUI.xcodeproj/project.pbxproj:
Source/WebKit:
Added build configuration variables and scripts to copy the built Framework as well as the XPC services
to the SYSTEM_SECONDARY_CONTENT_PATH when it is set. When copying the XPC services, we update the XPC
binaries to reference the frameworks from the SYSTEM_SECONDARY_CONTENT_PATH by updating
DYLD_VERSIONED_FRAMEWORK_PATH.
- Configurations/Base.xcconfig:
- Configurations/WebKitSwift.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- Scripts/copy-xpc-services-to-secondary-path.sh: Added.
- Scripts/update-dyld-environment-load-command: Added.
- Scripts/webkitpy: Added.
- Scripts/webkitpy/mach_o.py: Added. (_utf8_bytes_to_str): (_mach_o_int_field): (_mach_o_int_field._get_mach_o_int_field): (_mach_o_int_field._set_mach_o_int_field): (_mach_o_int_field._set_mach_o_int_field.func): (_mach_o_chararray_field): (_mach_o_chararray_field._get_mach_o_chararray_field): (_mach_o_chararray_field._set_mach_o_chararray_field): (_mach_o_chararray_field._set_mach_o_chararray_field.func): (_mach_o_varchar_field): (_mach_o_varchar_field._get_mach_o_varchar_field): (_mach_o_varchar_field._set_mach_o_varchar_field): (_mach_o_varchar_field._set_mach_o_varchar_field.func): (MachOCommand): (MachOCommand.init): (MachOSourceVersionCommand): (MachOSourceVersionCommand.version_str): (MachOSection): (MachOSection.init): (MachOSegmentCommand): (MachOSection32): (MachOSegment32Command): (MachOSegment32Command.init): (MachOSection64): (MachOSegment64Command): (MachOSegment64Command.init): (MachOLoadDylibCommand): (MachOLoadDylibCommand._version_str): (MachOLoadDylibCommand.compatibility_version_str): (MachOLoadDylibCommand.current_version_str): (MachODyldEnvironmentCommand): (MachODyldEnvironmentCommand.variable): (MachODyldEnvironmentCommand.value): (MachODyldEnvironmentCommand.build): (MachOIDDylibCommand): (MachOHeader): (MachOHeader.init): (MachOHeader.used_header_size): (MachOHeader.total_header_size): (MachOHeader.available_header_size): (MachOHeader.architecture_name): (MachOHeader.id_command): (MachOHeader.dyld_env_commands): (MachOHeader.dyld_versioned_framework_paths): (MachOHeader.filter_commands): (MachOHeader.update_file): (MachOHeader.parse_command): (MachOHeader32LE): (MachOHeader32LE.init): (MachOHeader64LE): (MachOHeader64LE.init): (MachOFile): (MachOFile.init): (is_macho_bytes): (is_macho_file): (enumerate_macho_files):
- WebKit.xcodeproj/project.pbxproj:
Source/WebKitLegacy:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- WebKitLegacy.xcodeproj/project.pbxproj:
- scripts/copy-frameworks-to-secondary-path.sh: Added.
Source/WebKitLegacy/mac:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/Base.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290805 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:32 PM Changeset in webkit [290806] by
-
- 9 edits in trunk
Text manipulation does not observe updated title element
https://bugs.webkit.org/show_bug.cgi?id=237435
rdar://87318842
Reviewed by Wenson Hsieh.
Source/WebCore:
TextManipulationController now monitors two types of nodes (after first-time manipulation):
(1) manipulated nodes with content update
(2) non-manipulated nodes (newly displayed or newly added)
We should make sure title element gets added to set (1) if it's newly created, and gets added to set (2) if its
text content is updated.
New test: TextManipulation.CompleteTextManipulationForTitleElement
- dom/Document.cpp:
(WebCore::Document::setTitle):
- dom/Text.cpp:
(WebCore::Text::setDataAndUpdate):
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::didUpdateContentForNode):
(WebCore::TextManipulationController::didAddOrCreateRendererForNode):
(WebCore::TextManipulationController::scheduleObservationUpdate):
(WebCore::TextManipulationController::replace):
(WebCore::TextManipulationController::didCreateRendererForElement): Deleted.
(WebCore::TextManipulationController::didUpdateContentForText): Deleted.
(WebCore::TextManipulationController::didCreateRendererForTextNode): Deleted.
- editing/TextManipulationController.h:
- html/HTMLTitleElement.cpp:
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::createTextRenderer):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
(TestWebKitAPI::TEST):
- 5:26 PM Changeset in webkit [290805] by
-
- 26 edits14 adds in trunk/Source
Copy WebKit frameworks and XPC processes to Secondary Path
https://bugs.webkit.org/show_bug.cgi?id=237394
Reviewed by Saam Barati.
Source/JavaScriptCore:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/Base.xcconfig:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
Source/ThirdParty/ANGLE:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- ANGLE.xcodeproj/project.pbxproj:
- Configurations/ANGLE-dynamic.xcconfig:
- scripts/copy-frameworks-to-secondary-path.sh: Added.
Source/ThirdParty/libwebrtc:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/libwebrtc.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/WebCore.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- WebCore.xcodeproj/project.pbxproj:
Source/WebGPU:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/WebGPU.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- WebGPU.xcodeproj/project.pbxproj:
Source/WebInspectorUI:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/WebInspectorUIFramework.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- WebInspectorUI.xcodeproj/project.pbxproj:
Source/WebKit:
Added build configuration variables and scripts to copy the built Framework as well as the XPC services
to the SYSTEM_SECONDARY_CONTENT_PATH when it is set. When copying the XPC services, we update the XPC
binaries to reference the frameworks from the SYSTEM_SECONDARY_CONTENT_PATH by updating
DYLD_VERSIONED_FRAMEWORK_PATH.
- Configurations/Base.xcconfig:
- Configurations/WebKitSwift.xcconfig:
- Scripts/copy-frameworks-to-secondary-path.sh: Added.
- Scripts/copy-xpc-services-to-secondary-path.sh: Added.
- Scripts/update-dyld-environment-load-command: Added.
- Scripts/webkitpy: Added.
- Scripts/webkitpy/mach_o.py: Added.
(_utf8_bytes_to_str):
(_mach_o_int_field):
(_mach_o_int_field._get_mach_o_int_field):
(_mach_o_int_field._set_mach_o_int_field):
(_mach_o_int_field._set_mach_o_int_field.func):
(_mach_o_chararray_field):
(_mach_o_chararray_field._get_mach_o_chararray_field):
(_mach_o_chararray_field._set_mach_o_chararray_field):
(_mach_o_chararray_field._set_mach_o_chararray_field.func):
(_mach_o_varchar_field):
(_mach_o_varchar_field._get_mach_o_varchar_field):
(_mach_o_varchar_field._set_mach_o_varchar_field):
(_mach_o_varchar_field._set_mach_o_varchar_field.func):
(MachOCommand):
(MachOCommand.init):
(MachOSourceVersionCommand):
(MachOSourceVersionCommand.version_str):
(MachOSection):
(MachOSection.init):
(MachOSegmentCommand):
(MachOSection32):
(MachOSegment32Command):
(MachOSegment32Command.init):
(MachOSection64):
(MachOSegment64Command):
(MachOSegment64Command.init):
(MachOLoadDylibCommand):
(MachOLoadDylibCommand._version_str):
(MachOLoadDylibCommand.compatibility_version_str):
(MachOLoadDylibCommand.current_version_str):
(MachODyldEnvironmentCommand):
(MachODyldEnvironmentCommand.variable):
(MachODyldEnvironmentCommand.value):
(MachODyldEnvironmentCommand.build):
(MachOIDDylibCommand):
(MachOHeader):
(MachOHeader.init):
(MachOHeader.used_header_size):
(MachOHeader.total_header_size):
(MachOHeader.available_header_size):
(MachOHeader.architecture_name):
(MachOHeader.id_command):
(MachOHeader.dyld_env_commands):
(MachOHeader.dyld_versioned_framework_paths):
(MachOHeader.filter_commands):
(MachOHeader.update_file):
(MachOHeader.parse_command):
(MachOHeader32LE):
(MachOHeader32LE.init):
(MachOHeader64LE):
(MachOHeader64LE.init):
(MachOFile):
(MachOFile.init):
(is_macho_bytes):
(is_macho_file):
(enumerate_macho_files):
- WebKit.xcodeproj/project.pbxproj:
Source/WebKitLegacy:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- WebKitLegacy.xcodeproj/project.pbxproj:
- scripts/copy-frameworks-to-secondary-path.sh: Added.
Source/WebKitLegacy/mac:
Added build configuration variables and scripts to copy the built Framework to the SYSTEM_SECONDARY_CONTENT_PATH
when it is set.
- Configurations/Base.xcconfig:
- 5:21 PM Changeset in webkit [290804] by
-
- 1 copy in tags/Safari-614.1.5.6
Tag Safari-614.1.5.6.
- 5:08 PM Changeset in webkit [290803] by
-
- 5 edits in trunk/Source/WebCore
Allow [SecureContext] extended attribute on namespaces.
https://bugs.webkit.org/show_bug.cgi?id=237401
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-03
Reviewed by Alexey Shvayka.
- bindings/scripts/IDLAttributes.json:
Enable SecureContext as a valid extended attribute on namespace.
- bindings/scripts/test/BindingTestGlobalConstructors.idl:
- bindings/scripts/test/JS/*: Updated
- bindings/scripts/test/TestNamespaceObject.idl:
Added [SecureContext] to namespace
- 5:06 PM Changeset in webkit [290802] by
-
- 6 edits in trunk
[JSC] Update wasm branch hinting
https://bugs.webkit.org/show_bug.cgi?id=237411
Patch by Tom Tartarin <tom@leaningtech.com> on 2022-03-03
Reviewed by Yusuke Suzuki.
JSTests:
Simplify the module tested with the updated format.
- wasm/branch-hints/branchHintsModule.wasm:
- wasm/branch-hints/branchHintsSection.js:
Source/JavaScriptCore:
Change the section's name.
Clarify semantics in the parser.
- wasm/WasmBranchHintsSectionParser.cpp:
(JSC::Wasm::BranchHintsSectionParser::parse):
- wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseCustom):
- 5:04 PM Changeset in webkit [290801] by
-
- 2 edits in trunk
Add Dan Glastonbury's name to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237453
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-03
Reviewed by Alan Bujtas.
- metadata/contributors.json:
- 4:57 PM Changeset in webkit [290800] by
-
- 2 edits in trunk
Add myself (Anjali Kumar) to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237449
Patch by Anjali Kumar <anjalik_22@apple.com> on 2022-03-03
Reviewed by Patrick Angle.
- metadata/contributors.json: Added myself.
- 4:53 PM Changeset in webkit [290799] by
-
- 7 edits in trunk/Tools
[Python3] Switch a few more glib scripts to Python3
https://bugs.webkit.org/show_bug.cgi?id=237442
Reviewed by Adrian Perez de Castro.
- Scripts/check-for-global-bss-symbols-in-webkitgtk-libs: Update
shebang.
(bss_symbols): Decode Popen bytes output.
- gtk/jhbuildrc: Update shebang.
- gtk/ycm_extra_conf.py: Ditto.
- jhbuild/jhbuild-wrapper: Ditto.
(jhbuild_at_expected_revision): Decode Popen bytes output.
- jhbuild/jhbuildrc_common.py: Remove uneeded shebang.
- wpe/jhbuildrc: Update shebang.
- 3:46 PM Changeset in webkit [290798] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r290752.
r290752 broke mutliple tests, slowing down the iOS15 EWS
queue.
Reverted changeset:
"[iOS] Hard link AVPictureInPictureController"
https://bugs.webkit.org/show_bug.cgi?id=237227
https://commits.webkit.org/r290752
- 3:25 PM Changeset in webkit [290797] by
-
- 2 edits in trunk/Source/WebKit
WKContentView should explicitly request the system pointer in the fallback case
https://bugs.webkit.org/show_bug.cgi?id=237410
<rdar://79198381>
Reviewed by Anders Carlsson.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView pointerRegionForPositionInformation:point:]):
(-[WKContentView pointerInteraction:styleForRegion:]):
Instead of assuming a nil region and nil style will provide the system
pointer, provide a region the size of the WKContentView and explicitly
request the system pointer shape.
Also, drive-by adopt the API
systemPointerStyleinstead of the
deprecated SPI version.
- 2:51 PM Changeset in webkit [290796] by
-
- 7 edits in trunk/Tools
[webkitcorepy] Disable prompt when saving credentials
https://bugs.webkit.org/show_bug.cgi?id=237438
<rdar://problem/89764417>
Reviewed by Aakash Jain.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.credentials): Pass 'save' to webkitcorepy.credentials.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:
(credentials): Unless caller explicitly disables saving, assume that all credentials
should be saved to a system's keyring.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.github): Automatically save any prompted credentials.
(Setup.git): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.credentials): Pass 'save' to github.Tracker.credentials.
Canonical link: https://commits.webkit.org/248036@main
- 2:38 PM Changeset in webkit [290795] by
-
- 3 edits in trunk/Source/WebKit
[macOS] WebContent processes crash with XPC_EXIT_REASON_SIGTERM_TIMEOUT when logging out
https://bugs.webkit.org/show_bug.cgi?id=237398
<rdar://88940229>
Reviewed by Darin Adler.
Because we don't use RunningBoard on macOS, we leak an OS transaction to control the lifetime of our XPC
services ourselves. However, one of the side effects of leaking this transaction is that the default SIGTERM
handler doesn't cleanly exit our XPC services when logging out or rebooting. This led to crashes with
XPC_EXIT_REASON_SIGTERM_TIMEOUT as termination reason (rdar://88940229).
To address the issue, we now set our own SIGTERM handler that releases the OS transaction and calls the
default SIGTERM handler to exit cleanly. In the future, we should likely adopt RunningBoard on macOS and
control our lifetime via process assertions instead of leaking this OS transaction.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::setOSTransaction):
(WebKit::XPCServiceExit):
(WebKit::osTransaction): Deleted.
- 2:07 PM Changeset in webkit [290794] by
-
- 9 edits in trunk/Source/WebKit
[iOS] Further reduce hangs underneath -[WKContentView requestAutocorrectionContextWithCompletionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=237387
rdar://89654600
Reviewed by Tim Horton.
Tweak the mitigations landed in r288925 to be even more aggressive. Currently, we preemptively send an
autocorrection context from the web process to the UI process after receiving an IPC message from the UI process
indicating that an input view has been shown. However, this message might arrive too late in cases where the web
process hangs immediately after we're done setting element focus, within the very same runloop; in such a
scenario, we'll still end up hanging underneath the sync autocorrection request underneath-_elementDidFocus:
in the UI process.
We can instead make this mitigation even more aggressive, by setting a flag on WebPage when we're about to
propagate anElementDidFocusmessage to the UI process that (in lieu of the WebKit client) would normally
cause the keyboard to appear. During the next DOM selection change, we then consult this flag and preemptively
send an autocorrection context to the UI process.
Additionally, remove another safeguard in the original change in r288925 which effectively invalidated the
cached autocorrection context after the end of the runloop by setting_autocorrectionContextNeedsUpdate. This
was only done to narrow the scope of the fix to just the scenario where UIKit requests autocorrection contexts
multiple times in the same runloop iteration. However, this appears to be insufficient to tackle more scenarios
where UIKit frequently requests autocorrection contexts even though the selection has not changed; hopefully, by
leaving_autocorrectionContextNeedsUpdate := NO, we can mitigate some of these other cases.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::notifySelectionChanged):
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::respondToChangedSelection):
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::notifyRevealedSelectionByScrollingFrame):
(WebKit::WebChromeClient::didLayout):
- WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::overflowScrollPositionChanged):
(WebKit::WebEditorClient::subFrameScrollPositionChanged):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didScrollSelection):
(WebKit::WebPage::didChangeSelection):
Split
didChangeSelectioninto two methods:didScrollSelection, which is invoked from codepaths where we're
scheduling an editor state after overflow or mainframe scrolling, anddidChangeSelection, which now takes a
Frameindicating the frame that contains the changed selection. On iOS, we handle this by both scheduling an
editor state update, but also preemptively sending the autocorrection context to the UI process if we've just
focused an element that will probably cause the keyboard to appear (unless the client explicitly prevents it).
Note that we must check the
framecontaining the changed selection and bail if the render tree is in the
middle of being destroyed, so that we don't end up triggering layout (and release asserting) in the case where
we're clearing the selection during document teardown.
(WebKit::WebPage::resetFocusedElementForFrame):
(WebKit::WebPage::elementDidFocus):
(WebKit::WebPage::elementDidBlur):
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::didChangeOverflowScrollPosition): Deleted.
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::setIsShowingInputViewForFocusedElement):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateSelectionAppearance):
Pass in
frametodidChangeSelection.
(WebKit::WebPage::setIsShowingInputViewForFocusedElement): Deleted.
Move this back into the header, now that it's a straightforward setter again.
- 1:51 PM Changeset in webkit [290793] by
-
- 7 edits in trunk/Tools
[git-webkit] Open pre-populated GitHub page for new tokens
https://bugs.webkit.org/show_bug.cgi?id=237436
<rdar://problem/89763053>
Reviewed by Ryan Haddad.
GitHub gives us a way to pre-populate its token generation web page. We should
open this page with appropriate arguments during setup.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.credentials): Make 'prompt' into a function, allowing us to open a url
and change the prompt based on the success of opening the url.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:
(credentials): Allow 'prompt' to be callable.
Canonical link: https://commits.webkit.org/248033@main
- 1:19 PM Changeset in webkit [290792] by
-
- 3 edits in trunk/Tools
[build.webkit.org] Add GTK queue using clang
https://bugs.webkit.org/show_bug.cgi?id=229637
Reviewed by Michael Catanzaro.
This commit adds a specific queue to build with clang in place of GCC.
It will help cover both toolchains and catch bugs and warnings
that happen to be raised by/to affect only clang.
Initially, it'll be a build-only queue, moving to a complete build and
tester in the future. It'll use clang-12, the version available in the
current SDK used by GTK and WPE.
- CISupport/build-webkit-org/config.json:
- CISupport/build-webkit-org/factories_unittest.py:
(TestExpectedBuildSteps):
- 1:02 PM Changeset in webkit [290791] by
-
- 40 edits in trunk/Source/WebGPU
[WebGPU] Abide by the WebKit Style Guide
https://bugs.webkit.org/show_bug.cgi?id=237437
Reviewed by Darin Adler.
The style guide says "Do not place a space between the type name and the protocol name."
- WebGPU/Adapter.h:
(WebGPU::Adapter::create):
- WebGPU/Adapter.mm:
(WebGPU::Adapter::Adapter):
(WebGPU::deviceMeetsRequiredLimits):
- WebGPU/BindGroup.h:
(WebGPU::BindGroup::create):
(WebGPU::BindGroup::vertexArgumentBuffer const):
(WebGPU::BindGroup::fragmentArgumentBuffer const):
(WebGPU::BindGroup::computeArgumentBuffer const):
- WebGPU/BindGroup.mm:
(WebGPU::Device::createBindGroup):
(WebGPU::BindGroup::BindGroup):
- WebGPU/BindGroupLayout.h:
(WebGPU::BindGroupLayout::create):
(WebGPU::BindGroupLayout::vertexArgumentEncoder const):
(WebGPU::BindGroupLayout::fragmentArgumentEncoder const):
(WebGPU::BindGroupLayout::computeArgumentEncoder const):
- WebGPU/BindGroupLayout.mm:
(WebGPU::Device::createBindGroupLayout):
(WebGPU::BindGroupLayout::BindGroupLayout):
- WebGPU/Buffer.h:
(WebGPU::Buffer::create):
(WebGPU::Buffer::buffer const):
- WebGPU/Buffer.mm:
(WebGPU::Buffer::Buffer):
- WebGPU/CommandBuffer.h:
(WebGPU::CommandBuffer::create):
(WebGPU::CommandBuffer::commandBuffer const):
- WebGPU/CommandBuffer.mm:
(WebGPU::CommandBuffer::CommandBuffer):
- WebGPU/CommandEncoder.h:
(WebGPU::CommandEncoder::create):
- WebGPU/CommandEncoder.mm:
(WebGPU::CommandEncoder::CommandEncoder):
- WebGPU/ComputePassEncoder.h:
(WebGPU::ComputePassEncoder::create):
- WebGPU/ComputePassEncoder.mm:
(WebGPU::ComputePassEncoder::ComputePassEncoder):
- WebGPU/ComputePipeline.h:
(WebGPU::ComputePipeline::create):
(WebGPU::ComputePipeline::computePipelineState const):
- WebGPU/ComputePipeline.mm:
(WebGPU::createLibrary):
(WebGPU::createFunction):
(WebGPU::createComputePipelineState):
(WebGPU::ComputePipeline::ComputePipeline):
- WebGPU/Device.h:
- WebGPU/Device.mm:
(WebGPU::Device::create):
(WebGPU::Device::Device):
- WebGPU/Instance.mm:
(WebGPU::sortedDevices):
(WebGPU::Instance::requestAdapter):
- WebGPU/QuerySet.h:
(WebGPU::QuerySet::create):
(WebGPU::QuerySet::counterSampleBuffer const):
- WebGPU/QuerySet.mm:
(WebGPU::QuerySet::QuerySet):
- WebGPU/Queue.h:
(WebGPU::Queue::create):
- WebGPU/Queue.mm:
(WebGPU::Queue::Queue):
- WebGPU/RenderBundle.h:
(WebGPU::RenderBundle::create):
(WebGPU::RenderBundle::indirectCommandBuffer const):
- WebGPU/RenderBundle.mm:
(WebGPU::RenderBundle::RenderBundle):
- WebGPU/RenderBundleEncoder.h:
(WebGPU::RenderBundleEncoder::create):
- WebGPU/RenderBundleEncoder.mm:
(WebGPU::RenderBundleEncoder::RenderBundleEncoder):
- WebGPU/RenderPassEncoder.h:
(WebGPU::RenderPassEncoder::create):
- WebGPU/RenderPassEncoder.mm:
(WebGPU::RenderPassEncoder::RenderPassEncoder):
- WebGPU/RenderPipeline.h:
(WebGPU::RenderPipeline::create):
(WebGPU::RenderPipeline::renderPipelineState const):
- WebGPU/RenderPipeline.mm:
(WebGPU::RenderPipeline::RenderPipeline):
- WebGPU/Sampler.h:
(WebGPU::Sampler::create):
(WebGPU::Sampler::samplerState const):
- WebGPU/Sampler.mm:
(WebGPU::Sampler::Sampler):
- WebGPU/ShaderModule.h:
(WebGPU::ShaderModule::create):
(WebGPU::ShaderModule::library const):
- WebGPU/ShaderModule.mm:
(WebGPU::ShaderModule::createLibrary):
(WebGPU::earlyCompileShaderModule):
(WebGPU::ShaderModule::ShaderModule):
- WebGPU/Texture.h:
(WebGPU::Texture::create):
(WebGPU::Texture::texture const):
- WebGPU/Texture.mm:
(WebGPU::Texture::Texture):
- WebGPU/TextureView.h:
(WebGPU::TextureView::create):
(WebGPU::TextureView::texture const):
- WebGPU/TextureView.mm:
(WebGPU::TextureView::TextureView):
- 12:22 PM Changeset in webkit [290790] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.2.1
- 12:21 PM Changeset in webkit [290789] by
-
- 3 edits in branches/safari-613-branch/Source/JavaScriptCore
Cherry-pick r288363. rdar://problem/88995092
Fix build when using Visual Studio 2022
https://bugs.webkit.org/show_bug.cgi?id=235440
Reviewed by Antti Koivisto.
It doesn't like having a switch with a default but no cases.
This is cleaner with if statements anyways.
Also make members const because I can.
- jit/JITCode.cpp: (JSC::JITCode::calleeSaveRegisters const):
- jit/JITCode.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:51 AM Changeset in webkit [290788] by
-
- 13 edits in trunk/Source/JavaScriptCore
Add a DeferTraps scope
https://bugs.webkit.org/show_bug.cgi?id=237306
<rdar://83494949>
Reviewed by Mark Lam.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::noticeIncomingCall):
- bytecode/CodeBlock.h:
- bytecode/RepatchInlines.h:
(JSC::linkFor):
(JSC::virtualForWithFunction):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):
- interpreter/InterpreterInlines.h:
(JSC::Interpreter::execute):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
- runtime/ExceptionScope.h:
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::installCode):
- runtime/VMTraps.cpp:
(JSC::VMTraps::handleTraps):
(JSC::VMTraps::takeTopPriorityTrap):
- runtime/VMTraps.h:
(JSC::VMTraps::needHandling const):
(JSC::VMTraps::maybeNeedHandling const):
(JSC::VMTraps::hasTrapBit):
(JSC::VMTraps::setTrapBit):
- runtime/VMTrapsInlines.h:
(JSC::DeferTraps::DeferTraps):
(JSC::DeferTraps::~DeferTraps):
- 11:04 AM Changeset in webkit [290787] by
-
- 8 edits2 adds in branches/safari-614.1.5-branch
Cherry-pick r290512. rdar://problem/89765722
[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>
Reviewed by Antti Koivisto.
Source/WebCore:
Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)
Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html
- rendering/RenderTable.cpp: (WebCore::RenderTable::firstColumn const):
- rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::nextColumn const):
LayoutTests:
- fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
- fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
- platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
- platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:00 AM Changeset in webkit [290786] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.6
- 10:25 AM Changeset in webkit [290785] by
-
- 11 edits2 adds in trunk
nasa.gov page with fixed backgrounds paints incorrectly on scroll
https://bugs.webkit.org/show_bug.cgi?id=237405
<rdar://66568551>
Reviewed by Antti Koivisto.
Source/WebCore:
https://www.nasa.gov/specials/artemis/ shows an issue where elements with background-attachment:fixed
don't repaint on scroll. This page has scrollable <html> and <body>, and the elements with fixed
backgrounds are composited, so this reveals that we fail to repaint composited children
of an overflow scroll in this case.
Fix by having RenderLayerScrollableArea::scrollTo() do repaints on slow repaint objects
which are scrolled by the current scroller.
Do some unrelated cleanup in code that I was going to use in this patch but turned out
not to need: rename hasFixedBackgroundImage() to hasAnyFixedBackground() for clarity,
and share the implementation with hasAnyLocalBackground().
Test: fast/repaint/background-attachment-fixed-in-composited-scroll.html
- rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::willBeDestroyed):
- rendering/RenderLayer.cpp:
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollTo):
- rendering/style/FillLayer.cpp:
(WebCore::FillLayer::hasImageWithAttachment const):
(WebCore::FillLayer::hasFixedImage const): Deleted.
- rendering/style/FillLayer.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::hasAnyLocalBackground const): Deleted.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasBackgroundImage const):
(WebCore::RenderStyle::hasAnyFixedBackground const):
(WebCore::RenderStyle::hasAnyLocalBackground const):
(WebCore::RenderStyle::hasFixedBackgroundImage const): Deleted.
LayoutTests:
Repaint test which is only valid for mac-wk2 (iOS does not support background-attachment:fixed).
- TestExpectations:
- fast/repaint/background-attachment-fixed-in-composited-scroll-expected.txt: Added.
- fast/repaint/background-attachment-fixed-in-composited-scroll.html: Added.
- platform/mac-wk2/TestExpectations:
- 10:20 AM Changeset in webkit [290784] by
-
- 4 edits in trunk
[Style] Forbid spaces between type names and protocol names in Objective-C
https://bugs.webkit.org/show_bug.cgi?id=237406
Reviewed by Darin Adler.
According to https://lists.webkit.org/pipermail/webkit-dev/2022-February/032130.html.
Tools:
Because the style checker uses regexes, we don't know what's a type name and what's
a protocol name, so the checker simplifies the problem and just checks for "id <".
- Scripts/webkitpy/style/checkers/cpp.py:
(check_objc_protocol):
(check_style):
Websites/webkit.org:
- code-style.md:
- 10:01 AM Changeset in webkit [290783] by
-
- 3 edits in trunk/LayoutTests
Unreviewed test gardening.
- gpu-process/TestExpectations:
- platform/ios/TestExpectations:
- 9:56 AM Changeset in webkit [290782] by
-
- 3 edits2 adds in trunk
A text node longer than 65,535 characters following another text node is invisible in a scrolling context
https://bugs.webkit.org/show_bug.cgi?id=237330
<rdar://problem/89645522>
Reviewed by Antti Koivisto.
Source/WebCore:
- We split text content at 65536 characters (see Text::createWithLengthLimit)
- InlineTextBox can only hold up to 65534 (max short unsigned) characters (unsigned short m_len { 0 };)
Arithmetic overflow produces 0 length inline text boxes and they get removed at
LegacyLineLayout::computeBlockDirectionPositionsForLine as redundant boxes.
Test: fast/text/text-overflow-over-64k.html
- rendering/LegacyInlineTextBox.h: Let's just use unsigned. At this point we don't have that many
legacy inline text boxes anyway.
LayoutTests:
- fast/text/text-overflow-over-64k-expected.html: Added.
- fast/text/text-overflow-over-64k.html: Added.
- 9:30 AM Changeset in webkit [290781] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r290776): NetworkSession::swServer depends on ENABLE(SERVICE_WORKER)
https://bugs.webkit.org/show_bug.cgi?id=237432
Unreviewed build fix.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::terminateRemoteWorkerContextConnectionWhenPossible):
- 9:25 AM Changeset in webkit [290780] by
-
- 5 edits in trunk/Source/WebCore
Update IDLParser to support trailing commas in enums.
https://bugs.webkit.org/show_bug.cgi?id=232607
<rdar://problem/85189036>
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-03
Reviewed by Sam Weinig.
Now compatible with the grammar specified by [1].
[1] https://webidl.spec.whatwg.org/#prod-EnumValueListComma
- bindings/scripts/IDLParser.pm:
(parseEnumValues):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convertEnumerationToString):
(WebCore::convertEnumerationToJS):
(WebCore::parseEnumeration<TestObj::EnumTrailingComma>):
(WebCore::expectedEnumerationValues<TestObj::EnumTrailingComma>):
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/TestObj.idl:
- 9:24 AM Changeset in webkit [290779] by
-
- 11 edits in trunk/Source/WebCore
Simplify pseudo element resolution
https://bugs.webkit.org/show_bug.cgi?id=237413
Reviewed by Antoine Quint.
Remove ElementUpdates struct with a map that contains pseudo element updates.
Instead use a single ElementUpdate struct and pass the pseudo element styles
as cached pseudo styles of the element RenderStyle. Previously RenderTreeUpdater
would move them there.
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::Parent::Parent):
(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::pushParent):
(WebCore::RenderTreeUpdater::popParent):
(WebCore::RenderTreeUpdater::updateBeforeDescendants):
(WebCore::RenderTreeUpdater::updateAfterDescendants):
(WebCore::RenderTreeUpdater::updateElementRenderer):
- rendering/updating/RenderTreeUpdater.h:
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
(WebCore::RenderTreeUpdater::GeneratedContent::needsPseudoElement):
- rendering/updating/RenderTreeUpdaterGeneratedContent.h:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::computeDescendantsToResolve):
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::shouldResolveElement):
(WebCore::Style::TreeResolver::resetDescendantStyleRelations):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::computeDescendantsToResolve): Deleted.
(WebCore::Style::shouldResolveElement): Deleted.
(WebCore::Style::resetDescendantStyleRelations): Deleted.
- style/StyleTreeResolver.h:
- style/StyleUpdate.cpp:
(WebCore::Style::Update::elementUpdate const):
(WebCore::Style::Update::elementUpdate):
(WebCore::Style::Update::elementStyle const):
(WebCore::Style::Update::elementStyle):
(WebCore::Style::Update::addElement):
(WebCore::Style::Update::elementUpdates const): Deleted.
(WebCore::Style::Update::elementUpdates): Deleted.
- style/StyleUpdate.h:
- 8:57 AM Changeset in webkit [290778] by
-
- 6 edits2 adds in trunk
macOS Safari 15.2 Audio Echo Issue after camera pause/unpause
https://bugs.webkit.org/show_bug.cgi?id=235544
<rdar://problem/88297045>
Reviewed by Eric Carlson.
Source/WebCore:
After https://commits.webkit.org/r275600, the muted state of MediaPlayer would be set to the page muted state
without taking into consideration HTMLMediaElement.muted.
Update the call site to use effectiveMuted instead.
Add internals API to write a corresponding layout test.
Test: fast/mediastream/mediastreamtrack-audiovideo-mutepage.html
- html/HTMLMediaElement.cpp:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/mediastream/mediastreamtrack-audiovideo-mutepage-expected.txt: Added.
- fast/mediastream/mediastreamtrack-audiovideo-mutepage.html: Added.
- 8:53 AM Changeset in webkit [290777] by
-
- 3 edits in trunk/Tools
[Python-3] Invoke webkit-patch with Python 3 by default (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=231591
<rdar://problem/84153640>
Unreviewed follow-up fix.
- Scripts/webkitpy/tool/commands/download.py:
(AbstractRevertPrepCommand._prepare_state): Reason may be spread accross multiple arguments.
- Scripts/webkitpy/tool/commands/download_unittest.py:
- 8:09 AM Changeset in webkit [290776] by
-
- 22 edits in trunk
REGRESSION(r290356-r290351?): [ iOS EWS ] 3 imported/w3c/web-platform-tests/service-workers/service-worker/* tests are constant text failures.
https://bugs.webkit.org/show_bug.cgi?id=237160
<rdar://problem/89440067>
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline test that is now passing.
- web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt:
Source/WebCore:
In r290352, I made a change so that the service worker is more likely to launch in the WebContent
process that caused it to launch. This is beneficial for performance and memory usage.
The partitioned-service-worker*.html service worker tests are relying on an ID variable that is
randomly generated inside the service worker and they expect this ID to not change during the
duration of the test. This means that if the service worker exits / relaunches, those tests start
failing because the ID changes.
The issue is that we have logic in WebProcessProxy::didStartProvisionalLoadForMainFrame() that
terminates the service workers running inside the WebProcess if a new eTLD+1 page is loaded inside
the process. We do so to try and achieve better process isolation between different sites. The
issue is that those tests launch a service worker and then open a new cross-site popup. When the
cross-site popup loads inside the same process, we'd make the decision to terminate the service
workers in this process and relaunch them in a new clean one, causing the tests to fail.
While it is true per the specification that service workers can be terminated / relaunched at
almost any point, there are exceptions. In particular, we should keep a service worker running
if it still has pending extendable events. For this reason, the tests rely on FetchEvent.waitUntil()
to keep the service worker running. Sadly, we would not obey that in this case.
To address the issue, we no longer unconditionally close the service worker context connection
when a WebProcess loads a new eTLD+1. Instead, we tell the network process to close that connection
as soon as possible. When the network process receives this IPC, it terminates the context
connection ONLY if the service workers using the connection have no pending events. If we cannot
close the context connection right away, we set a flag on the context connection to indicate that
we should close it as soon as possible. Currently, this flag is only used to close the connection
right away (no 10 second delay) once the connection no longer has any clients. I think that, ideally,
we'd close the connection as soon as the service workers no longer have pending events. However,
this adds complexity and is error-prone so I didn't implement it in this patch and merely added a
FIXME comment. As it stands, my patch STILL relaunches service workers in origin-clean processes
in the common case. It only fails to do so in the case where there are pending service worker
events which is a case where we had the correctness bug anyway.
No new tests, unskipped existing tests.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::forEachServiceWorker const):
(WebCore::SWServer::terminateContextConnectionWhenPossible):
(WebCore::SWServer::unregisterServiceWorkerClient):
- workers/service/server/SWServer.h:
- workers/service/server/SWServerToContextConnection.cpp:
(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::server const):
(WebCore::SWServerToContextConnection::terminateWhenPossible):
- workers/service/server/SWServerToContextConnection.h:
(WebCore::SWServerToContextConnection::shouldTerminateWhenPossible const):
Source/WebKit:
In r290352, I made a change so that the service worker is more likely to launch in the WebContent
process that caused it to launch. This is beneficial for performance and memory usage.
The partitioned-service-worker*.html service worker tests are relying on an ID variable that is
randomly generated inside the service worker and they expect this ID to not change during the
duration of the test. This means that if the service worker exits / relaunches, those tests start
failing because the ID changes.
The issue is that we have logic in WebProcessProxy::didStartProvisionalLoadForMainFrame() that
terminates the service workers running inside the WebProcess if a new eTLD+1 page is loaded inside
the process. We do so to try and achieve better process isolation between different sites. The
issue is that those tests launch a service worker and then open a new cross-site popup. When the
cross-site popup loads inside the same process, we'd make the decision to terminate the service
workers in this process and relaunch them in a new clean one, causing the tests to fail.
While it is true per the specification that service workers can be terminated / relaunched at
almost any point, there are exceptions. In particular, we should keep a service worker running
if it still has pending extendable events. For this reason, the tests rely on FetchEvent.waitUntil()
to keep the service worker running. Sadly, we would not obey that in this case.
To address the issue, we no longer unconditionally close the service worker context connection
when a WebProcess loads a new eTLD+1. Instead, we tell the network process to close that connection
as soon as possible. When the network process receives this IPC, it terminates the context
connection ONLY if the service workers using the connection have no pending events. If we cannot
close the context connection right away, we set a flag on the context connection to indicate that
we should close it as soon as possible. Currently, this flag is only used to close the connection
right away (no 10 second delay) once the connection no longer has any clients. I think that, ideally,
we'd close the connection as soon as the service workers no longer have pending events. However,
this adds complexity and is error-prone so I didn't implement it in this patch and merely added a
FIXME comment. As it stands, my patch STILL relaunches service workers in origin-clean processes
in the common case. It only fails to do so in the case where there are pending service worker
events which is a case where we had the correctness bug anyway.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::terminateRemoteWorkerContextConnectionWhenPossible):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerToContextConnection::close):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:
(WebKit::WebSharedWorkerServer::terminateContextConnectionWhenPossible):
- NetworkProcess/SharedWorker/WebSharedWorkerServer.h:
- NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:
(WebKit::WebSharedWorkerServerToContextConnection::removeSharedWorkerObject):
- NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::terminateRemoteWorkerContextConnectionWhenPossible):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didStartProvisionalLoadForMainFrame):
LayoutTests:
Unskip tests that are no longer failing.
- platform/ios/TestExpectations:
- 7:22 AM Changeset in webkit [290775] by
-
- 7 edits in trunk/Source
Non-unified build fixes, early March 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=237420
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- llint/LLIntExceptions.h: Add forward declaration for WasmInstruction.
Source/WebCore:
- inspector/agents/InspectorDOMDebuggerAgent.h: Add forward declaration for ScriptExecutionContext.
Source/WebKit:
- UIProcess/API/APIDataTask.cpp: Add missing inclusion of DataReference.h, remove
"#pragma once" from non-header file.
- UIProcess/API/APIDataTaskClient.h: Add missing inclusion of DataReference.h.
- 5:09 AM Changeset in webkit [290774] by
-
- 9 edits21 adds in trunk/LayoutTests
Update WPT css-scroll-snap tests
https://bugs.webkit.org/show_bug.cgi?id=237358
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-scroll-snap/capturing-snap-positions-expected.txt: Added.
- web-platform-tests/css/css-scroll-snap/capturing-snap-positions.html: Added.
- web-platform-tests/css/css-scroll-snap/input/keyboard.html:
- web-platform-tests/css/css-scroll-snap/input/mouse-wheel-expected.txt: Added.
- web-platform-tests/css/css-scroll-snap/input/mouse-wheel.html: Added.
- web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary-expected.txt: Added.
- web-platform-tests/css/css-scroll-snap/input/snap-area-overflow-boundary.html: Added.
- web-platform-tests/css/css-scroll-snap/input/w3c-import.log:
- web-platform-tests/css/css-scroll-snap/no-red-ref.html: Added.
- web-platform-tests/css/css-scroll-snap/scroll-snap-root-001-ref.html: Added.
- web-platform-tests/css/css-scroll-snap/scroll-snap-root-002-ref.html: Added.
- web-platform-tests/css/css-scroll-snap/scroll-target-001-ref.html: Added.
- web-platform-tests/css/css-scroll-snap/scroll-target-margin-005-expected.txt: Added.
- web-platform-tests/css/css-scroll-snap/scroll-target-margin-005.html: Added.
- web-platform-tests/css/css-scroll-snap/selection-target-expected.txt: Added.
- web-platform-tests/css/css-scroll-snap/selection-target.html: Added.
- web-platform-tests/css/css-scroll-snap/snap-after-initial-layout/scroll-snap-initial-layout-000-ref.html: Added.
- web-platform-tests/css/css-scroll-snap/snap-after-initial-layout/scroll-snap-writing-mode-000-ref.html: Added.
- web-platform-tests/css/css-scroll-snap/snap-after-initial-layout/snap-after-initial-layout-ref.html: Added.
- web-platform-tests/css/css-scroll-snap/snap-after-initial-layout/w3c-import.log:
- web-platform-tests/css/css-scroll-snap/support/common.js:
(waitForAnimationEnd.):
(waitForAnimationEnd):
(waitForWheelEvent):
(waitForScrollEnd):
(waitForScrollTo):
- web-platform-tests/css/css-scroll-snap/w3c-import.log:
LayoutTests:
- platform/glib/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005-expected.txt: Added.
- 3:06 AM Changeset in webkit [290773] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r290512): imported/blink/fast/table/crash-output-element-as-column-group.html asserts sometimes
https://bugs.webkit.org/show_bug.cgi?id=237393
Reviewed by Simon Fraser.
Merging https://chromium.googlesource.com/chromium/src/+/1cfc9b9c37f43567529b09a9824d6d3a7bd9abb6%5E%21/#F2
The reason why crash-output-element-as-column-group.html crashes after r290512 is because
now we allow colgroup after the table content (thead, tbody) -prior to r290512, this test was pretty much a no-op.
- rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::updateFromElement):
- 2:08 AM Changeset in webkit [290772] by
-
- 39 edits6 copies2 adds in trunk
Unreviewed, reverting r290756.
https://bugs.webkit.org/show_bug.cgi?id=237412
Speedometer2
Reverted changeset:
"[css] Implement 'text-decoration' as a shorthand."
https://bugs.webkit.org/show_bug.cgi?id=237175
https://commits.webkit.org/r290756
- 1:51 AM Changeset in webkit [290771] by
-
- 7 edits in trunk/Tools
[Python3] Switch a couple glib/flatpak scripts to Python3
https://bugs.webkit.org/show_bug.cgi?id=237377
Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-03
Reviewed by Carlos Garcia Campos.
- Scripts/update-webkit-flatpak: Update shebang to Python3.
- Scripts/webkit-flatpak: Ditto.
- glib/api_test_runner.py: Ditto.
- glib/common.py: Remove useless shebang.
- glib/generate-inspector-gresource-manifest.py: Update shebang to Python3.
- glib/svn-revision: Ditto.
Mar 2, 2022:
- 11:31 PM Changeset in webkit [290770] by
-
- 4 edits in trunk
Treat empty intersection correctly in RenderLayer::getRectToExpose
https://bugs.webkit.org/show_bug.cgi?id=237189
Patch by Rob Buis <rbuis@igalia.com> on 2022-03-02
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-050-expected.txt:
Source/WebCore:
The case where the target rect to reveal had zero height and was outside of the visible rect, the
classification was wrongly that the target was visible, fix this to classify as hidden instead.
Test: imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-050.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::getRectToExpose const):
- 11:08 PM Changeset in webkit [290769] by
-
- 12 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r290717.
https://bugs.webkit.org/show_bug.cgi?id=237409
Speedometer2
Reverted changeset:
"Add a DeferTraps scope"
https://bugs.webkit.org/show_bug.cgi?id=237306
https://commits.webkit.org/r290717
- 10:49 PM Changeset in webkit [290768] by
-
- 93 edits in trunk/Source/JavaScriptCore
Refactor OpcodeTraits to support the possibility of having 2-byte WASM opcode ids in bytecode streams
https://bugs.webkit.org/show_bug.cgi?id=237347
The number of WASM opcodes will increase beyond 255 when WASM SIMD is implemented, and so this patch
changes OpcodeTraits to allow for the possibility of having two-byte WASM opcodes without regressing
JS. We have to thread these OpcodeTraits everywhere that they are used so that code can read the
correct value when decoding an instruction stream. This patch does not change the size of WASM opcodes
yet, although I have tested that the test suite still passes if we do increase the opcode size.
Reviewed by Keith Miller.
- bytecode/BytecodeBasicBlock.cpp:
(JSC::BytecodeBasicBlock<OpcodeTraits>::BytecodeBasicBlock):
(JSC::BytecodeBasicBlock<OpcodeTraits>::addLength):
(JSC::BytecodeBasicBlock<OpcodeTraits>::shrinkToFit):
(JSC::isJumpTarget):
(JSC::BytecodeBasicBlock<OpcodeTraits>::computeImpl):
(JSC::BytecodeBasicBlock<JSOpcodeTraits>::compute):
(JSC::BytecodeBasicBlock::BytecodeBasicBlock): Deleted.
(JSC::BytecodeBasicBlock::addLength): Deleted.
(JSC::BytecodeBasicBlock::shrinkToFit): Deleted.
(JSC::BytecodeBasicBlock::computeImpl): Deleted.
(JSC::BytecodeBasicBlock::compute): Deleted.
- bytecode/BytecodeBasicBlock.h:
(JSC::BytecodeBasicBlock::addSuccessor):
- bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumperBase<InstructionStreamType>::printLocationAndOp):
(JSC::BytecodeDumperBase<InstructionStreamType>::dumpValue):
(JSC::BytecodeDumper<Block>::outOfLineJumpOffset const):
(JSC::BytecodeDumper<Block>::dumpBytecode):
(JSC::dumpHeader):
(JSC::CodeBlockBytecodeDumper<Block>::dumpBlock):
(JSC::CodeBlockBytecodeDumper<Block>::dumpGraph):
(JSC::Wasm::BytecodeDumper::dumpBlock):
(JSC::Wasm::BytecodeDumper::registerName const):
(JSC::Wasm::BytecodeDumper::outOfLineJumpOffset const):
(JSC::BytecodeDumperBase::printLocationAndOp): Deleted.
(JSC::BytecodeDumperBase::dumpValue): Deleted.
- bytecode/BytecodeDumper.h:
- bytecode/BytecodeGeneratorification.cpp:
(JSC::BytecodeGeneratorification::BytecodeGeneratorification):
(JSC::BytecodeGeneratorification::enterPoint const):
(JSC::BytecodeGeneratorification::instructions const):
(JSC::GeneratorLivenessAnalysis::run):
(JSC::performGeneratorification):
- bytecode/BytecodeGeneratorification.h:
- bytecode/BytecodeGraph.h:
(JSC::BytecodeGraph::blockContainsBytecodeOffset):
(JSC::BytecodeGraph::findBasicBlockForBytecodeOffset):
(JSC::BytecodeGraph::findBasicBlockWithLeaderOffset):
(JSC::BytecodeGraph::at const):
(JSC::BytecodeGraph::operator[] const):
(JSC::BytecodeGraph::first):
(JSC::BytecodeGraph::last):
(JSC::BytecodeGraph::dump):
(JSC::BytecodeGraph::BytecodeGraph):
- bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
(JSC::BytecodeLivenessAnalysis::dumpResults):
- bytecode/BytecodeLivenessAnalysis.h:
- bytecode/BytecodeLivenessAnalysisInlines.h:
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexDef):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexUse):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndexUseInExceptionHandler):
(JSC::BytecodeLivenessPropagation::stepOverBytecodeIndex):
(JSC::BytecodeLivenessPropagation::stepOverInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForInstruction):
(JSC::BytecodeLivenessPropagation::computeLocalLivenessForBlock):
(JSC::BytecodeLivenessPropagation::getLivenessInfoAtInstruction):
(JSC::BytecodeLivenessPropagation::runLivenessFixpoint):
- bytecode/BytecodeRewriter.cpp:
(JSC::BytecodeRewriter::insertImpl):
(JSC::BytecodeRewriter::adjustJumpTargets):
- bytecode/BytecodeRewriter.h:
(JSC::BytecodeRewriter::InsertionPoint::InsertionPoint):
(JSC::BytecodeRewriter::Fragment::Fragment):
(JSC::BytecodeRewriter::BytecodeRewriter):
(JSC::BytecodeRewriter::insertFragmentBefore):
(JSC::BytecodeRewriter::insertFragmentAfter):
(JSC::BytecodeRewriter::replaceBytecodeWithFragment):
(JSC::BytecodeRewriter::adjustAbsoluteOffset):
(JSC::BytecodeRewriter::adjustJumpTarget):
- bytecode/BytecodeUseDef.cpp:
(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeIndex):
(JSC::computeDefsForBytecodeIndex):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::hasOpDebugForLineAndColumn):
(JSC::CodeBlock::notifyLexicalBindingUpdate):
(JSC::CodeBlock::validate):
(JSC::CodeBlock::outOfLineJumpOffset):
(JSC::CodeBlock::outOfLineJumpTarget):
(JSC::CodeBlock::binaryArithProfileForPC):
(JSC::CodeBlock::unaryArithProfileForPC):
(JSC::CodeBlock::insertBasicBlockBoundariesForControlFlowProfiler):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::outOfLineJumpOffset):
(JSC::CodeBlock::bytecodeOffset):
(JSC::CodeBlock::bytecodeIndex):
(JSC::CodeBlock::instructions const):
(JSC::CodeBlock::instructionAt const):
- bytecode/Instruction.h:
(JSC::BaseInstruction::opcodeID const):
(JSC::BaseInstruction::name const):
(JSC::BaseInstruction::isWide16 const):
(JSC::BaseInstruction::isWide32 const):
(JSC::BaseInstruction::width const):
(JSC::BaseInstruction::hasMetadata const):
(JSC::BaseInstruction::hasCheckpoints const):
(JSC::BaseInstruction::numberOfCheckpoints const):
(JSC::BaseInstruction::sizeShiftAmount const):
(JSC::BaseInstruction::opcodeIDWidth const):
(JSC::BaseInstruction::opcodeIDBytes const):
(JSC::BaseInstruction::size const):
(JSC::BaseInstruction::is const):
(JSC::BaseInstruction::as const):
(JSC::BaseInstruction::asKnownWidth const):
(JSC::BaseInstruction::cast):
(JSC::BaseInstruction::cast const):
(JSC::BaseInstruction::wide16 const):
(JSC::BaseInstruction::wide32 const):
- bytecode/InstructionStream.cpp:
(JSC::InstructionStream::InstructionStream): Deleted.
(JSC::InstructionStream::sizeInBytes const): Deleted.
(JSC::InstructionStream::contains const): Deleted.
- bytecode/InstructionStream.h:
(JSC::InstructionStream::sizeInBytes const):
(JSC::InstructionStream::BaseRef::operator-> const):
(JSC::InstructionStream::BaseRef::ptr const):
(JSC::InstructionStream::BaseRef::unwrap const):
(JSC::InstructionStream::MutableRef::operator->):
(JSC::InstructionStream::MutableRef::operator-> const):
(JSC::InstructionStream::MutableRef::ptr):
(JSC::InstructionStream::MutableRef::ptr const):
(JSC::InstructionStream::MutableRef::unwrap):
(JSC::InstructionStream::MutableRef::unwrap const):
(JSC::InstructionStream::iterator::operator++):
(JSC::InstructionStream::contains const):
(JSC::InstructionStream::InstructionStream):
(JSC::InstructionStreamWriter::InstructionStreamWriter):
(JSC::InstructionStreamWriter::finalize):
(JSC::InstructionStreamWriter::swap):
(JSC::InstructionStreamWriter::iterator::operator++):
- bytecode/Opcode.h:
- bytecode/OpcodeInlines.h:
(JSC::isOpcodeShape):
- bytecode/OpcodeSize.h:
- bytecode/PreciseJumpTargets.cpp:
(JSC::getJumpTargetsForInstruction):
(JSC::computePreciseJumpTargetsInternal):
(JSC::computePreciseJumpTargets):
(JSC::recomputePreciseJumpTargets):
(JSC::findJumpTargetsForInstruction):
- bytecode/PreciseJumpTargets.h:
- bytecode/PreciseJumpTargetsInlines.h:
(JSC::jumpTargetForInstruction):
(JSC::extractStoredJumpTargetsForInstruction):
(JSC::updateStoredJumpTargetsForInstruction):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::dumpLineColumnEntry):
(JSC::UnlinkedCodeBlock::instructions const):
(JSC::UnlinkedCodeBlock::outOfLineJumpOffset):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::instructionAt const):
(JSC::UnlinkedCodeBlock::bytecodeOffset):
(JSC::UnlinkedCodeBlock::opProfileControlFlowBytecodeOffsets const):
(JSC::UnlinkedCodeBlock::outOfLineJumpOffset):
- bytecode/UnlinkedCodeBlockGenerator.cpp:
(JSC::UnlinkedCodeBlockGenerator::finalize):
(JSC::UnlinkedCodeBlockGenerator::applyModification):
(JSC::UnlinkedCodeBlockGenerator::addOutOfLineJumpTarget):
(JSC::UnlinkedCodeBlockGenerator::outOfLineJumpOffset):
- bytecode/UnlinkedCodeBlockGenerator.h:
(JSC::UnlinkedCodeBlockGenerator::addOpProfileControlFlowBytecodeOffset):
(JSC::UnlinkedCodeBlockGenerator::outOfLineJumpOffset):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::instructions const):
(JSC::BytecodeGenerator::withWriter):
- bytecompiler/BytecodeGeneratorBase.h:
- bytecompiler/BytecodeGeneratorBaseInlines.h:
(JSC::BytecodeGeneratorBase<Traits>::recordOpcode):
(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode16):
(JSC::BytecodeGeneratorBase<Traits>::alignWideOpcode32):
- bytecompiler/StaticPropertyAnalysis.h:
(JSC::StaticPropertyAnalysis::create):
(JSC::StaticPropertyAnalysis::StaticPropertyAnalysis):
- bytecompiler/StaticPropertyAnalyzer.h:
(JSC::StaticPropertyAnalyzer::createThis):
(JSC::StaticPropertyAnalyzer::newObject):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleVarargsCall):
(JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::parseCodeBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGCapabilities.h:
(JSC::DFG::capabilityLevel):
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileExit):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::callerReturnPC):
(JSC::DFG::adjustAndJumpToTarget):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileLoopHint):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- ftl/FTLOperations.cpp:
(JSC::FTL::JSC_DEFINE_JIT_OPERATION):
- generator/Argument.rb:
- generator/DSL.rb:
- generator/Opcode.rb:
- interpreter/AbstractPC.h:
- interpreter/CallFrame.cpp:
(JSC::CallFrame::currentVPC const):
(JSC::CallFrame::setCurrentVPC):
- interpreter/CallFrame.h:
- interpreter/Interpreter.cpp:
(JSC::CatchInfo::CatchInfo):
- interpreter/Interpreter.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_jless):
(JSC::JIT::emit_op_jlesseq):
(JSC::JIT::emit_op_jgreater):
(JSC::JIT::emit_op_jgreatereq):
(JSC::JIT::emit_op_jnless):
(JSC::JIT::emit_op_jnlesseq):
(JSC::JIT::emit_op_jngreater):
(JSC::JIT::emit_op_jngreatereq):
(JSC::JIT::emitSlow_op_jless):
(JSC::JIT::emitSlow_op_jlesseq):
(JSC::JIT::emitSlow_op_jgreater):
(JSC::JIT::emitSlow_op_jgreatereq):
(JSC::JIT::emitSlow_op_jnless):
(JSC::JIT::emitSlow_op_jnlesseq):
(JSC::JIT::emitSlow_op_jngreater):
(JSC::JIT::emitSlow_op_jngreatereq):
(JSC::JIT::emit_op_below):
(JSC::JIT::emit_op_beloweq):
(JSC::JIT::emit_op_jbelow):
(JSC::JIT::emit_op_jbeloweq):
(JSC::JIT::emit_op_unsigned):
(JSC::JIT::emit_compareAndJump):
(JSC::JIT::emit_compareUnsignedAndJump):
(JSC::JIT::emit_compareUnsigned):
(JSC::JIT::emit_compareAndJumpSlow):
(JSC::JIT::emit_op_inc):
(JSC::JIT::emit_op_dec):
(JSC::JIT::emit_op_mod):
(JSC::JIT::emitSlow_op_mod):
(JSC::JIT::emit_op_pow):
(JSC::JIT::emitSlow_op_pow):
(JSC::JIT::emit_op_negate):
(JSC::JIT::emitSlow_op_negate):
(JSC::JIT::emitBitBinaryOpFastPath):
(JSC::JIT::emit_op_bitnot):
(JSC::JIT::emit_op_bitand):
(JSC::JIT::emit_op_bitor):
(JSC::JIT::emit_op_bitxor):
(JSC::JIT::emit_op_lshift):
(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emit_op_rshift):
(JSC::JIT::emit_op_urshift):
(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):
- jit/JITCall.cpp:
(JSC::JIT::emit_op_ret):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::emit_op_call):
(JSC::JIT::emit_op_tail_call):
(JSC::JIT::emit_op_call_eval):
(JSC::JIT::emit_op_call_varargs):
(JSC::JIT::emit_op_tail_call_varargs):
(JSC::JIT::emit_op_tail_call_forward_arguments):
(JSC::JIT::emit_op_construct_varargs):
(JSC::JIT::emit_op_construct):
(JSC::JIT::emitSlow_op_call):
(JSC::JIT::emitSlow_op_tail_call):
(JSC::JIT::emitSlow_op_call_eval):
(JSC::JIT::emitSlow_op_call_varargs):
(JSC::JIT::emitSlow_op_tail_call_varargs):
(JSC::JIT::emitSlow_op_tail_call_forward_arguments):
(JSC::JIT::emitSlow_op_construct_varargs):
(JSC::JIT::emitSlow_op_construct):
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emitSlow_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):
- jit/JITExceptions.cpp:
(JSC::genericUnwind):
- jit/JITInlines.h:
(JSC::JIT::fastPathResumePoint const):
(JSC::JIT::jumpTarget):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_mov):
(JSC::JIT::emit_op_end):
(JSC::JIT::emit_op_jmp):
(JSC::JIT::emit_op_new_object):
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emit_op_is_empty):
(JSC::JIT::emit_op_typeof_is_undefined):
(JSC::JIT::emit_op_is_undefined_or_null):
(JSC::JIT::emit_op_is_boolean):
(JSC::JIT::emit_op_is_number):
(JSC::JIT::emit_op_is_big_int):
(JSC::JIT::emit_op_is_cell_with_type):
(JSC::JIT::emit_op_is_object):
(JSC::JIT::emit_op_to_primitive):
(JSC::JIT::emit_op_to_property_key):
(JSC::JIT::emit_op_set_function_name):
(JSC::JIT::emit_op_not):
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_jundefined_or_null):
(JSC::JIT::emit_op_jnundefined_or_null):
(JSC::JIT::emit_op_jeq_ptr):
(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):
(JSC::JIT::emit_op_jeq):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::emit_op_neq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::emit_op_throw):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_stricteq):
(JSC::JIT::emit_op_nstricteq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_jstricteq):
(JSC::JIT::emit_op_jnstricteq):
(JSC::JIT::emitSlow_op_jstricteq):
(JSC::JIT::emitSlow_op_jnstricteq):
(JSC::JIT::emit_op_to_number):
(JSC::JIT::emit_op_to_numeric):
(JSC::JIT::emit_op_to_string):
(JSC::JIT::emit_op_to_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_identity_with_profile):
(JSC::JIT::emit_op_get_parent_scope):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_switch_char):
(JSC::JIT::emit_op_switch_string):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_enter):
(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emit_op_create_this):
(JSC::JIT::emit_op_check_tdz):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::emitSlow_op_jeq):
(JSC::JIT::emitSlow_op_jneq):
(JSC::JIT::emit_op_debug):
(JSC::JIT::emit_op_loop_hint):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emit_op_check_traps):
(JSC::JIT::emit_op_nop):
(JSC::JIT::emit_op_super_sampler_begin):
(JSC::JIT::emit_op_super_sampler_end):
(JSC::JIT::emitSlow_op_check_traps):
(JSC::JIT::emit_op_new_regexp):
(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emit_op_new_func):
(JSC::JIT::emit_op_new_generator_func):
(JSC::JIT::emit_op_new_async_generator_func):
(JSC::JIT::emit_op_new_async_func):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_func_exp):
(JSC::JIT::emit_op_new_generator_func_exp):
(JSC::JIT::emit_op_new_async_func_exp):
(JSC::JIT::emit_op_new_async_generator_func_exp):
(JSC::JIT::emit_op_new_array):
(JSC::JIT::emit_op_new_array_with_size):
(JSC::JIT::emit_op_profile_type):
(JSC::JIT::emit_op_log_shadow_chicken_prologue):
(JSC::JIT::emit_op_log_shadow_chicken_tail):
(JSC::JIT::emit_op_profile_control_flow):
(JSC::JIT::emit_op_argument_count):
(JSC::JIT::emit_op_get_rest_length):
(JSC::JIT::emit_op_get_argument):
(JSC::JIT::emit_op_get_prototype_of):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_eq):
(JSC::JIT::emit_op_neq):
(JSC::JIT::emit_op_jeq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::emitSlow_op_jeq):
(JSC::JIT::emitSlow_op_jneq):
(JSC::JIT::emit_op_stricteq):
(JSC::JIT::emit_op_nstricteq):
(JSC::JIT::emit_op_jstricteq):
(JSC::JIT::emit_op_jnstricteq):
(JSC::JIT::emitSlow_op_jstricteq):
(JSC::JIT::emitSlow_op_jnstricteq):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emit_op_put_by_val_direct):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::emit_op_put_getter_by_id):
(JSC::JIT::emit_op_put_setter_by_id):
(JSC::JIT::emit_op_put_getter_setter_by_id):
(JSC::JIT::emit_op_put_getter_by_val):
(JSC::JIT::emit_op_put_setter_by_val):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emit_op_in_by_val):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::emit_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emit_op_has_private_brand):
(JSC::JIT::emitSlow_op_has_private_brand):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::emit_op_get_from_arguments):
(JSC::JIT::emit_op_put_to_arguments):
(JSC::JIT::emit_op_get_internal_field):
(JSC::JIT::emit_op_put_internal_field):
(JSC::JIT::emit_op_get_property_enumerator):
(JSC::JIT::emit_op_enumerator_next):
(JSC::JIT::emit_op_enumerator_get_by_val):
(JSC::JIT::emitSlow_op_enumerator_get_by_val):
(JSC::JIT::emit_op_enumerator_in_by_val):
(JSC::JIT::emit_op_enumerator_has_own_property):
- llint/LLIntData.cpp:
(JSC::LLInt::initialize):
- llint/LLIntData.h:
(JSC::LLInt::exceptionInstructions):
(JSC::LLInt::wasmExceptionInstructions):
- llint/LLIntExceptions.cpp:
(JSC::LLInt::returnToThrow):
(JSC::LLInt::wasmReturnToThrow):
- llint/LLIntExceptions.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_trace_operand):
(JSC::LLInt::llint_trace_value):
(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::performLLIntGetByID):
(JSC::LLInt::varargsSetup):
(JSC::LLInt::commonCallEval):
(JSC::LLInt::dispatchToNextInstructionDuringExit):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter.cpp:
(JSC::CLoopRegister::operator const JSInstruction*):
(JSC::CLoop::execute):
(JSC::CLoopRegister::operator const Instruction*): Deleted.
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- llint/WebAssembly.asm:
- runtime/CachedTypes.cpp:
(JSC::CachedInstructionStream::encode):
(JSC::CachedInstructionStream::decode const):
(JSC::CachedCodeBlock::instructions const):
- runtime/CommonSlowPaths.cpp:
(JSC::updateArithProfileForBinaryArithOp):
(JSC::iteratorOpenTryFastImpl):
(JSC::iteratorNextTryFastImpl):
- runtime/CommonSlowPaths.h:
- runtime/JSCConfig.h:
- runtime/JSCJSValue.h:
- runtime/SlowPathFunction.h:
- runtime/VM.cpp:
(JSC::VM::addLoopHintExecutionCounter):
(JSC::VM::getLoopHintExecutionCounter):
(JSC::VM::removeLoopHintExecutionCounter):
- runtime/VM.h:
- wasm/WasmCallee.cpp:
(JSC::Wasm::LLIntCallee::LLIntCallee):
(JSC::Wasm::LLIntCallee::outOfLineJumpOffset):
(JSC::Wasm::LLIntCallee::outOfLineJumpTarget):
- wasm/WasmCallee.h:
- wasm/WasmFunctionCodeBlockGenerator.cpp:
(JSC::Wasm::FunctionCodeBlockGenerator::setInstructions):
(JSC::Wasm::FunctionCodeBlockGenerator::addOutOfLineJumpTarget):
(JSC::Wasm::FunctionCodeBlockGenerator::outOfLineJumpOffset):
- wasm/WasmFunctionCodeBlockGenerator.h:
(JSC::Wasm::FunctionCodeBlockGenerator::constantRegisters const):
(JSC::Wasm::FunctionCodeBlockGenerator::instructions const):
(JSC::Wasm::FunctionCodeBlockGenerator::addJumpTarget):
(JSC::Wasm::FunctionCodeBlockGenerator::numberOfJumpTargets):
(JSC::Wasm::FunctionCodeBlockGenerator::lastJumpTarget):
(JSC::Wasm::FunctionCodeBlockGenerator::outOfLineJumpOffset):
(JSC::Wasm::FunctionCodeBlockGenerator::bytecodeOffset):
(JSC::Wasm::FunctionCodeBlockGenerator::tierUpCounter):
- wasm/WasmGeneratorTraits.h:
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::addSwitch):
(JSC::GenericLabel<Wasm::GeneratorTraits>::setLocation):
- wasm/WasmLLIntTierUpCounter.cpp:
(JSC::Wasm::LLIntTierUpCounter::addOSREntryDataForLoop):
(JSC::Wasm::LLIntTierUpCounter::osrEntryDataForLoop const const):
- wasm/WasmLLIntTierUpCounter.h:
(JSC::Wasm::LLIntTierUpCounter::LLIntTierUpCounter):
- wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
(JSC::LLInt::slow_path_wasm_throw_exception):
(JSC::LLInt::slow_path_wasm_popcount):
(JSC::LLInt::slow_path_wasm_popcountll):
- wasm/WasmSlowPaths.h:
- 10:23 PM Changeset in webkit [290767] by
-
- 2 edits in trunk/Tools
[Tools] Fix linux_get_crash_log.py error logging with python3
https://bugs.webkit.org/show_bug.cgi?id=237404
Reviewed by Fujii Hironori.
Avoid issues generating error logs after 247736@main defaulted to
python3.
- Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator._get_gdb_output): Encode returncode before
appending to bytes.
- 9:08 PM Changeset in webkit [290766] by
-
- 20 edits4 deletes in trunk/Source/WebKit
REGRESSION (r289474): cacheStoragePath is empty in NetworkStorageManager::localOriginStorageManager
https://bugs.webkit.org/show_bug.cgi?id=237335
Reviewed by Chris Dumez.
CacheStorage::Engine::storagePath returns emptyString if salt file under rootDirectory cannot be read or
written, so we need to make sure sandbox extension for rootDirectory is consumed before calling storagePath
(in createNetworkStorageManager of NetworkSession).
This patch also refactors code about adding session in network process. Now we would create
NetworkStorageManager when NetworkSession is created.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::updateQuotaBasedOnSpaceUsageForTesting):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFilesForIndexedDB):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addStorageSession):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::hasLocalStorage):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):
(WebKit::NetworkProcess::syncLocalStorage):
(WebKit::NetworkProcess::resetQuota):
(WebKit::NetworkProcess::clearStorage):
(WebKit::NetworkProcess::didIncreaseQuota):
(WebKit::NetworkProcess::renameOriginInWebsiteData):
(WebKit::NetworkProcess::uiProcessBundleIdentifier):
(WebKit::NetworkProcess::connectionToWebProcessClosed):
(WebKit::NetworkProcess::ensureSession): Deleted.
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::uiProcessBundleIdentifier const): Deleted.
- NetworkProcess/NetworkSession.cpp:
(WebKit::createNetworkStorageManager):
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::invalidateAndCancel):
(WebKit::NetworkSession::lowMemoryHandler):
(WebKit::NetworkSession::addServiceWorkerSession): Deleted.
(WebKit::NetworkSession::addStorageManagerSession): Deleted.
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::storageManager):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/RemoteNetworkingContext.h: Removed.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::requestSpace):
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::uiProcessBundleIdentifier):
- NetworkProcess/curl/RemoteNetworkingContextCurl.cpp: Removed.
- NetworkProcess/mac/RemoteNetworkingContext.mm: Removed.
- NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: Removed.
- PlatformPlayStation.cmake:
- PlatformWin.cmake:
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
(WebKit::WebsiteDataStoreParameters::~WebsiteDataStoreParameters): Deleted.
- Shared/WebsiteDataStoreParameters.h:
(): Deleted.
- SourcesCocoa.txt:
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::addSession):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::resolvedIndexedDBDirectory const):
(WebKit::WebsiteDataStore::resolvedIndexedDatabaseDirectory const): Deleted.
- 9:05 PM Changeset in webkit [290765] by
-
- 14 edits in trunk
Throw proper exception on failed removeEntry() calls
https://bugs.webkit.org/show_bug.cgi?id=237382
<rdar://89232969>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any-expected.txt:
- web-platform-tests/file-system-access/sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.worker-expected.txt:
Source/WebKit:
Updated existing tests.
- NetworkProcess/storage/FileSystemStorageError.h:
(WebKit::convertToException):
- NetworkProcess/storage/FileSystemStorageHandle.cpp:
(WebKit::FileSystemStorageHandle::removeEntry):
LayoutTests:
- storage/filesystemaccess/handle-move-expected.txt:
- storage/filesystemaccess/handle-move-worker-expected.txt:
- storage/filesystemaccess/resources/handle-move.js:
(async test):
- 6:56 PM Changeset in webkit [290764] by
-
- 2 edits in trunk/LayoutTests
WindowServer returned not alive with context:,unresponsive work processor(s)
<rdar://86037417>
Unreviewed test gardening. Skipping tests on iOS due to tests causing WindowServer to crash.
- platform/ios-wk2/TestExpectations:
- 6:44 PM Changeset in webkit [290763] by
-
- 4 edits in trunk/LayoutTests
Unreviewed, reverting r290658.
r290658 broke two tests for iOS, slowing down EWS.
Reverted changeset:
"fast/mediastream/getUserMedia-to-canvas-1.html and
fast/mediastream/getUserMedia-to-canvas-2.html are failing on
MacOS when remote video frame flag is enabled"
https://bugs.webkit.org/show_bug.cgi?id=237042
https://commits.webkit.org/r290658
- 5:03 PM Changeset in webkit [290762] by
-
- 5 edits in trunk/Source/WebCore
ITM: Checkbox state change is not updated in isolated tree
https://bugs.webkit.org/show_bug.cgi?id=237381
rdar://89529486
Reviewed by Chris Fleizach.
Fixes the following test in isolated tree mode:
accessibility/mac/checked-status-tree-items.html
accessibility/aria-switch-checked.html
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
Properly initializes the properties SupportsCheckedState, IsChecked and
ButtonState.
(WebCore::AXIsolatedObject::getOrRetrievePropertyValue):
Uses the new template method propertyValue(PropertyName).
- accessibility/isolatedtree/AXIsolatedObject.h:
(WebCore::AXIsolatedObject::propertyValue const):
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperty):
Updates both IsChecked and ButtonState.
- accessibility/isolatedtree/AXIsolatedTree.h:
- 4:29 PM Changeset in webkit [290761] by
-
- 8 edits in trunk/Source
[WebGPU] Implement GPUDeviceDescriptor.requiredLimits
https://bugs.webkit.org/show_bug.cgi?id=232741
Source/WebCore:
<rdar://problem/85325316>
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-02
Reviewed by Myles C. Maxfield.
Implement IDL bindings for requiredLimits attribute of
GPUDeviceDescriptor.
- Modules/WebGPU/GPUDeviceDescriptor.h:
(WebCore::GPUDeviceDescriptor::convertToBacking const):
- Modules/WebGPU/GPUDeviceDescriptor.idl:
Source/WebCore/PAL:
<rdar://problem/85325316>
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-02
Reviewed by Myles C. Maxfield.
Implement IDL bindings for requiredLimits attribute of
GPUDeviceDescriptor.
- pal/graphics/WebGPU/WebGPUDeviceDescriptor.h:
Source/WebKit:
rdar://problem/85325316
Patch by Dan Glastonbury <djg@apple.com> on 2022-03-02
Reviewed by Myles C. Maxfield.
Implement IDL bindings for requiredLimits attribute of
GPUDeviceDescriptor.
- Shared/WebGPU/WebGPUDeviceDescriptor.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):
- Shared/WebGPU/WebGPUDeviceDescriptor.h:
(WebKit::WebGPU::DeviceDescriptor::encode const):
(WebKit::WebGPU::DeviceDescriptor::decode):
- 4:08 PM Changeset in webkit [290760] by
-
- 5 edits2 adds in trunk
Rendering issues with many dynamically-added sticky elements inside overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=237378
<rdar://83745510>
Reviewed by Cameron McCormack.
Source/WebCore:
A bug was filed describing a symptom where position:sticky elements would eventually
fail to render when many of them were dynamically added inside a non-stacking context
overflow scroll.
Debugging showed that CALayers were accumulating, causing us to hit per-process IOSurface
limits, at which point content fails to render (this is being fixed via rdar://89640915).
Further debugging showed that these layers were unparented, and being entrained by
ScrollingStateStickyNodes, which were accumulating in ScrollingStateTree's m_unparentedNodes.
This happened because with this scrolling configuration, each ScrollingStateStickyNode
is parented via a ScrollingStateOverflowScrollProxyNode which is referenced by entries
in RenderLayerBacking's m_ancestorClippingStack. On cleanup, the ScrollingStateOverflowScrollProxyNode
was unparented first, leaving the ScrollingStateStickyNode in m_unparentedNodes.
The fix is to have ScrollingStateTree::unparentChildrenAndDestroyNode() remove nodes
from m_unparentedNodes.
To test, add a m_unparentedNodes count to scrollingStateTreeAsText output, which means
having scrollingStateTreeAsText() as a member function on ScrollingStateTree.
Test: scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes.html
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText const):
- page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode):
(WebCore::ScrollingStateTree::scrollingStateTreeAsText const):
- page/scrolling/ScrollingStateTree.h:
LayoutTests:
- scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes-expected.txt: Added.
- scrollingcoordinator/scrolling-tree/accumulated-unparented-sticky-nodes.html: Added.
- 3:59 PM Changeset in webkit [290759] by
-
- 7 edits in trunk/Tools
[webkitcorepy] Add Terminal.open_url
https://bugs.webkit.org/show_bug.cgi?id=237386
<rdar://problem/89703756>
Reviewed by Don Olmstead.
Different platforms have different commands to open URLs.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:
(Terminal): Add list of valid URL prefixes.
(Terminal.open_url): If terminal is interactive, open the provided URL.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.main): Invoke Terminal.open_url.
Canonical link: https://commits.webkit.org/248003@main
- 3:25 PM Changeset in webkit [290758] by
-
- 2 edits in trunk/Source/WebKit
[AppSSO] Correct logging messages to avoid confusing screeners that an error has occurred
https://bugs.webkit.org/show_bug.cgi?id=237390
<rdar://problem/89710486>
Reviewed by Simon Fraser.
The phrasing of the message in 'SOAuthorizationCoordinator::tryAuthorize' when a URL is not relevant for
AppSSO flows is:
AUTHORIZATIONCOORDINATOR_RELEASE_LOG("tryAuthorize: Cannot authorize the requested URL.");
This leads people spelunking logs to believe that the URL can't be authorized (perhaps due to an error).
Instead, we should more accurately report that the URL is not one that is mediated through an AppSSO flow,
and so no AppSSO processing is needed.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm:
(WebKit::SOAuthorizationCoordinator::tryAuthorize):
- 3:09 PM Changeset in webkit [290757] by
-
- 2 edits in trunk/Tools
Unreviewed, address post-landing feedback from Darin on r290743
- WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseMoveTo):
- 2:28 PM Changeset in webkit [290756] by
-
- 39 edits4 deletes in trunk
[css] Implement 'text-decoration' as a shorthand.
https://bugs.webkit.org/show_bug.cgi?id=237175
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update tests to take into account that 'text-decoration' is a shorthand.
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/css-variables/variable-presentation-attribute-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
Source/WebCore:
The 'text-decoration' property was considered to be a longhand, sharing
a computed value with 'text-decoration-line'.
This patch switches 'text-decoration' into a shorthand of the following
longhands: 'text-decoration-line', 'text-decoration-thickness',
'text-decoration-style' and 'text-decoration-color'. This is according
to https://www.w3.org/TR/css-text-decor-4/#text-decoration-property
For now I'm keeping the grammar as-is, so 'text-decoration' will only
accept values that are valid in 'text-decoration-line', but will set
the other longhands to the initial value. This should probably change
in a follow-up.
I'm also keeping '-webkit-text-decoration' as-is, as a shorthand of
'text-decoration-{line,style,color}', not including thickness for some
obscure reason. '-webkit-text-decoration' should probably be removed
anyways.
There is a bunch of editing code that was getting/setting/removing
'text-decoration' as a longhand, so I'm switching that to:
- Use 'text-decoration-line' when getting values.
- Use 'text-decoration' when setting values, and use a string for the value, this parses it and sets each longhand to the correct value.
- Use 'text-decoration' get removing declarations, effectively removing all longhands.
This preserves the previous behavior as much as possible.
Tests: fast/css/getComputedStyle/computed-style.html
fast/css/getComputedStyle/computed-style-without-renderer.html
fast/css/getComputedStyle/getComputedStyle-text-decoration.html
fast/css/style-enumerate-properties.html
fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand.html
fast/css3-text/css3-text-decoration/text-decoration-dashed.html
fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed.html
fast/css3-text/css3-text-decoration/text-decoration-dotted.html
imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html
imported/w3c/web-platform-tests/css/css-variables/variable-presentation-attribute.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html
svg/css/getComputedStyle-basic.xhtml
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::asText const):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::styleWithResolvedTextDecorations const):
(WebCore::EditingStyle::collapseTextDecorationProperties):
(WebCore::textDecorationValueList):
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement const):
(WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode const):
(WebCore::EditingStyle::mergeStyle):
(WebCore::EditingStyle::removeEquivalentProperties):
(WebCore::reconcileTextDecorationProperties):
(WebCore::StyleChange::StyleChange):
(WebCore::setTextDecorationProperty):
(WebCore::StyleChange::extractTextStyles):
(WebCore::diffTextDecorations):
(WebCore::extractPropertiesNotIn):
- editing/cocoa/HTMLConverter.mm:
(HTMLConverterCaches::propertyValueForNode):
(HTMLConverter::computedAttributesForElement):
- editing/markup.cpp:
(WebCore::serializePreservingVisualAppearanceInternal):
- style/PropertyAllowlist.cpp:
(WebCore::Style::isValidCueStyleProperty):
LayoutTests:
Update tests to take into account that 'text-decoration' is a shorthand.
- editing/pasteboard/data-transfer-get-data-on-drop-rich-text-expected.txt:
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-text-decoration-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-text-decoration.html:
- fast/css/getComputedStyle/resources/property-names.js:
- fast/css/style-enumerate-properties-expected.txt:
- fast/css/style-enumerate-properties.html:
- fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand-expected.txt:
- fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-shorthand.html:
- fast/css3-text/css3-text-decoration/text-decoration-dashed-expected-mismatch.html:
- fast/css3-text/css3-text-decoration/text-decoration-dashed.html:
- fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed-expected-mismatch.html:
- fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed.html:
- fast/css3-text/css3-text-decoration/text-decoration-dotted-expected-mismatch.html:
- fast/css3-text/css3-text-decoration/text-decoration-dotted.html:
- fast/events/input-events-paste-rich-datatransfer-expected.txt:
- platform/glib/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
- platform/glib/svg/css/getComputedStyle-basic-expected.txt: Removed.
- platform/gtk/fast/events/input-events-paste-rich-datatransfer-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
- 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: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- svg/css/getComputedStyle-basic-expected.txt:
- 2:07 PM Changeset in webkit [290755] by
-
- 2 edits in trunk/Source/WebKit
[WebAuthn] Completion handler is not called when WebAuthn invoked without proper entitlements
https://bugs.webkit.org/show_bug.cgi?id=237380
<rdar://problem/89700242>
Reviewed by Chris Dumez.
WebAuthn is not permitted outside of Web Browser applications. When an application that lacks
the full web browser entitlement attempts to invoke WebAuthn flows, we do an early return. However,
the completion handler for this flow is bypassed, preventing applications from being informed of
this problem.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):
(WebKit::WebAuthenticatorCoordinator::isUserVerifyingPlatformAuthenticatorAvailable):
- 1:25 PM Changeset in webkit [290754] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Seatbelt sandbox profile entitlement is deprecated
https://bugs.webkit.org/show_bug.cgi?id=237374
Reviewed by Brent Fulgham.
Replace with new entitlement.
- Scripts/process-entitlements.sh:
- 1:12 PM Changeset in webkit [290753] by
-
- 2 edits in trunk/Tools
[Python-3] Invoke webkit-patch with Python 3 by default
https://bugs.webkit.org/show_bug.cgi?id=231591
<rdar://problem/84153640>
Reviewed by Ryan Haddad.
- Scripts/webkit-patch: Change shebang to Python 3.
- 1:10 PM Changeset in webkit [290752] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Hard link AVPictureInPictureController
https://bugs.webkit.org/show_bug.cgi?id=237227
Reviewed by Brent Fulgham.
Hard linking instead of soft linking should be a small performance improvement.
- Configurations/WebKit.xcconfig:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- 1:04 PM Changeset in webkit [290751] by
-
- 5 edits in trunk/LayoutTests
[WebAuthn] Remove obsolete failed attestation tests
https://bugs.webkit.org/show_bug.cgi?id=237346
rdar://problem/89647260
Reviewed by Brent Fulgham.
The removed items tested that creation fails whenever attestation fails, however
we've changed behavior such that creation succeeds with 'none' attestation in this
case, making these failure tests obsolete.
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local-silent.https.html:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
- 12:59 PM Changeset in webkit [290750] by
-
- 2 edits in trunk/LayoutTests
[ iOS Debug ] editing/async-clipboard/* 20 tests are flaky timeouts on iOS.
https://bugs.webkit.org/show_bug.cgi?id=237372
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-03-02
- platform/ios-wk2/TestExpectations:
- 12:56 PM Changeset in webkit [290749] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r290539): [ iOS ] 2X http/wpt/webauthn/public-key-credential-create-failure-local (layout-tests) are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=237346
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 12:53 PM BuildingCairoOnWindows edited by
- (diff)
- 12:53 PM Changeset in webkit [290748] by
-
- 5 edits in trunk/Tools
[git-webkit] Derive branch name from bug title
https://bugs.webkit.org/show_bug.cgi?id=237284
<rdar://problem/89578241 >
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/branch.py:
(Branch.to_branch_name): Convert string (particularly a bug title) to potential branch name.
(Branch.main): If provided branch name is actually a bug number or URL, use the title
of that bug as the branch name.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/branch_unittest.py:
(TestBranch):
(TestBranch.test_prompt_git):
(TestBranch.test_prompt_number):
(TestBranch.test_prompt_url):
(TestBranch.test_invalid_branch):
(TestBranch.test_to_branch_name):
Canonical link: https://commits.webkit.org/247992@main
- 12:41 PM Changeset in webkit [290747] by
-
- 9 edits in trunk
[git-webkit] Sync personal fork by default
https://bugs.webkit.org/show_bug.cgi?id=237324
<rdar://problem/89618617>
Reviewed by Dewei Zhu.
- metadata/project_config: Add webkitscmpy.update-fork option.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git): Add new webkitscmpy.update-fork option.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.main): If we are rebasing the source branch, we should push that synced branch
to a user's personal fork, if such a fork exists.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
Canonical link: https://commits.webkit.org/247991@main
- 12:18 PM Changeset in webkit [290746] by
-
- 15 edits in trunk
[iOS] Copy context menu action should be titled "Copy Link" when long pressing a non-image link
https://bugs.webkit.org/show_bug.cgi?id=237367
rdar://77397886
Reviewed by Devin Rousso.
Source/WebCore:
Add a localizable string for "Copy Link". See WebKit/ChangeLog for more details.
- en.lproj/Localizable.strings:
Source/WebKit:
Change the current title of the "Copy" context menu action to "Copy Link", when showing the context menu for a
non-image link. See below for more details.
Tests: fast/events/touch/ios/long-press-on-link.html
fast/events/touch/ios/long-press-on-image.html
- UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
(-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:userInfo:]):
(-[_WKActivatedElementInfo _isImage]):
Add a helper method to return whether or not the activated element represents an image. Crucially, this will
return YES in the case of image links, even though the activated element type is _WKActivatedElementTypeLink.
We consult this below to still show "Copy" in the case of image links, instead of "Copy Link".
- UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
- UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
(+[_WKElementAction _elementActionWithType:info:assistant:]):
Add a
_WKActivatedElementInfoargument to-_elementActionWithType:assistant:, and use this to set a custom
title for the menu action in the case of the Copy action for non-image links.
(+[_WKElementAction _elementActionWithType:assistant:]): Deleted.
- UIProcess/API/Cocoa/_WKElementActionInternal.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant _appendOpenActionsForURL:actions:elementInfo:]):
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
Additionally use
-_isImageinstead of-imagehere when supplying several default Visual Look Up-related
items;-imageis misleading here, since it returns a non-null result even in the case of non-image elements,
if a node snapshot was requested by the client. It's also a bit wasteful, since it means we currently create an
image from the bitmap data while performing this check, when we really only need to know whether the hit-tested
element was an image element.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _simulateElementAction:atLocation:]):
(-[WKContentView _contentsOfUserInterfaceItem:]):
(-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]):
Include the titles of all visible menu items as an additional argument in the "contents of user interface item"
dictionary, in the case of context menus. To do this, we take advantage of the-updateVisibleMenuWithBlock:
API, which passes the currently visibleUIMenu, to collect the titles of each visible menu item, and then
simply return the visible menu as-is.
See adjusted layout tests for more information.
(-[WKContentView contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
Move the call to
-_didShowContextMenuto the animation completion block, such that we invoke the testing
completion handler fordidShowContextMenuCallbackafter the menu is actually visible. Importantly, this allows
us to query the list of visible menu item titles above, by calling-updateVisibleMenuWithBlock:.
- UIProcess/mac/DisplayCaptureSessionManager.mm:
(WebKit::alertForWindowSelection):
Drive-by fix: add quotes around the description argument to the UI string macro to fix an error when running
theupdate-webkit-localizable-stringsscript.
LayoutTests:
Adjust a couple of layout tests to check for items labeled "Copy" (in the case of an image) and "Copy Link" (in
the case of a link).
- fast/events/touch/ios/long-press-on-image-expected.txt:
- fast/events/touch/ios/long-press-on-image.html:
- fast/events/touch/ios/long-press-on-link-expected.txt:
- fast/events/touch/ios/long-press-on-link.html:
- 11:58 AM Changeset in webkit [290745] by
-
- 4 edits2 adds in trunk/LayoutTests
[Cocoa] The behavior of navigator-language-ru changed in Monterey / iOS 15
https://bugs.webkit.org/show_bug.cgi?id=237384
<rdar://problem/80335706>
Unreviewed test gardening.
Add a new test for the new behavior, but keep the old one too for older OSes.
- fast/text/international/system-language/navigator-language/navigator-language-ru-2-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-ru-2.html: Added.
- platform/ios-14/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 11:47 AM Changeset in webkit [290744] by
-
- 2 edits in trunk/Source/WebKit
[WebAuthn] Ensure presenter gets dismissed on iOS
https://bugs.webkit.org/show_bug.cgi?id=237336
rdar://81609371
Reviewed by Brent Fulgham.
Always call [m_presenter dismissWithError] to ensure presenter gets dismissed.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::dimissPresenter):
- 11:39 AM Changeset in webkit [290743] by
-
- 13 edits in trunk
Mousemove events double-firing in Safari
https://bugs.webkit.org/show_bug.cgi?id=237342
<rdar://88025610>
Reviewed by Wenson Hsieh.
Source/WebKit:
When we constructed a WebViewImpl, we would add a mouse tracking area to the view,
so that mouseMoved/mouseEntered/mouseExited would get called and we would be able
to forward these mouse events to the WebContent process. However, when the view
becomes first responder, an implicit mouse tracking area also gets added. As a
result, we would get duplicate calls to mouseMoved/mouseEntered/mouseExited.
We consulted with the AppKit team and their recommendation was to use a different
owner object for our mouse tracking area and have that object forward the
mouseMoved/mouseEntered/mouseExited calls to our WebViewImpl. In doing so, we
can stop forwarding mouseMoved/mouseEntered/mouseExited calls from WKWebView &
WKView, which are NOT for our mouse tracking area.
No new tests, I tried but wasn't able to write an API test for this.
I had trouble making the test window key so that the view would receive
the (duplicate) mousemove events. I validated via logging that we are no longer
getting duplicate mousemove events. I also checked on
https://www.vsynctester.com/testing/mouse.html that the output now looks correct.
- UIProcess/API/Cocoa/WKViewPrivate.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/mac/WKView.mm:
(-[WKView _simulateMouseMove:]):
(-[WKView mouseMoved:]): Deleted.
(-[WKView mouseEntered:]): Deleted.
(-[WKView mouseExited:]): Deleted.
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _simulateMouseMove:]):
(-[WKWebView mouseMoved:]): Deleted.
(-[WKWebView mouseEntered:]): Deleted.
(-[WKWebView mouseExited:]): Deleted.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKMouseTrackingObserver initWithViewImpl:]):
(-[WKMouseTrackingObserver mouseMoved:]):
(-[WKMouseTrackingObserver mouseEntered:]):
(-[WKMouseTrackingObserver mouseExited:]):
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::updatePrimaryTrackingAreaOptions):
(WebKit::WebViewImpl::setPrimaryTrackingArea): Deleted.
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
Tools:
Call [WKWebView _simulateMouseMove:] SPI instead of calling [WKWebView mouseMoved:]
since the latter calls are now being ignored.
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView mouseMoveToPoint:withFlags:]):
- TestWebKitAPI/mac/PlatformWebViewMac.mm:
(TestWebKitAPI::PlatformWebView::simulateMouseMove):
- WebKitTestRunner/mac/EventSenderProxy.mm:
(WTR::EventSenderProxy::mouseMoveTo):
- 11:26 AM Changeset in webkit [290742] by
-
- 1 copy in tags/Safari-614.1.3.8
Tag Safari-614.1.3.8.
- 11:21 AM Changeset in webkit [290741] by
-
- 5 edits in trunk
[web-animations] setting the composite property on a keyframe effect should invalidate the target style
https://bugs.webkit.org/show_bug.cgi?id=237356
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context-filling-expected.txt:
Source/WebCore:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setComposite):
- animation/KeyframeEffect.h:
(WebCore::KeyframeEffect::setComposite): Deleted.
- 11:06 AM Changeset in webkit [290740] by
-
- 9 edits in branches/safari-614.1.3-branch/Source
Versioning.
WebKit-7614.1.3.8
- 10:59 AM Changeset in webkit [290739] by
-
- 10 edits in trunk
Add assertion that no two sessions share the same general storage directory
https://bugs.webkit.org/show_bug.cgi?id=236844
<rdar://problem/89178566>
Reviewed by Chris Dumez.
Source/WebKit:
rdar://89190571 shows that there can be two WebsiteDataStores using the same general storage directory, when
initializing network process. This can lead to corruption because storage code of each session runs on its own
WorkQueue (or thread) in network process. If two sessions (WebsiteDataStores) use the same directory, the
directory and its files may be accessed concurrently. The correct usage is creating different persistent
sessions with different paths. Let's add an assertion to help find problematic use case.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::cacheStorageDirectory const):
(WebKit::WebsiteDataStore::resolvedGeneralStorageDirectory const):
(WebKit::WebsiteDataStore::generalStorageDirectory const): Deleted.
Tools:
Update the tests where two WebsiteDataStores are created with the same general storage directory.
- TestWebKitAPI/Tests/WebKitCocoa/PrivateClickMeasurement.mm:
(emptyObservationsDBPath):
(emptyPcmDBPath):
(cleanUp):
- TestWebKitAPI/Tests/WebKitCocoa/PushAPI.mm:
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WebPushDaemon.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(runWebsiteDataStoreCustomPaths):
- 10:53 AM Changeset in webkit [290738] by
-
- 2 edits in trunk/Source/WebCore
AX: Handle null FileList in RenderFileUploadControl::fileTextValue()
https://bugs.webkit.org/show_bug.cgi?id=237349
Reviewed by Chris Fleizach.
In rare circumstances, it's possible for the FileList associated
with RenderFileUploadControl::inputElement (HTMLInputElement::files())
to be null. This causes a crash in RenderFileUploadControl::fileTextValue().
In this patch, we avoid this crash by handling a null
FileList
and returning a nullString.
- rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::fileTextValue const):
Handle nullinput.files()and return a nullStringrather thanASSERTing.
- 10:52 AM Changeset in webkit [290737] by
-
- 1 copy in branches/safari-test-branch
New branch.
- 10:48 AM Changeset in webkit [290736] by
-
- 2 edits in trunk/Tools
Add test coverage for deleting FileSystem data when file is being written
https://bugs.webkit.org/show_bug.cgi?id=237353
Reviewed by Chris Dumez.
Verify that file can be removed from disk, and active FileSystemSyncAccessHandle is invalidated in this case.
- TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:
- 10:47 AM Changeset in webkit [290735] by
-
- 3 edits2 adds in trunk
Outline-width with transition don't animate correctly
https://bugs.webkit.org/show_bug.cgi?id=173708
Reviewed by Antti Koivisto.
Source/WebCore:
Account for a change in outline size when checking whether a style change affects
visual overflow.
No new test for this, I'm not sure how to write one since the issue is failing to
repaint during an animation but WKTR seems to force a repaint for reftests.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeAffectsVisualOverflow const):
LayoutTests:
Add a repaint test that checks that the outline is accounted for during the transition.
- fast/repaint/outline-transition-expected.txt: Added.
- fast/repaint/outline-transition.html: Added.
- 9:09 AM Changeset in webkit [290734] by
-
- 3 edits2 adds in trunk
[RTL] Image alt text has incorrect bidi reordering
https://bugs.webkit.org/show_bug.cgi?id=237366
<rdar://problem/89687229>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/images/alt-text-with-right-to-left-inline-direction-reordering.html
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced): Enable bidi reordering.
LayoutTests:
- fast/images/alt-text-with-right-to-left-inline-direction-reordering-expected-mismatch.html: Added.
- fast/images/alt-text-with-right-to-left-inline-direction-reordering.html: Added.
- 9:07 AM Changeset in webkit [290733] by
-
- 11 edits in trunk/Source
Rename MediaSampleAVFObjC::createImageSample to MediaSampleAVFObjC::createFromPixelBuffer
https://bugs.webkit.org/show_bug.cgi?id=237354
Reviewed by Eric Carlson.
Source/WebCore:
No change of behavior, this is a renaming.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toMediaSample):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
(WebCore::MediaSampleAVFObjC::createFromPixelBuffer):
(WebCore::MediaSampleAVFObjC::createImageSample): Deleted.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::createFromPixelBuffer):
(WebCore::MediaSampleAVFObjC::createImageSample): Deleted.
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::paintCompositedResultsToMediaSample):
- platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::adaptVideoSample):
Source/WebKit:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::createDecoderCallback):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::rotateVideoFrameIfNeeded):
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
(WebKit::SharedVideoFrameReader::read):
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::RemoteVideo::videoSampleAvailable):
- 8:59 AM Changeset in webkit [290732] by
-
- 13 edits in trunk/Source/WebKit
IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to compile
https://bugs.webkit.org/show_bug.cgi?id=237195
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-02
Reviewed by Antti Koivisto.
Reland after revert:
Add missing includes to JSC inlines, needed for ASAN build. Compile
failure was hidden my unified build.
IPC testing API needs convert message data buffer, IPC::Decoder, to
JSValue. This is a run-time operation.
IPC message decoding is based on templates, a compile time operation.
IPC generator generates MessageArgumentDescriptions.cpp with
a big switch. The switch has a case for each message name. The case would
call templated jsValueForDecodedArguments<Arguments>, where the Arguments
is the type tuple for the message arguments.
The above would mean that MessageArgumentDescriptions would need to
include all the headers for all the messages in WebKit in order
to populate the Arguments tuple for particular message.
This would cause MessageArgumentDescriptions to be slow to compile because
it would need all the headers in Source/WebKit related to message parameter types.
This would show up as slow compiles that would consume much memory (5-6gb) and do a
lot of work.
It would also have to compile the MessageArgumentDescriptions each time
any of the headers were touched.
Change this so that the big switch calls a declared but not defined
template jsValueForDecodedMessage<MessageName> for each MessageName case in the
switch.
Instantiate the template for each message in the *MessageReceiver.cpp file
that each message receiver has. This file already has to include all the
headers used for that particular message receiver. These files are small and compile
fast.
After this change MessageArgumentDescriptions.cpp only includes the message
definition headers, does not use much more than the standard 1gb+ of memory
while compiling and is relatively fast to compile. Also if any of the dependent
headers are touched, only the corresponding small *MessageReceiver.cpp files are compiled.
This change is needed for further improve the JS testing API implementation.
Adding new operations that employ the same strategy, eg. switch and a complex
template instantiation, would possibly just make the matter worse. New operations
that are needed are message sends, which use templates similarly to the message
decode case that is implement here.
This change regenerates the checked-in test content that can be used to review
what kind of changes the real MessageArgumentDescriptions.cpp and MessageReceiver.cpps
get.
- Platform/IPC/JSIPCBinding.h:
- Scripts/webkit/messages.py:
(generate_message_handler):
(generate_js_value_conversion_function):
(generate_message_argument_description_implementation):
- Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::jsValueForArguments):
(IPC::jsValueForReplyArguments):
- Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithCVPixelBuffer_SendCVPixelBuffer>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithCVPixelBuffer_ReceiveCVPixelBuffer>):
- Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithIfMessage_LoadURL>):
- Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithImageData_SendImageData>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithImageData_ReceiveImageData>):
- Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadSomething>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TouchEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_AddEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadSomethingElse>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DidReceivePolicyDecision>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_Close>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_PreferencesDidChange>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SendDoubleAndFloat>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SendInts>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_CreatePlugin>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_RunJavaScriptAlert>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_GetPlugins>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithLegacyReceiver_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithLegacyReceiver_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TestParameterAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TemplateTest>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SetVideoLayerID>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DidCreateWebProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_InterpretKeyEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DeprecatedOperation>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_ExperimentalOperation>):
- Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithSemaphore_SendSemaphore>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSemaphore_ReceiveSemaphore>):
- Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithStreamBuffer_SendStreamBuffer>):
- Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendString>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendStringSynchronized>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendMachSendRight>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_ReceiveMachSendRight>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendAndReceiveMachSendRight>):
- Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessage>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestSyncMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestSyncMessage>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestSynchronousMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestSynchronousMessage>):
- Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadSomething>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TouchEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_AddEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadSomethingElse>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DidReceivePolicyDecision>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_Close>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_PreferencesDidChange>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SendDoubleAndFloat>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SendInts>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_CreatePlugin>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_RunJavaScriptAlert>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_GetPlugins>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutAttributes_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutAttributes_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TestParameterAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TemplateTest>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SetVideoLayerID>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DidCreateWebProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_InterpretKeyEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DeprecatedOperation>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_ExperimentalOperation>):
- 8:45 AM Changeset in webkit [290731] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WP] Stop generating certain sandbox violation reports
https://bugs.webkit.org/show_bug.cgi?id=237364
Reviewed by Chris Dumez.
Stop generating certain common sandbox violation reports in the WebContent process on iOS, since that
can improve performance. We will still get telemetry for these violations.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 7:27 AM Changeset in webkit [290730] by
-
- 15 edits in trunk
[web-animations] changes to font-size should recompute keyframes
https://bugs.webkit.org/show_bug.cgi?id=237357
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-animations/responsive/column-width-001-expected.txt:
- web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt:
- web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context-filling-expected.txt:
- web-platform-tests/web-animations/responsive/fontSize-expected.txt:
- web-platform-tests/web-animations/responsive/perspective-expected.txt:
- web-platform-tests/web-animations/responsive/textIndent-expected.txt:
- web-platform-tests/web-animations/responsive/to-style-change-expected.txt:
Source/WebCore:
When we compute keyframes, it's possible that some values are specified using "em" units
and thus dependent on the current value for font-size. If the font-size changes over time,
we must recompute keyframes to ensure that any such value is updated.
To ensure that we correctly determine when the font-size changed, we pass a pointer to the
style seen when we last udpated animations so that we only consider a change in font-size
provided we've ever resolved animations.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::propertyAffectingKeyframeResolutionDidChange):
(WebCore::KeyframeEffect::propertyAffectingLogicalPropertiesDidChange): Deleted.
- animation/KeyframeEffect.h:
- animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::applyKeyframeEffects):
- animation/KeyframeEffectStack.h:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
- style/Styleable.h:
(WebCore::Styleable::applyKeyframeEffects const):
- 7:23 AM Changeset in webkit [290729] by
-
- 6 edits in trunk
[css-cascade] Support 'revert-layer' in @keyframes
https://bugs.webkit.org/show_bug.cgi?id=237152
Reviewed by Antti Koivisto.
Source/WebCore:
In @keyframes, 'revert-layer' should roll back the cascaded value to
author origin. Resolver::styleForKeyframe already has the base style of
the element, so we only need to avoid applying properties with the
'revert-layer' value.
Test: imported/w3c/web-platform-tests/css/css-cascade/revert-layer-010.html.html
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::applyProperty):
- style/StyleBuilderState.h:
(WebCore::Style::BuilderState::setIsBuildingKeyframeStyle):
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::styleForKeyframe):
LayoutTests:
Expect test to pass.
- 7:06 AM Changeset in webkit [290728] by
-
- 15 edits in trunk/Source
[GTK] setDragImage ignores offset
https://bugs.webkit.org/show_bug.cgi?id=237292
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-03-02
Reviewed by Carlos Garcia Campos.
Source/WebCore:
To fix this, I need DataTransfer to expose its dragLocation, which is the offset passed to
setDragImage.
- dom/DataTransfer.h:
(WebCore::DataTransfer::dragLocation const):
Source/WebKit:
Plumb the offset from the last place we have access to a DataTransfer object down to
DragSource, where it's ultimately used. This allows web content to properly position the
drag image under the mouse cursor.
- UIProcess/API/gtk/DragSource.h:
- UIProcess/API/gtk/DragSourceGtk3.cpp:
(WebKit::DragSource::begin):
- UIProcess/API/gtk/DragSourceGtk4.cpp:
(WebKit::DragSource::begin):
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::startDrag):
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseStartDrag):
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::startDrag):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
(WebKit::WebDragClient::startDrag):
- 7:03 AM Changeset in webkit [290727] by
-
- 2 edits in trunk
[CMake] Build failure with libstdc++ (>= 6) when cross-compiling (fatal error: stdlib.h: No such file or directory)
https://bugs.webkit.org/show_bug.cgi?id=161697
<rdar://problem/89613152>
Reviewed by Carlos Garcia Campos.
- Source/cmake/WebKitCompilerFlags.cmake: Go through CMake instead of the plain "env"
program for the sake of portability.
- 6:49 AM Changeset in webkit [290726] by
-
- 3 edits2 adds in trunk
[RTL] Incorrect alt text position in right to left context
https://bugs.webkit.org/show_bug.cgi?id=237352
<rdar://problem/89657704>
Reviewed by Simon Fraser.
Source/WebCore:
Take the inline direction into account when computing the alt text location.
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced): This is mostly moving things around/modernizing it.
LayoutTests:
- fast/images/alt-text-with-right-to-left-inline-direction-expected-mismatch.html: Added.
- fast/images/alt-text-with-right-to-left-inline-direction.html: Added.
- 5:49 AM Changeset in webkit [290725] by
-
- 2 edits in trunk/Source/WebKit
Annotate LibWebRTC with thread safety macros
https://bugs.webkit.org/show_bug.cgi?id=237321
<rdar://problem/89625577>
Unreviewed, addressing post commit style change.
No change of behavior.
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
- 12:50 AM Changeset in webkit [290724] by
-
- 6 edits in trunk
REGRESSION(r216096): [GTK] Test accessibility/gtk/menu-list-unfocused-notifications.html is failing since r216096
https://bugs.webkit.org/show_bug.cgi?id=171598
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Enable accessibility when a WTR observer is added.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::addNotificationObserver):
LayoutTests:
Since r216096 the notification for menu list changes is deffered, so we need to wait one run loop cycle to get
the notifications. Also update the test to ignore notifications that are not interesting like AXLoadComplete and
AXElementBusyChanged, and update expectations for the new behavior with ATSPI where the notification is emitted
on the menu and not the combo.
- accessibility/gtk/menu-list-unfocused-notifications-expected.txt:
- accessibility/gtk/menu-list-unfocused-notifications.html:
- platform/gtk/TestExpectations:
- 12:49 AM Changeset in webkit [290723] by
-
- 3 edits in trunk/LayoutTests
[ATSPI] Test accessibility/select-element-at-index.html is failing
https://bugs.webkit.org/show_bug.cgi?id=237315
Reviewed by Adrian Perez de Castro.
This is because the test contains platform specific behavior for ATK that was migrated to ATSPI by mistake. We
should behave like all other ports now.
- accessibility/select-element-at-index.html:
- platform/glib/TestExpectations:
- 12:09 AM Changeset in webkit [290722] by
-
- 31 edits7 copies3 adds in trunk
Add SPI _WKDataTask
https://bugs.webkit.org/show_bug.cgi?id=237234
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-02
Reviewed by Tim Horton.
Source/WebKit:
When I added WKWebView._requestResource:completionHandler: I overlooked a few things.
First, it is unable to support HTTPS because I didn't hook up authentication challenge handling to it.
Second, it is unable to have a maximum accepted response length, which is a requirement for an adopter.
To make these possible, I made _WKDataTask which is related to WKDownload and NSURLSessionDataTask.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::dataTaskWithRequest):
(WebKit::NetworkProcess::cancelDataTask):
(WebKit::NetworkProcess::requestResource): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::dataTaskWithRequest):
(WebKit::NetworkSession::cancelDataTask):
(WebKit::NetworkSession::requestResource): Deleted.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::dataTaskWithRequest):
(WebKit::NetworkSessionCocoa::cancelDataTask):
(WebKit::NetworkSessionCocoa::removeDataTask):
(WebKit::NetworkSessionCocoa::requestResource): Deleted.
- NetworkProcess/cocoa/WKURLSessionTaskDelegate.h: Copied from Source/WebKit/Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.h.
- NetworkProcess/cocoa/WKURLSessionTaskDelegate.mm: Added.
(-[WKURLSessionTaskDelegate initWithIdentifier:session:]):
(-[WKURLSessionTaskDelegate connection]):
(-[WKURLSessionTaskDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[WKURLSessionTaskDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKURLSessionTaskDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(-[WKURLSessionTaskDelegate URLSession:dataTask:didReceiveData:]):
(-[WKURLSessionTaskDelegate URLSession:task:didCompleteWithError:]):
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- Shared/API/APIObject.h:
- Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.h:
- Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.mm:
(WebKit::fromAuthenticationChallengeDisposition):
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- Shared/DataTaskIdentifier.h: Copied from Source/WebKit/Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.h.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/API/APIDataTask.cpp: Copied from Source/WebKit/UIProcess/API/APIInspectorExtensionClient.h.
(API::DataTask::setClient):
(API::DataTask::cancel):
(API::DataTask::DataTask):
- UIProcess/API/APIDataTask.h: Copied from Source/WebKit/UIProcess/API/APIInspectorExtensionClient.h.
(API::DataTask::create):
(API::DataTask::page):
(API::DataTask::client const):
- UIProcess/API/APIDataTaskClient.h: Copied from Source/WebKit/UIProcess/API/APIInspectorExtensionClient.h.
(API::DataTaskClient::create):
(API::DataTaskClient::~DataTaskClient):
(API::DataTaskClient::didReceiveChallenge const):
(API::DataTaskClient::willPerformHTTPRedirection const):
(API::DataTaskClient::didReceiveResponse const):
(API::DataTaskClient::didReceiveData const):
(API::DataTaskClient::didCompleteWithError const):
- UIProcess/API/APIInspectorExtensionClient.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _dataTaskWithRequest:completionHandler:]):
(-[WKWebView _requestResource:completionHandler:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/_WKDataTask.h: Copied from Source/WebKit/UIProcess/API/APIInspectorExtensionClient.h.
- UIProcess/API/Cocoa/_WKDataTask.mm: Added.
(-[_WKDataTask cancel]):
(-[_WKDataTask webView]):
(-[_WKDataTask delegate]):
(-[_WKDataTask setDelegate:]):
(-[_WKDataTask dealloc]):
(-[_WKDataTask _apiObject]):
- UIProcess/API/Cocoa/_WKDataTaskDelegate.h: Added.
- UIProcess/API/Cocoa/_WKDataTaskInternal.h: Copied from Source/WebKit/Shared/Authentication/cocoa/AuthenticationChallengeDispositionCocoa.h.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::dataTaskWithRequest):
(WebKit::NetworkProcessProxy::dataTaskReceivedChallenge):
(WebKit::NetworkProcessProxy::dataTaskWillPerformHTTPRedirection):
(WebKit::NetworkProcessProxy::dataTaskDidReceiveResponse):
(WebKit::NetworkProcessProxy::dataTaskDidReceiveData):
(WebKit::NetworkProcessProxy::dataTaskDidCompleteWithError):
(WebKit::NetworkProcessProxy::requestResource): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dataTaskWithRequest):
(WebKit::WebPageProxy::requestResource): Deleted.
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/PlatformHave.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(-[TestDataTaskDelegate dataTask:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestDataTaskDelegate dataTask:didReceiveResponse:decisionHandler:]):
(-[TestDataTaskDelegate dataTask:didReceiveData:]):
(-[TestDataTaskDelegate dataTask:didCompleteWithError:]):
(TEST):
Mar 1, 2022:
- 11:08 PM Changeset in webkit [290721] by
-
- 17 edits in trunk/Source
Remove RemoteVideoSample support from ImageTransferSessionVT
https://bugs.webkit.org/show_bug.cgi?id=237318
Reviewed by Eric Carlson.
Source/WebCore:
No change of behavior.
- platform/graphics/cv/ImageTransferSessionVT.h:
- platform/graphics/cv/ImageTransferSessionVT.mm:
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeVideoCaptureSource.cpp:
Source/WebKit:
Remove no longer needed forward declaration or include of RemoteVideoSample.
Remove ImageTransferSessionVT::createMediaSample(RemoteVideoSample&&) and replace it with direct use of MediaSampleAVFObjC.
No change of behavior.
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteMediaRecorder.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
- WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteRealtimeAudioSource.h:
- WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
- WebProcess/cocoa/UserMediaCaptureManager.h:
- 10:42 PM Changeset in webkit [290720] by
-
- 13 edits2 adds in trunk
Web Inspector: add a switch to control whether breakpoint evaluations (condition, ignore count, actions) are also affected by script blackboxing
https://bugs.webkit.org/show_bug.cgi?id=235274
Reviewed by Patrick Angle.
Source/JavaScriptCore:
Being able to defer breakpoint evaluations until the next actual pause can sometimes be far
more useful than doing the breakpoint evaluations at the breakpoint's original location.
As an example, configuring the All Events breakpoint with a
console.trace()action and
auto-continue enabled would not provide much useful information without also blackboxing
breakpoint evaluations as the original pause location of the All Events breakpoint is on the
first line of the event handler, meaning that if the script containing the event handler is
blackboxed then theconsole.trace()would still only show that location even though the
Sources Tab would show the first line of code outside of that script (due to the blackbox).
Being able to also blackbox breakpoint evaluations would instead cause theconsole.trace()
action to have the same output as the Sources Tab, since it's evaluation would be deferred
until execution actually paused, which is further inside the event handler.
- debugger/Debugger.cpp:
(JSC::Debugger::Debugger):
(JSC::Debugger::didHitBreakpoint):
(JSC::Debugger::evaluateBreakpointCondition):
(JSC::Debugger::continueProgram):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::didExecuteProgram):
(JSC::Debugger::setBlackboxBreakpointEvaluations): Added.
Keep track of everyBreakpointwants to pause but is deferred due to blackboxing.
Depending on whether breakpoint evaluations are also blackboxed (based on the flag set via
the piping code/logic below), check if the script attempting to be paused in is blackboxed
before or after handling breakpoint evaluations.
Side effects of this change are:
- breakpoint conditions are now evaluated right before that breakpoint's actions, instead of evaluating all breakpoint conditions before all breakpoint actions
- if breakpoint evaluations are blackboxed, more than two breakpoints can now be evaluated
during a single pause attempt depending on how may deferrals (with breakpoints) happened
- debugger/Debugger.h:
(JSC::Debugger::Observer::didDeferBreakpointPause): Added.
Add a way to notifyInspectorDebuggerAgentof deferred breakpoint pauses so that the
correctoriginalReasonwill be used after a deferred pause.
- inspector/protocol/Debugger.json:
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::setBlackboxBreakpointEvaluations): Added.
(Inspector::InspectorDebuggerAgent::didDeferBreakpointPause): Added.
Add asetBlackboxBreakpointEvaluationscommand that passes directly toDebugger.
Source/WebInspectorUI:
Being able to defer breakpoint evaluations until the next actual pause can sometimes be far
more useful than doing the breakpoint evaluations at the breakpoint's original location.
As an example, configuring the All Events breakpoint with a
console.trace()action and
auto-continue enabled would not provide much useful information without also blackboxing
breakpoint evaluations as the original pause location of the All Events breakpoint is on the
first line of the event handler, meaning that if the script containing the event handler is
blackboxed then theconsole.trace()would still only show that location even though the
Sources Tab would show the first line of code outside of that script (due to the blackbox).
Being able to also blackbox breakpoint evaluations would instead cause theconsole.trace()
action to have the same output as the Sources Tab, since it's evaluation would be deferred
until execution actually paused, which is further inside the event handler
- UserInterface/Base/Setting.js:
- UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.supportsBlackboxingBreakpointEvaluations): Added.
(WI.DebuggerManager.prototype.async initializeTarget):
(WI.DebuggerManager.prototype._setBlackboxBreakpointEvaluations): Added.
(WI.DebuggerManager.prototype._handleBlackboxBreakpointEvaluationsChange): Added.
Create a globalWI.Settingfor this feature and handle changes from the code below.
- UserInterface/Views/BlackboxSettingsView.js:
(WI.BlackboxSettingsView.prototype.initialLayout):
- UserInterface/Views/BlackboxSettingsView.css:
(.settings-view.blackbox > p > label): Added.
(.settings-view.blackbox > p > label > input): Added.
(.settings-view.blackbox > p > label > span): Added.
Add a checkbox and explanation of this new feature in the Blackbox pane of the Settings Tab.
- Localizations/en.lproj/localizedStrings.js:
LayoutTests:
- inspector/debugger/setBlackboxBreakpointEvaluations.html: Added.
- inspector/debugger/setBlackboxBreakpointEvaluations-expected.txt: Added.
- 10:05 PM Changeset in webkit [290719] by
-
- 2 edits in trunk/Source/bmalloc
[libpas] Add missing PlayStation implementation.
https://bugs.webkit.org/show_bug.cgi?id=237341
Reviewed by Yusuke Suzuki.
- libpas/src/libpas/pas_monotonic_time.c:
(pas_get_current_monotonic_time_nanoseconds):
- 10:03 PM Changeset in webkit [290718] by
-
- 2 edits in trunk/Source/WebCore
Fix deprecations for ERB.new in GenerateSettings.rb
https://bugs.webkit.org/show_bug.cgi?id=237237
Reviewed by Don Olmstead.
Ruby 3.1.0 reported the following warning:
GenerateSettings.rb:283: warning: Passing safe_level with the 2nd argument of ERB.new is deprecated. Do not use it, and specify other arguments as keyword arguments.
GenerateSettings.rb:283: warning: Passing trim_mode with the 3rd argument of ERB.new is deprecated. Use keyword argument like ERB.new(str, trim_mode: ...) instead.
r290104 and r290331 fixed the same problem for
GeneratePreferences.rb, but forgot GenerateSettings.rb.
- Scripts/GenerateSettings.rb: Use the keyword argument for ERB.new for Ruby 2.6+.
- 7:42 PM Changeset in webkit [290717] by
-
- 12 edits in trunk/Source/JavaScriptCore
Add a DeferTraps scope
https://bugs.webkit.org/show_bug.cgi?id=237306
<rdar://83494949>
Reviewed by Mark Lam.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::noticeIncomingCall):
- bytecode/CodeBlock.h:
- bytecode/RepatchInlines.h:
(JSC::linkFor):
(JSC::virtualForWithFunction):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):
- interpreter/InterpreterInlines.h:
(JSC::Interpreter::execute):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setUpCall):
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::installCode):
- runtime/VMTraps.cpp:
(JSC::VMTraps::handleTraps):
(JSC::VMTraps::takeTopPriorityTrap):
- runtime/VMTraps.h:
(JSC::VMTraps::needHandling const):
(JSC::VMTraps::hasTrapBit):
(JSC::VMTraps::setTrapBit):
- runtime/VMTrapsInlines.h:
(JSC::DeferTraps::DeferTraps):
(JSC::DeferTraps::~DeferTraps):
- 6:11 PM Changeset in webkit [290716] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] pointerevents/mouse/* 10 pointer event tests are constant timeouts or failures on iOS.
https://bugs.webkit.org/show_bug.cgi?id=237348
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-03-01
- platform/ios-wk2/TestExpectations:
- 6:03 PM Changeset in webkit [290715] by
-
- 2 edits in trunk/Source/WebCore
Unnecessary copy of Vector of children IDs in AXIsolatedTree::updateChildren.
https://bugs.webkit.org/show_bug.cgi?id=237338
<rdar://problem/89633856>
Reviewed by Chris Fleizach.
Changed the copy of this Vector to a move.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateChildren):
- 5:53 PM Changeset in webkit [290714] by
-
- 13 edits in trunk/Source/WebKit
Unreviewed, reverting r290588.
Patch r290588 caused ASAN build to fail on macOS
Reverted changeset:
"IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to
compile"
https://bugs.webkit.org/show_bug.cgi?id=237195
https://commits.webkit.org/r290588
- 5:42 PM Changeset in webkit [290713] by
-
- 2 edits in trunk/Source/WebKit
Fix clean build
- UnifiedSources-output.xcfilelist:
- 5:07 PM Changeset in webkit [290712] by
-
- 8 edits in trunk
Clipboard Paste dialog doesn't show on external monitors
https://bugs.webkit.org/show_bug.cgi?id=236395
rdar://88943577
Reviewed by Tim Horton.
Source/WebKit:
Fix the bug by aligning the way we generate synthetic mouse click NSEvents in WebKit2 macOS, when:
- Showing the standard web content context menu
- Showing the DOM paste menu
- Showing the context menu for PDFs
Critically, this makes AppKit choose the correct NSScreen when presenting the popup menu when showing the DOM
paste menu, if the last mouse down event isnilupon presenting the menu.
Covered by adding a debug assertion to verify that we aren't trying to present popup menus from a
nilevent
during DOM paste.
- UIProcess/API/mac/WKWebViewTestingMac.mm:
(-[WKWebView _activeMenu]):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::requestDOMPasteAccess):
- UIProcess/WebPageProxy.h:
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenuWithItems):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showPDFContextMenu):
(WebKit::WebPageProxy::activeContextMenu const):
Renamed from
platformActiveContextMenu. The "platform" prefix in front of this method was unnecessary, since
this is only invoked from macOS-only code that expects an NSMenu anyways.
(WebKit::WebPageProxy::createSyntheticEventForContextMenu const):
Add a helper method to create a synthetic NSEvent at the given location that's suitable for presenting a context
menu; use this new helper in the three places described above.
(WebKit::WebPageProxy::platformActiveContextMenu const): Deleted.
Tools:
Adjust the swizzled implementation of
-popUpContextMenu:withEvent:forView:to additionally verify that the
NSEvent we're presenting the menu with isn'tnil.
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::swizzledPopUpContextMenu):
- 4:41 PM Changeset in webkit [290711] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations: r290542 fixed a number of crashing tests.
- 4:29 PM Changeset in webkit [290710] by
-
- 3 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations:
- platform/ios/TestExpectations: r290438 fixed a test failure.
- 4:27 PM Changeset in webkit [290709] by
-
- 1 edit in branches/safari-613-branch/Source/WTF/Scripts/Preferences/WebPreferences.yaml
Apply patch. rdar://problem/89126114
- 4:27 PM Changeset in webkit [290708] by
-
- 14 edits2 deletes in branches/safari-613-branch
Revert r289282. rdar://problem/88876661
- 4:20 PM Changeset in webkit [290707] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations: r290542 fixed a number of crashing tests.
- 3:59 PM Changeset in webkit [290706] by
-
- 3 edits2 adds in trunk
REGRESSION(r285232) https://alvaromontoro.github.io/almond.css/demo/ looks wrong in Safari, ok in Chrome and Firefox
https://bugs.webkit.org/show_bug.cgi?id=237276
<rdar://problem/89566459>
Reviewed by Simon Fraser.
Source/WebCore:
r285232 introduced the isFixed() check as a resolvable preferred width type, but percent values are also resolvable as
block layout gets the horizontal constraint from the containing block chain (unlike the height percent values) -i.e. 'width: 50%' can be resolved during preferred width computation.
Test: fast/css-grid-layout/ascpect-ratio-with-percent-width.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
LayoutTests:
- fast/css-grid-layout/ascpect-ratio-with-percent-width-expected.html: Added.
- fast/css-grid-layout/ascpect-ratio-with-percent-width.html: Added.
- 3:51 PM Changeset in webkit [290705] by
-
- 12 edits in trunk
WTF::SentinelLinkedList::iterator should have operator++ for range-for loop
https://bugs.webkit.org/show_bug.cgi?id=237265
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
SentinelLinkedList::iterator isn't a pointer of node now, it
should be deferenced before comparing with a pointer.
- bytecode/Watchpoint.cpp:
(JSC::WatchpointSet::fireAllWatchpoints):
- heap/HandleSet.cpp:
(JSC::HandleSet::visitStrongHandles):
(JSC::HandleSet::protectedGlobalObjectCount):
- heap/HandleSet.h:
(JSC::HandleSet::forEachStrongHandle):
- heap/IsoSubspace.cpp:
(JSC::IsoSubspace::tryAllocateFromLowerTier):
- heap/SubspaceInlines.h:
(JSC::Subspace::forEachPreciseAllocation):
- jsc.cpp:
(Workers::broadcast):
Source/WTF:
SentinelLinkedList had three problems.
- Even though it has begin() and end(), using SentinelLinkedList with range-for loop resulted in a broken node because iterator::operator++ didn't work as expected.
- If I used a SentinelLinkedList in a movable type, the sentinel pointer gets stale after moving the object. move-ctor should be deleted.
- It didn't have const_iterator.
- wtf/OrderMaker.h:
(WTF::OrderMaker::iterator::iterator):
(WTF::OrderMaker::iterator::operator*):
(WTF::OrderMaker::iterator::operator++):
(WTF::OrderMaker::iterator::operator== const):
- wtf/SentinelLinkedList.h:
(WTF::BasicRawSentinelNode::prev const):
(WTF::BasicRawSentinelNode::next const):
(WTF::SentinelLinkedList::BaseIterator::BaseIterator):
(WTF::SentinelLinkedList::BaseIterator::operator* const):
(WTF::SentinelLinkedList::BaseIterator::operator-> const):
(WTF::SentinelLinkedList::BaseIterator::operator++):
(WTF::SentinelLinkedList::BaseIterator::operator--):
(WTF::SentinelLinkedList::BaseIterator::operator== const):
(WTF::SentinelLinkedList::BaseIterator::operator!= const):
(WTF::SentinelLinkedList::forEach):
(WTF::RawNode>::begin):
(WTF::RawNode>::end):
(WTF::RawNode>::begin const):
(WTF::RawNode>::end const):
(WTF::BasicRawSentinelNode::prev): Deleted.
(WTF::BasicRawSentinelNode::next): Deleted.
Tools:
- TestWebKitAPI/Tests/WTF/SentinelLinkedList.cpp:
(TestWebKitAPI::TEST):
- 3:50 PM Changeset in webkit [290704] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r290087. rdar://problem/88713302
Source/ThirdParty/ANGLE:
Metal ANGLE: vertex array does not correctly observe contents of data buffers
https://bugs.webkit.org/show_bug.cgi?id=236733
<rdar://problem/88713302>
<rdar://problem/88499073>
Patch by Kyle Piddington <Kyle Piddington> on 2022-02-17
Reviewed by Dean Jackson.
Similar to previous bug (236427), we were not correctly observing changes to the
vertex buffer data. This caused us to miss rebinding vertex buffers
when data was updated without causing conversion
- src/libANGLE/renderer/metal/VertexArrayMtl.h:
- src/libANGLE/renderer/metal/VertexArrayMtl.mm: (rx::VertexArrayMtl::syncState): (rx::VertexArrayMtl::setupDraw): (rx::VertexArrayMtl::syncDirtyAttrib):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:50 PM Changeset in webkit [290703] by
-
- 3 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Apply patch. rdar://problem/87136345
- 3:50 PM Changeset in webkit [290702] by
-
- 6 edits in branches/safari-613-branch
Apply patch. rdar://problem/89009881
- 3:50 PM Changeset in webkit [290701] by
-
- 8 edits2 adds in branches/safari-613-branch
Cherry-pick r290512. rdar://problem/86582214
[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>
Reviewed by Antti Koivisto.
Source/WebCore:
Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)
Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html
- rendering/RenderTable.cpp: (WebCore::RenderTable::firstColumn const):
- rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::nextColumn const):
LayoutTests:
- fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
- fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
- platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
- platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290700] by
-
- 3 edits6 adds in branches/safari-613-branch
Cherry-pick r290156. rdar://problem/89154452
ServiceWorkerGlobalScope+PushAPI requires PushAPIEnabled
https://bugs.webkit.org/show_bug.cgi?id=236846
Patch by Sam Sneddon <Sam Sneddon> on 2022-02-18
Reviewed by Chris Dumez.
Source/WebCore:
Tests: http/wpt/push-api/onpush-disabled.html
http/wpt/push-api/onpush-enabled.html
- Modules/push-api/ServiceWorkerGlobalScope+PushAPI.idl:
LayoutTests:
- http/wpt/push-api/onpush-disabled-expected.txt: Added.
- http/wpt/push-api/onpush-disabled.html: Added.
- http/wpt/push-api/onpush-disabled.js: Added. (test):
- http/wpt/push-api/onpush-enabled-expected.txt: Added.
- http/wpt/push-api/onpush-enabled.html: Added.
- http/wpt/push-api/onpush-enabled.js: Added. (test):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290156 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290699] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290152. rdar://problem/88327814
Keep promise in scope when calling DeferredPromise::reject
https://bugs.webkit.org/show_bug.cgi?id=236454
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-02-18
Reviewed by Darin Adler.
Keep promise in scope when calling DeferredPromise::reject, as createDOMException
could go through a path that invokes GC on its owner and the promise.
- Modules/fetch/FetchBodyConsumer.cpp: (WebCore::FetchBodyConsumer::resolveWithFormData):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290152 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290698] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290109. rdar://problem/89072235
Crash under ScrollingCoordinatorMac::hasNodeWithAnimatedScrollChanged()
https://bugs.webkit.org/show_bug.cgi?id=236810
<rdar://89072235>
Reviewed by Dean Jackson.
Crash data suggests that r288933 didn't fix the crash entirely.
Although the code paths I can find appear to hold the lock, there may be an
opportunity for m_scrollingCoordinator to get nulled out after we null-check it
but before the copy for the main thread dispatch.
So make a RefPtr on the stack, null-check it, and then move it into the callback.
- page/scrolling/ThreadedScrollingTree.cpp: (WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged): (WebCore::ThreadedScrollingTree::reportExposedUnfilledArea): (WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange): (WebCore::ThreadedScrollingTree::handleWheelEventPhase): (WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices): (WebCore::ThreadedScrollingTree::hasNodeWithAnimatedScrollChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290109 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290697] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r290066. rdar://problem/89072361
[macOS][WP] Add required syscall to sandbox
https://bugs.webkit.org/show_bug.cgi?id=236781
<rdar://89072361>
Reviewed by Chris Dumez.
Add required syscall to the WebContent process' sandbox on macOS. This patch also adds back a set of
syscalls that were removed in https://commits.webkit.org/r286778 for current and previous versions
of macOS. These syscalls will be denied going forward.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290696] by
-
- 3 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r290054. rdar://problem/89093315
[macOS] Light appearance text fields are invisible in Increased Contrast mode
https://bugs.webkit.org/show_bug.cgi?id=236753
rdar://89093315
Reviewed by Wenson Hsieh.
In Big Sur, the artwork for many form controls, including text fields, was
changed at the system level. When painting native text fields, WebKit has
long used the "borders only" option to support painting custom background
colors. System-level changes in Big Sur broke the behavior of light appearance
"borders only" text fields in Increased Contrast mode.
Until the artwork is updated at the system-level, work around the issue
in WebKit by painting our own borders for text fields under the necessary
conditions.
No new tests, as tests that change system preferences are often unreliable,
and we do not have existing hooks to toggle Increased Contrast mode.
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::shouldPaintCustomTextField const): (WebCore::RenderThemeMac::paintTextField):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290054 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290695] by
-
- 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Cherry-pick r290011. rdar://problem/89024095
REGRESSION (iOS 15.4b3): Catastrophic (20x) performance regression in texImage2D from mp4 video
https://bugs.webkit.org/show_bug.cgi?id=236699
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-17
Reviewed by Darin Adler.
Disable the validation for IOSurface pixel formats.
We might pass non-public formats that do not have sensible IOSurfaceGetBytesPerElementOfPlane
to verify with this logic.
Will add test in bug 236759.
Previous bugs of the same:
EAGL:
Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
bug 218637, r273582, 234632@main
CGL:
REGRESSION(Safari 15, BigSur): Poor video texture upload performance with MacBook M1, ANGLE OpenGL backend
bug 232235, r286960, 245183@main
- src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm: (rx::IOSurfaceSurfaceMtl::ValidateAttributes):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290011 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290694] by
-
- 18 edits in branches/safari-613-branch/Source
Cherry-pick r290005. rdar://problem/87596724
CrashTracer: com.apple.WebKit.WebContent at JavaScriptCore: bmalloc_allocate_impl_impl_slow
https://bugs.webkit.org/show_bug.cgi?id=236695
rdar://87596724
Reviewed by Jer Noble.
Source/WebCore:
When a new FragmentedSharedBuffer is received from the network process, it is proactively coalesced
into a SharedBuffer during each call to CachedResource::updateBuffer(). This causes a large number
of re-allocations and copies; essentially re-allocating each time the resource's buffer receives
one more chunk of data.
Instead we only flatten the data buffer once all data have been received.
Running speedtest.net with a gigabit link, we see a reduction of peak
memory use in the content process by about 40% (from 740MB to under 440MB of
physical memory, 1.7GB of memory allocation vs 535MB)
Covered by existing tests.
- editing/ios/EditorIOS.mm: (WebCore::Editor::writeImageToPasteboard):
- editing/mac/EditorMac.mm: (WebCore::Editor::writeImageToPasteboard):
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::didFinishLoading):
- loader/cache/CachedApplicationManifest.cpp: (WebCore::CachedApplicationManifest::finishLoading):
- loader/cache/CachedCSSStyleSheet.cpp: (WebCore::CachedCSSStyleSheet::finishLoading):
- loader/cache/CachedFont.cpp: (WebCore::CachedFont::ensureCustomFontData):
- loader/cache/CachedImage.cpp: (WebCore::CachedImage::updateImageData):
- loader/cache/CachedRawResource.cpp: (WebCore::CachedRawResource::calculateIncrementalDataChunk const): (WebCore::CachedRawResource::updateBuffer): (WebCore::CachedRawResource::finishLoading):
- loader/cache/CachedRawResource.h:
- loader/cache/CachedResource.h: (WebCore::CachedResource::resourceBuffer const):
- loader/cache/CachedScript.cpp: (WebCore::CachedScript::script):
- loader/cache/CachedXSLStyleSheet.cpp: (WebCore::CachedXSLStyleSheet::finishLoading):
Source/WebKit:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::finishedLoading): Fly-by fix, the IPC::DataReference would reference a SharedBuffer going out of scope before it was sent over IPC.
Source/WebKitLegacy/mac:
- WebView/WebHTMLView.mm: (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290693] by
-
- 3 edits2 adds in branches/safari-613-branch
Cherry-pick r289995. rdar://problem/87462825
REGRESSION(r285885) Unable to exit Trip Details in Amtrak app
https://bugs.webkit.org/show_bug.cgi?id=236732
<rdar://87462825>
Reviewed by Simon Fraser.
Source/WebCore:
Starting from r285885 an (effective)”overflow: clip” value is set on any block box with “contain: paint”.
It is supposed to ensure we don’t paint outside of the box’s border box (note that "contain: paint", as the name implies, should only affect painting).
However this effective value trickles in to layout affecting certain layout constraints.
In case of flex, it makes the flex layout think that the box is really a clipped box and it starts flexing it accordingly producing incorrect size.
What it means is that the minimum preferred size ends up being 0px because now with "let's clip all the overflow content"
0px is indeed the smallest size a box could take that does not produce overflow (while with the initial, “overflow: visible” value,
its minimum width would likely be > 0px -provided it has some content. Also note that setting “overflow: clip” on the box in the markup
(so it becomes an explicit clip value and not just an “effective” implicit clip through “contain: paint”) produces
the exact same rendering meaning that this effective property value does affect layout).
This is a partial revert of r285885 (focusing on where the flex algorithm consults with the flex items' overflow values).
Test: fast/flexbox/incorrect-min-size-with-paint-contain.html
- rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::mainAxisOverflowForChild const): (WebCore::RenderFlexibleBox::crossAxisOverflowForChild const):
LayoutTests:
- fast/flexbox/incorrect-min-size-with-paint-contain-expected.html: Added.
- fast/flexbox/incorrect-min-size-with-paint-contain.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290692] by
-
- 2 edits in branches/safari-613-branch/Source/WTF
Cherry-pick r289974. rdar://problem/89008799
Unreviewed, reverting r286874.
https://bugs.webkit.org/show_bug.cgi?id=236734
Broke Apple Music pages which use the resolution media query
Reverted changeset:
"Enable the 'resolution' media query by default"
https://bugs.webkit.org/show_bug.cgi?id=78087
https://commits.webkit.org/r286874
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289974 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290691] by
-
- 4 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r289942. rdar://problem/88827167
[Cocoa] Update audio session category before setting NowPlaying status
https://bugs.webkit.org/show_bug.cgi?id=236620
rdar://88827167
Reviewed by Jer Noble.
NowPlaying doesn't update correctly when the audio category changes from Ambient
to Playback after becoming active, so always set the category first.
Tested manually.
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::clientWillBeginPlayback): Set "preparingToPlay"
before calling
sessionWillBeginPlaybacksoupdateSessionStatecan tell that playback is about to begin. - platform/audio/PlatformMediaSession.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::updateSessionState): Consider a session to potentially have audio if it is preparing to play.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289942 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290690] by
-
- 7 edits2 adds in branches/safari-613-branch
Cherry-pick r289693. rdar://problem/88264857
Suppress style invalidation when matching :checked
https://bugs.webkit.org/show_bug.cgi?id=235910
Patch by Rob Buis <rbuis@igalia.com> on 2022-02-12
Reviewed by Antti Koivisto.
Source/WebCore:
Suppress style invalidation when matching :checked for option elements.
Test: fast/selectors/has-select-option-crash.html
- css/SelectorCheckerTestFunctions.h: (WebCore::isChecked):
- html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::selected const): (WebCore::HTMLOptionElement::setSelectedState):
- html/HTMLOptionElement.h:
- html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::updateListItemSelectedStates): (WebCore::HTMLSelectElement::recalcListItems const):
- html/HTMLSelectElement.h:
LayoutTests:
- fast/selectors/has-select-option-crash-expected.txt: Added.
- fast/selectors/has-select-option-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289693 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290689] by
-
- 6 edits2 adds in branches/safari-613-branch
Cherry-pick r289526. rdar://problem/87061239
[:has() pseudo-class] Nullptr crash with non-function :has
https://bugs.webkit.org/show_bug.cgi?id=236431
rdar://87061239
Reviewed by Cameron McCormack.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
- web-platform-tests/css/selectors/parsing/parse-has.html:
Source/WebCore:
Test: fast/selectors/malformed-has.html
- css/parser/CSSSelectorParser.cpp: (WebCore::isOnlyPseudoClassFunction):
:has() is legal, plain :has is not.
LayoutTests:
- fast/selectors/malformed-has-expected.txt: Added.
- fast/selectors/malformed-has.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289526 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290688] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r289502. rdar://problem/88528286
WKWebView: WKURLSchemeHandler “request to the end of the resource” produces an invalid header
https://bugs.webkit.org/show_bug.cgi?id=236401
rdar://88528286
Reviewed by Brent Fulgham.
Source/WebCore:
https://webkit.org/b/203302 added support for Range requests to AVAssetResourceLoadingDataRequest,
but it incorrectly used '*' instead of for "last-byte-pos:" for a request to the end of the resource.
API test URLSchemeHandler.Ranges was updated.
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: (WebCore::WebCoreAVFResourceLoader::startLoading):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289502 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290687] by
-
- 4 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r289493. rdar://problem/88321921
Register strings in CSSTokenizer created from preprocessing
https://bugs.webkit.org/show_bug.cgi?id=236309
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-02-09
Reviewed by Michael Saboff.
Register strings in CSSTokenizer created from preprocessing. This will align with
what is currently done for strings with escapes in CSSTokenizer::consumeName().
- css/parser/CSSTokenizer.cpp: (WebCore::CSSTokenizer::preprocessString): (WebCore::CSSTokenizer::tryCreate): (WebCore::CSSTokenizer::CSSTokenizer): (WebCore::preprocessString): Deleted.
- css/parser/CSSTokenizer.h:
- css/parser/CSSTokenizerInputStream.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:49 PM Changeset in webkit [290686] by
-
- 14 edits2 adds in branches/safari-613-branch
Cherry-pick r289462. rdar://problem/88580935
Don't return an empty value from AbortController.signal.reason and make it harder to return empty values from JSValueInWrappedObject
https://bugs.webkit.org/show_bug.cgi?id=236318
<rdar://88580935>
Reviewed by Mark Lam.
Source/WebCore:
This patch makes it so we might not accidentally return the empty value to
JavaScript code from JSValueInWrappedObject. Previously, JSValueInWrappedObject
had an "operator JSValue()" method. This patch removes that, adds a new
conversion method for converting between JSValueInWrappedObject and JSValue,
and makes JSValueInWrappedObject return undefined inside this method
when it used to return the empty value. This fixes a crash where we'd return
the empty value to JS JIT code, and crash dereferencing a nullptr. It's never
valid for a JS function call (or getter, etc) to return the empty value.
Test: fast/dom/AbortSignal-reason-crash-2.html
- Modules/webaudio/AudioBuffer.cpp: (WebCore::AudioBuffer::getChannelData):
- Modules/webaudio/AudioWorkletProcessor.cpp: (WebCore::toJSArray): (WebCore::toJSObject): (WebCore::AudioWorkletProcessor::buildJSArguments):
- bindings/js/JSCustomEventCustom.cpp: (WebCore::JSCustomEvent::detail const):
- bindings/js/JSDOMConvertAny.h: (WebCore::JSConverter<IDLAny>::convert):
- bindings/js/JSMessageEventCustom.cpp: (WebCore::JSMessageEvent::data const):
- bindings/js/JSPaymentMethodChangeEventCustom.cpp: (WebCore::JSPaymentMethodChangeEvent::methodDetails const):
- bindings/js/JSPopStateEventCustom.cpp: (WebCore::JSPopStateEvent::state const):
- bindings/js/JSValueInWrappedObject.h: (WebCore::JSValueInWrappedObject::getValue const): (WebCore::JSValueInWrappedObject::operator bool const): (WebCore::cachedPropertyValue): (WebCore::JSValueInWrappedObject::operator JSC::JSValue const): Deleted.
- dom/AbortSignal.cpp: (WebCore::AbortSignal::signalFollow): (WebCore::AbortSignal::throwIfAborted):
- dom/ErrorEvent.cpp: (WebCore::ErrorEvent::error): (WebCore::ErrorEvent::trySerializeError):
- dom/PopStateEvent.cpp: (WebCore::PopStateEvent::trySerializeState):
- page/History.cpp: (WebCore::History::cachedState):
LayoutTests:
- fast/dom/AbortSignal-reason-crash-2-expected.txt: Added.
- fast/dom/AbortSignal-reason-crash-2.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [290685] by
-
- 3 edits2 adds in branches/safari-613-branch
Cherry-pick r289443. rdar://problem/88593617
REGRESSION (15.4): Angular virtual scrollers no longer work (because of contain:strict)
https://bugs.webkit.org/show_bug.cgi?id=236260
Patch by Rob Buis <rbuis@igalia.com> on 2022-02-08
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/contain-paint-049-expected.txt: Added.
- web-platform-tests/css/css-contain/contain-paint-049.html: Added.
Source/WebCore:
Paint containment did not allow collecting scrollable overflow, breaking scrolling
of the container contents, this patch fixes that.
Test: imported/w3c/web-platform-tests/css/css-contain/contain-paint-049.html
- rendering/RenderBox.cpp: (WebCore::RenderBox::addOverflowFromChild):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289443 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [290684] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r289380. rdar://problem/86904276
Reduce allocations and increase thread safety of constructedPath
https://bugs.webkit.org/show_bug.cgi?id=236286
<rdar://86904276>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-08
Reviewed by Chris Dumez.
- UIProcess/API/APIContentRuleListStore.cpp: (API::constructedPathPrefix): (API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [290683] by
-
- 6 edits in branches/safari-613-branch
Cherry-pick r289377. rdar://problem/88178304
Return 'none' for the computed style of mask when there are no mask images
https://bugs.webkit.org/show_bug.cgi?id=236265
<rdar://88178304>
Patch by Matt Woodrow <Matt Woodrow> on 2022-02-08
Reviewed by Dean Jackson.
Source/WebCore:
Rather than returning all the longhand properties, return 'none' if there are no
mask images. This no longer matches the behaviour of the 'background' property, but
better matches what other UAs do.
Ideally we'd return the smallest possible canonical representation of the non-initial
property values, but this is a much simpler change to fix a compat regression.
Test: fast/masking/parsing-mask.html
Updates expected results to match new behavior.
- css/CSSComputedStyleDeclaration.cpp: (WebCore::ComputedStyleExtractor::getLayerCount): (WebCore::ComputedStyleExtractor::getFillLayerPropertyShorthandValue): (WebCore::ComputedStyleExtractor::getBackgroundShorthandValue): (WebCore::ComputedStyleExtractor::getMaskShorthandValue):
- css/CSSComputedStyleDeclaration.h:
LayoutTests:
- fast/masking/parsing-mask-expected.txt:
- fast/masking/parsing-mask.html:
Updated expected results to expect 'none' for all cases where there isn't an actual mask
image.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:47 PM Changeset in webkit [290682] by
-
- 2 edits in trunk/Tools
[WinCairo][pywebsocket3] UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 640: character maps to <undefined>
https://bugs.webkit.org/show_bug.cgi?id=237339
Reviewed by Jonathan Bedard.
After r290580 started to use pywebsocket3 and Python 3, Windows
Python couldn't start WebSocket server due to UnicodeDecodeError.
- Scripts/webkitpy/port/win.py:
(WinPort.setup_environ_for_server): Added PYTHONUTF8 environment variable.
- 3:46 PM WebKitGTK/2.36.x edited by
- (diff)
- 3:35 PM Changeset in webkit [290681] by
-
- 13 edits in trunk/Source
Misc compiler warnings, late Feb 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=237275
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-03-01
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
Suppress suspected false-positive -Wstringop-overflow and -Wformat-overflow warnings. Also,
remove an unused variable.
- API/tests/MultithreadedMultiVMExecutionTest.cpp:
(startMultithreadedMultiVMExecutionTest):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
- yarr/YarrJIT.cpp:
Source/WebCore:
Remove a redundant move. Sprinkle RELEASE_ASSERT_NOT_REACHED() as required to avoid
-Wreturn-type warnings.
- Modules/push-api/PushDatabase.cpp:
(WebCore::openAndMigrateDatabaseImpl):
- style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::evaluateCondition const):
(WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const):
- style/ContainerQueryEvaluator.h:
(WebCore::Style::operator!):
- style/StyleScope.cpp:
(WebCore::Style::Scope::updateQueryContainerState):
Source/WebKit:
Delete an unused function. Remove a redundant move.
- Shared/AuxiliaryProcess.cpp:
(WebKit::applySandboxProfileForDaemon): Deleted.
- Shared/WebFoundTextRange.cpp:
(WebKit::WebFoundTextRange::decode):
- 3:30 PM Changeset in webkit [290680] by
-
- 4 edits in trunk/Source/WebKit
Prepare to add more files to WebKit
https://bugs.webkit.org/show_bug.cgi?id=237343
Reviewed by Chris Dumez.
This fixes the build after bug 237234, and it's unrelated so I pulled it into a different patch.
- Scripts/generate-unified-sources.sh:
- UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:
- WebKit.xcodeproj/project.pbxproj:
- 3:16 PM Changeset in webkit [290679] by
-
- 32 edits2 adds in trunk
Source/WebCore:
[macOS][REGRESSION] (r289518): Form controls are scaled twice on Retina display
https://bugs.webkit.org/show_bug.cgi?id=237128
rdar://89064642
Reviewed by Darin Adler.
Using the name GraphicsContext::createImageBuffer() for different behaviors
was a mistake in r289518. To clean this up, the createImageBuffer() version
which scales the GraphicsContext of the ImageBuffer will be renamed
createScaledImageBuffer(). and the existing createCompatibleImageBuffer()
will be renamed createAlignedImageBuffer(). So we will have these three
methods in GraphicsContext:
1) createImageBuffer(): The default behavior of this method is to create
an ImageBuffer similar to the underlying ImageBuffer of GraphicsContext.
But it gives ability to change the renderingMode and the renderingMethod.
It can be forced to create a non-accelerated local ImageBuffer for example.
The caller of this method usually uses a framework to draw some custom
drawing and it just needs a scratch buffer to be drawn in the place of
a render object. The caller does not require any transformation to be
applied to the GraphicsContext of the ImageBuffer before starting its
custom drawing. Drawing the form controls using AppKit is an example
of such case.
2) createScaledImageBuffer(): This is similar to createImageBuffer() but
it always creates the ImageBuffer with resolutionScale = 1 so it has
to scale the size by the scaleFactor before calling createImageBuffer().
It also scales the GraphicsContext of the created ImageBuffer with the
scaleFactor and it translates its coordinates origin for the FloatRect
version. It also handles the clamping if needed.
This method is suitable for cases when the overall scaleFatcor
(device ScaleFactor + clamping ScaleFactor) has be known to the caller
in advance. No clamping will be required in this case. SVG filter,
masker, clipper and gradient are the callers to this function.
3) createAlignedImageBuffer(): This is similar to createScaledImageBuffer()
but it does not take a scaling factor argument. It inherits it from
the GraphicsContext.
Usually the purpose of this method is to transfer the drawing from a
layer to a scratch ImageBuffer temporarily then draw the scratch
ImageBuffer in the place of the original drawing. Drawing a PDFDocument
image, for example, requires using this method.
To fix this bug:
Form controls have to use the first version of createImageBuffer() which
still has the same name instead of using the second version which will
be renamed createScaledImageBuffer().
Another cleaning is to pass RenderingMethod as an std::optional argument
the three methods. This means we do not need the value "Default" since
passing std::nullopt will have the same meaning.
Test: fast/hidpi/hidpi-form-controls-drawing-size.html
- html/CustomPaintCanvas.cpp:
(WebCore::CustomPaintCanvas::replayDisplayList const):
- html/CustomPaintImage.cpp:
(WebCore::CustomPaintImage::drawPattern):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
- platform/cocoa/ThemeCocoa.mm:
(WebCore::drawApplePayButton):
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern):
- platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern):
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createImageBuffer const):
(WebCore::GraphicsContext::createScaledImageBuffer const):
(WebCore::GraphicsContext::createAlignedImageBuffer const):
(WebCore::GraphicsContext::createCompatibleImageBuffer const): Deleted.
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::createScaledImageBuffer):
(WebCore::GraphicsContext::createImageBuffer): Deleted.
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::clone const):
- platform/graphics/NamedImageGeneratedImage.cpp:
(WebCore::NamedImageGeneratedImage::drawPattern):
- platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
(WebCore::PDFDocumentImage::draw):
- platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:
(WebCore::DrawGlyphsRecorder::drawOTSVGRun):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::createImageBuffer const):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderLayerBacking.cpp:
(WebCore::patternForDescription):
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::allocateBackingStoreIfNeeded):
- rendering/RenderThemeCocoa.mm:
(WebCore::RenderThemeCocoa::paintApplePayButton):
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintListButtonForInput):
(WebCore::RenderThemeMac::paintProgressBar):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
- rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
- rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage const):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::bufferForeground):
Source/WebKit:
[macOS][REGRESSION] (rr289518): Form controls are scaled twice on Retina display
https://bugs.webkit.org/show_bug.cgi?id=237128
rdar://89064642
Reviewed by Darin Adler.
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::createImageBuffer const):
(WebKit::RemoteDisplayListRecorderProxy::createAlignedImageBuffer const):
(WebKit::RemoteDisplayListRecorderProxy::createCompatibleImageBuffer const): Deleted.
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
LayoutTests:
[macOS][REGRESSION] (rr289518): Form controls are scaled twice on Retina display
https://bugs.webkit.org/show_bug.cgi?id=237128
rdar://89064642
Reviewed by Darin Adler.
- fast/hidpi/hidpi-form-controls-drawing-size-expected.html: Added.
- fast/hidpi/hidpi-form-controls-drawing-size.html: Added.
- 3:07 PM Changeset in webkit [290678] by
-
- 2 edits in trunk/LayoutTests
[ Win ] 4X imported/mozilla/svg/blend(layout-tests) are constant Image Only Failures
https://bugs.webkit.org/show_bug.cgi?id=237344
Unreviewed test gardening. Skipping, for Windows instead of adding an expectation.
- platform/win/TestExpectations:
- 3:03 PM Changeset in webkit [290677] by
-
- 2 edits in trunk/LayoutTests
[ Win ] 4X imported/mozilla/svg/blend(layout-tests) are constant Image Only Failures
https://bugs.webkit.org/show_bug.cgi?id=237344
Unreviewed test gardening.
- platform/win/TestExpectations:
- 2:27 PM Changeset in webkit [290676] by
-
- 7 edits4 adds in trunk
[Cocoa] HLS stream currentTime sometimes jumps backwards
https://bugs.webkit.org/show_bug.cgi?id=235087
rdar://83831093
Reviewed by Dean Jackson.
Source/WebCore:
Test: http/tests/media/hls/hls-non-zero-start-time.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by: pass log identifier
to lambda so the method name will be logged correctly.
(WebCore::HTMLMediaElement::currentMediaTime const): Remove LOG_CACHED_TIME_WARNINGS
build flag, always log time drift warnings when log level is DEBUG.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Log when periodic
time observer is passed unexpected values.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Use
NSKeyValueObservingOptionInitial KVO option for "@duration" property because we
sometimes don't get a duration changed event for HLS streams, so m_cachedDuration
remains invalid.
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTimeDidChange const):
Drive-by: fix use-after-move.
Source/WebKit:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::currentTimeChanged): Always notify player when
time jumps backwards.
LayoutTests:
- http/tests/media/hls/hls-non-zero-start-time-expected.txt: Added.
- http/tests/media/hls/hls-non-zero-start-time.html: Added.
- http/tests/media/resources/hls/bip-bop-live.m3u8: Added.
- http/tests/media/resources/hls/bipbop/start-offset.m3u8: Added.
- http/tests/media/resources/hls/bipbop/start-offset.ts: Added.
- 2:06 PM Changeset in webkit [290675] by
-
- 2 edits in trunk/Source/WebCore
Remove release assert when UI process is blocking IOSurface IOKit access
https://bugs.webkit.org/show_bug.cgi?id=237278
<rdar://problem/89585043>
Unreviewed, address review comments.
Log error instead of creating CrashTracer reports.
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::bytesPerRowAlignment):
- 1:57 PM Changeset in webkit [290674] by
-
- 4 edits in trunk
Use static position relative to parent for abs-pos items within nested grids.
https://bugs.webkit.org/show_bug.cgi?id=236957
Reviewed by Dean Jackson.
Source/WebCore:
In the case where an absolutely positioned element's parent and containing block
are both grid container, but they are not the same grid container, then the static position
of the abs-pos item should be relative to the parent, not the CB.
Existing subgrid tests marked as passing.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::setLogicalOffsetForChild const):
LayoutTests:
Existing subgrid tests marked as passing.
- 1:44 PM Changeset in webkit [290673] by
-
- 4 edits in trunk
Make accessibility/aria-hidden-false-works-in-subtrees.html async to pass in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=237051
<rdar://problem/89312156>
Reviewed by Chris Fleizach.
Tools:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:
(WTR::AccessibilityController::accessibleElementById):
Convert the JSStringRef to NSString on the main thread and capture the
NSString to be used on the AX secondary thread. This may be safer since
JSStringRefs are supposed to be used on the main thread.
LayoutTests:
- accessibility/aria-hidden-false-works-in-subtrees.html:
Made both the main script and the iframe onload function async to pass
in isolated tree mode.
- 1:28 PM Changeset in webkit [290672] by
-
- 4 edits in trunk/Source/WebCore
[IFC][Integration] Add InlineIterator::Box::visualRect
https://bugs.webkit.org/show_bug.cgi?id=237309
Reviewed by Antti Koivisto.
This is the final, flipped version of the box rect.
- layout/integration/InlineIteratorBox.h:
(WebCore::InlineIterator::Box::visualRect const):
- rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::computePaintRect):
- 1:19 PM Changeset in webkit [290671] by
-
- 5 edits in trunk/Source/WebCore
Web app fails only when dev tools is open
https://bugs.webkit.org/show_bug.cgi?id=235017
Reviewed by Devin Rousso.
Using the
ScriptExecutionContextfromevent.target()->scriptExecutionContext()can result the either having a
different script context from the one used when callingwillHandleEvent, or the event target's context could be
nullptr. This can occur when handling the event inEventTarget::innerInvokeEventListenersresults in a
context change for the event's target, like a MessagePort that has beendisentangled, which sets the script
execution context tonullptr. Because we only need the script execution context to get the correct injected
script, and the correct injected script for the action below will always be the same injected script used in
willHandleEvent, we ignore the current script execution context of the event's target and use the context the
event's target had when it began invoking event listeners.
This change protects us both from the reported crash, as well as leaving an injected script in a bad state
because we did not callsetEventValueandclearEventValueon matching injected scripts for a single event.
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willHandleEventImpl):
(WebCore::InspectorInstrumentation::didHandleEventImpl):
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willHandleEvent):
(WebCore::InspectorInstrumentation::didHandleEvent):
- inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::didHandleEvent):
- inspector/agents/InspectorDOMDebuggerAgent.h:
- 1:02 PM Changeset in webkit [290670] by
-
- 2 edits in trunk/LayoutTests
[ Monterey wk2 ] http/tests/media/video-webm-stall.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=236788
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-03-01
- platform/mac-wk2/TestExpectations:
- 12:57 PM Changeset in webkit [290669] by
-
- 3 edits in trunk/Source/WebKit
Move StorageBucket function definitions outside the class definition
https://bugs.webkit.org/show_bug.cgi?id=237300
Reviewed by Chris Dumez.
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::mode const):
(WebKit::OriginStorageManager::StorageBucket::setMode):
(WebKit::OriginStorageManager::StorageBucket::StorageBucket):
(WebKit::OriginStorageManager::StorageBucket::connectionClosed):
(WebKit::OriginStorageManager::StorageBucket::toStorageIdentifier const):
(WebKit::OriginStorageManager::StorageBucket::typeStoragePath const):
(WebKit::OriginStorageManager::StorageBucket::fileSystemStorageManager):
(WebKit::OriginStorageManager::StorageBucket::localStorageManager):
(WebKit::OriginStorageManager::StorageBucket::existingLocalStorageManager):
(WebKit::OriginStorageManager::StorageBucket::sessionStorageManager):
(WebKit::OriginStorageManager::StorageBucket::existingSessionStorageManager):
(WebKit::OriginStorageManager::StorageBucket::idbStorageManager):
(WebKit::OriginStorageManager::StorageBucket::existingIDBStorageManager):
(WebKit::OriginStorageManager::StorageBucket::isActive const):
(WebKit::OriginStorageManager::StorageBucket::isEmpty):
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInList):
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromMemory):
(WebKit::OriginStorageManager::StorageBucket::fetchDataTypesInListFromDisk):
(WebKit::OriginStorageManager::StorageBucket::deleteData):
(WebKit::OriginStorageManager::StorageBucket::deleteFileSystemStorageData):
(WebKit::OriginStorageManager::StorageBucket::deleteLocalStorageData):
(WebKit::OriginStorageManager::StorageBucket::deleteSessionStorageData):
(WebKit::OriginStorageManager::StorageBucket::deleteIDBStorageData):
(WebKit::OriginStorageManager::StorageBucket::moveData):
(WebKit::OriginStorageManager::StorageBucket::resolvedLocalStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath):
(WebKit::OriginStorageManager::StorageBucket::toWebsiteDataType): Deleted.
(WebKit::OriginStorageManager::StorageBucket::toStorageIdentifier): Deleted.
- 12:08 PM Changeset in webkit [290668] by
-
- 1 copy in tags/Safari-614.1.3.7
Tag Safari-614.1.3.7.
- 12:01 PM Changeset in webkit [290667] by
-
- 19 edits in trunk
When interpolating between transform lists partial prefix matches should not use matrix interpolation
https://bugs.webkit.org/show_bug.cgi?id=235757
<rdar://problem/88477922>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Mark subtests as passing.
- web-platform-tests/css/css-transforms/animation/transform-composition-expected.txt: Ditto.
- web-platform-tests/css/css-transforms/animation/transform-interpolation-004-expected.txt: Ditto.
Source/WebCore:
No new tests. This is covered by existing WPT tests.
When interpolation between keyframes in transform animations, interpolate prefixes of
compatible transform functions directly. For instance if there are three keyframes:
- transform: rotateX(...) translateY(...) skew(...)
- transform: rotateY(...) translateY(...)
- transform: rotateZ(...) translateZ(...) matrix3d(...)
There will be a directly interpolated rotation animation, a directly interpolated
translation animation, and finally a matrix animation for the remaining functions.
This is important for preserving transforms (such as full rotations) that are lost
during matrix decompose and recompose operations.
This change adds a new helper class SharedPrimitivesPrefix which is used to calculate
the prefix of shared primitives that are shared between keyframes.
Currently, the Core Animation backend only supports animation transformation primitives
across the entire animation, so shared primitive prefixes must span the entire animation
if an animation is accelerated. In the case that an animation is rendered in software,
this prefix can simply be between the current next and previous keyframes.
TransformOperations::blend is extended to blend any two TransformationOperations, which
makes it the only blend function necessary for software animations, computed CSS values,
and for the Nicosia backend, simplifying the interpolation code path.
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
- animation/CSSPropertyBlendingClient.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists):
(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- animation/KeyframeEffect.h:
- platform/graphics/GraphicsLayer.cpp:
(WebCore::operationsAt): Deleted.
(WebCore::GraphicsLayer::getSharedPrimitivesForTransformKeyframes): Deleted.
- platform/graphics/GraphicsLayer.h:
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/nicosia/NicosiaAnimation.cpp:
(Nicosia::applyTransformAnimation):
(Nicosia::Animation::Animation):
(Nicosia::Animation::operator=):
(Nicosia::Animation::applyInternal):
- platform/graphics/nicosia/NicosiaAnimation.h:
- platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::addAnimation):
- platform/graphics/transforms/TransformOperations.cpp:
(WebCore::SharedPrimitivesPrefix::update):
(WebCore::TransformOperations::blend const):
(WebCore::TransformOperations::createBlendedMatrixOperationFromOperationsSuffix const):
(WebCore::TransformOperations::operationsMatch const): Deleted.
(WebCore::TransformOperations::updateSharedPrimitives const): Deleted.
(WebCore::TransformOperations::blendByMatchingOperations const): Deleted.
(WebCore::TransformOperations::blendByUsingMatrixInterpolation const): Deleted.
- platform/graphics/transforms/TransformOperations.h:
(WebCore::TransformOperations::apply const):
(WebCore::SharedPrimitivesPrefix::hadIncompatibleTransformFunctions):
(WebCore::SharedPrimitivesPrefix::primitives):
- 11:53 AM Changeset in webkit [290666] by
-
- 2 edits in trunk/LayoutTests
[ Monterey ] webaudio/decode-audio-data-webm-vorbis.html is constantly failing
https://bugs.webkit.org/show_bug.cgi?id=236328
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-03-01
- platform/mac-wk2/TestExpectations:
- 11:42 AM Changeset in webkit [290665] by
-
- 2 edits in trunk/LayoutTests
WindowServer returned not alive with context:,unresponsive work processor(s)
<rdar://86037417>
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:38 AM Changeset in webkit [290664] by
-
- 15 edits in trunk/PerformanceTests
Fix Speedometer's setTimeout throttling issue
https://bugs.webkit.org/show_bug.cgi?id=237303
rdar://89444976
Reviewed by Geoffrey Garen.
Speedometer is driving each test via setTimeout. Because we are using setTimeout to
measure async time in each subtest of Speedometer, our measurement included 4ms
throttle introduced due to nested setTimeout. This is happening in the test
harness (not test itself), and the intention of this test harness is not measuring
the throttle time. In this patch, we fix this nesting level propagation by inserting
window.requestAnimationFrame for each test run and BenchmarkRunner.prototype.waitForElement
so that we can reset nesting level count of setTimeout, which prevents the rendering
engine to insert 4ms throttle.
Since this affects on the score of async measurement, we bump the version number from 2.0 to 2.1
- Speedometer/InteractiveRunner.html:
- Speedometer/index.html:
- Speedometer/resources/benchmark-runner.js:
(resolveIfReady):
(BenchmarkRunner.prototype.waitForElement):
(BenchmarkRunner.prototype._runTest):
- Speedometer/resources/todomvc/architecture-examples/angular/README.md:
- Speedometer/resources/todomvc/architecture-examples/angularjs/readme.md:
- Speedometer/resources/todomvc/architecture-examples/backbone/readme.md:
- Speedometer/resources/todomvc/architecture-examples/emberjs/README.md:
- Speedometer/resources/todomvc/architecture-examples/preact/README.md:
- Speedometer/resources/todomvc/architecture-examples/react-redux/README.md:
- Speedometer/resources/todomvc/architecture-examples/react/README.md:
- Speedometer/resources/todomvc/architecture-examples/vuejs-cli/README.md:
- Speedometer/resources/todomvc/vanilla-examples/es2015-babel-webpack/README.md:
- Speedometer/resources/todomvc/vanilla-examples/es2015/README.md:
- Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md:
- 11:34 AM Changeset in webkit [290663] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, reverting r290619.
https://bugs.webkit.org/show_bug.cgi?id=237337
Introduced build failure
Reverted changeset:
"[iOS] Weak link AVPictureInPictureController"
https://bugs.webkit.org/show_bug.cgi?id=237227
https://commits.webkit.org/r290619
- 11:29 AM Changeset in webkit [290662] by
-
- 5 edits in trunk
[web-animations] ::placeholder should not be a valid pseudo-element for a KeyframeEffect target
https://bugs.webkit.org/show_bug.cgi?id=237334
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt:
Source/WebCore:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setPseudoElement):
- 11:07 AM Changeset in webkit [290661] by
-
- 5 edits in trunk/Tools
[git-webkit] Gate information URL on initial setup
https://bugs.webkit.org/show_bug.cgi?id=237325
<rdar://problem/89620175>
Reviewed by Aakash Jain.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.main): Offer to open documentation URL if repository has not been setup.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
(TestSetup.test_github):
Canonical link: https://commits.webkit.org/247932@main
- 11:06 AM Changeset in webkit [290660] by
-
- 2 edits in trunk/Source/WTF
Enable WebRTCRemoteVideoFrameEnabled by default on Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=237201
Reviewed by Eric Carlson.
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 10:43 AM Changeset in webkit [290659] by
-
- 17 edits in trunk/Source
If the main resource was loaded over private relay, load all sub resources over private relay
https://bugs.webkit.org/show_bug.cgi?id=237296
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-01
Reviewed by Geoffrey Garen.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
I manually verified that this fixes rdar://88965550 when using the CFNetwork change in the related bug.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::transferToNewWebProcess):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
- NetworkProcess/NetworkSession.h:
- NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
- NetworkProcess/NetworkSocketChannel.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::connect):
- 10:34 AM Changeset in webkit [290658] by
-
- 4 edits in trunk/LayoutTests
fast/mediastream/getUserMedia-to-canvas-1.html and fast/mediastream/getUserMedia-to-canvas-2.html are failing on MacOS when remote video frame flag is enabled
https://bugs.webkit.org/show_bug.cgi?id=237042
<rdar://problem/89298601>
Reviewed by Eric Carlson.
Video element videoWidth/videoHeight are updated when track settings are changed,
and not when video frames being received.
This does not guarantee that videoWidth/videoHeight (main thread) are fully in sync
with the actual video frames (background thread) when there is a change of size.
We might be able to tighten this in MediaPlayerPrivateMediaStreamAVFObjC by only resorting on video frames.
In the meantime, we update the test to set the orientation before creating the source.
This makes sure the video frames have the expected size and rotation.
- fast/mediastream/getUserMedia-to-canvas-1.html:
- fast/mediastream/getUserMedia-to-canvas-2.html:
- fast/mediastream/resources/getUserMedia-to-canvas.js:
- 10:34 AM Changeset in webkit [290657] by
-
- 9 edits in branches/safari-614.1.3-branch/Source
Versioning.
WebKit-7614.1.3.7
- 10:22 AM Changeset in webkit [290656] by
-
- 8 edits in trunk/Source
[AppleWin] Start using Visual Studio 2022
https://bugs.webkit.org/show_bug.cgi?id=234933
Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-01
Reviewed by Maciej Stachowiak.
Source/JavaScriptCore:
- JavaScriptCore.vcxproj/JavaScriptCore.proj:
Source/WebCore:
- WebCore.vcxproj/WebCore.proj:
Source/WebKitLegacy:
- WebKitLegacy.vcxproj/WebKitLegacy.proj:
Source/WTF:
- WTF.vcxproj/WTF.proj:
- 10:14 AM Changeset in webkit [290655] by
-
- 6 edits in trunk
[web-animations] add support for passing an optional timeline to Element.animate()
https://bugs.webkit.org/show_bug.cgi?id=237312
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
Source/WebCore:
- animation/KeyframeAnimationOptions.h:
- animation/KeyframeAnimationOptions.idl:
- dom/Element.cpp:
(WebCore::Element::animate):
- 10:12 AM Changeset in webkit [290654] by
-
- 6 edits3 adds in trunk/Source/WebKit
[Cocoa] Allow logging to be configured by NSDefaults (without regressing launch time)
https://bugs.webkit.org/show_bug.cgi?id=237183
Reviewed by Darin Adler.
In r220780, code was added to WebProcessPoolCocoa to explicitly pass the results of a NSUserDefaults
to newly created WebContent processes to determine log channel levels. Later, in r232158, NSUserDefaults
were removed from the default logLevelString() implementations in WTF, WebCore, and WebKit to improve
process launch time performance. In r279796, the same technique sued in WebProcessPoolCocoa was added
to GPUProcessProxyCocoa to pass those log level strings to the GPUProcess. And then in r286484, all the
uses of NSUserDefaults were removed from WebProcessPoolCocoa and GPUProcessProxyCocoa were removed,
removing the ability to increase the log channel levels at runtime through NSUserDefualts.
Add back in the ability to define log levels for the UIProcess and all AuxiliaryProcesses without
regressing launch time by only checking the NSUserDefault once, only in the UIProcess, storing the result
in a static variable, and passing the results of that check to all AuxiliaryProcesses at creation time.
- UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::auxiliaryProcessParameters):
- UIProcess/Cocoa/UIProcessLogInitializationCocoa.mm: Added.
(WebKit::UIProcess::wtfLogLevelString):
(WebKit::UIProcess::webCoreLogLevelString):
(WebKit::UIProcess::webKitLogLevelString):
- UIProcess/UIProcessLogInitialization.cpp: Added.
(WebKit::UIProcess::initializeLoggingIfNecessary):
(WebKit::UIProcess::wtfLogLevelString):
(WebKit::UIProcess::webCoreLogLevelString):
(WebKit::UIProcess::webKitLogLevelString):
- UIProcess/UIProcessLogInitialization.h: Added.
- UIProcess/WebProcessPool.cpp:
- 9:56 AM Changeset in webkit [290653] by
-
- 3 edits in trunk/Source/WebKit
Annotate LibWebRTC with thread safety macros
https://bugs.webkit.org/show_bug.cgi?id=237321
Reviewed by Eric Carlson.
LibWebRTCCodecs works with 3 threads and we add macros to make it clear where each thread is used:
- the main thread to get its GPU process connection (isMainRunLoop()).
- the libwebrtc thread where it gets orders to decode/encode frames (!isMainRunLoop())
- the work queue thread where it is receiving encode/decode results (assertIsCurrent(workQueue())).
Rename m_encodersLock to m_encodersConnectionLock to make it clear this is about locking the encoder connection and not the encoder map.
Both decoder and encoder maps should only be touched on the workQueue thread.
Introduce encoderConnection/setEncoderConnection and decoderConnection/setDecoderConnection routines.
These methods are guarded by corresponding locks.
This requires adding some additional locks when accessing connections in workQueue thread.
Fix a potential issue when creating the encoder: we lock the encoderConnection lock earlier when setting the connection.
Covered by existing tests.
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::gpuProcessConnectionMayNoLongerBeNeeded):
(WebKit::LibWebRTCCodecs::createDecoder):
(WebKit::LibWebRTCCodecs::releaseDecoder):
(WebKit::LibWebRTCCodecs::decodeFrame):
(WebKit::LibWebRTCCodecs::registerDecodeFrameCallback):
(WebKit::LibWebRTCCodecs::failedDecoding):
(WebKit::LibWebRTCCodecs::completedDecoding):
(WebKit::LibWebRTCCodecs::completedDecodingCV):
(WebKit::LibWebRTCCodecs::createEncoder):
(WebKit::LibWebRTCCodecs::releaseEncoder):
(WebKit::LibWebRTCCodecs::initializeEncoder):
(WebKit::LibWebRTCCodecs::copySharedVideoFrame):
(WebKit::LibWebRTCCodecs::encodeFrame):
(WebKit::LibWebRTCCodecs::registerEncodeFrameCallback):
(WebKit::LibWebRTCCodecs::setEncodeRates):
(WebKit::LibWebRTCCodecs::completedEncoding):
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):
(WebKit::LibWebRTCCodecs::encoderConnection):
(WebKit::LibWebRTCCodecs::setEncoderConnection):
(WebKit::LibWebRTCCodecs::decoderConnection):
(WebKit::LibWebRTCCodecs::setDecoderConnection):
(WebKit::copySharedVideoFrame): Deleted.
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
(WebKit::LibWebRTCCodecs::workQueue const):
- 9:40 AM Changeset in webkit [290652] by
-
- 2 edits in trunk/Tools
REGRESSION(r290539-r290538): [ iOS ] 3 TestWebKitAPI.WebAuthenticationPanel.* tests are constantly failing/crashing.
https://bugs.webkit.org/show_bug.cgi?id=237285
rdar://problem/89579460
Reviewed by Brent Fulgham.
Remove obsolete API test and ensure another has clean state.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 9:17 AM Changeset in webkit [290651] by
-
- 1 edit200 deletes in trunk/LayoutTests/imported/w3c
[Python 3] Delete old pywebsocket
https://bugs.webkit.org/show_bug.cgi?id=237274
<rdar://problem/89558809>
Rubber-stamped by Aakash Jain.
- LayoutTests/imported/w3c/web-platform-tests/tools/pywebsocket: Removed.
Canonical link: https://commits.webkit.org/247924@main
- 9:08 AM Changeset in webkit [290650] by
-
- 5 edits in trunk
Unreviewed, reverting r290325.
https://bugs.webkit.org/show_bug.cgi?id=237326
Broken patch
Reverted changeset:
"[GStreamer] Switch media player to playbin3"
https://bugs.webkit.org/show_bug.cgi?id=236884
https://commits.webkit.org/r290325
- 8:19 AM Changeset in webkit [290649] by
-
- 17 edits in trunk/Source/WebCore
[IFC][Integration] InlineIterator::Box::rect() returns the unflipped visual rect
https://bugs.webkit.org/show_bug.cgi?id=237304
Reviewed by Antti Koivisto.
Rename InlineIterator::Box::rect() to visualRectIgnoringBlockDirection().
This is the unflipped version of the visual rect. It's no longer logical but
when the writing mode sets right-to-left/bottom-to-top block direction, it's not yet visual either.
It'll help to indentify callsites where we actually need the flipped version of this visual rect.
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::unflippedVisualRect const):
(WebCore::InlineDisplay::Box::top const):
(WebCore::InlineDisplay::Box::bottom const):
(WebCore::InlineDisplay::Box::left const):
(WebCore::InlineDisplay::Box::right const):
(WebCore::InlineDisplay::Box::width const):
(WebCore::InlineDisplay::Box::height const):
(WebCore::InlineDisplay::Box::moveVertically):
(WebCore::InlineDisplay::Box::moveHorizontally):
(WebCore::InlineDisplay::Box::setLeft):
(WebCore::InlineDisplay::Box::setRight):
(WebCore::InlineDisplay::Box::setTop):
(WebCore::InlineDisplay::Box::setBottom):
(WebCore::InlineDisplay::Box::setRect):
(WebCore::InlineDisplay::Box::Box):
(WebCore::InlineDisplay::Box::truncate):
(WebCore::InlineDisplay::Box::rect const): Deleted.
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
- layout/integration/InlineIteratorBox.h:
(WebCore::InlineIterator::Box::logicalTop const):
(WebCore::InlineIterator::Box::logicalBottom const):
(WebCore::InlineIterator::Box::logicalLeft const):
(WebCore::InlineIterator::Box::logicalRight const):
(WebCore::InlineIterator::Box::logicalWidth const):
(WebCore::InlineIterator::Box::logicalHeight const):
(WebCore::InlineIterator::Box::unflippedVisualRect const):
(WebCore::InlineIterator::Box::rect const): Deleted.
- layout/integration/InlineIteratorBoxLegacyPath.h:
(WebCore::InlineIterator::BoxLegacyPath::unflippedVisualRect const):
(WebCore::InlineIterator::BoxLegacyPath::rect const): Deleted.
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::unflippedVisualRect const):
(WebCore::InlineIterator::BoxModernPath::createTextRun const):
(WebCore::InlineIterator::BoxModernPath::rect const): Deleted.
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::showInlineContent):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::firstInlineBoxRect const):
(WebCore::LayoutIntegration::LineLayout::collectInlineBoxRects const):
(WebCore::LayoutIntegration::LineLayout::hitTest):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::showInlineTreeAndRuns):
- rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry const):
(WebCore::pixelSnapBackgroundImageGeometryForPainting): Deleted.
- rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::linesBoundingBox const):
(WebCore::RenderLineBreak::absoluteRects const):
(WebCore::RenderLineBreak::absoluteQuads const):
- rendering/RenderText.cpp:
(WebCore::RenderText::absoluteRects const):
(WebCore::boundariesForTextRun):
(WebCore::localQuadForTextRun):
(WebCore::RenderText::firstRunLocation const):
(WebCore::RenderText::linesBoundingBox const):
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::computePaintRect):
- 8:18 AM Changeset in webkit [290648] by
-
- 2 edits in trunk/LayoutTests
[Debug] imported/w3c/web-platform-tests/url/toascii.window.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=236442
<rdar://problem/89085190>
Unreviewed, unskip test as it no longer appears to crash in Debug.
- 7:42 AM Changeset in webkit [290647] by
-
- 35 edits1 add in trunk/Source
[JSC] Port EXTRA_CTI_THUNKS to all platforms
https://bugs.webkit.org/show_bug.cgi?id=233822
Patch by Geza Lore <Geza Lore> on 2022-03-01
Reviewed by Saam Barati.
Source/JavaScriptCore:
Port and enable all code paths under #ifdef ENABLE(EXTRA_CTI_THUNKS)
on all platforms, and remove the now unused code paths.
To port the extra thunks to all platforms, it was necessary to enable
them to do function calls to C++ slow path operations, which on some
platforms require passing arguments on the stack. To enable this,
CCallHelpers::emitCTIThunkPrologue and
CCallHelpers::emitCTIThunkEpilogue are introduced that allocate some
additional stack space on platforms where this is necessary.
Additionally, the thunks that require subsequent exception checking
now tail call directly to the exception check thunk, rather than
returning to the baseline code and do a separate call to the exception
check thunk. This saves an extra call site in the generated baseline
ops and reduces code size on all platforms (~1.5% reduction on x86_64).
Also factored out the statically allocated register definitions for
baseline ops into BaselineJITRegisters.h, as there are now quite a lot
of them and some are somewhat elaborate. This necessitates moving the
noOverlap and preferredArgumentGPR/preferredArgumentJSR constexpr
functions out from their previous place, so these now live in
GPRInfo.h
Enabling the extra CTI thunks on ARMv7/Thumb-2 saves about 25%
baseline code size, according to --dumpLinkBufferStats.
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::subPtr):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::scratchRegister):
- assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::sub64):
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessGenerationState::emitExplicitExceptionHandler):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
- dfg/DFGJITCompiler.h:
- ftl/FTLCompile.cpp:
(JSC::FTL::compile):
- ftl/FTLLink.cpp:
(JSC::FTL::link):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::emitCTIThunkPrologue):
(JSC::CCallHelpers::emitCTIThunkEpilogue):
- jit/JIT.cpp:
(JSC::JIT::emitSlowCaseCall):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITArithmetic.cpp:
(JSC::JIT::emitSlow_op_mod):
(JSC::JIT::emit_op_mod):
(JSC::JIT::emit_op_div):
- jit/JITCall.cpp:
(JSC::JIT::emit_op_iterator_open):
(JSC::JIT::emit_op_iterator_next):
(JSC::JIT::emitSlow_op_iterator_next):
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITGetByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITGetByIdWithThisGenerator::generateBaselineDataICFastPath):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
- jit/JITInlineCacheGenerator.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_jfalse):
(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::emit_op_jtrue):
(JSC::JIT::valueIsTruthyGenerator):
(JSC::JIT::emit_op_throw):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::emit_op_enter):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::emitSlow_op_check_traps):
(JSC::JIT::op_check_traps_handlerGenerator):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::generateGetByValSlowCase):
(JSC::JIT::slow_op_get_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_get_private_name):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::slow_op_get_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_set_private_brand):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emit_op_check_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::slow_op_del_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::slow_op_del_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::slow_op_get_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::slow_op_get_by_id_with_this_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::slow_op_put_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_val):
(JSC::JIT::emitHasPrivateSlow):
(JSC::JIT::emitSlow_op_has_private_name):
(JSC::JIT::emitSlow_op_has_private_brand):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::slow_op_put_to_scopeGenerator):
(JSC::JIT::emit_op_get_property_enumerator):
(JSC::JIT::emit_op_enumerator_next):
(JSC::JIT::emit_enumerator_has_propertyImpl):
(JSC::JIT::emit_op_enumerator_get_by_val):
(JSC::JIT::emit_op_enumerator_in_by_val):
(JSC::JIT::emit_op_enumerator_has_own_property):
- jit/JITThunks.cpp:
- jit/JITThunks.h:
- jit/SlowPathCall.cpp:
(JSC::JITSlowPathCall::call):
(JSC::JITSlowPathCall::generateThunk):
- jit/SlowPathCall.h:
(JSC::JITSlowPathCall::JITSlowPathCall):
- jit/ThunkGenerators.cpp:
(JSC::handleExceptionGenerator):
(JSC::checkExceptionGenerator):
- jit/ThunkGenerators.h:
Source/WTF:
- wtf/PlatformEnable.h:
Remove EXTRA_CTI_THUNKS define (now always on on all platforms)
- 7:16 AM Changeset in webkit [290646] by
-
- 27 edits4 adds in trunk
focus({preventScroll: true}) does not prevent scrolling on iOS
https://bugs.webkit.org/show_bug.cgi?id=236584
rdar://88911184
Reviewed by Simon Fraser.
Source/WebCore:
Plumb
FocusOptionsthroughElement::dispatchFocusEvent()as well as the chrome client hooks for
elementDidRefocusandelementDidFocus, instead of just aFocusDirectionflag.
- dom/Document.cpp:
(WebCore::Document::setFocusedElement):
- dom/Element.cpp:
(WebCore::Element::focus):
(WebCore::Element::dispatchFocusEvent):
- dom/Element.h:
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::dispatchFocusEvent):
- html/HTMLSelectElement.h:
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
- html/HTMLTextFormControlElement.h:
- loader/EmptyClients.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::elementDidFocus):
(WebCore::ChromeClient::elementDidRefocus):
- page/FocusController.cpp:
(WebCore::dispatchEventsOnWindowAndFocusedElement):
(WebCore::FocusController::setFocusedElement):
Source/WebKit:
Add support for
preventScrollon iOS by avoiding UI-side zooming/scrolling to reveal the focused element if it
was focused withpreventScroll: true. See below for more details.
Tests: fast/forms/select-focus-prevent-scroll.html
fast/forms/text-field-focus-prevent-scroll.html
- Shared/FocusedElementInformation.cpp:
(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):
- Shared/FocusedElementInformation.h:
Add a boolean flag to
FocusedElementInformationto indicate whether or not scrolling to reveal the focused
element should be prevented.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _zoomToRevealFocusedElement]):
Only zoom to reveal the focused element if the focused element information's
preventScrollflag isNO.
(-[WKContentView _elementDidBlur]):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::elementDidFocus):
(WebKit::WebChromeClient::elementDidRefocus):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::elementDidRefocus):
(WebKit::WebPage::elementDidFocus):
Use
FocusOptionsto set thepreventScrollflag when propagatingFocusedElementInformation.
- WebProcess/WebPage/WebPage.h:
Source/WebKitLegacy/ios:
Adjust the method signature of elementDidFocus. See WebCore ChangeLog for more information.
- WebCoreSupport/WebChromeClientIOS.h:
- WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::elementDidFocus):
Source/WebKitLegacy/mac:
Adjust the method signature of elementDidFocus. See WebCore ChangeLog for more information.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::elementDidFocus):
LayoutTests:
Add a couple of new layout tests to verify that passing in
{ preventScroll: true }for focus options causes
us to avoid scrolling to reveal focused select elements and text fields.
- fast/forms/select-focus-prevent-scroll-expected.txt: Added.
- fast/forms/select-focus-prevent-scroll.html: Added.
- fast/forms/text-field-focus-prevent-scroll-expected.txt: Added.
- fast/forms/text-field-focus-prevent-scroll.html: Added.
- resources/ui-helper.js:
Also make it safe to call
waitForInputSessionToDismiss()in a platform-agnostic test, by bailing early if
we're not on iOS, using WebKit2.
- 7:09 AM Changeset in webkit [290645] by
-
- 6 edits2 adds in trunk
REGRESSION (r273129): Text contents in <span> with opacity not repainting/updating when sibling element has "will-change: transform"
https://bugs.webkit.org/show_bug.cgi?id=236876
<rdar://problem/89180092>
Reviewed by Simon Fraser.
Source/WebCore:
This patch implements a slightly naive repaint for inline boxes with self painting layers.
- Mark the line when it gains an inline box (RenderInline) with self painting layer (e.g. <span style="position: relative">this has dedicated layer</span>)
- Issue repaint at the end of the line layout on such renderers.
Test: fast/repaint/inline-box-with-self-paint-layer.html
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::addToLine):
- rendering/LegacyInlineFlowBox.h:
(WebCore::LegacyInlineFlowBox::LegacyInlineFlowBox):
(WebCore::LegacyInlineFlowBox::hasSelfPaintInlineBox const):
- rendering/LegacyLineLayout.cpp:
(WebCore::repaintSelfPaintInlineBoxes):
(WebCore::LegacyLineLayout::layoutRunsAndFloats):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::clippedOverflowRect const): expand the ASSERT to enclsing inline boxes too.
LayoutTests:
- fast/repaint/inline-box-with-self-paint-layer-expected.html: Added.
- fast/repaint/inline-box-with-self-paint-layer.html: Added.
- 6:42 AM Changeset in webkit [290644] by
-
- 6 edits in trunk
[web-animations] web-animations/interfaces/Animatable/getAnimations-iframe.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=237314
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add a new test to check that both Document.getAnimations() and Element.getAnimations() correctly
update layout on the owner document.
- web-platform-tests/web-animations/interfaces/Animatable/getAnimations-iframe-expected.txt:
- web-platform-tests/web-animations/interfaces/Animatable/getAnimations-iframe.html:
Source/WebCore:
We need to update the layout of a potential owner document in case some layout-dependent media queries
trigger declarative animations.
- dom/Document.cpp:
(WebCore::Document::matchingAnimations):
- dom/Element.cpp:
(WebCore::Element::getAnimations):
- 6:32 AM Changeset in webkit [290643] by
-
- 8 edits5 adds in trunk
WebGL GPUP OpenGL context is not used even if WebGL via Metal is deselected
https://bugs.webkit.org/show_bug.cgi?id=236505
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-01
Reviewed by Myles C. Maxfield.
Source/WebCore:
Encode, decode also
useMetalproperty.
Tests: webgl/webgl-via-metal-flag-off.html
webgl/webgl-via-metal-flag-on.html
- platform/graphics/GraphicsContextGLAttributes.h:
(WebCore::GraphicsContextGLAttributes::encode const):
(WebCore::GraphicsContextGLAttributes::decode):
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
- Shared/WebCoreArgumentCoders.h:
LayoutTests:
- webgl/resources/test-shader-implementation-language.js: Added.
(runTest):
- webgl/webgl-via-metal-flag-off-expected.txt: Added.
- webgl/webgl-via-metal-flag-off.html: Added.
- webgl/webgl-via-metal-flag-on-expected.txt: Added.
- webgl/webgl-via-metal-flag-on.html: Added.
- 6:23 AM Changeset in webkit [290642] by
-
- 18 edits1 move1 delete in trunk/Source
GraphicsContextGL related includes are inconsistent, slowing the build
https://bugs.webkit.org/show_bug.cgi?id=237270
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-01
Reviewed by Alexey Proskuryakov.
Source/WebCore:
Remove include "GraphicsContextGL.h" from files not needing that.
Most notably, add ChromeClient.cpp and move the non-trivial
ChromeClient::createGraphicsContextGL() function to .cpp file, so
that ChromeClient.h does not need to include GraphicsContextGL.h.
This makes incremental compiles better, as not all changes to
GraphicsContextGL.h and its dependencies force big rebuilds.
GraphicsContextGL.h and dependents maintainance:
Remove unneeded forward declarations. Types referenced by overridden virtual
functions must already be declared. Remove forward declarartion ExtensionsGL,
the class was removed
Use forward declares instead of includes (MediaPlayer).
Remove RemoteGraphicsContextGLProxyBase.cpp/h, the use was removed.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/canvas/WebGLActiveInfo.h:
- html/canvas/WebGLShaderPrecisionFormat.h:
- inspector/InspectorShaderProgram.cpp:
- page/ChromeClient.cpp: Renamed from Source/WebCore/platform/graphics/RemoteGraphicsContextGLProxyBase.cpp.
(WebCore::ChromeClient::createGraphicsContextGL const):
- page/ChromeClient.h:
- platform/HostWindow.h:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/GraphicsContextGLState.h:
- platform/graphics/RemoteGraphicsContextGLProxyBase.h: Removed.
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/cocoa/IOSurface.mm:
- platform/graphics/opengl/ExtensionsGLOpenGL.h:
- platform/xr/openxr/OpenXRSwapchain.h:
- platform/xr/openxr/PlatformXROpenXR.cpp:
- platform/xr/openxr/PlatformXROpenXR.h:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
- 4:53 AM Changeset in webkit [290641] by
-
- 2 edits in trunk
[CMake] Build failure with libstdc++ (>= 6) when cross-compiling (fatal error: stdlib.h: No such file or directory)
https://bugs.webkit.org/show_bug.cgi?id=161697
Reviewed by Carlos Garcia Campos.
- Source/cmake/WebKitCompilerFlags.cmake: Set LANG=C in compiler invocation to ensure its
output is consistent and the checks are independent from the system locale configuration.
- 3:24 AM Changeset in webkit [290640] by
-
- 2 edits in trunk/Source/WebCore
Explicitly disable style sharing for form controls
https://bugs.webkit.org/show_bug.cgi?id=237236
Reviewed by Antti Koivisto.
There was a typo introduced in bug 153768 and bug 138769, which essentially disables
style sharing completely for form controls. Let's make that explicit.
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithControl): Removed.
(WebCore::Style::SharingResolver::canShareStyleWithElement const):
- 2:28 AM Changeset in webkit [290639] by
-
- 26 edits5 adds in trunk
Make input element UA shadow tree creation lazy
https://bugs.webkit.org/show_bug.cgi?id=236747
Reviewed by Aditya Keerthi.
Source/WebCore:
We currently delay InputType creation for parser inserted elements until
just after the attributes have been set, so that we don't wastefully
create an InputType and the UA shadow tree creation if a non-text
type="" was specified on the tag. We don't do anything similar for
script inserted input elements. We could make the InputType creation
lazy, but most of the wasted time is due to the shadow tree creation.
This patch makes InputType shadow tree creation lazy by delaying it
until one of the following happens:
- the element is inserted into the document
- the type="" or value="" attributes are changed before the element is inserted into the document
- any DOM methods that need access to the innerTextElement() are called on the element before the element is inserted into the document
Not all places where we call innerTextElement() on the
HTMLInputElement are safe to lazily create the shadow trees, so we
have two accessors:
- innerTextElement() returns the inner text element if it's been created already
- innerTextElementCreatingShadowSubtreeIfNeeded will perform the lazy shadow tree construction if it hasn't already been done
Since the existing
createShadowSubtreeAndUpdateInnerTextElementEditability function has
more responsibility than just creating the subtree and ensuring the
editability is set appropriately, it's renamed to a more manageable
createShadowSubtree.
This change is a 0.5% progression on Speedometer 2.
Test: fast/forms/lazy-shadow-tree-creation.html
- html/BaseDateAndTimeInputType.h:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::createShadowSubtree):
(WebCore::BaseDateAndTimeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/ColorInputType.h:
- html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree):
(WebCore::ColorInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/FileInputType.h:
- html/FileInputType.cpp:
(WebCore::FileInputType::createShadowSubtree):
(WebCore::FileInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/InputType.cpp:
(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/RangeInputType.h:
- html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree):
(WebCore::RangeInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
- html/SearchInputType.h:
- html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree):
(WebCore::SearchInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed createShadowSubtreeAndUpdateInnerTextElementEditability to
createShadowSubtree and remove the "isInnerTextElementEditable"
argument, since we can ask the element() for its value if needed.
createShadowSubtree is now also responsible for creating the shadow
root.
- html/TextFieldInputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createShadowSubtreeAndUpdateInnerTextElementEditability):
Renamed. Ensure all shadow tree state is up to date now that it can be
created later.
- html/InputType.h:
- html/InputType.cpp:
(WebCore::InputType::createShadowSubtree):
(WebCore::InputType::hasCreatedShadowSubtree const):
New functions to create the shadow subtree if it hasn't been done
already, and to query whether it's been done.
- html/HTMLInputElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::innerTextElementCreatingShadowSubtreeIfNeeded):
- html/HTMLTextAreaElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::innerTextElementCreatingShadowSubtreeIfNeeded):
- html/HTMLTextFormControlElement.h:
- html/InputType.h:
- html/InputType.cpp:
(WebCore::InputType::innerTextElementCreatingShadowSubtreeIfNeeded):
New functions to first create the shadow subtree before returning
innerTextElement(). HTMLTextAreaElement never lazily creates its
shadow subtree and so just returns innerTextElement().
- html/HTMLInputElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::createShadowSubtreeAndUpdateInnerTextElementEditability):
Deleted. Just call through to m_inputType->createShadowTree()
directly.
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::updateType):
Don't immediately create the shadow tree.
(WebCore::HTMLInputElement::didFinishInsertingNode):
Create the shadow subtree now that the element's been inserted. No
need to call dataListMayHaveChanged since
TextFieldInputType::createShadowSubtree will now do this.
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::updateInnerTextValue):
Ensure the shadow subtree is created since we need to poke at it.
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::forwardEvent):
Don't forward the event if the shadow tree hasn't been created yet.
(WebCore::HTMLTextFormControlElement::setSelectionRange):
Ensure the shadow tree has been created. This is needed if the
selection APIs are called on the input element before it's inserted
into the document.
(WebCore::HTMLTextFormControlElement::visiblePositionForIndex const):
Assert that the shadow tree has been created, since editing
functionality should only be needed if the element's been inserted
into the document.
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
Ensure the shadow tree has been created.
- html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
(WebCore::RangeInputType::handleTouchEvent):
Ensure the shadow tree has been created in case the event will change
the value.
(WebCore::RangeInputType::sliderTrackElement const):
Only return the element if it's been created.
(WebCore::RangeInputType::typedSliderThumbElement const):
Assert that the element has been created.
(WebCore::RangeInputType::dataListMayHaveChanged):
Only try to re-layout if the shadow tree has been created.
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::isEmptyValue const):
Avoid creating the shadow subtree.
(WebCore::TextFieldInputType::forwardEvent):
Move the element assertion up to be consistent with other functions.
(WebCore::TextFieldInputType::innerTextElement const):
Don't assert, since this now can legitimately return null.
- html/FileInputType.cpp:
(WebCore::FileInputType::disabledStateChanged):
(WebCore::FileInputType::attributeChanged):
- html/RangeInputType.cpp:
(WebCore::RangeInputType::disabledStateChanged):
(WebCore::RangeInputType::attributeChanged):
(WebCore::RangeInputType::setValue):
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::disabledStateChanged):
(WebCore::TextFieldInputType::readOnlyStateChanged):
(WebCore::TextFieldInputType::updatePlaceholderText):
(WebCore::TextFieldInputType::updateAutoFillButton):
(WebCore::TextFieldInputType::dataListMayHaveChanged):
Don't update the shadow tree contents if it hasn't been created yet.
createShadowTree is responsible for ensuring it creates the shadow
tree contents reflecting the current state.
LayoutTests:
- fast/forms/lazy-shadow-tree-creation-expected.html: Added.
- fast/forms/lazy-shadow-tree-creation.html: Added.
- fast/forms/lazy-shadow-tree-creation.js: Added.
(supportsType):
(makeAndAppendInput):
- LayoutTests/fast/forms/lazy-shadow-tree-creation-crash.html:
- LayoutTests/fast/forms/lazy-shadow-tree-creation-crash-expected.html:
Crashtest.
- fast/shadow-dom/style-resolver-sharing-expected.txt:
Update to account for the lazy shadow tree being created later.
- 2:15 AM Changeset in webkit [290638] by
-
- 9 edits4 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=237310
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-03-01
- platform/glib/css3/flexbox/line-wrapping-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/007-expected.txt:
- platform/glib/fast/dom/scroll-reveal-top-overflow-expected.txt: Added.
- platform/glib/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt:
- platform/gtk/TestExpectations:
- platform/gtk/fast/repaint/vertical-text-repaint-expected.txt: Added.
- platform/gtk/fast/writing-mode/japanese-lr-selection-expected.txt:
- platform/gtk/tables/mozilla_expected_failures/dom/appendCol1-expected.txt:
- platform/wpe/fast/repaint/vertical-text-repaint-expected.txt: Added.
- platform/wpe/fast/writing-mode/japanese-lr-selection-expected.txt:
- platform/wpe/tables/mozilla_expected_failures/dom/appendCol1-expected.txt:
- 2:11 AM Changeset in webkit [290637] by
-
- 3 edits in trunk/Tools
[JSC] Implement chunking for the GNU parallel runner
https://bugs.webkit.org/show_bug.cgi?id=237028
Reviewed by Adrian Perez de Castro.
The GNU parallel runner can't keep up with the scheduling when using
multiple fast remotes. This results in poor CPU utilization on the
remotes and more waiting time.
As a quick fix, allow the user to specify a --gnu-parallel-chunk-size,
the value of which specifies the number of test jobs to schedule as a
unit (defaults to 1). Specifying a higher value means longer-running
jobs, so that GNU parallel can more efficiently schedule them.
- Scripts/run-javascriptcore-tests:
(runJSCStressTests):
- Scripts/run-jsc-stress-tests:
- 1:36 AM Changeset in webkit [290636] by
-
- 3 edits in trunk
[CMake] Disabling ENABLE_WEBCORE is ignored when cmake configuration runs again.
https://bugs.webkit.org/show_bug.cgi?id=237170
Reviewed by Fujii Hironori.
CMake variables which has chance to set from outside should be cached in CMake configuration cache.
Unless cacheing, the result of building the generated project is not consisitent because the other
configuration may run while building.
To make it complete, I've changed ENABLE_JAVASCRIPTCORE, ENABLE_WEBCORE and ENABLE_WEBKIT to
option()
which is stored in cached and reused while building even if the confuguration runs again.
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/WebKitCommon.cmake:
- 1:01 AM Changeset in webkit [290635] by
-
- 4 edits in trunk
[Selection] Selection Range should be clamped by the current value length
https://bugs.webkit.org/show_bug.cgi?id=237210
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update the test expectations as some sub-tests are now passing.
- web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-expected.txt:
Source/WebCore:
As per https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#set-the-selection-range,
if start or end "is greater than the length of the relevant value of the text control, then set it to
the length of the relevant value of the text control".
This CL makes selection range clamp to the current value length.
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange):
- 12:55 AM Changeset in webkit [290634] by
-
- 4 edits in trunk
Handle perpendicular containing blocks when computing available logical height.
https://bugs.webkit.org/show_bug.cgi?id=236953
Reviewed by Dean Jackson.
Source/WebCore:
Handles the case where the containing block uses a perpendicular writing mode
to the current box, and we need to check the containing block's width in order
to determine height.
Existing subgrid tests marked as passing.
These subgrid reftests were failing because the -expected files were rendering incorrectly
(which don't use subgrid).
- rendering/RenderBox.cpp:
(WebCore::RenderBox::availableLogicalHeightUsing const):
LayoutTests:
Existing subgrid tests marked as passing.
- 12:48 AM Changeset in webkit [290633] by
-
- 10 edits4 deletes in trunk
[ATSPI] Remove layout tests checking children added/removed notifications
https://bugs.webkit.org/show_bug.cgi?id=237272
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Do not send children-changed notifications to WTR observers.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::notifyChildrenChanged const): Deleted.
- accessibility/atspi/AccessibilityAtspi.h:
LayoutTests:
Children changed notifications are not expected by any other tests because other ports don't support them. We
already have unit tests to ensure they work as expected so we can just remove the layout tests and ensure we
don't emit those notifications either.
- accessibility/children-changed-sends-notification-expected.txt: Removed.
- accessibility/children-changed-sends-notification.html: Removed.
- accessibility/gtk/menu-list-unfocused-notifications-expected.txt:
- accessibility/gtk/no-notification-for-unrendered-iframe-children-expected.txt: Removed.
- accessibility/gtk/no-notification-for-unrendered-iframe-children.html: Removed.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo-wk1/TestExpectations:
- 12:00 AM Changeset in webkit [290632] by
-
- 7 edits1 add in trunk
Migrate third-party IndexedDB data to GeneralStorageDirectory
https://bugs.webkit.org/show_bug.cgi?id=237283
Reviewed by Chris Dumez.
Source/WebKit:
In current storage layout, third-party IndexedDB data is stored in a subdirectory of top origin directory, e.g.
[IndexedDBDirectory]/[TopOrigin]/[ThirdPartyOrigin]/[Database]. First-party data is stored in the top origin
directory, e.g. [IndexedDBDirectory]/[TopOrigin]/[Database]. Our current migration code directly renames the
origin directory without checking whether it has subdirectory that is a third-party directory. That means,
[IndexedDBDirectory]/[TopOrigin]/ is moved to [GeneralStorageDirectory]/[TopOrigin]/[TopOrigin]/[IndexedDB]/,
and [IndexedDBDirectory]/[TopOrigin]/[ThirdPartyOrigin]/ is moved to
[GeneralStorageDirectory]/[TopOrigin]/[TopOrigin]/[IndexedDB]/[ThirdPartyOrigin] ([ThirdPartyOrigin]/ here is
treated as a database directory). This is wrong: the new third-party directory should actually be
[GeneralStorageDirectory]/[TopOrigin]/[ThirdPartyOrigin]/[IndexedDB]/.
To fix this, we now make sure only first-party data is migrated when first-party IndexedDB database is visited,
by moving only database directories under origin directory.
Test: IndexedDB.MigrateThirdPartyDataToGeneralStorageDirectory
- NetworkProcess/storage/IDBStorageManager.cpp:
(WebKit::migrateOriginDataImpl):
(WebKit::IDBStorageManager::idbStorageOriginDirectory):
(WebKit::IDBStorageManager::migrateOriginData):
(WebKit::migrateOriginData): Deleted.
- NetworkProcess/storage/IDBStorageManager.h:
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::resolvedIDBStoragePath):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
- TestWebKitAPI/Tests/WebKitCocoa/indexeddb-persistence-third-party.sqlite3: Added.
Feb 28, 2022:
- 11:47 PM Changeset in webkit [290631] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Unreviewed, non-unified build fix after 247791@main
- platform/graphics/gbm/GBMDevice.h:
- 11:46 PM Changeset in webkit [290630] by
-
- 9 edits3 adds in trunk
AX: WebKit should ignore empty modals rather than trapping focus inside them
https://bugs.webkit.org/show_bug.cgi?id=237163
Reviewed by Chris Fleizach and Andres Gonzalez.
Source/WebCore:
Given this markup:
<div role="dialog" aria-modal="true">
<div aria-hidden="true">
<button>Close modal (inside modal)</button>
</div>
</div>
There is no accessible content inside this modal, but WebKit traps user focus inside,
making the rest of the page completely inaccessible.
With this patch we ignore modals that don't have accessible content.
We do this by walking the DOM to find any non-AX-ignored objects.
Because determining whether or not an element is ignored is dependent
on modals present on the page, this patch moves the call toignoredFromModalPresence
out ofAccessibilityObject::defaultObjectInclusion, as this function is
downstream ofcomputeAccessibilityIsIgnored, and we need to call
that on objects inside modal candidates. Without this move, we would
recurse infinitely inAXObjectCache::modalElementHasAccessibleContent.
We now check whether an object is ignored due to modal presence in
AccessibilityObject::accessibilityIsIgnored(), so that function should
be used as the final say in determining whether an object is ignored.
Test: accessibility/ignore-modals-without-any-content.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::modalElementHasAccessibleContent):
(WebCore::AXObjectCache::currentModalNode):
- accessibility/AXObjectCache.h:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::defaultObjectInclusion const):
(WebCore::AccessibilityObject::accessibilityIsIgnored const):
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::computeAccessibilityIsIgnored const):
LayoutTests:
- accessibility/ignore-modals-without-any-content-expected.txt: Added.
- accessibility/ignore-modals-without-any-content.html: Added.
- platform/glib/TestExpectations: Skip new test.
- platform/ios/TestExpectations: Enable new test.
- platform/ios/accessibility/ignore-modals-without-any-content-expected.txt: Added.
- platform/win/TestExpectations: Skip new test.
- 10:12 PM Changeset in webkit [290629] by
-
- 2 edits in trunk/Source/WebKit
[IPC] Do more hardening in WebSWServerConnection's client registration / unregistration
https://bugs.webkit.org/show_bug.cgi?id=237290
<rdar://88903506>
Reviewed by Alex Christensen.
Validate client identifiers sent by the WebContent process via IPC to make sure that the
process identifier of the client actually matches the process identifier of the process
we're connected to.
Also validate the SecurityOriginData to make sure it is not empty. We support sending
empty SecurityOriginData objects over IPC. However, they cannot be used as keys in
HashMaps.
If validation fails, we assume the WebContent process is compromised and we terminate it.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
- 8:54 PM Changeset in webkit [290628] by
-
- 4 edits6 adds in trunk
Compositing/paint invalidation with transforms
https://bugs.webkit.org/show_bug.cgi?id=233421
<rdar://problem/85814854>
Reviewed by Alan Bujtas.
Source/WebCore:
When changing transform from something like
translate(0)to `translate3d(0, 0, 0)
scale(0.5, 0.5)`, we trigger compositing, and thus need to repaint the previous rect of the
layer in its old repaint container. However, the existing code would take the new transform
into account when computing that rect, thus dirtying a rect that is too small.
To fix this, we need to use the cached repaint rects on RenderLayer for this repaint.
However, doing so revealed a bug (via
compositing/shared-backing/repaint-into-shared-backing.html) in how we compute repaint
cached repaint rects in the presence of shared backing. During a compositing update, if a
layer's composited state changed, we'd call computeRepaintRectsIncludingDescendants(), which
computes rect relative to the layer's repaint container. But at this time, the state of
backing sharing in BackingSharingState is in flux (we essentially don't know yet if a layer
can use shared backing). So we may compute and cache repaint rects relative to the wrong
container.
To fix this, leverage the existing m_layersPendingRepaint logic, and delay computing the
repaint rects until we've established our final backing sharing configuration.
Tests: compositing/repaint/composite-and-scale-change.html
compositing/shared-backing/repaint-into-shared-backing-become-composited.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setBackingProviderLayer):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::BackingSharingState::issuePendingRepaints):
(WebCore::RenderLayerCompositor::updateBacking):
LayoutTests:
- compositing/repaint/composite-and-scale-change-expected.txt: Added.
- compositing/repaint/composite-and-scale-change.html: Added.
Test that dumps repaint rects.
- compositing/shared-backing/repaint-into-shared-backing-become-composited-expected.html: Added.
- compositing/shared-backing/repaint-into-shared-backing-become-composited.html: Added.
Companion to repaint-into-shared-backing.html but toggles compositing in the other
direction.
- platform/gtk/compositing/repaint/composite-and-scale-change-actual.txt: Added.
- platform/mac-wk1/compositing/repaint/composite-and-scale-change-expected.txt: Added.
- 7:24 PM Changeset in webkit [290627] by
-
- 2 edits in trunk/Source/WebKit
Fix use-after-move bug in NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=237294
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-28
Reviewed by Chris Dumez.
Luckily, they were just two booleans, and after you call std::move on a bool you get
technically undefined behavior. Luckily, in practice the bool value is unchanged.
We don't need to rely on that, though. Let's read from the location with defined behavior.
- NetworkProcess/NetworkResourceLoader.cpp:
- 7:13 PM Changeset in webkit [290626] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r290470): CDMInstanceSession::setLogIdentifier must be guarded with !RELEASE_LOG_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=237302
Unreviewed build fix.
- GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp:
(WebKit::RemoteCDMInstanceSessionProxy::setLogIdentifier):
- 7:00 PM Changeset in webkit [290625] by
-
- 10 edits in trunk
No animation when scroll snap scroller is navigated with the keyboard
https://bugs.webkit.org/show_bug.cgi?id=236244
Reviewed by Tim Horton.
Source/WebCore:
Keyboard-driven scrolls in overflow didn't animate, simply because scrollAnimatorEnabled()
wasn't implemented for RenderLayerScrollableArea.
I could not figure out a reliable way to test that we animated the scroll.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollAnimatorEnabled const):
- rendering/RenderLayerScrollableArea.h:
Tools:
In fixing this bug I ran into the issue predicted in https://bugs.webkit.org/show_bug.cgi?id=234456#c6.
As a workaround, explicitly set NSScrollAnimationEnabled to NO in both processes. This is a partial revert
of r287228 which I tried, and failed to fix via bug 234488.
- WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::InjectedBundle::platformInitialize):
- WebKitTestRunner/mac/main.mm:
(setDefaultsToConsistentValuesForTesting):
LayoutTests:
Turn off the scroll animator for these tests that assume that scrolling is instantaneous.
- css3/scroll-snap/scroll-padding-overflow-paging.html:
- fast/events/wheelevent-in-scrolling-div.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:
- 6:38 PM Changeset in webkit [290624] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] fast/mediastream/video-rotation-gpu-process-crash.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=237295
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-02-28
- platform/ios/TestExpectations:
- 6:34 PM Changeset in webkit [290623] by
-
- 5 edits in trunk/Source/WebKit
[macOS] TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=237065
<rdar://problem/89324250>
Reviewed by Darin Adler.
Revert r290544 as it does not fully fix the flaky test. The flakiness is caused by network process exiting
before transactions of SQLiteStorageArea are committed. In NetworkProcess::destroySession, we schedule a
background task to commit transactions in the session, and remove session. In NetworkProcess::didClose, for
existing sessions, we schedule tasks to commit transaction and wait until the tasks are finished before exiting
network process. That means for a session, when NetworkProcess::destroySession is called before
NetworkProcess::didClose, process may exit before commit task (scheduled by NetworkProcess::destroySession) is
finished (NetworkProcess::didClose does not wait because session is already removed).
To solve this issue, let NetworkProcess::didClose check existing NetworkStorageManagers, instead of
NetworkSessions. NetworkStorageManager can outlive NetworkSession when it's finishing cleanup task
(including committing transactions) on its background thread; we want to ensure process exits after the cleanup
task is done.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::allNetworkStorageManagers):
(WebKit::NetworkStorageManager::forEach):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::~NetworkStorageManager):
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/SQLiteStorageArea.cpp:
(WebKit::SQLiteStorageArea::SQLiteStorageArea):
(WebKit::SQLiteStorageArea::startTransactionIfNecessary):
(WebKit::SQLiteStorageArea::commitTransactionIfNecessary):
(WebKit::commitTransactionsAtExit): Deleted.
- 5:03 PM Changeset in webkit [290622] by
-
- 4 edits in trunk/LayoutTests
REBASELINE [ iOS15 ] fast/text/khmer-lao-font.html is a constant text failure
<rdar://88841324>
Unreviewed test gardening. Rebaseline for iOS15.
- platform/ios-wk2/TestExpectations:
- platform/ios-wk2/fast/text/khmer-lao-font-expected.txt:
- platform/ios/fast/text/khmer-lao-font-expected.txt:
- 4:59 PM Changeset in webkit [290621] by
-
- 17 edits in trunk/Source
[Cocoa] Adopt -streamDataParser:didProvideContentKeySpecifier:forTrackID: delegate callback
https://bugs.webkit.org/show_bug.cgi?id=236109
<rdar://problem/88785844>
Reviewed by Eric Carlson.
Source/WebCore:
Re-land support after a rollout in r290311, this time with an off-by-default Experimental Feature
flag.
In addition to checking whether the renderer classes support AVContentKeySession, also check whether
the RuntimeSetting has been enabled. This requires passing that setting through to the
MediaSessionManagerCocoa singleton, so it can be accessed from platform/.
If the renderer support check succeeds and the setting is enabled, only then should the delegate for
AVStreamDataParser include support for the new -didProvideContentKeySpecifier callback. Subclass the
WebAVStreamDataParserListener into a new WebAVStreamDataParserWithKeySpecifierListener object, and
instantiate one or the other according to the support checks above.
- page/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::setSampleBufferContentKeySessionSupportEnabled):
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::sampleBufferContentKeySessionSupportEnabled const):
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setSampleBufferContentKeySessionSupportEnabled):
(WebCore::MediaSessionManagerCocoa::sampleBufferContentKeySessionSupportEnabled):
- platform/graphics/avfoundation/objc/SourceBufferParserAVFObjC.mm:
(-[WebAVStreamDataParserWithKeySpecifierListener streamDataParser:didProvideContentKeySpecifier:forTrackID:]):
(WebCore::SourceBufferParserAVFObjC::SourceBufferParserAVFObjC):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeySpecifier:forTrackID:]): Deleted.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::sampleBufferRenderersSupportKeySession):
Source/WebKit:
Pass the new RuntimeEnabledFeature through to the GPU process.
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::setSampleBufferContentKeySessionSupportEnabled):
- GPUProcess/GPUProcess.h:
- GPUProcess/GPUProcess.messages.in:
- GPUProcess/GPUProcessCreationParameters.cpp:
(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):
- GPUProcess/GPUProcessCreationParameters.h:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::updatePreferences):
- UIProcess/GPU/GPUProcessProxy.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 4:14 PM Changeset in webkit [290620] by
-
- 10 edits in trunk/Tools
Add API testing infrastructure for "Markup Image" and "Copy Cropped Image"
https://bugs.webkit.org/show_bug.cgi?id=236519
rdar://89154213
Reviewed by Tim Horton.
Add API testing support (as well as a new API test) for the "Markup Image" flow.
- TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
(TestWebKitAPI::TEST):
(TestWebKitAPI::invokeImageMarkupAction):
- TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:
Add an API test that triggers the "Markup Image" action, and verifies the following:
- The first image is replaced with the canned image result (a 215-px-wide image of the WebKit logo).
- The selection range is effectively unchanged.
- TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.h:
- TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.mm:
Add a declaration for ImageAnalysisMarkupSwizzler, a helper class that is used in the new API test to make
VisionKit return a canned image and cropped rect when invoking the SPI that corresponds to "Markup Image"; see
WebKitAdditions change for more information.
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[WKWebView selectedText]):
- TestWebKitAPI/ios/TestUIMenuBuilder.h:
- TestWebKitAPI/ios/TestUIMenuBuilder.mm:
(-[TestUIMenuBuilder actionWithTitle:]):
Refactor and rename this to return the found UIAction instead of just a BOOL indicating whether or not it could
be found, and change existing call sites above to useEXPECT_NULLandEXPECT_NOT_NULL.
(-[TestUIMenuBuilder containsActionWithTitle:]): Deleted.
- TestWebKitAPI/ios/UIKitSPI.h:
- 3:48 PM Changeset in webkit [290619] by
-
- 3 edits in trunk/Source/WebCore
[iOS] Weak link AVPictureInPictureController
https://bugs.webkit.org/show_bug.cgi?id=237227
<rdar://76011860>
Reviewed by Brent Fulgham.
Weak linking instead of soft linking should be a small performance improvement.
- Configurations/WebCore.xcconfig:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(WebCore::supportsPictureInPicture):
- 3:26 PM Changeset in webkit [290618] by
-
- 2 edits in trunk/Source/WebCore
Remove release assert when UI process is blocking IOSurface IOKit access
https://bugs.webkit.org/show_bug.cgi?id=237278
Reviewed by Darin Adler.
Remove release assert in IOSurface::bytesPerRowAlignment() when UI process is blocking IOSurface IOKit access.
Instead, log this event, and return an appropriate value.
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::bytesPerRowAlignment):
- 3:24 PM Changeset in webkit [290617] by
-
- 2 edits in trunk
Add Brandon Stewart's name to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=237288
Reviewed by Saam Barati.
Add Brandon Stewart's name to contributors.json
- metadata/contributors.json:
- 3:09 PM Changeset in webkit [290616] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, address feedback from Darin regarding r290610.
- platform/graphics/Color.h:
(WebCore::add):
- 2:09 PM Changeset in webkit [290615] by
-
- 4 edits2 adds in trunk
Handle widow relayout differently
https://bugs.webkit.org/show_bug.cgi?id=235519
Patch by Rob Buis <rbuis@igalia.com> on 2022-02-28
Reviewed by Alan Bujtas.
Source/WebCore:
Handle widow relayout differently to prevent function call recursion.
Test: fast/multicol/widow-many-relayouts-crash.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::relayoutToAvoidWidows): Deleted.
- rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::didBreakAtLineToAvoidWidow const):
LayoutTests:
- fast/multicol/widow-many-relayouts-crash-expected.txt: Added.
- fast/multicol/widow-many-relayouts-crash.html: Added.
- 1:48 PM Changeset in webkit [290614] by
-
- 2 edits in trunk/Tools
[Win] vswhere should search for Visual Studio Build tools
https://bugs.webkit.org/show_bug.cgi?id=237229
Reviewed by Ross Kirsling.
- Scripts/webkitdirs.pm:
- 1:19 PM Changeset in webkit [290613] by
-
- 13 edits in trunk/Source
Web Inspector: [Flexbox] Add options to show each area's CSS
orderand/or DOM index in the parent flex container
https://bugs.webkit.org/show_bug.cgi?id=237215
Reviewed by Patrick Angle.
This will help developers better understand how CSS
orderand the DOM index of each flex
item interact and result in what's eventually rendered.
Source/JavaScriptCore:
- inspector/protocol/DOM.json:
Add an optional boolean parameter to
DOM.showFlexOverlay:
showOrderNumberscontrols whether labels with the computed CSSordervalue are shown over each flex item's area.
Source/WebCore:
- inspector/agents/InspectorDOMAgent.h:
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::showFlexOverlay):
Pass along the optional boolean parametershowOrderNumbers.
- inspector/InspectorOverlay.h:
(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::encode const):
(WebCore::InspectorOverlay::Highlight::FlexHighlightOverlay::decode):
Add memberboolforshowOrderNumberstoFlex::Config.
Add memberVector<InspectorOverlayLabel>toFlexHighlightOverlayfor drawing labels.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::drawFlexOverlay):
(WebCore::InspectorOverlay::buildFlexOverlay):
UseshowOrderNumbersto (when enabled) add items toVector<InspectorOverlayLabel>for
each flex item's computed CSSorderand DOM index in the parent flex container.
Source/WebInspectorUI:
- UserInterface/Base/Setting.js:
Add global
WI.SettingforflexOverlayShowOrderNumbers.
- UserInterface/Models/DOMNode.js:
(WI.DOMNode.prototype.set layoutContextType): Added.
(WI.DOMNode.prototype.showLayoutOverlay): Added.
(WI.DOMNode.prototype.hideLayoutOverlay): Added.
(WI.DOMNode.prototype._handleLayoutOverlaySettingChanged): Renamed from_handleGridLayoutOverlaySettingChanged.
Listen for changes to the aboveWI.Settingand include the value when invokingDOM.showFlexOverlay.
- UserInterface/Views/CSSFlexNodeOverlayListSection.js:
(WI.CSSFlexNodeOverlayListSection.prototype.initialLayout): Added.
Add UI for the aboveWI.Setting.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/CSSGridNodeOverlayListSection.js:
(WI.CSSGridNodeOverlayListSection.prototype.initialLayout):
Drive-by: Adjust aWI.UIStringto avoid possible future clashing.
- 1:00 PM Changeset in webkit [290612] by
-
- 5 edits3 adds in trunk
Web Inspector: add
IterableWeakSet
https://bugs.webkit.org/show_bug.cgi?id=237141
Reviewed by Patrick Angle.
Source/WebInspectorUI:
This allows clients to have a way to have an iterable collection that doesn't keep the
objects in the collection alive. We cannot just useWeakSetas it's not iterable (the
former) orArray/Setas it keeps the objects alive (the latter).
IterableWeakSetis a combination of:
- a
SetofWeakReffor each object, which gives us iterability with order preserved - a
WeakMapof each object mapping to the wrapperWeakRefin theSet(see below) - a
FinalizationRegistryto remove the wrapperWeakRefwhen the object is destroyed
- UserInterface/Base/IterableWeakSet.js: Added.
(IterableWeakSet):
(IterableWeakSet.prototype.get size):
(IterableWeakSet.prototype.has):
(IterableWeakSet.prototype.add):
(IterableWeakSet.prototype.delete):
(IterableWeakSet.prototype.take):
(IterableWeakSet.prototype.clear):
(IterableWeakSet.prototype.keys):
(IterableWeakSet.prototype.values):
(IterableWeakSet.prototype.Symbol.iterator):
(IterableWeakSet.prototype.copy):
(IterableWeakSet.prototype.toJSON):
(IterableWeakSet.prototype.get _finalizationRegistry):
We could just have aSet/ArrayofWeakRef, but that would require iterating the entire
array to find theWeakRefthat matches the given object, which is less efficient.
- UserInterface/Controllers/GridOverlayConfigurationDiagnosticEventRecorder.js:
(WI.GridOverlayConfigurationDiagnosticEventRecorder):
Don't keepWI.DOMNodethat arelayoutOverlayShowingalive in order to record diagnostics.
- UserInterface/Main.html:
- UserInterface/Test.html:
LayoutTests:
- inspector/unit-tests/iterableweakset.html: Added.
- inspector/unit-tests/iterableweakset-expected.txt: Added.
- 12:26 PM Changeset in webkit [290611] by
-
- 2 edits1 delete in trunk/LayoutTests
REGRESSION(r288070): [ Monterey ] platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment.html is a constant text failure.
https://bugs.webkit.org/show_bug.cgi?id=236857
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-02-28
- platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Removed.
- platform/mac/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt: Previous file was in platform/mac/fast... instead of platform/mac/platform/mac/fast...
- 11:59 AM Changeset in webkit [290610] by
-
- 17 edits in trunk
Adopt the modern Hasher more widely
https://bugs.webkit.org/show_bug.cgi?id=237262
Reviewed by Sam Weinig.
Source/WebCore:
- dom/MessagePortIdentifier.h:
(WebCore::add):
(WTF::MessagePortIdentifierHash::hash):
(WebCore::MessagePortIdentifier::hash const): Deleted.
- history/BackForwardItemIdentifier.h:
(WebCore::add):
(WTF::BackForwardItemIdentifierHash::hash):
(WebCore::BackForwardItemIdentifier::hash const): Deleted.
- loader/ResourceCryptographicDigest.h:
(WebCore::add):
(WTF::DefaultHash<WebCore::ResourceCryptographicDigest>::hash):
- platform/graphics/Color.h:
(WebCore::add):
(WebCore::Color::hash const): Deleted.
- platform/graphics/ColorHash.h:
(WTF::ColorHash::hash):
- platform/graphics/Font.cpp:
(WebCore::add):
(WebCore::CharacterFallbackMapKeyHash::hash):
- platform/graphics/FontCache.cpp:
(WebCore::add):
(WebCore::FontPlatformDataCacheKeyHash::hash):
(WebCore::FontCascadeCacheKeyHash::hash): Deleted.
- platform/graphics/FontCache.h:
(WebCore::add):
(WebCore::FontCascadeCacheKeyHash::hash):
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::add):
(WebCore::FontFamilySpecificationKeyHash::hash):
- platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
(WebCore::add):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::Hash::hash):
(WebCore::SystemFontDatabaseCoreText::CascadeListParameters::hash const): Deleted.
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::add):
(WebCore::FallbackFontDescriptionKeyHash::hash):
Source/WebKit:
- NetworkProcess/cache/NetworkCache.h:
(WebKit::NetworkCache::add):
(WTF::GlobalFrameIDHash::hash):
(WebKit::NetworkCache::GlobalFrameID::hash const): Deleted.
- Platform/IPC/StringReference.cpp:
(IPC::StringReference::Hash::hash):
- Platform/IPC/StringReference.h:
(IPC::add):
- 11:57 AM Changeset in webkit [290609] by
-
- 2 edits in trunk/Source/WebKit
Fix typo in adattributiond sandbox
https://bugs.webkit.org/show_bug.cgi?id=237279
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-28
Reviewed by Chris Dumez.
After this change, it matches the value in com.apple.webkit.adattributiond.plist
- Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
- 11:18 AM Changeset in webkit [290608] by
-
- 2 edits in trunk/Tools
[webkit-patch] Allow user to opt out of browser for viewing the diff
https://bugs.webkit.org/show_bug.cgi?id=220925
Reviewed by Jonathan Bedard.
The user may legitimately have a browser installed yet not want to
use it to view the diff.
- Scripts/webkitpy/common/system/user.py:
(User.can_open_url):
- 11:10 AM Changeset in webkit [290607] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r290588): Broke WinCairo and PlayStation debug builds
https://bugs.webkit.org/show_bug.cgi?id=237277
Unreviewed build fix.
- Scripts/webkit/messages.py:
(conditions_for_header):
- 10:30 AM Changeset in webkit [290606] by
-
- 5 edits7 adds in trunk
[macOS] Unable to upload ".pages" files to file inputs accepting ".pages" and ".jpeg" files
https://bugs.webkit.org/show_bug.cgi?id=237219
rdar://89482882
Reviewed by Tim Horton and Said Abou-Hallawa.
Source/WebCore:
In r264286, WebKit began transcoding images of an unsupported format
to a supported format, for file inputs that accepted image types. For
example, selecting a HEIF image in an input that accepts JPEG images
would transcode the selected image to a JPEG image.
In order to determine when attempt transcoding, the logic added in
r264286 obtains the MIME type corresponding to the selected file's
extension, and compares that to the list of accepted MIME types.
If there is a mismatch, transcoding is attempted.
The ".pages" extension does not have a well-defined MIME type in
NSURLFileTypeMappings. This is due to the fact that a the extension
maps to both a file and a package type. Consequently, the retrieved
MIME type for ".pages" files is an empty string. Following r227051,
when the file input also accepts an image type, WebKit attempts to
transcode these files, and any others that do not have a well-defined
MIME type.
While the aforementioned behavior can be considered strange, it is not
an issue in practice, since WebKit will attempt to transcode the
image, fail to do so, and upload the original file. The failure is
detected in CGImageDestinationFinalize, which returns false if an image
was not successfully written. However, a recent regression in the
ImageIO framework is causing CGImageDestinationFinalize to return true,
even if image transcoding fails. This results in WebKit uploading a
zero byte JPEG file, when a user attempts to upload ".pages" files to
file inputs accepting ".pages" and ".jpeg" files.
Ideally, the described issue would be resolved by a fix in ImageIO.
However, a more immediate solution exists in WebKit: only attempt to
transcode files to an accepted image type, if the file selected is
image. ".pages" files are not images, and WebKit should not attempt
to transcode them. See below for further explanation of the solution.
Test: fast/forms/file/entries-api/pages-jpeg-open-panel.html
- platform/graphics/cg/ImageUtilitiesCG.cpp:
(WebCore::transcodeImage):
Prior to using ImageIO to perform transcoding, WebKit obtains a Uniform
Type Identifier for the selected file using CGImageSourceCreateWithURL
and CGImageSourceGetType. If the file is not an image, a null string is
returned. WebKit can use this information to avoid the transcoding
attempt, and avoid calls to ImageIO methods further down this method.
Specifically, this solution works around the ImageIO bug by avoiding
the call to CGImageDestinationFinalize for non-images. The solution is
also an overall improvement, as WebKit now avoids unnecessary calls to
multiple ImageIO methods, in cases where we know transcoding will fail.
LayoutTests:
Add a layout test that contains a file input that accepts ".pages" and
".jpeg" files, and attempts to upload a ".pages" file.
- TestExpectations:
- fast/forms/file/entries-api/pages-jpeg-open-panel-expected.txt: Added.
- fast/forms/file/entries-api/pages-jpeg-open-panel.html: Added.
- fast/forms/file/entries-api/pdf-jpeg-open-panel-expected.txt: Added.
- fast/forms/file/entries-api/pdf-jpeg-open-panel.html: Added.
- fast/forms/file/entries-api/resources/documents/document.pages: Added.
- fast/forms/file/entries-api/resources/documents/document.pdf: Added.
- platform/mac-wk2/TestExpectations:
- 10:06 AM Changeset in webkit [290605] by
-
- 9 edits in trunk/Tools
Unreviewed, reverting r290583.
Breaks webkit-patch
Reverted changeset:
"'run-benchmark' script should log http requests during
benchmark run."
https://bugs.webkit.org/show_bug.cgi?id=237076
https://commits.webkit.org/r290583
- 10:03 AM Changeset in webkit [290604] by
-
- 7 edits in trunk
Revert r290548
It caused three tests to start failing.
Source/WebCore:
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollAnimatorEnabled const): Deleted.
- rendering/RenderLayerScrollableArea.h:
LayoutTests:
- css3/scroll-snap/scroll-padding-overflow-paging.html:
- fast/events/wheelevent-in-scrolling-div.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:
- 10:00 AM Changeset in webkit [290603] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Use DeferTerminationForAWhile in Interpreter::unwind
https://bugs.webkit.org/show_bug.cgi?id=237176
Reviewed by Mark Lam.
If we're unwinding the stack due to a regular exception (not a TerminationException), then
we want to use a DeferTerminationForAWhile scope. This is because we want to avoid a
TerminationException being raised (due to a concurrent termination request) in the middle
of unwinding. The unwinding code only checks if we're handling a TerminationException before
it starts unwinding and is not expecting this status to change in the middle. Without the
DeferTerminationForAWhile scope, control flow may end up in an exception handler, and effectively
"catch" the newly raised TerminationException, which should not be catchable.
On the other hand, if we're unwinding the stack due to a TerminationException, we do not need
nor want the DeferTerminationForAWhile scope. This is because on exit, DeferTerminationForAWhile
will set the VMTraps NeedTermination bit if termination is in progress. The system expects the
NeedTermination bit to be have been cleared by VMTraps::handleTraps() once the TerminationException
has been raised. Some legacy client apps relies on this and expects to be able to re-enter the
VM after it exits due to termination. If the NeedTermination bit is set, upon re-entry, the
VM will behave as if a termination request is pending and terminate almost immediately, thereby
breaking the legacy client apps.
- interpreter/Interpreter.cpp:
(JSC::UnwindFunctor::notifyDebuggerOfUnwinding):
(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::unwind):
(JSC::notifyDebuggerOfUnwinding): Deleted.
- 9:49 AM Changeset in webkit [290602] by
-
- 1 copy in tags/Safari-613.1.17.1.10
Tag Safari-613.1.17.1.10.
- 9:49 AM Changeset in webkit [290601] by
-
- 8 edits2 deletes in branches/safari-613.1.17.1-branch
Revert r290518. rdar://problem/86582214
- 9:45 AM Changeset in webkit [290600] by
-
- 9 edits in branches/safari-613.1.17.1-branch/Source
Versioning.
WebKit-7613.1.17.1.10
- 9:37 AM Changeset in webkit [290599] by
-
- 6 edits in trunk/Tools
Enable python3 for lighttpd
https://bugs.webkit.org/show_bug.cgi?id=236938
Patch by Pascal Abresch <nep@packageloss.eu> on 2022-02-28
Reviewed by Darin Adler.
This is needed for the Haiku port to use the python3 tests.
This patch also removes the PHP support since all PHP tests have been removed and there are
currently no plans to include new ones in the future.
- Scripts/webkitpy/layout_tests/servers/http_server.py:
(Lighttpd._prepare_config):
- Scripts/webkitpy/layout_tests/servers/lighttpd.conf:
- 9:10 AM Changeset in webkit [290598] by
-
- 4 edits in trunk
[web-animations] web-animations/interfaces/Animatable/getAnimations.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=237271
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/interfaces/Animatable/getAnimations-expected.txt:
Source/WebCore:
Our computation for the relevant state did not account for the playback rate. We rewrite
the function to match the spec exactly.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::computeRelevance):
- 8:38 AM WebKitGTK/2.36.x edited by
- (diff)
- 8:32 AM Changeset in webkit [290597] by
-
- 2 edits in trunk
-Wodr warning spam caused by ENABLE(BINDING_INTEGRITY)
https://bugs.webkit.org/show_bug.cgi?id=229867
<rdar://problem/82975115>
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-02-28
Reviewed by Carlos Garcia Campos.
Build WebKit with -Wno-odr. This warning is not salvagable, and it's impossible to suppress
locally.
- Source/cmake/WebKitCompilerFlags.cmake:
2022-02-24 Matt Woodrow <Matt Woodrow>
Unreviewed, update my (Matt Woodrow) status to committer.
- metadata/contributors.json:
- 7:52 AM WebKitGTK/2.36.x edited by
- (diff)
- 7:36 AM Changeset in webkit [290596] by
-
- 3 edits in trunk/Tools
[run-webkit-tests] Use Python 3 (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=226658
<rdar://problem/78882016 >
Reviewed by Ryan Haddad.
- Tools/CISupport/ews-build/steps.py:
(RunWebKitTests): Change invocation to Python 3.
- Tools/CISupport/ews-build/steps_unittest.py:
(test_success):
(test_warnings):
Canonical link: https://commits.webkit.org/247872@main
- 6:50 AM Changeset in webkit [290595] by
-
- 4 edits3 adds in trunk
FTP EPLF does not handle directory
https://bugs.webkit.org/show_bug.cgi?id=45113
Patch by Pascal Abresch <nep@packageloss.eu> on 2022-02-28
Reviewed by Darin Adler.
The code used "!result.type" to check for an invalid type. However,
the first type in the FTPEntryType enum is FTPDirectoryEntry, so this
was actually returning true for directories, turning them into "junk"
entries which would not be listed.
Since the code for EPLF can only result in either files, directories,
or uninitialized/junk entries, the check can be removed, returning
result.type is the correct thing to do in all 3 cases.
Source/WebCore:
Test: http/tests/misc/ftp-eplf-directory.py
- loader/FTPDirectoryParser.cpp:
(WebCore::parseOneFTPLine):
LayoutTests:
- http/tests/misc/ftp-eplf-directory-expected.txt: Added.
- http/tests/misc/ftp-eplf-directory.py: Added.
- platform/gtk/TestExpectations:
- 6:01 AM Changeset in webkit [290594] by
-
- 4 edits1 add in trunk/Source/WebKit
REGRESSION(r290588) Missing symbol jsValueForDecodedMessage<107> (IPCStreamTesterProxy_WasCreated)
https://bugs.webkit.org/show_bug.cgi?id=237268
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-28
Reviewed by Antti Koivisto.
Add the class IPCStreamTesterProxy now that *MessageReceiver.cpp
are needed. After commit
"IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to compile"
MessageReceiver.cpp files contain also message-specific functions that
need to be compiled, even though IPCStreamTesterProxy itself is not
used.
- Shared/IPCStreamTesterProxy.h: Added.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- 2:47 AM Changeset in webkit [290593] by
-
- 6 edits in releases/WebKitGTK/webkit-2.36
Merge r290586 - [ATSPI] Always expose table cells (layout and CSS) that have rendered text content
https://bugs.webkit.org/show_bug.cgi?id=237204
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
LayoutTests:
- accessibility/gtk/nested-block-element-children-expected.txt: Rebaseline.
- platform/glib/TestExpectations: Remove accessibility/generated-content-with-display-table-crash.html.
- platform/gtk/TestExpectations: Remove accessibility/gtk/nested-block-element-children.html.
- 2:47 AM Changeset in webkit [290592] by
-
- 5 edits in releases/WebKitGTK/webkit-2.36
Merge r290585 - [GTK][a11y] Test accessibility/gtk/xml-roles-exposed.html is failing since ATSPI switch
https://bugs.webkit.org/show_bug.cgi?id=237202
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Handle the special case of form item having unknown aria role to be exposed as landmark.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::effectiveRole const):
LayoutTests:
- platform/gtk/TestExpectations: Remove accessibility/gtk/xml-roles-exposed.html.
- platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Rebaseline.
- 2:18 AM Changeset in webkit [290591] by
-
- 17 edits in trunk/Source/WebKit
RemoteVideoFrameObjectHeap should process its IPC messages in a background thread
https://bugs.webkit.org/show_bug.cgi?id=237198
Reviewed by Darin Adler.
Minor refactoring to have addWorkQueueMessageReceiver take a reference instead of a pointer.
Make RemoteVideoFrameObjectHeap become a WorkQueueMessageReceiver.
This ensures that a main thread hang in GPUProcess will not block big memory releases or WebProcess access to pixel buffers.
No observable change of behavior.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::videoFrameObjectHeap const):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
(WebKit::remoteVideoFrameObjectHeapQueue):
(WebKit::RemoteVideoFrameObjectHeap::create):
(WebKit::RemoteVideoFrameObjectHeap::RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::~RemoteVideoFrameObjectHeap):
(WebKit::RemoteVideoFrameObjectHeap::close):
(WebKit::RemoteVideoFrameObjectHeap::releaseVideoFrame):
(WebKit::RemoteVideoFrameObjectHeap::getVideoFrameBuffer):
(WebKit::RemoteVideoFrameObjectHeap::pixelBuffer):
(WebKit::RemoteVideoFrameObjectHeap::stopListeningForIPC): Deleted.
- GPUProcess/media/RemoteVideoFrameObjectHeap.h:
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::addConnection):
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::addConnection):
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::startReceivingMessageFromConnection):
- NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.cpp:
(WebKit::RTCDataChannelRemoteManagerProxy::registerConnectionToWebProcess):
- Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
- Platform/IPC/Connection.h:
- UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::initializeConnection):
- WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:
(WebKit::RemoteAudioSourceProviderManager::setConnection):
- WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::RemoteVideoFrameObjectHeapProxyProcessor):
- WebProcess/Inspector/WebInspectorInterruptDispatcher.cpp:
(WebKit::WebInspectorInterruptDispatcher::initializeConnection):
- WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp:
(WebKit::RTCDataChannelRemoteManager::setConnection):
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::initializeConnection):
- WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::initializeConnection):
- 2:03 AM Changeset in webkit [290590] by
-
- 11 edits in trunk/Source
Ensure RemoteMediaPlayerProxy sets its resource owner to pixel buffers created by its player
https://bugs.webkit.org/show_bug.cgi?id=237200
Reviewed by Eric Carlson.
Source/WebCore:
Add API to set the resource owner for a player private.
In case player private is running in GPUProcess, use resource owner to mark pixel buffers as owned by the resource owner.
Covered by existing tests.
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setResourceOwner):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):
Source/WebKit:
Set resource owner to the player private.
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- 1:56 AM Changeset in webkit [290589] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Reuse known register values on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=237207
Reviewed by Žan Doberšek.
Set up a CachedTempRegister for each of addressTempRegister,
dataTempRegister on ARMv7 and use them to generate shorter instruction
sequences when possible.
Saves 1.5-2% of code size on JS2 with no measurable difference in
performance.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::CachedTempRegister::value):
- assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssembler::probe):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::MacroAssemblerARMv7):
(JSC::MacroAssemblerARMv7::add32):
(JSC::MacroAssemblerARMv7::getEffectiveAddress):
(JSC::MacroAssemblerARMv7::add64):
(JSC::MacroAssemblerARMv7::lshift32):
(JSC::MacroAssemblerARMv7::mul32):
(JSC::MacroAssemblerARMv7::rshift32):
(JSC::MacroAssemblerARMv7::urshift32):
(JSC::MacroAssemblerARMv7::load32):
(JSC::MacroAssemblerARMv7::load16):
(JSC::MacroAssemblerARMv7::load16SignedExtendTo32):
(JSC::MacroAssemblerARMv7::load8):
(JSC::MacroAssemblerARMv7::load8SignedExtendTo32):
(JSC::MacroAssemblerARMv7::loadPair32):
(JSC::MacroAssemblerARMv7::store8):
(JSC::MacroAssemblerARMv7::storePair32):
(JSC::MacroAssemblerARMv7::loadDouble):
(JSC::MacroAssemblerARMv7::loadFloat):
(JSC::MacroAssemblerARMv7::storeDouble):
(JSC::MacroAssemblerARMv7::storeFloat):
(JSC::MacroAssemblerARMv7::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32):
(JSC::MacroAssemblerARMv7::long_move):
(JSC::MacroAssemblerARMv7::short_move):
(JSC::MacroAssemblerARMv7::move):
(JSC::MacroAssemblerARMv7::compare32AndSetFlags):
(JSC::MacroAssemblerARMv7::branch8):
(JSC::MacroAssemblerARMv7::branchTest8):
(JSC::MacroAssemblerARMv7::branchTest16):
(JSC::MacroAssemblerARMv7::farJump):
(JSC::MacroAssemblerARMv7::branchMul32):
(JSC::MacroAssemblerARMv7::nearCall):
(JSC::MacroAssemblerARMv7::nearTailCall):
(JSC::MacroAssemblerARMv7::call):
(JSC::MacroAssemblerARMv7::compare8):
(JSC::MacroAssemblerARMv7::test8):
(JSC::MacroAssemblerARMv7::jump):
(JSC::MacroAssemblerARMv7::makeBranch):
(JSC::MacroAssemblerARMv7::setupArmAddress):
(JSC::MacroAssemblerARMv7::makeBaseIndexBase):
(JSC::MacroAssemblerARMv7::moveFixedWidthEncoding):
(JSC::MacroAssemblerARMv7::cachedDataTempRegister):
(JSC::MacroAssemblerARMv7::cachedAddressTempRegister):
(JSC::MacroAssemblerARMv7::getCachedDataTempRegisterIDAndInvalidate):
(JSC::MacroAssemblerARMv7::getCachedAddressTempRegisterIDAndInvalidate):
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::emitFastPathImpl):
- 1:10 AM Changeset in webkit [290588] by
-
- 13 edits in trunk/Source/WebKit
IPC_TESTING_API MessageArgumentDescriptions.cpp is slow to compile
https://bugs.webkit.org/show_bug.cgi?id=237195
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-28
Reviewed by Antti Koivisto.
IPC testing API needs convert message data buffer, IPC::Decoder, to
JSValue. This is a run-time operation.
IPC message decoding is based on templates, a compile time operation.
IPC generator generates MessageArgumentDescriptions.cpp with
a big switch. The switch has a case for each message name. The case would
call templated jsValueForDecodedArguments<Arguments>, where the Arguments
is the type tuple for the message arguments.
The above would mean that MessageArgumentDescriptions would need to
include all the headers for all the messages in WebKit in order
to populate the Arguments tuple for particular message.
This would cause MessageArgumentDescriptions to be slow to compile because
it would need all the headers in Source/WebKit related to message parameter types.
This would show up as slow compiles that would consume much memory (5-6gb) and do a
lot of work.
It would also have to compile the MessageArgumentDescriptions each time
any of the headers were touched.
Change this so that the big switch calls a declared but not defined
template jsValueForDecodedMessage<MessageName> for each MessageName case in the
switch.
Instantiate the template for each message in the *MessageReceiver.cpp file
that each message receiver has. This file already has to include all the
headers used for that particular message receiver. These files are small and compile
fast.
After this change MessageArgumentDescriptions.cpp only includes the message
definition headers, does not use much more than the standard 1gb+ of memory
while compiling and is relatively fast to compile. Also if any of the dependent
headers are touched, only the corresponding small *MessageReceiver.cpp files are compiled.
This change is needed for further improve the JS testing API implementation.
Adding new operations that employ the same strategy, eg. switch and a complex
template instantiation, would possibly just make the matter worse. New operations
that are needed are message sends, which use templates similarly to the message
decode case that is implement here.
This change regenerates the checked-in test content that can be used to review
what kind of changes the real MessageArgumentDescriptions.cpp and MessageReceiver.cpps
get.
- Platform/IPC/JSIPCBinding.h:
- Scripts/webkit/messages.py:
(generate_message_handler):
(generate_js_value_conversion_function):
(generate_message_argument_description_implementation):
- Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::jsValueForArguments):
(IPC::jsValueForReplyArguments):
- Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithCVPixelBuffer_SendCVPixelBuffer>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithCVPixelBuffer_ReceiveCVPixelBuffer>):
- Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithIfMessage_LoadURL>):
- Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithImageData_SendImageData>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithImageData_ReceiveImageData>):
- Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadSomething>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TouchEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_AddEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_LoadSomethingElse>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DidReceivePolicyDecision>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_Close>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_PreferencesDidChange>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SendDoubleAndFloat>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SendInts>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_CreatePlugin>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_RunJavaScriptAlert>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_GetPlugins>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithLegacyReceiver_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithLegacyReceiver_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TestParameterAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_TemplateTest>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_SetVideoLayerID>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DidCreateWebProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_InterpretKeyEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_DeprecatedOperation>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithLegacyReceiver_ExperimentalOperation>):
- Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithSemaphore_SendSemaphore>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSemaphore_ReceiveSemaphore>):
- Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithStreamBuffer_SendStreamBuffer>):
- Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendString>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendStringSynchronized>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendMachSendRight>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_ReceiveMachSendRight>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithStream_SendAndReceiveMachSendRight>):
- Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessage>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithNoArguments>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithMultipleArguments>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestAsyncMessageWithConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestAsyncMessageWithConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestSyncMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestSyncMessage>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithSuperclass_TestSynchronousMessage>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithSuperclass_TestSynchronousMessage>):
- Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadURL>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadSomething>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TouchEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_AddEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_LoadSomethingElse>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DidReceivePolicyDecision>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_Close>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_PreferencesDidChange>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SendDoubleAndFloat>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SendInts>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_CreatePlugin>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_RunJavaScriptAlert>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_GetPlugins>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutAttributes_GetPluginProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessageReply<MessageName::TestWithoutAttributes_TestMultipleAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TestParameterAttributes>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_TemplateTest>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_SetVideoLayerID>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DidCreateWebProcessConnection>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_InterpretKeyEvent>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_DeprecatedOperation>):
(IPC::jsValueForDecodedMessage<MessageName::TestWithoutAttributes_ExperimentalOperation>):
- 1:01 AM Changeset in webkit [290587] by
-
- 2 edits in trunk/Source/WTF
Enable inert attribute feature flag
https://bugs.webkit.org/show_bug.cgi?id=235668
Reviewed by Darin Adler.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 1:00 AM Changeset in webkit [290586] by
-
- 6 edits in trunk
[ATSPI] Always expose table cells (layout and CSS) that have rendered text content
https://bugs.webkit.org/show_bug.cgi?id=237204
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
LayoutTests:
- accessibility/gtk/nested-block-element-children-expected.txt: Rebaseline.
- platform/glib/TestExpectations: Remove accessibility/generated-content-with-display-table-crash.html.
- platform/gtk/TestExpectations: Remove accessibility/gtk/nested-block-element-children.html.
- 12:58 AM Changeset in webkit [290585] by
-
- 5 edits in trunk
[GTK][a11y] Test accessibility/gtk/xml-roles-exposed.html is failing since ATSPI switch
https://bugs.webkit.org/show_bug.cgi?id=237202
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Handle the special case of form item having unknown aria role to be exposed as landmark.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::effectiveRole const):
LayoutTests:
- platform/gtk/TestExpectations: Remove accessibility/gtk/xml-roles-exposed.html.
- platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt: Rebaseline.
- 12:29 AM Changeset in webkit [290584] by
-
- 4 edits in trunk
[web-animations] web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=237259
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:
Source/WebCore:
We incorrectly threw when processing a null or undefined value when an iterable was provided to setKeyframes().
We now correctly insert an empty keyframe if such a value is provided.
- animation/KeyframeEffect.cpp:
(WebCore::processIterableKeyframes):
Feb 27, 2022:
- 11:07 PM Changeset in webkit [290583] by
-
- 9 edits in trunk/Tools
'run-benchmark' script should log http requests during benchmark run.
https://bugs.webkit.org/show_bug.cgi?id=237076
<rdar://89270825>
Reviewed by Simon Fraser.
Add support to log http requests during benchmark run for diagnostic purpose.
- Scripts/webkitpy/init.py: Update 'attr' package version to 20.3.0 so match upgraded twisted version
- Scripts/webkitpy/autoinstalled/twisted.py: Upgrade twisted version to latest python2 & python3 compatibile
version.
- Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Ensure benchmark diagnostic directory is created.
(BenchmarkRunner.init):
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py: Add '--log-path'
arugment to allow specify logging output and it defaults to '/tmp/run-benchmark-http.log'
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver.set_device_id):
(HTTPServerDriver):
(HTTPServerDriver.set_http_log):
- Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Pass http log path to
twisted http server if specified.
(SimpleHTTPServerDriver.init):
(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.set_http_log):
- Scripts/webkitpy/benchmark_runner/run_benchmark.py: Fix a tiny bug that default_diagnose_dir() is involked twice in
argument parser help message.
(config_argument_parser):
- Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: Set http request log path if diagnostic directory
is specified.
(WebServerBenchmarkRunner.init):
Canonical link: https://commits.webkit.org/247861@main
- 9:09 PM Changeset in webkit [290582] by
-
- 10 edits in trunk/Source/WebKit
Add a feature flag for using general storage directory
https://bugs.webkit.org/show_bug.cgi?id=237186
rdar://89521373
Reviewed by Chris Dumez.
- FeatureFlags/WebKit-appletvos.plist:
- FeatureFlags/WebKit-ios.plist:
- FeatureFlags/WebKit-macos.plist:
- FeatureFlags/WebKit-watchos.plist:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
- 8:17 PM Changeset in webkit [290581] by
-
- 6 edits in trunk/Source
[GPU Process] Deleted unneeded constructors from DisplayList::Recorder classes
https://bugs.webkit.org/show_bug.cgi?id=237261
Reviewed by Wenson Hsieh.
Source/WebCore:
This should have been done in r289594.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::Recorder):
- platform/graphics/displaylists/DisplayListRecorder.h:
Source/WebKit:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
- 8:01 PM Changeset in webkit [290580] by
-
- 71 edits2 deletes in trunk
webkitpy: WebSocket server doesn't support Python 3
https://bugs.webkit.org/show_bug.cgi?id=230319
<rdar://problem/58814743>
Reviewed by Fujii Hironori.
Tools:
- Scripts/new-run-webkit-websocketserver: Change shebang.
- Scripts/webkitpy/layout_tests/servers/websocket_server.py:
(PyWebSocket._prepare_config): Invoke WebSocket server with Python 3.
LayoutTests:
Make all tests Python 3 compatible, even at the cost of Python 2
compatibility, since WebSocket tests are always invoked with Python 3.
- TestExpectations:
- http/tests/websocket/tests/hybi/bad-handshake-crash_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/binary-frames_wsh.py:
(web_socket_transfer_data):
(all_distinct_bytes):
- http/tests/websocket/tests/hybi/broken-utf8_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/check-binary-messages_wsh.py:
(web_socket_transfer_data):
(all_distinct_bytes):
- http/tests/websocket/tests/hybi/client-close-2-expected.txt:
- http/tests/websocket/tests/hybi/client-close-2.html:
- http/tests/websocket/tests/hybi/client-close-2_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/client-close-expected.txt:
- http/tests/websocket/tests/hybi/client-close.html:
- http/tests/websocket/tests/hybi/client-close_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/close-code-and-reason_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/close-on-unload_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/compressed-control-frame_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/cookie_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/deflate-frame_wsh.py:
(_get_deflate_frame_extension_processor):
(web_socket_do_extra_handshake):
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/echo-cookie_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/echo_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/fragmented-binary-frames_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/handshake-fail-by-extensions-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-maxlength_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-more-extensions-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-no-connection-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-no-cr_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-no-upgrade-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-prepended-null_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-fail-by-wrong-accept-header_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-ok-with-legacy-sec-websocket-response-headers_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-manual_wsh.py:
- http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-unsolicited-negotiation-response_wsh.py:
- http/tests/websocket/tests/hybi/imported/blink/permessage-deflate_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/inspector/binary_wsh.py:
(web_socket_transfer_data):
(all_distinct_bytes):
- http/tests/websocket/tests/hybi/invalid-continuation_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/invalid-encode-length_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/pong_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/protocol-test_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/reserved-bits_wsh.py:
(_get_deflate_frame_extension_processor):
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/reserved-opcodes_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/send-file-blob_wsh.py:
(web_socket_transfer_data):
(all_distinct_bytes):
- http/tests/websocket/tests/hybi/too-long-payload_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/unicode_wsh.py:
- http/tests/websocket/tests/hybi/unmasked-frames_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/workers/resources/binary-frames_wsh.py:
(web_socket_transfer_data):
(all_distinct_bytes):
- http/tests/websocket/tests/hybi/workers/resources/check-binary-messages_wsh.py:
(web_socket_transfer_data):
(all_distinct_bytes):
- http/tests/websocket/tests/hybi/workers/resources/no-onmessage-in-sync-op_wsh.py:
(web_socket_transfer_data):
- http/tests/websocket/tests/hybi/workers/resources/protocol-test_wsh.py:
(web_socket_do_extra_handshake):
- http/tests/websocket/tests/hybi/zero-length-text_wsh.py:
(web_socket_transfer_data):
- platform/glib/TestExpectations:
- platform/ios-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt:
- platform/mac-wk2/http/tests/websocket/tests/hybi/client-close-2-expected.txt: Removed.
- platform/mac-wk2/http/tests/websocket/tests/hybi/client-close-expected.txt: Removed.
- platform/mac-wk2/http/tests/websocket/tests/hybi/handshake-fail-by-no-cr-expected.txt:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
- 7:28 PM Changeset in webkit [290579] by
-
- 9 edits2 deletes in trunk
Unreviewed, reverting r290577.
https://bugs.webkit.org/show_bug.cgi?id=237264
Breaks ios-wk2 layout test.
Reverted changeset:
"Compute correct containing block override size for items that
are subgridden in one dimension only."
https://bugs.webkit.org/show_bug.cgi?id=236951
https://commits.webkit.org/r290577
- 7:24 PM Changeset in webkit [290578] by
-
- 8 edits in trunk/Source
Invoking "Markup Image" should preserve the existing selection range
https://bugs.webkit.org/show_bug.cgi?id=237242
Reviewed by Darin Adler.
Source/WebCore:
Move the implementation of
replaceNodeFromPasteboardout of the macOS-specific implementation file and into
EditorCocoa instead, so that we can use it on both iOS and macOS to handle the "Markup Image" action. See WebKit
ChangeLog for more details.
- editing/Editor.h:
- editing/cocoa/EditorCocoa.mm:
(WebCore::maybeCopyNodeAttributesToFragment):
(WebCore::Editor::replaceNodeFromPasteboard):
Also make a few minor adjustments while we're moving this code:
- Make this take a reference instead of a pointer (the method always expects a non-null Node pointer anyways).
- Add a FIXME mentioning that we can just delete
setInsertionPasteboardaltogether once Mail compose on
macOS uses WebKit2.
- Unconditionally pass
falsefor whether or not we should enable smart paste when replacing the node. This
prevents us from inserting spaces around the replacement image element when triggering the "Markup Image"
item.
- Use
makeRangeSelectingNodeinstead ofmakeRangeSelectingNodeContentswhen selecting the node to replace.
This allows us to handle the case where the node to replace cannot contain children for editing (in
particular, image elements).
Note that this codepath (
replaceNodeFromPasteboard) is currently only exercised by WebKitLegacy service
controls code that was originally intended for use by Mail compose, but never ended up being used.
- editing/mac/EditorMac.mm:
(WebCore::Editor::pasteWithPasteboard):
(WebCore::maybeCopyNodeAttributesToFragment): Deleted.
(WebCore::Editor::replaceNodeFromPasteboard): Deleted.
Source/WebKit:
Make a few adjustments to
replaceWithPasteboardData, such that it attempts to restore the previous selection
range after replacing the target element. If the previous selection is no longer valid (i.e., it was orphaned as
a result of the editing command used to replace the element), then we fall back to restoring the visible
character range of the previous selection, relative to the editable root (or the body if there is none).
API tests will be added in https://webkit.org/b/236519, once we're able to swizzle out the underlying VisionKit
methods in order to make these tests run reliably.
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::OverridePasteboardForSelectionReplacement::OverridePasteboardForSelectionReplacement):
(WebKit::OverridePasteboardForSelectionReplacement::~OverridePasteboardForSelectionReplacement):
Add a helper RAII object that encapsulates logic for setting and unsetting data on the override pasteboard. Use
this in the two methods below.
(WebKit::WebPage::replaceWithPasteboardData):
Switch to using the refactored
Editor::replaceNodeFromPasteboardmethod instead of calling to the adjacent
replaceSelectionWithPasteboardDatamethod below. Using this method allows us to avoid manually selecting the
target element here, and also avoids smart pasteboard replacement (which may insert spaces before or after the
image); the latter is important in order to correctly restore the previous selection's character range in the
case where the previous selection range was orphaned by the replacement.
(WebKit::WebPage::replaceSelectionWithPasteboardData):
Source/WebKitLegacy/mac:
See WebKit and WebCore ChangeLogs for more detail.
- Misc/WebSharingServicePickerController.mm:
(-[WebSharingServicePickerController didShareImageData:confirmDataIsValidTIFFData:]):
Adjust this call site to pass in a reference instead of a pointer. Also deploy RefPtr in some adjacent code.
- 7:03 PM Changeset in webkit [290577] by
-
- 9 edits2 adds in trunk
Compute correct containing block override size for items that are subgridden in one dimension only.
https://bugs.webkit.org/show_bug.cgi?id=236951
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Added new WPT similar to auto-track-sizing-001 which adds new variations
with nested subgrids and varying whether the other axis is subgridded.
- web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002-expected.html: Added.
- web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002.html: Added.
Source/WebCore:
Items that are subgridded in one dimension will be included in the track sizing algorithm of the
outer grid for that dimension. When measuring their size in the subgridded dimension, we need to
set their containing block size in the other (non-subgridded) dimension, which is only available
from the subgrid's track sizing, not the outer track sizes.
This recurses up to set the override size on the subgrid element instead, and forces a layout
there, which should copy down subgrid track sizes and compute the other dimension, making it
available on the inner item we need.
Test: imported/w3c/web-platform-tests/css/css-grid/subgrid/auto-track-sizing-002.html
- rendering/GridLayoutFunctions.cpp:
(WebCore::GridLayoutFunctions::extraMarginForSubgridAncestors):
- rendering/GridLayoutFunctions.h:
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForChild const):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::isSubgridOf):
- rendering/RenderGrid.h:
LayoutTests:
Marked existing WPT as passing.
- 6:14 PM Changeset in webkit [290576] by
-
- 4 edits in trunk
Convert grid direction to be relative to subgrid when accounting for extra margin.
https://bugs.webkit.org/show_bug.cgi?id=236954
Reviewed by Dean Jackson.
Source/WebCore:
|direction| is passed as a direction relative to |grid|, so we need to convert it
to be a direction relative to the subgrid item in order to account for margin on
the correct edge.
Marks existing test orthogonal-writing-mode-003.html as passing.
- rendering/GridLayoutFunctions.cpp:
(WebCore::GridLayoutFunctions::marginLogicalSizeForChild):
LayoutTests:
Marks existing test orthogonal-writing-mode-003.html as passing.
- 5:24 PM Changeset in webkit [290575] by
-
- 100 edits in trunk
Omit template parameter for SetForScope<> variables
https://bugs.webkit.org/show_bug.cgi?id=237258
Reviewed by Darin Adler.
Source/JavaScriptCore:
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitNode):
- debugger/Debugger.cpp:
(JSC::Debugger::dispatchFunctionToObservers):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::setLocalOrTmp):
(JSC::DFG::ByteCodeParser::setArgument):
- inspector/InspectorBackendDispatcher.cpp:
(Inspector::BackendDispatcher::dispatch):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseAsyncGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):
(JSC::Parser<LexerType>::parseFunctionExpression):
(JSC::Parser<LexerType>::parseAsyncFunctionExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
Source/WebCore:
- Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::performDeferredCacheUpdate):
- bindings/js/JSCustomElementRegistryCustom.cpp:
(WebCore::JSCustomElementRegistry::define):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::evaluateModule):
(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::executeJavaScriptURL):
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
- css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumeCompoundSelector):
- dom/CustomElementReactionQueue.cpp:
(WebCore::CustomElementQueue::invokeAll):
- dom/Document.cpp:
(WebCore::Document::updateRenderTree):
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
(WebCore::Document::destroyRenderTree):
(WebCore::Document::hitTest):
- dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
- dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::performMicrotaskCheckpoint):
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::forEachActiveDOMObject const):
- dom/Traversal.cpp:
(WebCore::NodeIteratorBase::acceptNode):
- editing/Editor.cpp:
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::copyFont):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsQuotation):
(WebCore::Editor::pasteFont):
- history/BackForwardCache.cpp:
(WebCore::BackForwardCache::pruneToSizeNow):
(WebCore::BackForwardCache::removeAllItemsForPage):
- html/DOMTokenList.cpp:
(WebCore::DOMTokenList::updateAssociatedAttributeFromTokens):
- html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::defaultEventHandler):
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::focusAndShowValidationMessage):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::constructEntryList):
- html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::scheduleLoad):
- html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scan):
- html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::resolveCustomStyle):
- html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::scheduleLoad):
- loader/ContentFilter.cpp:
(WebCore::ContentFilter::handleProvisionalLoadFailure):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):
(WebCore::FrameLoader::loadDifferentDocumentItem):
- loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::updateBuffer):
- loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneLiveResourcesToSize):
(WebCore::MemoryCache::pruneDeadResourcesToSize):
- page/Chrome.cpp:
(WebCore::Chrome::runModal const):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::suspendForBackForwardCache):
- page/DragController.cpp:
(WebCore::DragController::performDragOperation):
- page/EventSource.cpp:
(WebCore::EventSource::doExplicitLoadCancellation):
- page/FrameView.cpp:
(WebCore::FrameView::applyRecursivelyWithVisibleRect):
(WebCore::FrameView::updateEmbeddedObjects):
(WebCore::FrameView::autoSizeIfEnabled):
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layout):
(WebCore::FrameViewLayoutContext::runAsynchronousTasks):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didReceiveHeaders):
- page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::tryToBeginDragAtPoint):
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):
- platform/PreviewConverter.cpp:
(WebCore::PreviewConverter::iterateClients):
(WebCore::PreviewConverter::replayToClient):
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
- platform/graphics/mac/WebLayer.mm:
(-[WebSimpleLayer renderInContext:]):
- platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexture):
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
(WebCore::TextureMapperLayer::paintRecursive):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
- platform/ios/LegacyTileLayer.mm:
(-[LegacyTileLayer renderInContext:]):
- platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::paint):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
- rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::pushMappingsToAncestor):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::computeVisibleRectInContainer const):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::updateScrollbarsAfterLayout):
- rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
- rendering/svg/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::layout):
- rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
- storage/StorageMap.cpp:
(WebCore::StorageMap::setItemIgnoringQuota):
- style/StyleBuilder.cpp:
(WebCore::Style::Builder::applyCustomProperty):
(WebCore::Style::Builder::applyCascadeProperty):
- style/StyleInvalidator.cpp:
(WebCore::Style::Invalidator::invalidateWithMatchElementRuleSets):
- style/StyleScope.cpp:
(WebCore::Style::Scope::createDocumentResolver):
(WebCore::Style::Scope::createOrFindSharedShadowTreeResolver):
(WebCore::Style::Scope::updateResolver):
- svg/SVGPathBlender.cpp:
(WebCore::SVGPathBlender::addAnimatedPath):
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::evaluateScriptIfNecessary):
Source/WebKit:
- NetworkProcess/storage/QuotaManager.cpp:
(WebKit::QuotaManager::handleRequests):
- Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(createEncodedObject):
(decodeObject):
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::filterKeyEvent):
- UIProcess/API/glib/WebKitWebView.cpp:
(WebKitWebViewClient::frameDisplayed):
- UIProcess/API/gtk/InputMethodFilterGtk.cpp:
(WebKit::InputMethodFilter::filterKeyEvent):
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateTextTouchBar):
- UIProcess/Inspector/WebInspectorUIProxy.cpp:
(WebKit::WebInspectorUIProxy::open):
(WebKit::WebInspectorUIProxy::closeFrontendPageAndWindow):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):
- UIProcess/_WKWebViewPrintFormatter.mm:
(-[_WKWebViewPrintFormatter _setSnapshotPaperRect:]):
- UIProcess/gtk/ClipboardGtk3.cpp:
(WebKit::Clipboard::write):
- UIProcess/gtk/WebDateTimePickerGtk.cpp:
(WebKit::WebDateTimePickerGtk::update):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView unsuppressSoftwareKeyboardUsingLastAutocorrectionContextIfNeeded]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _elementDidBlur]):
- UIProcess/ios/forms/WKDateTimeInputControl.mm:
(-[WKDateTimePicker handleDatePickerPresentationDismissal]):
(-[WKDateTimePicker removeDatePickerPresentation]):
- WebProcess/Plugins/Plugin.cpp:
(WebKit::Plugin::destroyPlugin):
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::purgeBackingStores):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::stopLoadingDueToProcessSwap):
(WebKit::WebPage::mouseEvent):
(WebKit::WebPage::keyEvent):
(WebKit::WebPage::restoreSessionInternal):
(WebKit::WebPage::dispatchTouchEvent):
(WebKit::WebPage::setInitialFocus):
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::createAppHighlightInSelectedRange):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::requestDragStart):
(WebKit::WebPage::requestAdditionalItemsForDragSession):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::focusTextInputContextAndPlaceCaret):
- WebProcess/WebPage/wc/DrawingAreaWC.cpp:
(WebKit::DrawingAreaWC::updateRendering):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::prepareToSuspend):
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView updateTextTouchBar]):
- WebView/WebViewData.mm:
(WebViewLayerFlushScheduler::layerFlushCallback):
Source/WTF:
- wtf/RefCounter.h:
(WTF::RefCounter<T>::Count::deref):
Tools:
- TestWebKitAPI/Tests/WTF/SetForScope.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:
(TEST):
- TestWebKitAPI/mac/TestFontOptions.mm:
(-[TestFontOptions setShadowWidth:]):
(-[TestFontOptions setShadowHeight:]):
(-[TestFontOptions setShadowBlurRadius:]):
(-[TestFontOptions setHasShadow:]):
(-[TestFontOptions setForegroundColor:]):
(-[TestFontOptions setBackgroundColor:]):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::reattachPageToWebProcess):
- 5:16 PM Changeset in webkit [290574] by
-
- 8 edits in trunk/Source/WebCore
Add a mechanism to request a UA shadow tree update before style
https://bugs.webkit.org/show_bug.cgi?id=237224
Reviewed by Antti Koivisto.
SVG <use> elements register themselves with the document when their
shadow tree contents need updating, and this updating is done in
Document::resolveStyle. For lazy HTML <input> element UA shadow trees
(in bug 236747) we need something similar.
- dom/Document.cpp:
(WebCore::Document::resolveStyle):
(WebCore::Document::addElementWithPendingUserAgentShadowTreeUpdate):
(WebCore::Document::removeElementWithPendingUserAgentShadowTreeUpdate):
- dom/Document.h:
- dom/Element.h:
(WebCore::Element::updateUserAgentShadowTree):
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::~SVGDocumentExtensions): Deleted.
(WebCore::SVGDocumentExtensions::addUseElementWithPendingShadowTreeUpdate): Deleted.
(WebCore::SVGDocumentExtensions::removeUseElementWithPendingShadowTreeUpdate): Deleted.
- svg/SVGDocumentExtensions.h:
(WebCore::SVGDocumentExtensions::useElementsWithPendingShadowTreeUpdate const): Deleted.
- svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedIntoAncestor):
(WebCore::SVGUseElement::removedFromAncestor):
(WebCore::SVGUseElement::updateUserAgentShadowTree):
(WebCore::SVGUseElement::invalidateShadowTree):
(WebCore::SVGUseElement::updateShadowTree): Deleted.
- svg/SVGUseElement.h:
- 3:52 PM Changeset in webkit [290573] by
-
- 4 edits in trunk
[web-animations] web-animations/timing-model/animations/setting-the-timeline-of-an-animation.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=237257
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt:
Source/WebCore:
The spec has changed since we initially implemented Animation.playState and we missed one condition for
an animation's play state to be "idle".
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::playState const):
- 2:19 PM Changeset in webkit [290572] by
-
- 4 edits in trunk
Handle reverse flow direction when converting iterator coords for a subgrid
https://bugs.webkit.org/show_bug.cgi?id=236955
Reviewed by Dean Jackson.
Source/WebCore:
When recursing into a subgrid via createForSubgrid, we convert the iterator's
position into coordinates relative to the subgrid. This handles the case where
the subgrid has a reverse flow direction (RTL vs LTR) and swaps the position
to be relative to the opposite edge.
Marks existing WPT grid-gap-007.html as passing
- rendering/Grid.cpp:
(WebCore::GridIterator::createForSubgrid):
LayoutTests:
Marked grid-gap-007.html as now passing, and added bug annotations to
remaining subgrid failures.
- 2:15 PM Changeset in webkit [290571] by
-
- 5 edits in trunk
[svg] flood-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237253
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
Source/WebCore:
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setFloodOpacity):
- 1:19 PM Changeset in webkit [290570] by
-
- 5 edits in trunk
[svg] stroke-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237254
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
Source/WebCore:
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setStrokeOpacity):
- 12:55 PM Changeset in webkit [290569] by
-
- 5 edits in trunk
[svg] stop-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237255
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
Source/WebCore:
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setStopOpacity):
- 12:31 PM Changeset in webkit [290568] by
-
- 5 edits in trunk
[svg] fill-opacity should be clamped to the [0,1] range
https://bugs.webkit.org/show_bug.cgi?id=237252
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
Source/WebCore:
- rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::setFillOpacity):
- 11:54 AM Changeset in webkit [290567] by
-
- 2 edits in trunk
2022-02-24 Matt Woodrow <Matt Woodrow>
Unreviewed, update my (Matt Woodrow) status to committer.
- metadata/contributors.json:
- 11:44 AM Changeset in webkit [290566] by
-
- 28 edits in trunk/Source
Simplify SerializedScriptValue construction
https://bugs.webkit.org/show_bug.cgi?id=237241
Reviewed by Darin Adler.
Source/WebCore:
The 2 main factory functions for SerializedScriptValue now share the same code.
I also dropped some SerializedScriptValue API that was no longer useful.
Finally, I simplified factory functions for MessageEvent.
- Modules/indexeddb/IDBValue.cpp:
(WebCore::IDBValue::IDBValue):
- Modules/webaudio/AudioWorkletNode.cpp:
(WebCore::AudioWorkletNode::create):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::toString const):
(WebCore::SerializedScriptValue::toString): Deleted.
- bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::wireBytes const):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::adopt): Deleted.
(WebCore::SerializedScriptValue::data const): Deleted.
(WebCore::SerializedScriptValue::toWireBytes const): Deleted.
- dom/BroadcastChannel.cpp:
(WebCore::BroadcastChannel::dispatchMessage):
- dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::create):
- dom/MessageEvent.h:
- dom/MessagePort.cpp:
(WebCore::MessagePort::dispatchMessages):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
- page/EventSource.cpp:
(WebCore::EventSource::dispatchMessageEvent):
- page/History.cpp:
(WebCore::History::stateObjectAdded):
- testing/Internals.cpp:
(WebCore::Internals::serializeObject const):
(WebCore::Internals::deserializeBuffer const):
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::postMessage):
- workers/shared/SharedWorkerGlobalScope.cpp:
(WebCore::SharedWorkerGlobalScope::postConnectEvent):
Source/WebKit:
Update code base to reflect SerializedScriptValue API changes.
- Shared/API/APISerializedScriptValue.h:
(API::SerializedScriptValue::createFromWireBytes):
(API::SerializedScriptValue::dataReference const):
(API::SerializedScriptValue::adopt): Deleted.
- Shared/SessionState.cpp:
(WebKit::PageState::encode const):
- Shared/UserData.cpp:
(WebKit::UserData::decode):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _evaluateJavaScript:asAsyncFunction:withSourceURL:withArguments:forceUserGesture:inFrame:inWorld:completionHandler:]):
- UIProcess/Inspector/WebInspectorUIExtensionControllerProxy.cpp:
(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptForExtension):
(WebKit::WebInspectorUIExtensionControllerProxy::evaluateScriptInExtensionTab):
- UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
- WebProcess/Inspector/WebInspectorUIExtensionController.cpp:
(WebKit::WebInspectorUIExtensionController::evaluateScriptForExtension):
(WebKit::WebInspectorUIExtensionController::evaluateScriptInExtensionTab):
- WebProcess/UserContent/WebUserContentController.cpp:
- WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFrameState):
(WebKit::applyFrameState):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScript):
- 9:54 AM Changeset in webkit [290565] by
-
- 2 edits in trunk/LayoutTests
[GStreamer] media/video-src-blob-perf.html timing out likely since update to GStreamer 1.20
https://bugs.webkit.org/show_bug.cgi?id=237256
Unreviewed, gardening
Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-27
- platform/glib/TestExpectations: Flag test as timing out.
- 8:38 AM Changeset in webkit [290564] by
-
- 10 edits in trunk
Force -webkit-user-modify used style to readonly for inert nodes
https://bugs.webkit.org/show_bug.cgi?id=237244
Reviewed by Darin Adler.
This disallows programmatic edition of contenteditable inert nodes. Edition via user-input is
already prevented by forcing pointer-events style to none.
We create a seperate effectiveUserModify, similar to effectiveUserSelect/effectivePointerEvents,
to avoid changing the computed style.
This behaviour also matches Blink & Gecko.
LayoutTests/imported/w3c:
- web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative.html
- dom/Node.cpp:
(WebCore::computeEditabilityFromComputedStyle):
- editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
- rendering/EventRegion.cpp:
(WebCore::EventRegion::unite):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::effectiveUserModify const):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolveElement):
- 8:33 AM Changeset in webkit [290563] by
-
- 9 edits in trunk
Call WKNavigationDelegate.didFailProvisionalNavigation even after a cross-origin navigation with COOP
https://bugs.webkit.org/show_bug.cgi?id=237071
<rdar://problem/89354367>
Reviewed by Darin Adler.
Source/WebKit:
When doing a process swap on navigation (PSON), we start a new provisional load in the new provisional
process and ask the committed process to stop all loads. Since we swap in decidePolicyForNavigationAction,
no provisional load has started in the committed process yet. If the provisional process sends us a
didFailProvisionalLoad though, we know the provisional load has failed and we take this into consideration
and notify the client app.
When doing a process swap on resource response (due to COOP), we were behaving differently and it was
causing some confusion. Since we swap on resource response, the provisional load has started in the
committed process by the time we process-swap (unlike PSON). We were also not asking for the committed
process to stop/cancel this provisional load. As a result, a provisional load would still be going on
in the committed process while another provisional load starts happening in the provisional page / process.
Then, if the provisional process would send us a didFailProvisional, we would not pass it along to the
client app. Instead we would destroy the ProvisionalPageProxy, which would tell the committed process to
stop loading and send its own didFailProvisionalLoad, and the client app would eventually get notified.
Even though the difference in behavior was confusing, it was working in most cases. There was however
an edge case where it didn't work and we would fail to tell the client app that the provisional load
had failed. In particular, we would run into trouble when navigating cross-site to a site that adopted
the COOP header. We would first do a process-swap on navigation, stop the provisional load in the committed
process A, then start a provisional load in process B. We would then get the COOP header and we would
start a new provisional load in process C. Process B would go away since we cannot have 2 provisional
pages / processes at the same time for the same WebPageProxy. Then if the provisional load fails in
process C, we would ignore the didFailProvisionalLoad from process C and destroy the provisional page.
We would tell the committed process A to stop loading, expecting it to send its own didFailProvisionalLoad
but it wouldn't happen since PSON had already stopped all loading in process A earlier when swapping to
process B.
To address the issue, we align COOP process swap with PSON process swap. We now has the committed process
to stop all loads when process swapping on resource response due to COOP. As a result, when the provisional
load fails in the provisional process, we can simply pass it along to the client, no matter if the process
swap occurred due to PSON or COOP.
Covered by new API test.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
We no longer need to tell the committed process to stop loading when the provisional page gets destroyed
and this was a process swap on resource response. The reason is that when process-swapping on navigation
response, we now drop the provisional load in the committed process right away, like in the PSON case.
(WebKit::ProvisionalPageProxy::cancel):
When cancelling a provisional load due to PSON or COOP, we need to notify the client that the provisional
load failed. We used to only to it in the PSON case. We now do it for both PSON and COOP since they
behave the same.
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
Similarly as above, now that PSON and COOP behave the same, we need to pass the didFailProvisionalLoad
from the provisional process to the client app for both PSON and COOP (Not just PSON).
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation):
When triggering a process swap on resource response (due to COOP), we now stop the provisional load going
on in the committed process to be consistent with what we do in the PSON case. This way there is only a
single provisional load going on and it is happening in the provisional page / process.
Tools:
Add API test coverage (Test was written by Alex Christensen).
- TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(TEST):
- 8:26 AM Changeset in webkit [290562] by
-
- 2 edits in trunk/Source/WebCore
Loading a USDZ url as the main resource renders as garbage
https://bugs.webkit.org/show_bug.cgi?id=237240
rdar://88767033
Reviewed by Antoine Quint.
We can't render a USD document if the ModelDocument feature is not enabled.
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::canShowMIMEType):
- 8:17 AM Changeset in webkit [290561] by
-
- 4 edits in trunk
[css-animations] implicit keyframes should be inserted after explicit keyframes with the same offset
https://bugs.webkit.org/show_bug.cgi?id=237246
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Update WPT test added in bug 236838 to match the spec following discussion with Brian Birtles in
https://github.com/web-platform-tests/wpt/pull/32903.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
Source/WebCore:
The CSS Animations spec says the following about implicit keyframes generation:
Let initial keyframe be the keyframe in keyframes with offset 0, timing function default timing
function and composite default composite.
If there is no such keyframe, let initial keyframe be a new empty keyframe with offset 0, timing
function default timing function, composite |default composite, and add it to keyframes after the
last keyframe with offset 0.
Let final keyframe be the keyframe in keyframes with offset 1, timing function default timing
function and composite default composite.
If there is no such keyframe, let final keyframe be a new empty keyframe with offset 1, timing
function default timing function and composite default composite, and add it to keyframes after
the last keyframe with offset 1.
Full details are at https://drafts.csswg.org/css-animations-2/#keyframes.
The KeyframeList::insert() method does the right thing already by adding a new keyframe after all
other keyframes with that same offset, so all we need to do is to use this method rather than
specifying explicit indexes.
- rendering/style/KeyframeList.cpp:
(WebCore::KeyframeList::fillImplicitKeyframes):
- 8:03 AM Changeset in webkit [290560] by
-
- 2 edits in trunk/Source/WebCore
Use hasAttributeWithoutSynchronisation for checking inert attribute in Adjuster::adjust
https://bugs.webkit.org/show_bug.cgi?id=237248
Reviewed by Dean Jackson.
hasAttributeWithoutSynchronisation should be slightly faster than hasAttribute.
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
- 6:10 AM Changeset in webkit [290559] by
-
- 3 edits2 adds in trunk
Optimize StyleSharingResolver inert checks
https://bugs.webkit.org/show_bug.cgi?id=237235
Reviewed by Youenn Fablet.
Source/WebCore:
inert is an boolean attribute, the only thing that matters for the StyleAdjuster
inertness adjustment is the presence of the attribute, not its value. E.g.
inert=falseis the same asinert=inertorinert=true.
This saves getting and comparing values for those attributes, and also allows
inert=inertandinert=trueorinert=falseto start sharing style.
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement const):
LayoutTests:
Add small test that style sharing is not wrongly applied.
- fast/css/inert-style-sharing-expected.html: Added.
- fast/css/inert-style-sharing.html: Added.
- 4:06 AM Changeset in webkit [290558] by
-
- 7 edits in trunk/Source/WebKit
Exposing RemoteVideoFrameProxy::write is unneeded
https://bugs.webkit.org/show_bug.cgi?id=237212
Reviewed by Eric Carlson.
Exposing RemoteVideoFrameProxy::write is unneeded as RemoteVideoFrameProxy is immutable.
It is best to remove it as calling write() inadvertently would break things.
Renaming read() to newReadReference() to make it clear that we are creating a new read reference
that needs to be sent to GPUProcess to prevent leaks.
No change of behavior.
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):
- WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
(WebKit::RemoteVideoFrameProxy::~RemoteVideoFrameProxy):
(WebKit::RemoteVideoFrameProxy::newReadReference const):
(WebKit::RemoteVideoFrameProxy::pixelBuffer const):
(WebKit::RemoteVideoFrameProxy::write const): Deleted.
(WebKit::RemoteVideoFrameProxy::read const): Deleted.
- WebProcess/GPU/media/RemoteVideoFrameProxy.h:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::encodeFrame):
- WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::getVideoFrameBuffer):
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
(WebKit::SharedVideoFrameWriter::write):
- 3:44 AM Changeset in webkit [290557] by
-
- 4 edits in trunk/Source/WebCore
Simplify CVPixelBuffer data copies in SharedVideoFrameInfo
https://bugs.webkit.org/show_bug.cgi?id=237194
Reviewed by Eric Carlson.
Remove use of vImageUnpremultiplyData_BGRA8888 which might not be correct for canvas data.
Make use of CVPixelBufferGetPlaneCount to share more code between monoplanar and biplanar formats.
Covered by existing tests.
- platform/cocoa/CoreVideoSoftLink.cpp:
- platform/cocoa/CoreVideoSoftLink.h:
- platform/cocoa/SharedVideoFrameInfo.mm:
(WebCore::SharedVideoFrameInfo::isReadWriteSupported const):
(WebCore::copyToCVPixelBufferPlane):
(WebCore::SharedVideoFrameInfo::createPixelBufferFromMemory):
(WebCore::SharedVideoFrameInfo::writePixelBuffer):
- 3:21 AM Changeset in webkit [290556] by
-
- 17 edits2 adds in trunk/LayoutTests
Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=237243
Reviewed by Youenn Fablet.
Upstream commit: https://github.com/web-platform-tests/wpt/commit/9261ca87db106c1f31f1ab4f54b8f4a2617cbc24
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-expected.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer-ref.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-replaced-renderer.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-expected.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column-ref.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-table-column.html:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
- web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt: Added.
- web-platform-tests/inert/inert-and-contenteditable.tentative.html: Added.
- web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt:
- web-platform-tests/inert/inert-iframe-hittest.tentative.html:
- web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt:
- web-platform-tests/inert/inert-iframe-tabbing.tentative.html:
- web-platform-tests/inert/w3c-import.log:
LayoutTests:
- TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt:
Feb 26, 2022:
- 11:27 PM Changeset in webkit [290555] by
-
- 8 edits in trunk/Source/WebKit
RemoteCaptureSampleManager, UserMediaSampleCaptureManagerProxy create the RemoteVideoFrame in incorrectly
https://bugs.webkit.org/show_bug.cgi?id=237134
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-26
Reviewed by Youenn Fablet.
UserMediaSampleCaptureManagerProxy should not call RemoteVideoFrameObjectHeap::createVideoFrame,
the function should be removed. Instead, UserMediaSampleCaptureManagerProxy should construct a
write reference to insert the media sample -> remote proxy mapping. Then
the result of the insert, a new reference, should be sent as part of the
RemoteVideoFrameProxy::Properties to the WP. This way the sent reference is
constructed as expected. Previously the reference was correct but matched just
by selecting the constants currently used (0).
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::videoSampleAvailable):
(WebKit::RemoteCaptureSampleManager::videoSampleAvailableCV):
- WebProcess/cocoa/RemoteCaptureSampleManager.h:
- WebProcess/cocoa/RemoteCaptureSampleManager.messages.in:
- 11:06 PM Changeset in webkit [290554] by
-
- 11 edits2 adds in trunk
Remove Node::deprecatedIsInert
https://bugs.webkit.org/show_bug.cgi?id=230845
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.
However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/remove-dialog-should-unblock-document-expected.txt:
- web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt:
- web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt:
Source/WebCore:
This change unfortunately regresses focusability state when dynamically setting inert, due to a cached
computed style invalidation bug. This is minor in practice, since focusability usually gets queried in
user-initiated ways, when style already has fully been updated.
However, making this change will improve performance by avoiding a full DOM ancestor walk when there
is no inert attribute on the page, since we will only check a style bit after this patch.
- dom/Element.cpp:
(WebCore::Element::isFocusable const):
(WebCore::Element::isFocusableWithoutResolvingFullStyle const):
(WebCore::Element::isVisibleWithoutResolvingFullStyle const): Deleted.
- dom/Element.h:
- dom/Node.cpp:
(WebCore::Node::deprecatedIsInert const): Deleted.
- dom/Node.h:
- html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::isFocusable const):
LayoutTests:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-focusing-steps-inert-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt: Added.
- 4:46 PM Changeset in webkit [290553] by
-
- 3 edits in trunk/Source/WebCore
AX: Remove unnecessary AccessibilityRenderObject::init() override
https://bugs.webkit.org/show_bug.cgi?id=237239
Reviewed by Chris Fleizach.
The implementation of AccessibilityRenderObject::init() just calls
AccessibilityNodeObject::init(), so we don't need it as an override.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::init): Deleted.
- accessibility/AccessibilityRenderObject.h:
- 3:36 PM Changeset in webkit [290552] by
-
- 12 edits in trunk
Drop Ref<>'s operator==() as it is a bit ambiguous / confusing
https://bugs.webkit.org/show_bug.cgi?id=237231
Reviewed by Darin Adler.
Drop Ref<>'s operator==() as it is a bit ambiguous / confusing. Some people expect it to compare
pointers while other expect it to compare the values we hold references to.
It seems best to omit this operator and be explicit at call sites.
Source/WebCore:
- Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
(WebCore::LibWebRTCRtpSenderBackend::startSource):
- svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::removeElementToRebuild):
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::buildEffectExpression const):
Source/WebKit:
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::cacheMediaMIMETypes):
- UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::removeAll):
(WebKit::VisitedLinkStore::sendStoreHandleToProcess):
(WebKit::VisitedLinkStore::didUpdateSharedStringHashes):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::shouldTerminate):
Source/WTF:
- wtf/Ref.h:
(WTF::operator==): Deleted.
(WTF::operator!=): Deleted.
- wtf/Vector.h:
(WTF::Vector::containsIf const):
- 2:12 PM Changeset in webkit [290551] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove UNUSED warnings for non-Cocoa platform after r290449
https://bugs.webkit.org/show_bug.cgi?id=237233
Reviewed by Darin Adler.
- runtime/JSDateMath.cpp:
- 1:04 PM Changeset in webkit [290550] by
-
- 15 edits in trunk
Update CSP handling of javascript URLs
https://bugs.webkit.org/show_bug.cgi?id=236351
<rdar://problem/88675827>
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/navigation/to-javascript-parent-initiated-parent-csp-disallow-expected.txt:
- web-platform-tests/content-security-policy/navigation/to-javascript-url-script-src-expected.txt:
Source/WebCore:
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeJavaScriptURL):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::createWindow):
- loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::requestFrame):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
- page/csp/ContentSecurityPolicy.h:
LayoutTests:
- TestExpectations:
- http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
- 10:44 AM Changeset in webkit [290549] by
-
- 3 edits2 adds in trunk
[RenderTreeBuilder] Clean up descendant floats when a block container becomes float
https://bugs.webkit.org/show_bug.cgi?id=237238
<rdar://79960422>
Reviewed by Antti Koivisto.
Source/WebCore:
When a block box becomes float, it forms a "lockdown" container for the descendant floats by establishing a BFC.
What it means is that such descendant floats can't intrude to sibling block containers anymore.
This patch ensures that we remove such floats from sibling (and their descendant) renderers.
Test: fast/block/float/float-merge-anon-parent-crash.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
LayoutTests:
- fast/block/float/float-merge-anon-parent-crash-expected.txt: Added.
- fast/block/float/float-merge-anon-parent-crash.html: Added.
- 10:43 AM Changeset in webkit [290548] by
-
- 7 edits in trunk
No animation when scroll snap scroller is navigated with the keyboard
https://bugs.webkit.org/show_bug.cgi?id=236244
Reviewed by Tim Horton.
Source/WebCore:
Keyboard-driven scrolls in overflow didn't animate, simply because scrollAnimatorEnabled()
wasn't implemented for RenderLayerScrollableArea.
I could not figure out a reliable way to test that we animated the scroll.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollAnimatorEnabled const):
- rendering/RenderLayerScrollableArea.h:
LayoutTests:
Turn off the scroll animator for these tests that assume that scrolling is instantaneous.
- css3/scroll-snap/scroll-padding-overflow-paging.html:
- fast/events/wheelevent-in-scrolling-div.html:
- tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-overflow-rtl-with-keyboard.html:
- 4:07 AM Changeset in webkit [290547] by
-
- 5 edits in trunk/Source/WebKit
Multiple concurrency violations in LibWebRTCCodecsProxy
https://bugs.webkit.org/show_bug.cgi?id=236767
<rdar://88904160>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-26
Reviewed by Antti Koivisto.
- ThreadMessageReceivers should not add IPC listeners in constructors,
as the delivery starts right away and uses the unconstructed virtual pointer.
- The work queue functions should not use GPUConnectionToWebProcess, as that is
main thread object.
- Locked m_encoders, m_decoders are sometimes accessed without lock.
Instead:
- Add the IPC listeners in initialize function.
- Remove the IPC listeners when GPUConnectionToWebProcess disconnects.
- Store the thread-safe conection, video frame object heap, process identity
objects as member variables.
- Do not lock m_encoders, m_decoders. If they are work queue instances,
just access them in the work queue functions. Add thread requirements
to the variables so that the compiler checks the access.
- Use IPC testing assertions when skipping incorrect messages.
- Use separate atomic counter (bool) to check if allowsExitUnderMemoryPressure.
No new tests, tested with existing tests and ASAN.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didClose):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::create):
(WebKit::LibWebRTCCodecsProxy::LibWebRTCCodecsProxy):
(WebKit::LibWebRTCCodecsProxy::stopListeningForIPC):
(WebKit::LibWebRTCCodecsProxy::initialize):
(WebKit::LibWebRTCCodecsProxy::dispatchToThread):
(WebKit::LibWebRTCCodecsProxy::createDecoderCallback):
(WebKit::LibWebRTCCodecsProxy::createH264Decoder):
(WebKit::LibWebRTCCodecsProxy::createH265Decoder):
(WebKit::LibWebRTCCodecsProxy::createVP9Decoder):
(WebKit::LibWebRTCCodecsProxy::releaseDecoder):
(WebKit::LibWebRTCCodecsProxy::createEncoder):
(WebKit::LibWebRTCCodecsProxy::releaseEncoder):
(WebKit::LibWebRTCCodecsProxy::initializeEncoder):
(WebKit::LibWebRTCCodecsProxy::findEncoder):
(WebKit::LibWebRTCCodecsProxy::encodeFrame):
(WebKit::LibWebRTCCodecsProxy::setEncodeRates):
(WebKit::LibWebRTCCodecsProxy::setSharedVideoFrameSemaphore):
(WebKit::LibWebRTCCodecsProxy::setSharedVideoFrameMemory):
(WebKit::LibWebRTCCodecsProxy::allowsExitUnderMemoryPressure const):
- 2:04 AM Changeset in webkit [290546] by
-
- 3 edits in trunk/LayoutTests
REGRESSION(r290358): [ Debug EWS ] ASSERTION FAILED: sample && sample->pixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=237164
<rdar://problem/89442999>
Unreviewed.
ASSERTS are fixed through https://bugs.webkit.org/show_bug.cgi?id=237027.
Removing crash expectations.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
Feb 25, 2022:
- 11:58 PM Changeset in webkit [290545] by
-
- 7 edits2 adds in trunk
Scrollbars disappear when very long or wide
https://bugs.webkit.org/show_bug.cgi?id=237232
Source/WebCore:
<rdar://17540446>
Reviewed by Tim Horton.
Our tiling logic does not play nicely with AppKit's NSScrollerImps, probably because we
inadvertently unparent its layers.
Fix by disallowing GraphicsLayers for scrollbars from going into tiled mode, for
both root and overflow scrollbars.
Test: fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setAllowsTiling):
(WebCore::GraphicsLayer::allowsTiling const):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::requiresTiledLayer const):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
LayoutTests:
Reviewed by Tim Horton.
- fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar-expected-mismatch.html: Added.
- fast/scrolling/mac/scrollbars/very-wide-overlay-scrollbar.html: Added.
- 9:42 PM Changeset in webkit [290544] by
-
- 5 edits in trunk
[macOS] TestWebKitAPI.WebKit.MigrateLocalStorageDataToGeneralStorageDirectory is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=237065
<rdar://problem/89324250>
Reviewed by Alexey Proskuryakov.
Source/WebKit:
Commit transactions of SQLiteStorageArea at exit of network process.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
- NetworkProcess/storage/SQLiteStorageArea.cpp:
(WebKit::commitTransactionsAtExit):
(WebKit::SQLiteStorageArea::SQLiteStorageArea):
(WebKit::SQLiteStorageArea::startTransactionIfNecessary):
(WebKit::SQLiteStorageArea::commitTransactionIfNecessary):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- 9:38 PM Changeset in webkit [290543] by
-
- 5 edits in trunk
Adjust -[WKContentView _requiresKeyboardWhenFirstResponder] to account for editable web views
https://bugs.webkit.org/show_bug.cgi?id=237226
rdar://89447095
Reviewed by Aditya Keerthi.
Source/WebKit:
Adjust the implementation of
-[WKContentView _requiresKeyboardWhenFirstResponder], such that it returns YES
for editable web views, except for the scenario where an input field that does *not* require the automatic
keyboard is currently focused in the page inside the editable web view (e.g. areadonlytext field).
UIKit consults this method to know whether or not a given responder would require the keyboard (either software
keyboard or the minimized UCB for hardware keyboard) if it were to become the first responder. For web views
that are made editable in the SPI sense, we know a-priori that this should return YES, unless a readonly element
underneath the web view has focus (in which case,_disableAutomaticKeyboardUIwould be true).
Test: KeyboardInputTests.EditableWebViewRequiresKeyboardWhenFirstResponder
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
Tools:
Add an API test to exercise the change. This new API test is comprised of 3 parts:
- Verify that
-_requiresKeyboardWhenFirstResponderis NO after loading the page. - Verify that
-_requiresKeyboardWhenFirstResponderbecomes YES after making the web view editable. - Verify that
-_requiresKeyboardWhenFirstResponderis NO again after focusing a readonly input inside the now-editable web view.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
- 9:05 PM Changeset in webkit [290542] by
-
- 4 edits in trunk/Source
[GPU Process] Implement RemoteImageBufferProxy::drawConsuming()
https://bugs.webkit.org/show_bug.cgi?id=236685
rdar://89007426
Reviewed by Simon Fraser.
Source/WebCore:
Assert ImageBuffer::drawConsuming() does not draw into its backend before
it is destroyed.
- platform/graphics/ConcreteImageBuffer.h:
Source/WebKit:
RemoteImageBufferProxy::drawConsuming() should call drawImageBuffer() of
the destination GraphicsContext. No recursion will happen and the expected
behavior will be achieved by this change.
This is the sequence of calls when the Destination GraphicsContext is
local and when it is remote:
-- Destination GraphicsContext is local:
In this case, the backend of the RemoteImageBufferProxy can be mapped
in WebProcess; i.e. we do have access to its memory.
ConcreteImageBuffer::draw() will be called eventually. This function
will call its backend->draw() which will get a NativeImage by calling
backend->copyNativeImage(). There is no difference between draw() and
drawConsuming() in this case because the backend is still owned by
GPUProcess. So it will not be released immediately. We do not copy the
pixels since we have to pass DontCopyBackingStore to copyNativeImage().
-- Destination GraphicsContext is remote:
In this case, Recorder::drawImageBuffer() will be called which will
call RemoteDisplayListRecorderProxy::recordDrawImageBuffer(). This
will send a message to GPUProcess and hence all the drawing will
happen in GPUProcess. Similar to the case of the local GraphicsContext,
no pixels will be copied from the RemoteImageBuffer backend to the
NativeImage in all cases. The assumption is the backend will be destroyed
automatically after calling drawConsuming().
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- 7:59 PM Changeset in webkit [290541] by
-
- 3 edits in trunk/Source/bmalloc
[libpas] Suppress cast-align warnings
https://bugs.webkit.org/show_bug.cgi?id=237179
<rdar://problem/89479570>
Reviewed by Yusuke Suzuki.
Ignore cast-align warnings for libpas target.
- CMakeLists.txt:
- libpas/src/libpas/bmalloc_heap_inlines.h:
- 6:03 PM Changeset in webkit [290540] by
-
- 12 edits1 copy2 deletes in trunk/Source/WebCore
[GTK][WPE][WC] Move ANGLE context initialisation to GraphicsContextGLTextureMapper::initialize
https://bugs.webkit.org/show_bug.cgi?id=236769
Reviewed by Chris Lord.
This is the first step for the long-term plan to share more code
in GraphicsContextGLANGLE between Cocoa and non-Cocoa, and
minimise the ifdefs in GraphicsContextGLANGLE.
We are moving the context initialisation and holding to
GraphicsContextGLTextureMapper, away from
GCGLANGLELayer::ANGLEContext and the layer classes in case of
COORDINATED_GRAPHICS. Later on, Cocoa and non-Cocoa can merge
their ::initialize.
No new tests, this is a refactoring patch.
- platform/TextureMapper.cmake:
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):
(Nicosia::GCGLANGLELayer::ANGLEContext::errorString): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::lastErrorString): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::createContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::ANGLEContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::~ANGLEContext): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::makeContextCurrent): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformContext const): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformDisplay const): Deleted.
(Nicosia::GCGLANGLELayer::ANGLEContext::platformConfig const): Deleted.
(Nicosia::GCGLANGLELayer::makeContextCurrent): Deleted.
(Nicosia::GCGLANGLELayer::platformContext const): Deleted.
(Nicosia::GCGLANGLELayer::platformDisplay const): Deleted.
(Nicosia::GCGLANGLELayer::platformConfig const): Deleted.
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::initialize):
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/texmap/ANGLEContext.cpp: Removed.
- platform/graphics/texmap/ANGLEContext.h: Removed.
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLTextureMapper::create):
(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):
(WebCore::GraphicsContextGLTextureMapper::layerContentsDisplayDelegate):
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(): Deleted.
- platform/graphics/texmap/GraphicsContextGLTextureMapper.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLTextureMapper::platformInitializeContext):
(WebCore::GraphicsContextGLTextureMapper::platformInitialize):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
- platform/graphics/texmap/PlatformLayerDisplayDelegate.h: Copied from Source/WebCore/platform/graphics/texmap/GraphicsContextGLTextureMapper.h.
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp:
(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::~TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):
(WebCore::TextureMapperGCGLPlatformLayer::makeContextCurrent): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformContext const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformDisplay const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::platformConfig const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::proxy const): Deleted.
(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded): Deleted.
- platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h:
- 5:47 PM Changeset in webkit [290539] by
-
- 4 edits in trunk
[WebAuthn] Fallback to attestation=none whenever attestation fails
https://bugs.webkit.org/show_bug.cgi?id=237223
rdar://88767812
Reviewed by Brent Fulgham.
Source/WebKit:
Whenever attestation is requested by a RP and it fails to complete,
we previously errored out of the registration. The more correct platform
behavior in this case is to provide attestation=none.
Created API test for this behavior.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
Tools:
Add test for local authenticator attestation fallback behavior.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
- 5:19 PM Changeset in webkit [290538] by
-
- 5 edits in trunk/Source/WebCore
Use the modern Hasher more in Content Extensions code
https://bugs.webkit.org/show_bug.cgi?id=237228
Reviewed by Darin Adler.
- contentextensions/CombinedFiltersAlphabet.cpp:
(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::TermCreatorTranslator::hash):
- contentextensions/CombinedFiltersAlphabet.h:
(WebCore::ContentExtensions::CombinedFiltersAlphabet::TermPointerHash::hash):
- contentextensions/ContentExtensionRule.h:
(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::TriggerHash::hash):
- contentextensions/Term.h:
(WebCore::ContentExtensions::Term::Group::operator== const):
(WebCore::ContentExtensions::add):
(WebCore::ContentExtensions::Term::CharacterSet::hash const): Deleted.
(WebCore::ContentExtensions::Term::Group::hash const): Deleted.
(WebCore::ContentExtensions::Term::hash const): Deleted.
- 4:27 PM Changeset in webkit [290537] by
-
- 2 edits in trunk/Source/WebCore
Do not trigger didFail during FileReaderLoader Destruction
https://bugs.webkit.org/show_bug.cgi?id=237060
Patch by Brandon Stewart <Brandon> on 2022-02-25
Reviewed by Darin Adler.
Setting cancel() instead of terminate() will prevent the didFail() method from being triggered.
This method has the unfortunate side effect of trying to allocate memory, which is not allowed when
under going a sweep event.
- fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::~FileReaderLoader):
- 4:17 PM Changeset in webkit [290536] by
-
- 1 copy in tags/Safari-613.1.17.1.9
Tag Safari-613.1.17.1.9.
- 4:04 PM Changeset in webkit [290535] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add access to required mach service in the Network process
https://bugs.webkit.org/show_bug.cgi?id=237216
<rdar://89176897>
Reviewed by Brent Fulgham.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- 4:02 PM Changeset in webkit [290534] by
-
- 8 edits2 adds in trunk
WebKit continues to render PDF images in Captive Portal mode
https://bugs.webkit.org/show_bug.cgi?id=237120
<rdar://problem/89384234>
Reviewed by Chris Dumez.
Source/WebCore:
WebKit should handle all PDF processing in PDF.JS when in Captive Portal mode. However, testing
revealed that PDF images are still rendered natively. As a first step we should bypass the
native PDF code path. A subsequent patch will handle in PDF.JS.
We need to thread the state of the Captive Portal setting through the image loading code so that
WebKit knows to bail out before consuming the PDF data in the native decoder.
Tested by TestWebKitAPI.
- page/RuntimeEnabledFeatures.h: Add new flag for PDF image decoding state.
- platform/graphics/Image.cpp:
(WebCore::Image::create): Check whether PDF image decoding should be permitted.
Source/WebKit:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess): Turn PDF image decoding off when in CaptivePortal mode.
Tools:
WebKit should handle all PDF processing in PDF.JS when in Captive Portal mode. However, testing
revealed that PDF images are still rendered natively. As a first step we should bypass the
native PDF code path. A subsequent patch will handle in PDF.JS.
We need to thread the state of the Captive Portal setting through the image loading code so that
WebKit knows to bail out before consuming the PDF data in the native decoder.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/CaptivePortalPDF.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[CaptivePortalMessageHandler userContentController:didReceiveScriptMessage:]): Add new test case.
- TestWebKitAPI/Tests/WebKitCocoa/webkit-logo.pdf: Added.
- 3:49 PM Changeset in webkit [290533] by
-
- 1 copy in tags/Safari-614.1.5.5
Tag Safari-614.1.5.5.
- 3:45 PM Changeset in webkit [290532] by
-
- 8 edits in trunk
Regression(r242729): m_origin in IDBDatabaseIdentifier is incorrect
https://bugs.webkit.org/show_bug.cgi?id=237044
Reviewed by Youenn Fablet.
Source/WebCore:
In r242729, we swapped top origin and opening origin in m_origin (it is a ClientOrigin) of IDBDatabaseIdentifier.
This can cause trouble since IndexedDB operation will be processed by wrong OriginStorageManager
(OriginStorageManager is identified by ClientOrigin). To fix this issue, we need to swap it back.
New test: IndexedDB.IndexedDBThirdPartyStorageLayout
- Modules/indexeddb/IDBDatabaseIdentifier.cpp:
(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot const):
(WebCore::IDBDatabaseIdentifier::databaseDirectoryRelativeToRoot):
- Modules/indexeddb/IDBDatabaseIdentifier.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::diskUsage):
Source/WebKit:
- NetworkProcess/storage/IDBStorageManager.cpp:
(WebKit::migrateOriginData):
(WebKit::IDBStorageManager::idbStorageOriginDirectory):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
(-[IndexedDBMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):
- 3:29 PM Changeset in webkit [290531] by
-
- 3 edits4 adds in trunk
SharedArrayBuffer posted to AudioWorkletProcessor is not actually shared with the main thread
https://bugs.webkit.org/show_bug.cgi?id=237144
<rdar://problem/89479641>
Reviewed by Darin Adler.
Source/WebCore:
SerializedScriptValue only maintains SharedArrayBuffers when constructed with SerializationContext::WorkerPostMessage.
With other SerializationContext values, such as the default one that AudioWorkletNode was using, SharedArrayBuffers
are serialized as simple arrays and are no longer shared.
This patch passes SerializationContext::WorkerPostMessage when constructing the SerializedScriptValue since we want
SharedArrayBuffer sharing and since a worklet is essentially a worker.
Note that this patch allows passing a SharedArrayBuffer to an AudioWorklet upon construction via processorOptions.
However, SharedArrayBuffer still won't be shared if sent later on via a MessagePort.postMessage() call. This is
because MessagePort.postMessage() routes all messages via the network process, even if the destination ends up
being within the same process as the sender (See Bug 220038).
Test: http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html
- Modules/webaudio/AudioWorkletNode.cpp:
(WebCore::AudioWorkletNode::create):
LayoutTests:
Add layout test coverage.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/shared-array-buffer-processor.js: Added.
(SharedArrayBufferTestProcessor):
(SharedArrayBufferTestProcessor.prototype.process):
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https-expected.txt: Added.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html: Added.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/shared-array-buffer.https.html.headers: Added.
- 3:19 PM Changeset in webkit [290530] by
-
- 2 edits in trunk/Source/JavaScriptCore
Remove incorrect ASSERT.
https://bugs.webkit.org/show_bug.cgi?id=237185
<rdar://problem/83902782>
Reviewed by Yusuke Suzuki.
These debug ASSERTs were added in http://trac.webkit.org/r283632 back when we
weren't sure that the StringImpl pointer can be null or not. We're now certain
that the StringImpl pointer can be null because:
The site of the ASSERT looks like this:
`
auto* impl = string->tryGetValueImpl();
ASSERT(impl); FIXME: rdar://83902782
if (impl && impl->isAtom() &&
...
`
... where string is a JSString, which can also be a JSRopeString.
JSString::tryGetValueImpl() is:
`
inline const StringImpl* JSString::tryGetValueImpl() const
{
uintptr_t pointer = fiberConcurrently();
if (pointer & isRopeInPointer)
return nullptr;
return bitwise_cast<StringImpl*>(pointer);
}
`
If string is a JSRopeString, the returned impl will be null. Hence, the ASSERT is
invalid and should be removed.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
- 2:24 PM Changeset in webkit [290529] by
-
- 1 copy in releases/WPE WebKit/webkit-2.35.90
WPE WebKit 2.35.90
- 2:20 PM Changeset in webkit [290528] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.35.90 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.35.90.
- 2:20 PM Changeset in webkit [290527] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Unreviewed non-unified build fix.
- WebProcess/glib/WebProcessGLib.cpp: Add missing WebPage.h inclusion.
- 2:18 PM Changeset in webkit [290526] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] HLS + Modern EME key rotation causes playback to stall indefinitely
https://bugs.webkit.org/show_bug.cgi?id=237214
<rdar://89372801>
Reviewed by Eric Carlson.
In r275916, Ref was changed to perform pointer equality in its operator==. This caused
takeUnexpectedKeyRequestForInitializationData() to fail to find key requests matching
the initData passed in through MediaKeySession.
Fix the equality test by calling .get() on the Ref, which causes the
==to resolve to
FragmentedSharedBuffer::operator==().
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::takeUnexpectedKeyRequestForInitializationData):
- 1:01 PM Changeset in webkit [290525] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r290516.
https://bugs.webkit.org/show_bug.cgi?id=237222
broke debug tests
Reverted changeset:
"[JSC] Use DeferTerminationForAWhile in Interpreter::unwind"
https://bugs.webkit.org/show_bug.cgi?id=237176
https://commits.webkit.org/r290516
- 12:54 PM Changeset in webkit [290524] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 ] 7X imported/w3c/web-platform-tests/pointerevents/pointerevent (layout-tests) are flaky text failures
https://bugs.webkit.org/show_bug.cgi?id=236128
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 12:44 PM Changeset in webkit [290523] by
-
- 4 edits1 copy in trunk/Source/WTF
[XCBuild] Add missing header build rule for Scripts/Preferences/*
https://bugs.webkit.org/show_bug.cgi?id=237129
Reviewed by Alexey Proskuryakov.
Relands "[XCBuild] WTF's SPI dependencies are copied via a folder reference and do not emit
task outputs".
r290452 missed adding a build rule which would copy $SRCROOT/Scripts/Preferences/* to
/usr/local/include/wtf/Scripts/Preferences, and caused clean builds to start failing. Fix by
adding the needed build rule.
- Configurations/Base.xcconfig:
- Configurations/WTF.xcconfig:
- Configurations/icu.xcconfig:
- WTF.xcodeproj/project.pbxproj:
- 12:19 PM Changeset in webkit [290522] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/svg/coordinate-systems/abspos.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237220
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-02-25
- platform/ios/TestExpectations:
- 12:08 PM Changeset in webkit [290521] by
-
- 4 edits in trunk/Source/WebKit
Make sure there is a default Networking process to provide the Launch Services database
https://bugs.webkit.org/show_bug.cgi?id=236629
Reviewed by Brent Fulgham.
The WebContent processes relies on getting the Launch Services database from the Networking process.
It is possible to enter a state where there is no default Network process, but a Network process is
running because a Website data store is holding a reference to it. This patch addresses this issue
by removing Network process references in all remaining Website data stores when the last process
pool is being deleted.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeNetworkProcessReference):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 11:42 AM Changeset in webkit [290520] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r289787?) [ iOS EWS ]fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=237218
Unreviewed test gardening.
Patch by Matteo Flores <Matteo Flores> on 2022-02-25
- platform/ios/TestExpectations:
- 11:26 AM Changeset in webkit [290519] by
-
- 18 edits15 adds in trunk
Re-add YouTubePluginReplacement, removed in r285252
https://bugs.webkit.org/show_bug.cgi?id=237182
Source/WebCore:
<rdar://89148022>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
Tests: security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html
Its removal broke webpages that work in Chrome and Firefox, so back it comes.
- Headers.cmake:
- Modules/plugins: Copied from Source/WebCore/Modules/plugins.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginScriptObject):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterface::visitChildrenImpl):
- html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::createElementRenderer):
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
(WebCore::registrar):
(WebCore::pluginReplacementForType):
(WebCore::HTMLPlugInElement::requestObject):
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement):
- html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::pluginReplacementScriptObject):
- html/shadow/ShadowPseudoIds.cpp:
(WebCore::ShadowPseudoIds::webkitPluginReplacement):
- html/shadow/ShadowPseudoIds.h:
- html/shadow/YouTubeEmbedShadowElement.cpp:
- html/shadow/YouTubeEmbedShadowElement.h:
- page/Settings.yaml:
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/YouTubePluginReplacement.cpp:
LayoutTests:
Patch by Alex Christensen <achristensen@webkit.org> on 2022-02-25
Reviewed by Chris Dumez.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/win/TestExpectations:
- security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html.
- security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html.
- security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html: Copied from LayoutTests/security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html.
- 11:13 AM Changeset in webkit [290518] by
-
- 8 edits2 adds in branches/safari-613.1.17.1-branch
Cherry-pick r290512. rdar://problem/86582214
[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>
Reviewed by Antti Koivisto.
Source/WebCore:
Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)
Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html
- rendering/RenderTable.cpp: (WebCore::RenderTable::firstColumn const):
- rendering/RenderTableCol.cpp: (WebCore::RenderTableCol::nextColumn const):
LayoutTests:
- fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
- fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
- platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
- platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:03 AM Changeset in webkit [290517] by
-
- 4 edits1 add in trunk
operationMaterializeObjectInOSR should DeferTerminationForAWhile instead of just DeferTermination.
https://bugs.webkit.org/show_bug.cgi?id=237173
rdar://problem/89450245
Reviewed by Yusuke Suzuki.
JSTests:
- stress/termination-exception-in-operationMaterializeObjectInOSR2.js: Added.
Source/JavaScriptCore:
DeferTermination can throw the TerminationException on destruction of the scope
object. operationMaterializeObjectInOSR() was using DeferTermination, resulting
in the TerminationException being thrown on exit. This trips up
validateDFGExceptionHandling testing (which is enabled on Debug builds) because the
TerminationException is unexpected. The solution is simply to use
DeferTerminationForAWhile instead, and let a more natural trap checkpoint throw
the TerminationException later.
Also refactored notifyDebuggerOfUnwinding() to return early if a debugger is not
present. This avoids unnecessarily entering and exiting a DeferTermination scope
in notifyDebuggerOfUnwinding(). This was observed while testing this change on
the attached test case.
- ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
- interpreter/Interpreter.cpp:
(JSC::notifyDebuggerOfUnwinding):
- 10:53 AM Changeset in webkit [290516] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Use DeferTerminationForAWhile in Interpreter::unwind
https://bugs.webkit.org/show_bug.cgi?id=237176
Reviewed by Mark Lam.
Interpreter::unwind calls sanitizeRemoteFunctionException, which would like to create scope (but it
does not have user observable behavior). Problem is that, since it is creating a scope, it can throw
a termination exception. We were using DeferTermination, but destructor of this scope can still set
termination exception, which results in throwing a termination exception for the error handler.
We use DeferTerminationForAWhile in the prologue of the Interpreter::unwind to ensure that this function
will not accept termination exception coming concurrently.
- interpreter/Interpreter.cpp:
(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::unwind):
- 10:44 AM Changeset in webkit [290515] by
-
- 9 edits in trunk
[WebAuthn] Use default pubKeyCredParams if empty in makeCredential
https://bugs.webkit.org/show_bug.cgi?id=237109
rdar://problem/89376484
Reviewed by Brent Fulgham.
Source/WebCore:
The Web Authentication level 2 spec was updated to clarify that
a set of default pubKeyCredParams should be used if the list
supplied by the RP is empty. This patch starts using
the default and updates associated tests.
- Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinator::create const):
- Modules/webauthn/PublicKeyCredentialCreationOptions.h:
- Modules/webauthn/WebAuthenticationConstants.h:
LayoutTests:
Update tests to take in account using default pubKeyCredParams.
- http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure.https.html:
- http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
- 9:23 AM Changeset in webkit [290514] by
-
- 2 edits in trunk/Source/WebCore
Use modern Hasher in ContentExtensionsActions
https://bugs.webkit.org/show_bug.cgi?id=237157
Reviewed by Darin Adler.
- contentextensions/ContentExtensionActions.h:
(WebCore::ContentExtensions::add):
(WTF::DefaultHash<WebCore::ContentExtensions::RedirectAction>::hash):
(WTF::DefaultHash<WebCore::ContentExtensions::ModifyHeadersAction>::hash):
(WebCore::ContentExtensions::VariantHasher::hash): Deleted.
(WebCore::ContentExtensions::VectorHasher::hash): Deleted.
- 8:56 AM Changeset in webkit [290513] by
-
- 11 edits in trunk/Source/WebKit
Better isolate RemoteVideoFrameObjectHeap clients from ThreadSafeObjectHeap implementation details
https://bugs.webkit.org/show_bug.cgi?id=237191
Reviewed by Kimmo Kinnunen.
Refactoring to make RemoteVideoFrameObjectHeap API independent of ThreadSafeObjectHeap.
This makes code more readable and simplifies client side usage as well,
for instance by not having to care about timers, or using more known names like add/get instead of retire.
No change of behavior.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
- GPUProcess/graphics/RemoteGraphicsContextGL.h:
- GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
- GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
- GPUProcess/media/RemoteVideoFrameObjectHeap.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- Shared/ThreadSafeObjectHeap.h:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- 8:44 AM Changeset in webkit [290512] by
-
- 8 edits2 adds in trunk
[Tables] Incorrect table sizing when colgroup comes after tbody
https://bugs.webkit.org/show_bug.cgi?id=237205
<rdar://86582214>
Reviewed by Antti Koivisto.
Source/WebCore:
Let's use the colgroup for table sizing even when it comes after any thead, tbody, tfoot, and tr elements.
This makes WebKit match other rendering engines (see https://src.chromium.org/viewvc/blink?revision=159442&view=revision)
Test: fast/table/table-sizing-fails-when-colgroup-comes-after-content.html
- rendering/RenderTable.cpp:
(WebCore::RenderTable::firstColumn const):
- rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::nextColumn const):
LayoutTests:
- fast/table/table-sizing-fails-when-colgroup-comes-after-content-expected.html: Added.
- fast/table/table-sizing-fails-when-colgroup-comes-after-content.html: Added.
- platform/mac/tables/mozilla_expected_failures/dom/appendCol1-expected.txt: Progression.
- platform/mac/tables/mozilla_expected_failures/dom/appendColGroup1-expected.txt: Progression.
- 8:43 AM Changeset in webkit [290511] by
-
- 9 edits in branches/safari-614.1.5-branch/Source
Versioning.
WebKit-7614.1.5.5
- 8:32 AM Changeset in webkit [290510] by
-
- 4 edits in trunk/Source/JavaScriptCore
Web Inspector: [Cocoa] Split remote inspector message data into smaller chunks for large messages
https://bugs.webkit.org/show_bug.cgi?id=237110
<rdar://89364487>
Reviewed by Devin Rousso.
Messages over 2 MiB will now be split into multiple chunks, which allows us to not exceed any receiving daemon
process' memory limit under otherwise normal conditions. 2 MiB was chosen as a balance between not having to
split most messages at all and making sure that the messages (and any copies made during the relaying of the
messages) do not exceed the memory limits of the receiving daemon process.
In order to prevent us from sending chunked messages to a process that doesn't support them we check for a flag
to enable this functionality during connection setup.
- inspector/remote/RemoteInspector.h:
- inspector/remote/RemoteInspectorConstants.h:
- inspector/remote/cocoa/RemoteInspectorCocoa.mm:
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::receivedSetupMessage):
- 8:23 AM Changeset in webkit [290509] by
-
- 2 edits in trunk/Source/WebKit
Remove unused soft linking declarations
https://bugs.webkit.org/show_bug.cgi?id=237209
Reviewed by Brent Fulgham.
- WebProcess/cocoa/WebProcessCocoa.mm:
- 8:04 AM Changeset in webkit [290508] by
-
- 3 edits in trunk/Tools
[Python 3] Invoke validate-committer-lists with Python 3
https://bugs.webkit.org/show_bug.cgi?id=237171
<rdar://problem/89449485>
Reviewed by Alexey Proskuryakov.
- Tools/Scripts/validate-committer-lists:
(CommitterListFromMailingList): Use https urls.
(CommitterListFromMailingList._fetch_authors_and_last_commit_time_from_git_log):
Handle commits in the canonical repository.
(CommitterListFromGit.possibly_expired_committers): Use Python 3 sorting idioms.
(CommitterListFromGit.possibly_inactive_reviewers): Declare process encoding.
(CommitterListFromGit.print_possibly_expired_committers): Committers which are not in
contributors.json or are only contributors cannot have expired committer status.
(CommitterListFromGit.print_possibly_inactive_reviewers): String already utf-8.
(CommitterListFromGit.print_committers_missing_from_committer_list): Check contributors,
not committers.
- Tools/Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(BugzillaQueries.fetch_bugs_matching_quicksearch): Make urllib.quote invocations Python 3 compatible.
(BugzillaQueries.fetch_bugs_matching_search): Ditto.
(BugzillaQueries.fetch_bugs_from_review_queue): Ditto.
(BugzillaQueries.fetch_login_userid_pairs_matching_substring): Ditto.
(BugzillaQueries.is_invalid_bugzilla_email): Ditto.
Canonical link: https://commits.webkit.org/247793@main
- 7:49 AM Changeset in webkit [290507] by
-
- 5 edits1 add in trunk
Non-simple CORS preflight fails due to cache-control header
https://bugs.webkit.org/show_bug.cgi?id=236837
<rdar://problem/89382796>
Reviewed by Chris Dumez.
Source/WebCore:
We fixed cache-control in https://bugs.webkit.org/show_bug.cgi?id=233916.
The fix to make the website work is to ensure that Content-Type is not cleared when going to service worker.
Covered by updated tests.
- Modules/beacon/NavigatorBeacon.cpp:
LayoutTests:
- http/wpt/service-workers/cache-control-request-expected.txt:
- http/wpt/service-workers/cache-control-request.html:
- http/wpt/service-workers/resources/cross-origin-allow-for-beacon.py: Added.
- 5:28 AM Changeset in webkit [290506] by
-
- 8 edits in trunk
[GTK][WPE] Uncouple libgbm, libdrm dependencies from ANGLE functionality
https://bugs.webkit.org/show_bug.cgi?id=237199
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-02-25
Reviewed by Chris Lord.
.:
For both GTK and WPE, unconditionally search for the libgbm and libdrm
dependencies as they will also be needed outside of ANGLE functionality.
USE_ANGLE is defined along with USE_NICOSIA, but still only if the
relevant option was enabled.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Unconditionally build with libgbm and libdrm cflags and linker flags
since these will be used outside of ANGLE functionality.
Remove USE(ANGLE) && USE(NICOSIA) guards from GBMDevice files.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- platform/graphics/gbm/GBMDevice.cpp:
- platform/graphics/gbm/GBMDevice.h:
- 5:26 AM Changeset in webkit [290505] by
-
- 16 edits4 copies3 adds in trunk
REGRESSION(r289580): [ iOS macOS ] TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory is a constant timeout
https://bugs.webkit.org/show_bug.cgi?id=236744
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-02-25
Reviewed by Antti Koivisto.
Source/WebKit:
Add new tester interface for testing IPC stream features.
Before, TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory would test the feature of
"can reply stream sync message with shared memory" by using a RemoteRenderingBackend
message that did so. However, when the RemoteRenderingBackend was changed to use a
different stategy, this test stopped working without compile failure. The IPC testing
is currently done at JS level.
After, the new dedicated testing interface IPCStreamTester has dedicated message for
testing this feature. The test is moved to LayoutTests/ipc and made so that
it tests the feature in all currently testable processes WP uses (GPU, Networking, UI).
IPCTestingAPI is amended to return the all possible testable process names, so
the .html test can work even when ENABLE(GPU_PROCESS) is toggled.
The .html test also passes when !ENABLE(IPC_TESTING_API). Currently
ENABLE_IPC_TESTING_API == (ASAN_ENABLED !defined(NDEBUG)) && PLATFORM(COCOA) E.g. test tests something on Release+ASAN or Debug.
Having the test in .html also makes it possible to run the test on iOS devices.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
- Shared/IPCStreamTester.cpp: Added.
(WebKit::IPCStreamTester::create):
(WebKit::IPCStreamTester::IPCStreamTester):
(WebKit::IPCStreamTester::initialize):
(WebKit::IPCStreamTester::stopListeningForIPC):
(WebKit::IPCStreamTester::syncMessageReturningSharedMemory1):
- Shared/IPCStreamTester.h: Copied from Source/WebKit/Shared/IPCTester.h.
- Shared/IPCStreamTester.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
- Shared/IPCStreamTesterIdentifier.h: Copied from Source/WebKit/Shared/IPCTester.h.
- Shared/IPCStreamTesterProxy.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
- Shared/IPCTester.cpp:
(WebKit::IPCTester::createStreamTester):
(WebKit::IPCTester::releaseStreamTester):
- Shared/IPCTester.h:
- Shared/IPCTester.messages.in:
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSIPC::staticValues):
(WebKit::IPCTestingAPI::processTargetFromArgument):
(WebKit::IPCTestingAPI::JSIPC::processTargets):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
LayoutTests:
- ipc/stream-sync-reply-shared-memory-expected.txt: Added.
- ipc/stream-sync-reply-shared-memory.html: Added.
- 1:50 AM Changeset in webkit [290504] by
-
- 1 copy in releases/WebKitGTK/webkit-2.35.90
WebKitGTK 2.35.90
- 1:50 AM Changeset in webkit [290503] by
-
- 4 edits in releases/WebKitGTK/webkit-2.36
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.35.90 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.35.90.
- 1:17 AM Changeset in webkit [290502] by
-
- 11 edits in trunk
AX: List item marker not exposed when not a direct child of a list item
https://bugs.webkit.org/show_bug.cgi?id=236777
<rdar://problem/89082485>
Reviewed by Adrian Perez de Castro.
Source/WebCore:
It can happen that the marker is not a direct child of a list item, in which case the marker is ignored and not
exposed to ATs.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::parentObjectUnignored const): In case of list marker find the marker list item.
(WebCore::AccessibilityRenderObject::markerRenderer const): Helper to return the list item marker renderer.
(WebCore::AccessibilityRenderObject::addListItemMarker): Add always the list item marker as the first child of
list items.
(WebCore::AccessibilityRenderObject::addChildren): Do not add list item marker children, they will be added to
the right parent in addListItemMarker().
- accessibility/AccessibilityRenderObject.h:
Tools:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::roleValueToString): Return AXStatic for Text role too.
LayoutTests:
Update test results.
- accessibility/gtk/list-items-always-exposed-expected.txt:
- accessibility/gtk/list-items-always-exposed.html:
- accessibility/gtk/spans-expected.txt:
- accessibility/gtk/spans.html:
- platform/gtk/TestExpectations:
- 12:51 AM Changeset in webkit [290501] by
-
- 14 edits in trunk/Source
Optimize black frame sending in MediaRecorderPrivate
https://bugs.webkit.org/show_bug.cgi?id=237027
Reviewed by Kimmo Kinnunen.
Source/WebCore:
Allow generating black frames as IOSurfaces.
Covered by existing tests.
- platform/graphics/cv/CVUtilities.h:
- platform/graphics/cv/CVUtilities.mm:
Source/WebKit:
Add support for sending black frames through SharedVideoFrame.
In that case, we only send width and height and we reconstruct a black frame on receiver side.
Make use of SharedVideoFrame in RemoteMediaRecorder.
Set ownership in SharedVideoFrame to the corresponding WebProcess.
Covered by existing tests, in particular http/wpt/mediarecorder/mute-tracks.html.
- GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
- GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
- GPUProcess/webrtc/RemoteMediaRecorder.h:
- GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
- WebProcess/GPU/webrtc/SharedVideoFrame.cpp:
- WebProcess/GPU/webrtc/SharedVideoFrame.h:
- 12:28 AM WebKitGTK/2.36.x edited by
- (diff)
- 12:26 AM Changeset in webkit [290500] by
-
- 2 edits in trunk
Unreviewed. [GTK] Bump version numbers
- Source/cmake/OptionsGTK.cmake:
- 12:21 AM Changeset in webkit [290499] by
-
- 5 edits in releases/WebKitGTK/webkit-2.36
Merge r290375 - [GStreamer] De-initialize GStreamer before terminating WebProcess
https://bugs.webkit.org/show_bug.cgi?id=237084
Patch by Philippe Normand <pnormand@igalia.com> on 2022-02-23
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Allowing the leak tracer to report/log leaks. There is an issue though, if the UIProcess
exits too early, the leak tracer reporting will be interrupted potentially too early. The
workaround is to have 2 tabs open in the GTK MiniBrowser, closing the one where media
handling and leak tracing was done and keeping the second tab open.
- WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::stopRunLoop):
Tools:
- flatpak/flatpakutils.py:
(WebkitFlatpak.setup_gstbuild): Do not add extra quotes to GST_TRACERS, this is not supposed
to store paths.
- 12:19 AM Changeset in webkit [290498] by
-
- 3 edits in releases/WebKitGTK/webkit-2.36/Source/WebCore
Merge r290341 - CachedResourceLoader::allCachedSVGImages() reparses resource URLs unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=237002
Reviewed by Darin Adler.
Store URLs in the HashMaps instead of Strings since we have URLs initially and we
need URLs eventually. This avoids having to re-parse the URL unnecessarily, which
is fairly expensive.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::notifyFinished):
- loader/cache/CachedResourceLoader.h:
- 12:16 AM Changeset in webkit [290497] by
-
- 2 edits in releases/WebKitGTK/webkit-2.36/Source/WebKit
Merge r290338 - PingLoader is failing to call completion handler in error case
https://bugs.webkit.org/show_bug.cgi?id=237062
<rdar://50157253>
Reviewed by Chris Dumez.
The completion handler was not being called in the case of a PingLoad being redirected to
a non-HTTP(S) scheme.
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::willPerformHTTPRedirection):
- 12:12 AM Changeset in webkit [290496] by
-
- 2 edits in trunk/Source/WebKit
Remove dead code in GPUProcessConnection::dispatchMessage
https://bugs.webkit.org/show_bug.cgi?id=237135
Reviewed by Kimmo Kinnunen.
No change of behavior.
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::dispatchMessage):
- 12:08 AM Changeset in webkit [290495] by
-
- 43 edits3 adds4 deletes in trunk/LayoutTests
[GLIB] Update test baselines after various LFC improvements.
https://bugs.webkit.org/show_bug.cgi?id=237184
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-02-25
- platform/glib/fast/backgrounds/background-leakage-transforms-expected.txt:
- platform/glib/fast/backgrounds/border-radius-split-background-expected.txt:
- platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/001-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/002-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/003-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/004-expected.txt:
- platform/glib/fast/block/positioning/auto/vertical-lr/006-expected.txt:
- platform/glib/fast/block/positioning/vertical-lr/002-expected.txt:
- platform/glib/fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
- platform/glib/fast/replaced/vertical-lr/absolute-position-percentage-width-expected.txt:
- platform/glib/fast/replaced/vertical-lr/absolute-position-with-auto-height-and-top-and-bottom-expected.txt:
- platform/glib/fast/replaced/vertical-lr/absolute-position-with-auto-width-and-left-and-right-expected.txt:
- platform/glib/fast/table/border-collapsing/002-vertical-expected.txt:
- platform/glib/fast/writing-mode/basic-vertical-line-expected.txt:
- platform/glib/fast/writing-mode/border-image-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/border-radius-clipping-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-rl-expected.txt:
- platform/glib/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt:
- platform/glib/fast/writing-mode/border-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/box-shadow-vertical-lr-expected.txt:
- platform/glib/fast/writing-mode/japanese-lr-text-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Added.
- platform/gtk/fast/block/lineboxcontain/inline-box-vertical-expected.txt:
- platform/gtk/fast/html/details-writing-mode-expected.txt:
- platform/gtk/fast/html/details-writing-mode-mixed-expected.txt:
- platform/gtk/fast/lists/003-vertical-expected.txt:
- platform/gtk/fast/overflow/overflow-rtl-vertical-expected.txt:
- platform/gtk/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
- platform/gtk/fast/writing-mode/english-lr-text-expected.txt:
- platform/gtk/fast/writing-mode/text-orientation-basic-expected.txt:
- platform/gtk/fast/writing-mode/vertical-lr-replaced-selection-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Removed.
- platform/wpe/fast/block/lineboxcontain/inline-box-vertical-expected.txt:
- platform/wpe/fast/html/details-writing-mode-expected.txt:
- platform/wpe/fast/html/details-writing-mode-mixed-expected.txt:
- platform/wpe/fast/lists/003-vertical-expected.txt:
- platform/wpe/fast/overflow/overflow-rtl-vertical-expected.txt:
- platform/wpe/fast/text/international/synthesized-italic-vertical-latin-expected.txt:
- platform/wpe/fast/writing-mode/english-lr-text-expected.txt:
- platform/wpe/fast/writing-mode/text-orientation-basic-expected.txt:
- platform/wpe/fast/writing-mode/vertical-lr-replaced-selection-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt: Removed.
- 12:05 AM WebKitGTK/2.36.x edited by
- (diff)
- 12:03 AM Changeset in webkit [290494] by
-
- 2 edits in trunk/Source/WebKit
Make RemoteVideoFrameIdentifier a regular ObjectIdentifier
https://bugs.webkit.org/show_bug.cgi?id=237136
Reviewed by Kimmo Kinnunen.
Given all RemoteVideoFrames are created in GPUProcess, we no longer need to use a ProcessQualified identifier.
Covered by existing tests.
- WebProcess/GPU/media/RemoteVideoFrameIdentifier.h: