Timeline
Feb 28, 2021:
- 6:26 PM Changeset in webkit [273642] by
-
- 4 edits in trunk/Source/WebCore
Consider removing iOS only CSS property alias -webkit-hyphenate-locale introduced in r80288
https://bugs.webkit.org/show_bug.cgi?id=222507
Reviewed by Anders Carlsson.
It's been about 10 years, let's try removing the iOS only CSS property alias for
-webkit-locale, -webkit-hyphenate-locale, and see what happens.
- css/CSSStyleDeclaration.cpp:
- css/parser/CSSPropertyParser.cpp:
(WebCore::cssPropertyID):
(WebCore::cssPropertyNameIOSAliasing): Deleted.
- css/parser/CSSPropertyParser.h:
- 4:47 PM Changeset in webkit [273641] by
-
- 4 edits in trunk
[JSC] Add gc and clearKeptObjects to $262
https://bugs.webkit.org/show_bug.cgi?id=222527
Reviewed by Ross Kirsling.
JSTests:
- test262/config.yaml:
Source/JavaScriptCore:
Add $262.gc and $262.clearKeptObjects functions. They are required for test262 host-gc-required.
Since all the tests using "host-gc-required" are currently also marked with cleanupSome, we are currently not running them.
But if some more tests are landed in test262 with "host-gc-required", we will run them with these functions.
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
- 4:13 PM Changeset in webkit [273640] by
-
- 11 edits in trunk/Source/WebCore
[LFC][IFC] Content left offset means just content left
https://bugs.webkit.org/show_bug.cgi?id=222522
Reviewed by Antti Koivisto.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::build):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::m_contentLogicalWidth):
- layout/inlineformatting/InlineLineBox.h:
- layout/inlineformatting/InlineLineGeometry.h:
(WebCore::Layout::InlineLineGeometry::contentLogicalLeft const):
(WebCore::Layout::InlineLineGeometry::InlineLineGeometry):
(WebCore::Layout::InlineLineGeometry::contentLogicalLeftOffset const): Deleted.
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
- layout/integration/LayoutIntegrationLine.h:
(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::contentLeft const):
(WebCore::LayoutIntegration::Line::contentLeftOffset const): Deleted.
- layout/integration/LayoutIntegrationLineIteratorModernPath.h:
(WebCore::LayoutIntegration::LineIteratorModernPath::contentLogicalLeft const):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- layout/integration/LayoutIntegrationPagination.cpp:
(WebCore::LayoutIntegration::makeAdjustedContent):
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::RunIteratorModernPath::createTextRun const):
- 12:56 PM Changeset in webkit [273639] by
-
- 7 edits in trunk/Source
[iOS] Reduce use of retain/release in WAKWindow and remove unneeded methods from that class
https://bugs.webkit.org/show_bug.cgi?id=222330
Reviewed by Chris Dumez.
Source/WebCore:
- platform/ios/LegacyTileCache.h: Use pragma once, remove unneeded includes,
tweak coding style a bit to match WebKit standard. Removed hasPendingDraw.
added WEBCORE_EXPORT to setTileBordersVisible and setTilePaintCountersVisible
so they can be used in WebKitLegacy.
- platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::hasPendingDraw const): Deleted.
- platform/ios/wak/WAKWindow.h: Use pragma once, remove unneeded includes,
tweak coding style a bit to match WebKit standard. Removed hasPendingDraw,
setTileControllerShouldUseLowScaleTiles, setTileBordersVisible,
setTilePaintCountsVisible, setAcceleratedDrawingEnabled, freezeVisibleRect,
and unfreezeVisibleRect.
- platform/ios/wak/WAKWindow.mm: Removed "using namespace WebCore".
Removed unused _WAKKeyWindow global. Converted currentEvent and
gOrientationProvider globals to NeverDestroyed<RetainPtr<>>.
(orientationProvider): Added
(currentEvent): Added.
(-[WAKWindow isKeyWindow]): Remove dead code; this method already always
returns YES.
(-[WAKWindow makeKeyWindow]): Remove dead code. This method wrote to a
global that was never read anywhere.
(-[WAKWindow sendEventSynchronously:]): Use the currentEvent function
and take advantage of the fact that it's a RetainPtr so we don't need a
a local variable named currentEventProtector.
(-[WAKWindow hasPendingDraw]): Deleted. No callers depend on this.
(-[WAKWindow willRotate]): Set _frozenVisibleRect here directly instead
of calling anoether method to do that.
(-[WAKWindow didRotate]): Ditto.
(-[WAKWindow freezeVisibleRect]): Deleted. The method above was the only
caller for this method.
(-[WAKWindow unfreezeVisibleRect]): Ditto.
(+[WAKWindow setOrientationProvider:]): Use the orientationProvider function.
Note, this now retains the passed-in object. This is safe; the only caller
passes in a class, so there's no risk of a retain cycle.
(+[WAKWindow hasLandscapeOrientation]): Use the orientationProvider function.
(-[WAKWindow setTileBordersVisible:]): Deleted. The only caller for this
was in WebKitLegacy, and refactored to use the tile cache directly.
(-[WAKWindow setTilePaintCountsVisible:]): Ditto.
(-[WAKWindow setAcceleratedDrawingEnabled:]): Ditto.
(-[WAKWindow setTileControllerShouldUseLowScaleTiles:]): Deleted. No
callers depend on this.
(+[WAKWindow currentEvent]): Use the currentEvent function.
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Call LegacyTileCache functions directly rather
than indirecting through WAKWindow methods.
(-[WebView viewDidMoveToWindow]): Ditto. Also tweaked conditionals a little for clarity.
- 11:58 AM Changeset in webkit [273638] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] LineBox's horizontalAlignmentOffset is the root inline box's logical left
https://bugs.webkit.org/show_bug.cgi?id=222521
Reviewed by Sam Weinig.
That's where the line content starts.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::m_contentLogicalWidth):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::setLogicalHeight):
(WebCore::Layout::LineBox::horizontalAlignmentOffset const): Deleted.
(WebCore::Layout::LineBox::setHorizontalAlignmentOffset): Deleted.
- 11:42 AM Changeset in webkit [273637] by
-
- 2 edits in trunk/Source/WebCore
Consider removing support for CSS value keywords with the -khtml- prefix
https://bugs.webkit.org/show_bug.cgi?id=222515
Reviewed by Darin Adler.
Try removing re-writing of the -khtml- prefix to -webkit- for CSS value keywords
and see what breaks.
- css/parser/CSSPropertyParser.cpp:
(WebCore::cssValueKeywordID):
- 8:22 AM Changeset in webkit [273636] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Every line box must have a root inline box
https://bugs.webkit.org/show_bug.cgi?id=222520
Reviewed by Antti Koivisto.
Let's create the root inline box during LineBox construction as even
an empty LineBox has to have a root inline box.
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::m_rootInlineBox):
(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):
(WebCore::Layout::m_horizontalAlignmentOffset): Deleted.
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::rootInlineBox const):
(WebCore::Layout::LineBox::rootInlineBox):
- 4:29 AM WebKitGTK/2.32.x edited by
- (diff)
- 3:59 AM Changeset in webkit [273635] by
-
- 10 edits in trunk
Blending of border-image-width should be discrete between "auto" values and other types
https://bugs.webkit.org/show_bug.cgi?id=222516
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Pass an extra 22 WPT interpolation tests for border-image-width. We also get 3 new FAIL results
in css/css-transitions/properties-value-auto-001.html but that test seems incorrect in assuming
there can be a transition for "clip" between "auto" and a non-auto value, at least Chrome and
Firefox both fail the newly-failed tests.
Incidentally, we also get 50 new PASS results from css-grid tests.
- web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-016-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-007-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-012-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-014-expected.txt:
- web-platform-tests/css/css-grid/abspos/positioned-grid-descendants-016-expected.txt:
- web-platform-tests/css/css-transitions/properties-value-auto-001-expected.txt:
Source/WebCore:
The LengthBoxPropertyWrapper::canInterpolate() method checks whether the provided lengths are 0 to see if
they can be blended since 0 lengths can be blended with anything. However, currently Length::isZero() returns
true for "auto" values, which is incorrect, so we change the behavior of isZero() to not work when the type
is LengthType::Auto.
Incidentally, this makes a few css-grid tests progress as well.
- platform/Length.h:
(WebCore::Length::isZero const):
- 2:15 AM Changeset in webkit [273634] by
-
- 4 edits in trunk
[JSC] Update test262 host environments
https://bugs.webkit.org/show_bug.cgi?id=222525
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
- $262.global should be
globalThisof the realm according to test/built-ins/Function/call-bind-this-realm-undef.js - $262.evalScript should uwrap JSProxy to get GlobalObject.
This fixes test262 test/built-ins/Function/call-bind-this-realm-undef.js, it was wrongly tested and failing.
- jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
Feb 27, 2021:
- 3:07 PM Changeset in webkit [273633] by
-
- 1 copy in tags/Safari-610.4.3.1.7
Tag Safari-610.4.3.1.7.
- 3:07 PM Changeset in webkit [273632] by
-
- 1 copy in tags/Safari-610.4.3.0.4
Tag Safari-610.4.3.0.4.
- 2:59 PM Changeset in webkit [273631] by
-
- 4 edits in branches/safari-610.4.3.0-branch/Source/WebCore/Modules/webaudio
Apply patch. rdar://problem/74829324
- 2:54 PM Changeset in webkit [273630] by
-
- 8 edits in branches/safari-610.4.3.0-branch/Source
Versioning.
WebKit-7610.4.3.0.4
- 2:54 PM Changeset in webkit [273629] by
-
- 4 edits in branches/safari-610.4.3.1-branch/Source/WebCore/Modules/webaudio
Apply patch. rdar://problem/74829334
- 2:39 PM Changeset in webkit [273628] by
-
- 8 edits in branches/safari-610.4.3.1-branch/Source
Versioning.
WebKit-7610.4.3.1.7
- 11:51 AM Changeset in webkit [273627] by
-
- 5 edits in trunk
Source/WebCore:
Remove support for 'pixel' and 'pos' CSSOM prefixes
https://bugs.webkit.org/show_bug.cgi?id=119712
<rdar://problem/70660490>
Reviewed by Simon Fraser.
Remove support for pixel/pos prefixed properties of CSSStyleDeclaration which
are no longer supported by any other browser.
- css/CSSStyleDeclaration.cpp:
(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
(WebCore::CSSStyleDeclaration::namedItem):
(WebCore::CSSStyleDeclaration::setNamedItem):
LayoutTests:
Remove support for 'pixel' and 'pos' CSSOM prefixes
https://bugs.webkit.org/show_bug.cgi?id=119712
Reviewed by Simon Fraser.
- fast/dom/CSSStyleDeclaration/css-properties-case-sensitive-expected.txt:
- fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:
Update test to reflect removal of pos/pixel prefixes.
- 7:34 AM Changeset in webkit [273626] by
-
- 3 edits in trunk/Source/WebCore
[LFC][Coverage] Add missing not-yet-modern-line-layout reasons
https://bugs.webkit.org/show_bug.cgi?id=222488
Reviewed by Sam Weinig.
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- layout/integration/LayoutIntegrationCoverage.h:
- 6:27 AM Changeset in webkit [273625] by
-
- 7 edits in trunk
border-image-slice blending does not account for the fill keyword
https://bugs.webkit.org/show_bug.cgi?id=222513
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Pass an extra 96 WPT tests for border-image-slice.
- web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:
Source/WebCore:
The border-image-slice CSS property allows for the "fill" keyword on top of the four values defining the slices.
The presence of this keyword is stored as a bool flag on the NinePieceImage returned by RenderStyle::borderImage(),
while the four slices values are stored as a separate LengthBox on that NinePieceImage. So as we blend the
border-image-slice property using the LengthBoxPropertyWrapper, we only account for the four slices values.
In order to account for the "fill" keyword, we use an OptionSet instead of a single flag to represent different blending
options for CSS properties represented by a LengthBox. This allows us to now indicate that a given property,
namely border-image-slice, supports the "fill" keyword.
If this "fill" keyword flag is set, we force discrete interpolation in the case where the from and to blend values
don't have the same value for "fill". Then, as we blend, we set the "fill" keyword to match the from and to values.
To do this, we add a new RenderStyle::setBorderImageSliceFill() property since the NinePieceImage returned by
RenderStyle::borderImage() is marked const.
- animation/CSSPropertyAnimation.cpp:
(WebCore::LengthBoxPropertyWrapper::LengthBoxPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setBorderImageSliceFill):
- rendering/style/RenderStyle.h:
- 6:25 AM Changeset in webkit [273624] by
-
- 4 edits2 adds in trunk
Null check ArrayBufferView RefPtr
https://bugs.webkit.org/show_bug.cgi?id=221569
Patch by Rob Buis <rbuis@igalia.com> on 2021-02-27
Reviewed by Ryosuke Niwa.
Source/JavaScriptCore:
Null check ArrayBufferView RefPtr before using it.
- runtime/JSArrayBufferViewInlines.h:
(JSC::JSArrayBufferView::unsharedImpl):
LayoutTests:
Add test to verify oom situation does not result in a crash.
- crypto/crypto-random-values-oom-expected.txt: Added.
- crypto/crypto-random-values-oom.html: Added.
- platform/win/TestExpectations:
- 3:49 AM Changeset in webkit [273623] by
-
- 9 edits in trunk
Improve blending of LengthBox values
https://bugs.webkit.org/show_bug.cgi?id=222512
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Pass an extra 238 WPT tests across border-image-outset, border-image-slice and border-image-width.
As of this patch, web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation.html
only has PASS results.
- web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-outset-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-slice-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-width-composition-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/border-image-width-interpolation-expected.txt:
Source/WebCore:
Blending of LengthBox values used to be handle with a generic wrapper for Length-related types using
LengthVariantPropertyWrapper. However, to properly blend LengthBox values, we need some logic specific
to this value type.
First off, all CSS properties that we represent using a LengthBox disallow negative values, so we update
the blendFunc() implementation for LengthBox to pass in ValueRangeNonNegative to the Length blendFunc().
Then, we need a custom implementation of the canInterpolate() virtual function override so as to cater for
properties that support <length> and <number>, and those that support <length-percentage> and <number>,
namely border-image-width.
Finally, we support the case for discrete blending in the blend() virtual function override.
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::LengthBoxPropertyWrapper::LengthBoxPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 1:33 AM Changeset in webkit [273622] by
-
- 9 edits in trunk/Source/WebCore
Unreviewed, reverting r273474 and r273479.
https://bugs.webkit.org/show_bug.cgi?id=222510
Not a speedup after all
Reverted changesets:
"Optimize the code to check if an element delegates focus to
its shadow root or not"
https://bugs.webkit.org/show_bug.cgi?id=222404
https://trac.webkit.org/changeset/273474
"Avoid tree traversals to look for form and canvas elements"
https://bugs.webkit.org/show_bug.cgi?id=222159
https://trac.webkit.org/changeset/273479
- 12:24 AM Changeset in webkit [273621] by
-
- 16 edits in trunk
Render tree updates for Text node content mutations should happen during rendering update
https://bugs.webkit.org/show_bug.cgi?id=222406
Reviewed by Simon Fraser.
Source/WebCore:
Calls to Text.insertData and similar should not mutate render tree synchronously.
Instead render tree should be updated during the next rendering update along with
any style changes.
These updates already go via RenderTreeUpdater. We just need to save the information
about which nodes need updating so the next rendering update can pick them up.
This seems to help with some performance benchmarks.
- dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
Move in-tree check to the updateRendererAfterContentChange and make it use isConnected().
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::resolveStyle):
Include the text update when updating the render tree.
(WebCore::Document::updateTextRenderer):
Create a text update that will get flushed during the next rendering update.
(WebCore::Document::needsStyleRecalc const):
We need to recalc if there are pending text updates.
- dom/Document.h:
- dom/Text.cpp:
(WebCore::Text::splitText):
Use updateRendererAfterContentChange instead of poking render tree directly.
(WebCore::Text::updateRendererAfterContentChange):
- rendering/updating/RenderTreeUpdater.cpp:
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::TreeResolver):
(WebCore::Style::TreeResolver::resolve):
- style/StyleTreeResolver.h:
(WebCore::Style::TreeResolver::TreeResolver):
- style/StyleUpdate.cpp:
(WebCore::Style::Update::addText):
Merge text updates.
(WebCore::Style::Update::addPossibleRoot):
- style/StyleUpdate.h:
(WebCore::Style::Update::roots const):
(WebCore::Style::Update:: const): Deleted.
Refcount the nodes since this now has longer lifetime.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
Ensure we leave deleteInsignificantText with updated render tree. Clients expect that.
Do layout (instead of just style update) for consistency, deleteInsignificantText does one anyway in beginning.
- editing/markup.cpp:
(WebCore::replaceChildrenWithFragment):
Pending text update may ref the node so this refcount assert is not correct.
- style/StyleUpdate.cpp:
(WebCore::Style::Update::addText):
LayoutTests:
These are progressions.
- fast/text/splitText-dirty-lines-expected.txt:
- imported/blink/fast/css/first-letter-range-insert-expected.txt:
Here we were actually drawing text that didn't exist in DOM anymore.
- 12:04 AM Changeset in webkit [273620] by
-
- 9 edits1 add in trunk
API test for AppHighlights
https://bugs.webkit.org/show_bug.cgi?id=222408
Reviewed by Tim Horton.
Source/WebCore:
Test: TestWebKitAPI.AppHighlights.AppHighlightCreateAndRestore
- testing/Internals.cpp:
(WebCore::Internals::numberOfAppHighlights):
- testing/Internals.h:
- testing/Internals.idl:
Tools:
- TestWebKitAPI/PlatformUtilities.h:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKAppHighlights.mm: Added.
(-[AppHighlightDelegate _webView:storeAppHighlight:inNewGroup:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
(TEST):
(waitForConditionWithLogging): Deleted.
- TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
(TestWebKitAPI::Util::waitForConditionWithLogging):