Timeline
Nov 8, 2020:
- 9:31 PM Changeset in webkit [269576] by
-
- 8 edits1 add in trunk
[JSC] Add TimeZone range cache over ICU TimeZone API
https://bugs.webkit.org/show_bug.cgi?id=218681
Reviewed by Ross Kirsling.
JSTests:
- complex.yaml:
- complex/timezone-range-cache-with-dst.js: Added.
(shouldBe):
(throw.new.Error):
Source/JavaScriptCore:
icu::TimeZone is more accurate and faster than localtime_r. But still, it is slower than returning cached data!
We saw 10% regression in JetStream2/date-format-xparb-SP with icu::TimeZone switching.
In this patch, we put one-depth timezone cache back over icu::TimeZone API, and recover the performance.
In addition, new version of timezone cache includes "start" side extension (while old one only extends "end" of the range).
The test covers all cases in the added cache.
- runtime/JSDateMath.cpp:
(JSC::DateCache::calculateLocalTimeOffset):
(JSC::DateCache::localTimeOffset):
(JSC::DateCache::gregorianDateTimeToMS):
(JSC::DateCache::msToGregorianDateTime):
(JSC::DateCache::parseDate):
(JSC::DateCache::reset):
(JSC::localTimeOffset): Deleted.
- runtime/JSDateMath.h:
(JSC::DateCache::timeZoneCache):
- runtime/VM.h:
(JSC::LocalTimeOffsetCache::LocalTimeOffsetCache): Deleted.
(JSC::LocalTimeOffsetCache::reset): Deleted.
Source/WTF:
- wtf/DateMath.h:
- 9:04 PM Changeset in webkit [269575] by
-
- 8 edits in trunk/LayoutTests
[GLIB] Rebaseline and gardening
Unreviewed test gardening.
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: r269477
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: r269477
- platform/wpe/TestExpectations: Add bug for imported/blink/fast/forms/textarea-placeholder-visibility-3.html
- platform/wpe/fast/multicol/pagination/LeftToRight-tb-hittest-expected.txt: r269477
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt: r269477
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: r269477
- platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt: r269439-r269459
- 9:02 PM Changeset in webkit [269574] by
-
- 12 edits in trunk
[JSC] Support @@species in ArrayBuffer / SharedArrayBuffer slice
https://bugs.webkit.org/show_bug.cgi?id=218697
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
This patch adds support for @@species in ArrayBuffer/SharedArrayBuffer.prototype.slice.
We leverage the mechanism similar to Array's @@species handling: adding fast path with watchpoint.
When we found that some of critical properties (e.g. %Prototype%.constructor, %Constructor%[@@species])
are modified, watchpoint is fired and we go to the slow path. Until that, we use fast path that is
basically the same to the code before this patch.
- runtime/ArrayBuffer.cpp:
(JSC::ArrayBuffer::slice const):
(JSC::ArrayBuffer::sliceWithClampedIndex const):
(JSC::ArrayBuffer::sliceImpl const): Deleted.
- runtime/ArrayBuffer.h:
- runtime/ArrayBufferSharingMode.h:
- runtime/ArrayPrototype.cpp:
(JSC::speciesWatchpointIsValid):
- runtime/JSArrayBufferPrototype.cpp:
(JSC::speciesWatchpointIsValid):
(JSC::arrayBufferSlice):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::tryInstallSpeciesWatchpoint):
(JSC::JSGlobalObject::tryInstallArraySpeciesWatchpoint):
(JSC::JSGlobalObject::tryInstallArrayBufferSpeciesWatchpoint):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::arrayBufferSpeciesWatchpointSet):
(JSC::JSGlobalObject::arrayBufferPrototype const):
(JSC::JSGlobalObject::arrayBufferStructure const):
(JSC::JSGlobalObject::arrayBufferConstructor const):
Source/WTF:
Remove ENABLE(SHARED_ARRAY_BUFFER) flag. We use Options::useSharedArrayBuffer() runtime flag instead.
- wtf/PlatformEnable.h:
- 8:26 PM Changeset in webkit [269573] by
-
- 4 edits in trunk
[GTK] REGRESSION(r267250) API test /webkit/WebKitWebView/usermedia-enumeratedevices-permission-check is crashing
https://bugs.webkit.org/show_bug.cgi?id=216727
Reviewed by Carlos Garcia Campos.
Source/WebKit:
Coverered by existing tests.
In some cases, like in TestWebKitAPI, a message can arrive to the
GeolocationProvider and it would try to access a WebGeolocationManager
that could already had been deleted.
- UIProcess/API/glib/WebKitGeolocationManager.cpp:
(webkitGeolocationManagerDispose): Added. Removes the provider.
(webkit_geolocation_manager_class_init): Register dispose callback.
Tools:
- TestWebKitAPI/glib/TestExpectations.json: Remove expectations
- 8:20 PM Changeset in webkit [269572] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Gardening canvas failures while patch is reviewed
Unreviewed test gardening.
- platform/glib/TestExpectations:
- 12:05 PM Changeset in webkit [269571] by
-
- 8 edits in trunk/Source/WebCore
[LFC][Integration] Cleanup LayoutIntegration::Line interface
https://bugs.webkit.org/show_bug.cgi?id=218690
Reviewed by Daniel Bates and Antti Koivisto.
LayoutIntegration::Line has the following set of geometries:
Line rect and line box size:
Line is always as tall as the line box is. However they may differ in width.
While line box encloses all the inline level boxes on the line horizontally,
the line itself may be shorter (and trigger horizontal overflow).
Enclosing content rect:
It encloses all inline level boxes both vertically and horizontally. In certain cases (see line-height property)
the line (and the line box) is not as tall as the inline level boxes on the line.
Scrollable overflow rect:
It's mainly the line box (encloses the inline level boxes horizontally) with some end padding adjustment for the caret (see legacy line layout).
Ink overflow rect:
Regular ink overflow e.g. stroke, letter spacing.
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLines const):
- 11:51 AM Changeset in webkit [269570] by
-
- 4 edits2 adds in trunk
TextureMapperLayer::computeOverlapRegions: Accumulate nested replica transform matrices recursively
https://bugs.webkit.org/show_bug.cgi?id=218364
Reviewed by Don Olmstead.
Source/WebCore:
Transformed nested reflection layers were wrongly clipped because
computeOverlapRegions applied replica transform matrices
incorrectly.
Test: compositing/reflections/nested-reflection-opacity2.html
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::resolveOverlaps):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
- platform/graphics/texmap/TextureMapperLayer.h:
LayoutTests:
- compositing/reflections/nested-reflection-opacity2-expected.html: Added.
- compositing/reflections/nested-reflection-opacity2.html: Added.
- 11:49 AM Changeset in webkit [269569] by
-
- 2 edits in trunk/Source/WebCore
[GraphicsLayerTextureMapper] reflection masks aren't applied
https://bugs.webkit.org/show_bug.cgi?id=218429
Reviewed by Don Olmstead.
The backing store of the mask layer of replica layers aren't
updated at all since r178111.
- platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
Use updateBackingStoreIncludingSubLayers for the replica layer to
update backing stores recursively instead of updating only one
layer by using updateBackingStoreIfNeeded.
- 11:41 AM Changeset in webkit [269568] by
-
- 15 edits2 adds in trunk
Remove another function that implicitly uses the composed tree (documentOrder on nodes and boundary points)
https://bugs.webkit.org/show_bug.cgi?id=218673
Reviewed by Ryosuke Niwa.
Source/WebCore:
Test: fast/dom/treeOrderBoundaryPoint.html
- accessibility/AXObjectCache.cpp:
(WebCore::characterOffsetsInOrder): Use treeOrder<ComposedTree>.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::misspellingRange const): Ditto.
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const): Ditto.
- dom/BoundaryPoint.h: Removed documentOrder, added treeOrderForTesting.
- dom/Node.cpp: Updated comment referring to documentOrder.
- dom/Position.cpp:
(WebCore::documentOrder): Use treeOrder<ComposedTree>.
- dom/SimpleRange.cpp:
(WebCore::treeOrderForTesting): Added.
(WebCore::documentOrder): Deleted.
(WebCore::compareByComposedTreeOrder): Renamed from compareByDocumentOrder and
use treeOrder<ComposedTree>.
(WebCore::unionRange): Use compareByComposedTreeOrder.
(WebCore::intersection): Ditto.
- dom/SimpleRange.h: Removed documentOrder. Also removed some repeated function
and function template declarations that were left in here by accident.
- editing/TextIterator.cpp:
(WebCore::characterCount): Use treeOrder<ComposedTree>.
- testing/Internals.cpp:
(WebCore::Internals::treeOrderBoundaryPoints): Added.
- testing/Internals.h: Ditto.
- testing/Internals.idl: Ditto.
Tools:
- TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp: Removed BoundaryPointOffsetZero and
BoundaryPointOffsets tests, both replaced by a internals-based test.
LayoutTests:
- fast/dom/treeOrderBoundaryPoint-expected.txt: Added.
- fast/dom/treeOrderBoundaryPoint.html: Added.
- 12:31 AM Changeset in webkit [269567] by
-
- 1 edit2 adds in trunk/LayoutTests
Add testcase for r269537
https://bugs.webkit.org/show_bug.cgi?id=218499
Patch by Rob Buis <rbuis@igalia.com> on 2020-11-08
Reviewed by Ryosuke Niwa.
I forgot to add a testcase in r269537.
- fast/overflow/line-clamp-crash-expected.txt: Added.
- fast/overflow/line-clamp-crash.html: Added.
Nov 7, 2020:
- 2:20 PM Changeset in webkit [269566] by
-
- 2 edits in trunk/Source/WebCore
Fix warning related to unsigned >=0 ASSERT
https://bugs.webkit.org/show_bug.cgi?id=218682
Patch by Rob Buis <rbuis@igalia.com> on 2020-11-07
Reviewed by Fujii Hironori.
Source/WebCore/rendering/RenderText.cpp:592:19: warning: comparison of unsigned expression in ‘>= 0’ is always true [-Wtype-limits]
- rendering/RenderText.cpp:
(WebCore::createVisiblePositionAfterAdjustingOffsetForBiDi):
- 2:16 PM Changeset in webkit [269565] by
-
- 2 edits in trunk/Source/WebCore
Fix GTK debug build
https://bugs.webkit.org/show_bug.cgi?id=218683
Patch by Rob Buis <rbuis@igalia.com> on 2020-11-07
Reviewed by Fujii Hironori.
Commit r269435 forgot to account for Frame* -> WeakPtr<Frame>
change in this ASSERT.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading):
- 2:13 PM Changeset in webkit [269564] by
-
- 4 edits in trunk/Source/WebKit
Clean up some logic in RemoteImageBuffer and RemoteRenderingBackend
https://bugs.webkit.org/show_bug.cgi?id=218689
Reviewed by Tim Horton.
Move the implementation of
decodeItemout ofRemoteImageBuffer, and intoRemoteRenderingBackend. This
allows us to avoidstatic_cast-ing image buffers to their unaccelerated or accelerated versions when setting
the display list's item buffer client in the GPU process.
No change in behavior.
- GPUProcess/graphics/RemoteImageBuffer.h:
(WebKit::RemoteImageBuffer::decodeAndCreate): Deleted.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::applyDisplayList):
Also, remove a couple of unnecessary
WebCore::namespace prefixes while we're here.
(WebKit::RemoteRenderingBackend::decodeItem):
Move
decodeIteminto the rendering backend. This also has the added bonus of letting us put the method
definition in the implementation file instead of a header (i.e.RemoteRenderingBackend.cpp).
- GPUProcess/graphics/RemoteRenderingBackend.h:
(WebKit::RemoteRenderingBackend::decodeAndCreate):
- 1:50 PM Changeset in webkit [269563] by
-
- 10 edits1 copy1 add in trunk/Source/WebCore
[LFC Display] Implement CSS border painting
https://bugs.webkit.org/show_bug.cgi?id=218685
Reviewed by Zalan Bujtas.
Add Display::BoxDecorationPainter() which paints borders and backgrounds for the given box,
and implement border drawing.
Future patches will add support for BackgroundBleedAvoidance and background clipping for
border-radius.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- display/css/DisplayBoxDecorationData.cpp:
(WebCore::Display::BorderEdge::BorderEdge):
(WebCore::Display::BorderEdge::obscuresBackground const):
(WebCore::Display::calculateBorderEdges):
(WebCore::Display::adjacentSidesForSide):
- display/css/DisplayBoxDecorationData.h:
(WebCore::Display::BorderEdge::width const):
(WebCore::Display::BorderEdge::style const):
(WebCore::Display::BorderEdge::color const):
(WebCore::Display::BorderEdge::isTransparent const):
(WebCore::Display::BorderEdge::isPresent const):
(WebCore::Display::BorderEdge::hasVisibleColorAndStyle const):
(WebCore::Display::BorderEdge::shouldRender const):
(WebCore::Display::BorderEdge::presentButInvisible const):
(WebCore::Display::BorderEdge::widthForPainting const):
(WebCore::Display::BorderEdge::innerWidth const):
(WebCore::Display::BorderEdge::outerWidth const):
(WebCore::Display::BoxDecorationData::setBackgroundImageGeometry):
(WebCore::Display::BoxDecorationData::borderEdges const):
(WebCore::Display::BoxDecorationData::setBorderEdges):
(WebCore::Display::BoxDecorationData::borderRadii const):
(WebCore::Display::BoxDecorationData::setBorderRadii):
(WebCore::Display::BoxDecorationData::hasBorderImage const):
(WebCore::Display::BoxDecorationData::roundedBorderRect const): Deleted.
(WebCore::Display::BoxDecorationData::setRoundedBorderRect): Deleted.
- display/css/DisplayBoxDecorationPainter.cpp: Added.
(WebCore::Display::BorderPainter::BorderPainter):
(WebCore::Display::BorderPainter::edgesShareColor):
(WebCore::Display::BorderPainter::borderStyleFillsBorderArea):
(WebCore::Display::BorderPainter::borderStyleHasInnerDetail):
(WebCore::Display::BorderPainter::styleRequiresClipPolygon):
(WebCore::Display::BorderPainter::borderStyleIsDottedOrDashed):
(WebCore::Display::BorderPainter::borderWillArcInnerEdge):
(WebCore::Display::BorderPainter::borderStyleHasUnmatchedColorsAtCorner):
(WebCore::Display::BorderPainter::colorsMatchAtCorner const):
(WebCore::Display::BorderPainter::colorNeedsAntiAliasAtCorner const):
(WebCore::Display::BorderPainter::calculateBorderStyleColor):
(WebCore::Display::BorderPainter::willBeOverdrawn const):
(WebCore::Display::BorderPainter::borderStylesRequireMitre):
(WebCore::Display::BorderPainter::calculateAdjustedInnerBorder):
(WebCore::Display::BorderPainter::joinRequiresMitre const):
(WebCore::Display::roundedRectWithIncludedRadii):
(WebCore::Display::BorderPainter::roundedBorderForRect const):
(WebCore::Display::BorderPainter::roundedInsetBorderForRect const):
(WebCore::Display::BorderPainter::drawBoxSideFromPath const):
(WebCore::Display::BorderPainter::clipBorderSidePolygon const):
(WebCore::Display::BorderPainter::drawLineForBoxSide const):
(WebCore::Display::BorderPainter::paintOneBorderSide const):
(WebCore::Display::BorderPainter::paintBorderSides const):
(WebCore::Display::BorderPainter::paintTranslucentBorderSides const):
(WebCore::Display::BorderPainter::paintBorders const):
(WebCore::Display::BoxDecorationPainter::paintBorders):
(WebCore::Display::paintFillLayer):
(WebCore::Display::BoxDecorationPainter::paintBackgroundImages):
(WebCore::Display::BoxDecorationPainter::paintBackground):
(WebCore::Display::BoxDecorationPainter::paintBackgroundAndBorders):
- display/css/DisplayBoxDecorationPainter.h: Copied from Source/WebCore/display/css/DisplayBoxDecorationData.cpp.
- display/css/DisplayBoxFactory.cpp:
(WebCore::Display::BoxFactory::constructBoxDecorationData const):
(WebCore::Display::BoxFactory::setupBoxModelBox const):
- display/css/DisplayBoxPainter.cpp:
(WebCore::Display::BoxPainter::paintBoxDecorations):
(WebCore::Display::BoxPainter::paintFillLayer): Deleted.
(WebCore::Display::BoxPainter::paintBackgroundImages): Deleted.
- display/css/DisplayStyle.cpp:
(WebCore::Display::Style::Style):
(WebCore::Display::Style::hasVisibleBorder const): Deleted.
- display/css/DisplayStyle.h:
(WebCore::Display::Style::borderLeft const): Deleted.
(WebCore::Display::Style::borderRight const): Deleted.
(WebCore::Display::Style::borderTop const): Deleted.
(WebCore::Display::Style::borderBottom const): Deleted.
- platform/graphics/FloatRoundedRect.h:
- 1:49 PM BuildingCairoOnWindows edited by
- (diff)
- 11:34 AM Changeset in webkit [269562] by
-
- 4 edits2 adds in trunk/Source/WebCore
[LFC][Integration] Introduce InlineContentBuilder
https://bugs.webkit.org/show_bug.cgi?id=218684
Reviewed by Antti Koivisto.
Move the display run and line construction to this new class. This is in preparation for
expanding the construction coverage to support features like bidirectional content handling.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/inlineformatting/InlineContentBreaker.cpp:
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp: Added.
(WebCore::LayoutIntegration::lineOverflowWidth):
(WebCore::LayoutIntegration::InlineContentBuilder::InlineContentBuilder):
(WebCore::LayoutIntegration::InlineContentBuilder::build const):
(WebCore::LayoutIntegration::InlineContentBuilder::computeLineLevelVisualAdjustmentsForRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::constructDisplayLines const):
- layout/integration/LayoutIntegrationInlineContentBuilder.h: Added.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::constructContent):
(WebCore::LayoutIntegration::lineOverflowWidth): Deleted.
- 10:15 AM Changeset in webkit [269561] by
-
- 4 edits2 adds in trunk
Source/WebCore:
REGRESSION (r268476): Sometimes zooming does not work on purpleair.com/map
https://bugs.webkit.org/show_bug.cgi?id=218680
<rdar://problem/70418612>
Reviewed by Zalan Bujtas.
Loading purpleair.com/map and quickly panning then zooming would often fail to zoom the map,
and rubberband instead. This happened because the composited layer containing the WebGL
canvas would switch to into tiled mode, and that would fail to set the event region on the
new platform layer.
The fix is to just add the 'EventRegionChanged' flag to the list of properties that need to
get updated after a tiled layer switch.
Test: fast/scrolling/mac/wheel-event-listener-region-tiled-layer-switch.html
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::determineWheelEventProcessing):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::changeLayerTypeTo):
LayoutTests:
REGRESSION (r268476): Sometimes zooming does not worki on purpleair.com/map
https://bugs.webkit.org/show_bug.cgi?id=218680
Reviewed by Zalan Bujtas.
- fast/scrolling/mac/wheel-event-listener-region-tiled-layer-switch-expected.txt: Added.
- fast/scrolling/mac/wheel-event-listener-region-tiled-layer-switch.html: Added.