Timeline
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.