⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Nov 8, 2020:

9:31 PM Changeset in webkit [269576] by ysuzuki@apple.com
  • 8 edits
    1 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 Lauro Moura
  • 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 ysuzuki@apple.com
  • 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 Lauro Moura
  • 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 Lauro Moura
  • 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 Alan Bujtas
  • 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 Fujii Hironori
  • 4 edits
    2 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 Fujii Hironori
  • 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 Darin Adler
  • 15 edits
    2 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 commit-queue@webkit.org
  • 1 edit
    2 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 commit-queue@webkit.org
  • 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 commit-queue@webkit.org
  • 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 Wenson Hsieh
  • 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 decodeItem out of RemoteImageBuffer, and into RemoteRenderingBackend. This
allows us to avoid static_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 decodeItem into 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 Simon Fraser
  • 10 edits
    1 copy
    1 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 Fujii Hironori
(diff)
11:34 AM Changeset in webkit [269562] by Alan Bujtas
  • 4 edits
    2 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 Simon Fraser
  • 4 edits
    2 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.
Note: See TracTimeline for information about the timeline view.