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

Timeline



May 18, 2020:

11:18 PM Changeset in webkit [261852] by Peng Liu
  • 2 edits in trunk/LayoutTests

Flaky Test: media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html
https://bugs.webkit.org/show_bug.cgi?id=182571

Add an explicit timeout in the test to debug the flaky timeout.

Unreviewed test gardening.

  • media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
11:10 PM Changeset in webkit [261851] by zandobersek@gmail.com
  • 8 edits in trunk/Tools

[WPE] HeadlessViewBackend should exclusively use software rasterization mode
https://bugs.webkit.org/show_bug.cgi?id=211982

Reviewed by Carlos Garcia Campos.

Instead of using WPEBackend-fdo's EGL mode that optionally allows the
GL operations to be done through software rasterization, have the
HeadlessViewBackend use the SHM mode which enforces this behavior.

Under the hood, the graphics library will be forced to set up and use
the software rasterization mechanisms, and on our side we are required
to properly handle SHM-backed buffers. This avoids any use of EGL or
GL operations inside HeadlessViewBackend, enabling to use this setup
in systems and environments that don't have GPUs available.

All GL-y things are pushed into the WindowViewBackend class. Inside
HeadlessViewBackend, the whole SHM logic requires WPEBackend-fdo APIs
that are part of the current 1.7 development cycle. When building
against older versions, HeadlessViewBackend itself remains buildable
but is not operational otherwise.

  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::windowSnapshotImage):

  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessInstance::singleton):
(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::backend const):
(WPEToolingBackends::HeadlessViewBackend::snapshot):
(WPEToolingBackends::HeadlessViewBackend::updateSnapshot):
(WPEToolingBackends::HeadlessViewBackend::vsync):
(): Deleted.
(WPEToolingBackends::HeadlessEGLConnection::singleton): Deleted.
(WPEToolingBackends::HeadlessViewBackend::createSnapshot): Deleted.
(WPEToolingBackends::HeadlessViewBackend::createEGLSnapshot): Deleted.
(WPEToolingBackends::HeadlessViewBackend::createSHMSnapshot): Deleted.
(WPEToolingBackends::HeadlessViewBackend::performUpdate): Deleted.
(WPEToolingBackends::HeadlessViewBackend::displayBuffer): Deleted.

  • wpe/backends/HeadlessViewBackend.h:
  • wpe/backends/ViewBackend.cpp:

(WPEToolingBackends::ViewBackend::initialize): Deleted.
(WPEToolingBackends::ViewBackend::deinitialize): Deleted.
(WPEToolingBackends::ViewBackend::backend const): Deleted.

  • wpe/backends/ViewBackend.h:
  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WindowViewBackend::backend const):
(WPEToolingBackends::WindowViewBackend::initialize):
(WPEToolingBackends::WindowViewBackend::deinitialize):

  • wpe/backends/WindowViewBackend.h:
11:08 PM Changeset in webkit [261850] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

[WPE] Disable modern media controls for testing
https://bugs.webkit.org/show_bug.cgi?id=212023

Reviewed by Philippe Normand.

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::updatePlatformSpecificTestOptionsForTest const):
Since using the same Adwaita-based media controls as the GTK port, WPE
too should disable modern media controls during testing by overriding
the default value. This fixes a couple of obscure crashes in text track
tests.

10:09 PM Changeset in webkit [261849] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Move some of the more chatty Scrolling logging to a ScrollingTree channel
https://bugs.webkit.org/show_bug.cgi?id=212061

Reviewed by Tim Horton.

Move logging about the scrolling tree to a new channel.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):
(WebCore::FrameView::scrollToAnchor):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::createNode):
(WebCore::AsyncScrollingCoordinator::insertNode):

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::createUnparentedNode):
(WebCore::ScrollingStateTree::insertNode):
(WebCore::ScrollingStateTree::unparentNode):
(WebCore::ScrollingStateTree::unparentChildrenAndDestroyNode):
(WebCore::ScrollingStateTree::detachAndDestroySubtree):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):

  • page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNode.mm:

(WebCore::ScrollingTreeOverflowScrollProxyNode::applyLayerPositions):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):

  • platform/Logging.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::attachScrollingNode):

9:59 PM Changeset in webkit [261848] by ddkilzer@apple.com
  • 19 edits in trunk/Source

Replace TextIndicatorOptions with OptionSet<TextIndicatorOption>
<https://webkit.org/b/212051>
<rdar://problem/63368556>

Reviewed by Simon Fraser.

Use OptionSet<TextIndicatorOption> everywhere
TextIndicatorOptions was previously used, plus:

  • Make TextIndicatorOption an enum class. Remove "TextIndicatorOption" prefix so TextIndicatorOptionBar becomes TextIndicatorOption::Bar.
  • Remove TextIndicatorOptionDefault because OptionSet<> initializes to zero.
  • Replace static variables (including two globals in WebCore) with constexpr variables.

Source/WebCore:

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
(WebCore::TextIndicator::createWithSelectionInFrame):
(WebCore::snapshotOptionsForTextIndicatorOptions):
(WebCore::takeSnapshots):
(WebCore::hasAnyIllegibleColors):
(WebCore::initializeIndicator):

  • page/TextIndicator.h:
  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageForLink):
(WebCore::createDragImageForSelection):
(WebCore::createDragImageForRange):

  • testing/Internals.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindIndicator):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::insertDroppedImagePlaceholders):
(WebKit::WebPage::computeAndSendEditDragSnapshot):
(WebKit::linkIndicatorPositionInformation):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _lookUpInDictionaryFromMenu:]):

  • WebView/WebImmediateActionController.h:
  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
(-[WebImmediateActionController _animationControllerForText]):

  • WebView/WebView.mm:

(-[WebUITextIndicatorData initWithImage:textIndicatorData:scale:]):
(-[WebView _didConcludeEditDrag]):

9:24 PM Changeset in webkit [261847] by Peng Liu
  • 2 edits in trunk/Source/WebKitLegacy/mac

ASSERTION FAILED: media/modern-media-controls/media-controller/media-controller-resize.html crashes under stress tests
https://bugs.webkit.org/show_bug.cgi?id=212052

Reviewed by Jer Noble.

Not able to reproduce the crash locally. But it does happen under stress tests
on bots.

  • WebView/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController windowDidExitFullScreen:]):
Only call HTMLMediaElement::exitFullscreen() when the element is in fullscreen.

7:41 PM Changeset in webkit [261846] by chris.reid@sony.com
  • 4 edits in trunk/Tools

[WinCairo] WKTR WebsiteDataStore is being overwritten by the default one
https://bugs.webkit.org/show_bug.cgi?id=212044

Reviewed by Fujii Hironori.

Ensure TestController::defaultWebSiteDataStore is being used for WinCairo as done in r259705.

Also consolidate platformInitializeDataStore implementations with GTK/WPE since WinCairo WKTR
also started crashing since r261758.

  • WebKitTestRunner/TestController.cpp:
  • WebKitTestRunner/gtk/TestControllerGtk.cpp:
  • WebKitTestRunner/wpe/TestControllerWPE.cpp:
7:32 PM Changeset in webkit [261845] by aestes@apple.com
  • 21 edits in trunk

http/tests/ssl/applepay/ApplePayInstallmentConfiguration.https.html fails in public SDK builds
https://bugs.webkit.org/show_bug.cgi?id=212000
<rdar://problem/63323082>

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • bindings/js/WebCoreBuiltinNames.h:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:
  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • Shared/WebCoreArgumentCoders.h:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformHave.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
6:54 PM Changeset in webkit [261844] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Enable regenerateStructNames workaround on iOS
https://bugs.webkit.org/show_bug.cgi?id=212056

Patch by James Darpinian <James Darpinian> on 2020-05-18
Reviewed by Dean Jackson.

The WebGL conformance test conformance/glsl/misc/shader-struct-scope.html
was failing on iOS. The workaround that fixes this test was enabled only on
desktop GL, but it's necessary for iOS as well.

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::InitializeFeatures):

6:48 PM Changeset in webkit [261843] by mmaxfield@apple.com
  • 18 edits
    2 adds in trunk

[WebGPU] Validation for GPUDevice.createTexture()
https://bugs.webkit.org/show_bug.cgi?id=211882
<rdar://problem/63215999>

Reviewed by Dean Jackson.

Source/WebCore:

Add lots of validation for texture creation. The logic was gathered by
trial and error.

Before this patch, we didn't have any validation. This is a first pass, as
the validation logic isn't spelled out in the spec. Next, I will make a pull
request to the spec to match this patch.

This patch also updates three pieces of our IDL files to match the spec for
WebGPU: One to remove GPUTextureUsage.NONE which was replaced with just 0,
one to remove GPUTextureDescriptor.arrayLayerCount, which was deleted in
favor of using regular dimension fields, and one to add [EnforceRange] to
various values.

This patch also updates GPUDevice to have a GPUErrorScopes object, which is
required for good error messages.

Test: webgpu/texture-creation.html

  • Modules/webgpu/GPUExtent3D.idl:
  • Modules/webgpu/GPUTextureDescriptor.idl:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::tryCreate):
(WebCore::WebGPUDevice::createTexture const):

  • Modules/webgpu/WebGPUDevice.h:
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::maximumMipLevelCount):
(WebCore::GPUDevice::tryCreateTexture const):

  • platform/graphics/gpu/GPUDevice.h:

(WebCore::GPUDevice::setErrorScopes):

  • platform/graphics/gpu/GPUExtent3D.h:
  • platform/graphics/gpu/GPUObjectBase.h:

(WebCore::GPUObjectBase::errorScopes const):
(WebCore::GPUObjectBase::errorScopes): Deleted.

  • platform/graphics/gpu/GPUTexture.h:
  • platform/graphics/gpu/GPUTextureDescriptor.h:
  • platform/graphics/gpu/cocoa/GPUTextureMetal.mm:

(WebCore::mtlTextureTypeForGPUTextureDescriptor):
(WebCore::mtlTextureUsageForGPUTextureUsageFlags):
(WebCore::tryCreateMtlTextureDescriptor):
(WebCore::GPUTexture::tryCreate):

LayoutTests:

6:17 PM Changeset in webkit [261842] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Do more speculation that a GetByVal/PutByVal will have an int32 index based on data from ArrayProfile
https://bugs.webkit.org/show_bug.cgi?id=211877

Reviewed by Yusuke Suzuki.

Before this patch, when a GetByVal or PutByVal had a non int32 prediction for
their incoming index, they'd fall completely off the fast path. However, there
are programs where an int32 is boxed inside a double, but our notion of
predicted types don't fully capture this fact. For example, if we have a double Add
to produce an array index, that double Add will predict a full double result,
not a SpecAnyIntAsDouble. However, for GetByVal and PutByVal, there is information
from ArrayProfile we can use to determine if the incoming value is expected to
be in int32 range. The heuristic this patch introduces is:

isFullNumberSpeculation(indexSpeculation)
&& node->arrayMode().isSpecific()
&& node->arrayMode().isInBounds()
&& !m_graph.hasExitSite(node->origin.semantic, Overflow) DoubleAsInt32 will exit with Overflow on failure

If these conditions are met, we'll now emit a DoubleAsInt32 conversion node
for the index. This puts along the fast path for GetByVal and PutByVal on
array accesses where the incoming index is an int32 boxed in a double.

To make the above isFullNumberSpeculation check more robust, this patch also
makes it so non index double accesses result in marking the array profile as
out of bounds. So this means indices greater than max safe index, and also,
fractional doubles.

This is a 3.75x speedup on microbenchmarks/get-and-put-by-val-double-index-dont-fall-off-a-cliff.js

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • jit/JITOperations.cpp:

(JSC::getByVal):

5:52 PM Changeset in webkit [261841] by Oriol Brufau
  • 18 edits
    50 adds in trunk

[css-grid] Clear the override width for computing percent margins
https://bugs.webkit.org/show_bug.cgi?id=209461

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import new WPT tests and update existing ones.

  • web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages-expected.txt:
  • web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-lr-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-vertical-rl-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014-expected.xht: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html: Added.
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-lr-002.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-001.html:
  • web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-vertical-rl-002.html:
  • web-platform-tests/css/css-grid/grid-items/w3c-import.log:

Source/WebCore:

When calculating the min-content contribution of a grid item of an auto
sized grid track we must consider the grid item's margin. When the grid
item's area is indefinite, a percent margin is resolved to zero.
However, when performing a relayout, the percent margin may be solved
against the previously computed grid area, since the grid item has
already an OverrideContainingBlockLogicalWidth value.

In order to re-compute the percent margin properly, we need to clear
the previously override value. It's important to be careful of not
clearing the override value set during intrinsic size, since we need
it for the actual layout phase. Hence, we only reset the 'override'
value when we are executing a definite strategy.

Tests: imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-minimum-contribution-with-percentages.html

imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-item-dynamic-min-contribution-001.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-003.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-004.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-005.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-006.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-007.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-008.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-009.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-010.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-011.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-012.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-013.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-margins-014.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-003.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-004.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-005.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-006.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-007.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-008.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-009.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-010.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-011.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-012.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-013.html
imported/w3c/web-platform-tests/css/css-grid/grid-items/grid-items-percentage-paddings-014.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::hasRelativeMarginOrPaddingForChild):
(WebCore::hasRelativeOrIntrinsicSizeForChild):
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::GridTrackSizingAlgorithmStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minLogicalSizeForChild const):
(WebCore::DefiniteSizeStrategy::minContentForChild const):

  • rendering/GridTrackSizingAlgorithm.h:
4:48 PM Changeset in webkit [261840] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Follow-up: Use default initializers in TextIndicatorData
<https://webkit.org/b/212039>
<rdar://problem/63355619>

  • page/TextIndicator.h:

(WebCore::TextIndicatorData::contentImageScaleFactor):

  • Simon Fraser says 1 is a better default than 0.
4:40 PM Changeset in webkit [261839] by Peng Liu
  • 4 edits in trunk/Source/WebCore

Add a quirk to allow an embedded Twitter video to play with one tapping
https://bugs.webkit.org/show_bug.cgi?id=211932

Reviewed by Maciej Stachowiak.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::playbackPermitted const):
Need to check the topDocument for the existence of user interactions.
(WebCore::MediaElementSession::updateMediaUsageIfChanged): Ditto.

  • page/Quirks.cpp:

(WebCore::Quirks::needsPerDocumentAutoplayBehavior const):
Add the missing needsQuirks() checking.
(WebCore::Quirks::shouldAutoplayForArbitraryUserGesture const):
Add a the quirk for twitter.com.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):
Clarify the log message.

4:31 PM Changeset in webkit [261838] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Rare crash under -[WKContentView resignFirstResponderForWebView]
https://bugs.webkit.org/show_bug.cgi?id=212050
<rdar://problem/60187111>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView resignFirstResponderForWebView]):
Reorganize this block so that it always takes a strong reference /before/
null checking and using the pointer. Also, add a _page null check.
This is a speculative fix for an unreproducible low-rate crash.

In theory the existing time-of-check race here should not be a problem,
since WKWebView is supposed to be freed on the main thread, and this code
runs on the main thread, but we have ample evidence of WKWebView
being freed off the main thread in various clients.

4:10 PM Changeset in webkit [261837] by Simon Fraser
  • 4 edits
    4 adds in trunk

Content disappears on CSS parallax example
https://bugs.webkit.org/show_bug.cgi?id=212045
<rdar://problem/63194217>

Reviewed by Tim Horton.
Source/WebCore:

In r261632 I fixed parallax scrolling by migrating the perspective transform onto
the scroll container layer, and making the scrolled contents layer a "preserve3D" layer.

However, scrolling is achieved by changing the boundsOrigin of the scrolled contents layer,
so the computation of the perspective matrix, which is a "child layer transform", has to
take this boundsOrigin into account, otherwise we compute bad coverage rects, and drop
backing store erroneously.

Test: compositing/tiling/perspective-on-scroller-tile-coverage.html

  • platform/graphics/FloatPoint3D.h:

(WebCore::FloatPoint3D::FloatPoint3D):
(WebCore::FloatPoint3D::move):
(WebCore::operator +=):
(WebCore::operator -=):
(WebCore::operator+):
(WebCore::operator-):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const):
(WebCore::GraphicsLayerCA::layerTransform const):
(WebCore::GraphicsLayerCA::adjustCoverageRect const):
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):

LayoutTests:

  • compositing/tiling/perspective-on-scroller-tile-coverage-expected.txt: Added.
  • compositing/tiling/perspective-on-scroller-tile-coverage.html: Added.
3:50 PM Changeset in webkit [261836] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Use default initializers in TextIndicatorData
<https://webkit.org/b/212039>
<rdar://problem/63355619>

Reviewed by Alex Christensen.

Source/WebCore:

Tested by IPC::Decoder::decode() and IPC::Encoder::operator<<()
running on WebKit2 API and layout tests.

  • page/TextIndicator.h:

(WebCore::TextIndicatorData):

  • Add default initializers.

(WTF::EnumTraits<WebCore::TextIndicatorPresentationTransition>):

  • Add EnumTraits so TextIndicatorPresentationTransition may be used by IPC::Decoder::decode() and IPC::Encoder::operator<<().

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<TextIndicatorData>::encode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):

  • Switch from decodeEnum() and encodeEnum() to modern equivalents that check for valid enum values.
3:29 PM Changeset in webkit [261835] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix operator== and hash() for ExtendedColor
https://bugs.webkit.org/show_bug.cgi?id=211993

Post-landing followup. ExtendedColor operator== has to do exact comparison to be
consistent with hash().

  • platform/graphics/ExtendedColor.h:

(WebCore::operator==):

3:26 PM Changeset in webkit [261834] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] BigInt peephole compare should speculate appropriately
https://bugs.webkit.org/show_bug.cgi?id=212037
<rdar://problem/63346966>

Reviewed by Saam Barati.

JSTests:

  • stress/bigint-compare-peephole-branch.js: Added.

Source/JavaScriptCore:

SpeculativeJIT::nonSpeculativePeepholeBranch missed BigInt speculation. This patch renames it
to SpeculativeJIT::genericJSValuePeepholeBranch and adds speculation checks appropriately.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
(JSC::DFG::SpeculativeJIT::genericJSValuePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch): Deleted.

  • dfg/DFGSpeculativeJIT.h:
3:22 PM Changeset in webkit [261833] by Wenson Hsieh
  • 16 edits in trunk

Replace uses of +self with +class
https://bugs.webkit.org/show_bug.cgi?id=212041

Reviewed by Darin Adler.

Source/WebCore:

No change in behavior.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayer::isWebLayer):

Source/WebKit:

  • Shared/API/Cocoa/_WKFrameHandle.mm:

(-[_WKFrameHandle isEqual:]):
(-[_WKFrameHandle initWithCoder:]):

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _setAttachmentFileWrapperClass:]):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::allocFileWrapperInstance const):
(WebKit::PageClientImplCocoa::serializableFileWrapperClasses const):

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(+[WKTransformView layerClass]):
(+[WKSimpleBackdropView layerClass]): Deleted.
(+[WKShapeView layerClass]): Deleted.
(-[WKRemoteView initWithFrame:contextID:]): Deleted.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::~ScrollingTreeScrollingNodeDelegateIOS):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::resetScrollViewDelegate):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollView const):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView selectFormAccessoryPickerRow:]):
(-[WKContentView selectFormPopoverTitle]):

Tools:

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController monitorWheelEventsWithOptions:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::enclosingScrollViewIncludingSelf):

2:17 PM Changeset in webkit [261832] by Ross Kirsling
  • 9 edits in trunk/Source/WebCore

Unreviewed restabilization of non-unified build.

  • accessibility/AXObjectCache.cpp:
  • html/HTMLAttachmentElement.h:
  • inspector/agents/InspectorCSSAgent.cpp:
  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:
  • layout/tableformatting/TableFormattingContextGeometry.cpp:
  • layout/tableformatting/TableFormattingState.cpp:
  • rendering/RenderTextFragment.h:
  • rendering/style/KeyframeList.h:
1:52 PM Changeset in webkit [261831] by Ryan Haddad
  • 3 edits in branches/safari-609-branch/Tools

Unreviewed test gardening for rdar://59610140 and rdar://59611168.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:
1:49 PM Changeset in webkit [261830] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null Ptr Deref @ WebCore::CSSValue::classType
https://bugs.webkit.org/show_bug.cgi?id=212036

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-18
Reviewed by Geoffrey Garen.

Source/WebCore:

Calculated value for a primitive value type can be NULL for a CSS property. Added a null check before dereferencing it.

Test: editing/execCommand/null_calc_primitive_value_for_css_property.html

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):

LayoutTests:

Added a regression test.

  • editing/execCommand/null_calc_primitive_value_for_css_property-expected.txt: Added.
  • editing/execCommand/null_calc_primitive_value_for_css_property.html: Added.
1:49 PM Changeset in webkit [261829] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

WebPageProxy::DidCommitLoadForFrame should use FrameLoadType instead of casting to/from uint32_t for IPC
https://bugs.webkit.org/show_bug.cgi?id=212028
<rdar://problem/63343021>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-18
Reviewed by David Kilzer.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::didCommitLoadForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):

1:22 PM Changeset in webkit [261828] by Simon Fraser
  • 9 edits in trunk

Implement conversion between P3 and sRGB color
https://bugs.webkit.org/show_bug.cgi?id=211998

Reviewed by Daniel Bates.
Source/WebCore:

Color::toSRGBAComponentsLossy() was a lie because it didn't actually convert extended
colors into sRGB. Fix that by converting P3 and linaerRGB colors into sRGB, using the color
math from CSS Color 4.

Renamed the various "linear to sRGB" functions because they work for any RGB colors,
not just sRGB.

  • platform/graphics/Color.cpp:

(WebCore::Color::toSRGBAComponentsLossy const):

  • platform/graphics/Color.h:
  • platform/graphics/ColorUtilities.cpp:

(WebCore::linearToRGBColorComponent):
(WebCore::RGBToLinearColorComponent):
(WebCore::sRGBColorToLinearComponents):
(WebCore::RGBToLinearComponents):
(WebCore::linearToRGBComponents):
(WebCore::XYZToLinearSRGB):
(WebCore::linearSRGBToXYZ):
(WebCore::XYZToLinearP3):
(WebCore::linearP3ToXYZ):
(WebCore::P3ToSRGB):
(WebCore::sRGBToP3):
(WebCore::ColorMatrix::transformedColorComponents const):
(WebCore::linearToSRGBColorComponent): Deleted.
(WebCore::sRGBToLinearColorComponent): Deleted.
(WebCore::sRGBToLinearComponents): Deleted.
(WebCore::linearToSRGBComponents): Deleted.

  • platform/graphics/ColorUtilities.h:

Tools:

API test for conversions from P3 to sRGB, and linearRGB to sRGB. Values were confirmed
as close to those provided by ColorSync Utility.

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):

1:17 PM Changeset in webkit [261827] by mark.lam@apple.com
  • 9 edits
    1 add in trunk

Implement a faster findBitInWord() using the hardware ctz instruction.
https://bugs.webkit.org/show_bug.cgi?id=212032
<rdar://problem/63348086>

Reviewed by Saam Barati.

Source/bmalloc:

Apply same changes to bmalloc's copy of findBitInWord().

  • bmalloc/Algorithm.h:

(bmalloc::ctz):
(bmalloc::findBitInWord):

Source/WTF:

Based on local microbenchmarking, both ARM64 and X86_64 shows a speed up of
28% - 95% faster than the loop.

The largest perf regressions for ctz vs the loop, are when finding 1 in a mostly
set word or finding 0 in a mostly cleared word. For example, on X86_64:

Find 1 in 0xffffffffffffffff: using loop 8.67 ms, using ctz 6.07 ms, delta 30.0%
Find 0 in 0x8000000000000000: using loop 9.01 ms, using ctz 6.54 ms, delta 28.1%

The largest perf progressions for ctz vs the loop, are the opposite: finding 1 in
a mostly cleared word, or finding a 0 in a mostly set word. For example, on X86_64:

Find 1 in 0x8000000000000000: using loop 91.4 ms, using ctz 6.48 ms, delta 92.9%
Find 0 in 0xffffffffffffffff: using loop 91.7 ms, using ctz 6.95 ms, delta 92.4%

TL;DR: the microbenchmark methodology used:

findBitInWord() takes:

  1. word to scan
  2. startIndex
  3. endIndex
  4. bool value to scan for, either 1 or 0.
  1. Randomly select 1000 startIndex and endIndex pairs. The endIndex is guaranteed to be >= startIndex.
  1. Using a base word of 0xffffffffffffffff (or uint64_t) and 0xffffffff (for uint32_t), shift left by 0 - N (where N is the number of bits in the word) to generate N + 1 words for the test. This produces words with contiguous lengths of 1s and 0s. We're choosing these words to deliberately measure the effects o run lengths of 0s or 1s on the algorithm in use.
  1. For each test word, call findBitInWord() with the start and end indexes chosen in 1 for a 100 iterations.
  1. Run (3) once to search for a true value, and once to search for a false value.
  1. Print the results for each test word and value pair.
  • wtf/BitVector.cpp:
  • wtf/Bitmap.h:
  • wtf/StdLibExtras.h:

(WTF::findBitInWord):

Tools:

Add tests to make sure that the ctz implementation matches the loop implementation
in behavior.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/StdLibExtras.cpp: Added.

(TestWebKitAPI::testFindBitInWord):
(TestWebKitAPI::TEST):

12:11 PM Changeset in webkit [261826] by Lauro Moura
  • 3 edits
    1 move
    1 add
    1 delete in trunk/LayoutTests

[GTK][WPE] Rebaseline security/block-test-no-port.html

Since upstream libsoup commit e337a6f794 it uses soup-http-error-quark
GQuark as string for the error domain.

The error code 4 already maps to SOUP_STATUS_CANT_CONNECT which is the
correct counterpart to Mac's NSURLErrorCannotConnectToHost (-1004).

Unreviewed test gardening.

  • platform/glib/security/block-test-no-port-expected.txt: Renamed from LayoutTests/platform/wpe/security/block-test-no-port-expected.txt. and fixed error string.
  • platform/gtk/TestExpectations: Removed expected failure.
  • platform/gtk/security/block-test-no-port-expected.txt: Removed.
  • platform/wpe/TestExpectations: Removed expected failure.
12:05 PM Changeset in webkit [261825] by Wenson Hsieh
  • 15 edits
    2 adds in trunk

Allow clipboard API access when pasting from a menu item or key binding
https://bugs.webkit.org/show_bug.cgi?id=211990
<rdar://problem/63308916>

Reviewed by Megan Gardner.

Source/WebCore:

Allow the contents of the clipboard to be programmatically requested by the page while pasting from trusted UI
(i.e. the paste menu item, or when WebKit API is called by the app to trigger the paste). This allows the
'reading' part of the async clipboard API (read and readText) to be used when the user pastes in an editable
element, without having to fall back to showing the DOM paste access menu.

Note that this change should not have an effect on the pasteboard security model, since it only grants the page
programmatic access to the contents of the pasteboard in the case where access to the pasteboard has already
been granted by the user. Additionally, even in the event that the web process is compromised, even if the web
process can be tricked into believing it has been granted pasteboard access, the changes in r259151 will prevent
it from being able to request pasteboard data, unless the user (or the application, on behalf of the user) has
explicitly pasted via trusted API calls that are inaccessible from the web process.

Test: editing/async-clipboard/clipboard-read-while-pasting.html

  • editing/Editor.cpp:

(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsQuotation):

If FromMenuOrKeyBinding::Yes is passed in, set the m_pastingFromMenuOrKeyBinding flag to true during the
scope of the paste command.

  • editing/Editor.h:

(WebCore::Editor::isPastingFromMenuOrKeyBinding const):

  • editing/EditorCommand.cpp:

(WebCore::executePaste):
(WebCore::executePasteAndMatchStyle):
(WebCore::executePasteAsPlainText):
(WebCore::executePasteAsQuotation):

Pass in FromMenuOrKeyBinding::Yes when triggering the paste from a menu item or key binding.

  • page/Frame.cpp:

(WebCore::Frame::requestDOMPasteAccess):

When pasting from menu or key binding, grant the page DOM paste access without requiring the DOM paste access
UI to be shown and confirmed.

Tools:

Add a UIScriptController method to trigger a paste from the application process.

  • DumpRenderTree/cocoa/UIScriptControllerCocoa.h:
  • DumpRenderTree/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::paste):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::paste):

  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::paste):

LayoutTests:

Add a new layout test to verify that the contents of the clipboard can be read while performing a paste that was
not triggered from the DOM.

  • editing/async-clipboard/clipboard-read-while-pasting-expected.txt: Added.
  • editing/async-clipboard/clipboard-read-while-pasting.html: Added.
  • platform/win/TestExpectations:
  • resources/ui-helper.js:

(window.UIHelper.async copyText):
(window.UIHelper.async paste):

11:56 AM Changeset in webkit [261824] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

OSR loop entry to iterator_next generic needs to CheckNotEmpty on m_next
https://bugs.webkit.org/show_bug.cgi?id=212001

Reviewed by Saam Barati.

JSTests:

  • stress/for-of-osr-loop-enter-active-next-differs-from-seen-modes.js: Added.

(foo):

Source/JavaScriptCore:

If we happen to OSR enter into iterator_next during a for-of loop
that has only profiled a generic iterator but is actually running
a fast iterator we will incorrectly perform the Call node This
could happen if we loop_hint OSR enter the first time have seen a
fast iterator. If this happens right now, we generate the following
code:

D@113:<!2:loc15> GetLocal(Check:Untyped:D@198, JS|MustGen|UseAsOther, Function|Empty, loc13(W~/FlushedJSValue), machine:loc10, R:Stack(loc13),Stack(loc5), bc#46, ExitValid) predicting Function|Empty

0x4913f1806151: mov -0x58(%rbp), %rsi

D@114:<!0:-> FilterCallLinkStatus(Check:Untyped:D@113, MustGen, (Function: Object: 0x1053f47e0 with butterfly 0x0 (Structure 0x1053f9260:[0x6dad, Function, {}, NonArray, Proto:0x1050fc248]), StructureID: 28077; Executable: next#Ddkruz:[0x1053c0480->0x1053e4a80, BaselineFunctionCall, 54 (StrictMode)]), R:Stack(loc5), W:SideState, bc#46, ExitValid)
D@115:<!6:loc15> Call(Check:Untyped:D@113, Check:Untyped:D@110, JS|MustGen|VarArgs|UseAsOther, Final, R:World,Stack(loc5), W:Heap, ExitsForExceptions, ClobbersExit, bc#46, ExitValid) predicting Final

0x4913f1806155: mov $0x1, 0x10(%rsp)
0x4913f180615d: mov %rax, 0x18(%rsp)
0x4913f1806162: mov %rsi, 0x8(%rsp)
0x4913f1806167: mov %rax, -0xa0(%rbp)
0x4913f180616e: mov $0x0, 0x24(%rbp)
0x4913f1806175: mov $0x0, %r11
0x4913f180617f: cmp %r11, %rsi
0x4913f1806182: jnz 0x4913f1806192
0x4913f1806188: call 0x4913f180618d
0x4913f180618d: jmp 0x4913f18061ae
0x4913f1806192: mov %rsi, %rax
0x4913f1806195: mov $0x1050cfcb0, %rdx
0x4913f180619f: mov $0x1052fab68, %rcx
0x4913f18061a9: call 0x4913f1801680
0x4913f18061ae: lea -0xd0(%rbp), %rsp

D@116:<!0:-> MovHint(Check:Untyped:D@115, MustGen, tmp0, R:Stack(loc5), W:SideState, ClobbersExit, bc#46, ExitInvalid)
D@332:<!0:-> InvalidationPoint(MustGen, R:Stack(loc5), W:SideState, Exits, bc#46, exit: bc#46cp#1, ExitValid)
D@335:<!0:-> CheckStructure(Check:Cell:D@115, MustGen, [%B2:Object], R:Stack(loc5),JSCell_structureID, Exits, bc#46, exit: bc#46cp#1, ExitValid)

0x4913f18061b5: test %rax, %r15
0x4913f18061b8: jnz 0x4913f18068db
0x4913f18061be: cmp $0xcaae, (%rax)
0x4913f18061c4: jnz 0x4913f18068f1

Loc13 in this IR is the location of the next function. Since it's
nullptr, we will pass the initial fast-path value of 0 and make a
garbage call. This is because Call does not know how to handle
empty values. Subsequently, we will fail a structure check for the
Call's result and OSR exit to the getDone checkpoint. The fix for
this is to simply put a CheckNotEmpty at the top of the generic
case. 99.9% of the time this check will be eliminated so it
doesn't really cost anything.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

11:36 AM Changeset in webkit [261823] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=212030

Reviewed by Brent Fulgham.

The build fails because the number of bitfields in GreaterThanOrSameSizeAsStyleRareInheritedData does not match the
actual number of bitfields in StyleRareInheritedData.

  • rendering/style/StyleRareInheritedData.cpp:
11:05 AM Changeset in webkit [261822] by Peng Liu
  • 3 edits in trunk/LayoutTests

REGRESSION (r261493?): media/video-isplayingtoautomotiveheadunit.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211915

Reviewed by Daniel Bates.

Make the test more reliable by: 1) loop the video in test; 2) add event listeners
before operations; and 3) restore the internals before end of test.

  • media/video-isplayingtoautomotiveheadunit-expected.txt:
  • media/video-isplayingtoautomotiveheadunit.html:
10:52 AM Changeset in webkit [261821] by commit-queue@webkit.org
  • 29 edits
    2 copies
    2 moves
    16 adds
    3 deletes in trunk

Remove certain headers when a redirect causes a request method change
https://bugs.webkit.org/show_bug.cgi?id=205119

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-18
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Sync fetch/api/redirect (ba2e4f92).

  • resources/import-expectations.json:
  • web-platform-tests/fetch/api/redirect/redirect-count.any.js:

(redirectCount):

  • web-platform-tests/fetch/api/redirect/redirect-empty-location.any.js:
  • web-platform-tests/fetch/api/redirect/redirect-location-escape.tentative.any-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location-escape.tentative.any.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location-escape.tentative.any.js: Added.

(redirectLocation):

  • web-platform-tests/fetch/api/redirect/redirect-location-escape.tentative.any.worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location-escape.tentative.any.worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-location.any.js:

(redirectLocation):

  • web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-method.any.js:

(redirectMethod):

  • web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-mode.any.js:

(testRedirect):

  • web-platform-tests/fetch/api/redirect/redirect-origin.any-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-origin.any.js:

(testOriginAfterRedirection):

  • web-platform-tests/fetch/api/redirect/redirect-origin.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-referrer.any.js:
  • web-platform-tests/fetch/api/redirect/redirect-schemes.html:
  • web-platform-tests/fetch/api/redirect/redirect-to-dataurl.any.js:

(redirectDataURL):

  • web-platform-tests/fetch/api/redirect/w3c-import.log:
  • web-platform-tests/fetch/api/resources/keepalive-iframe.html:
  • web-platform-tests/fetch/api/resources/method.py:

(main):

  • web-platform-tests/fetch/api/resources/preflight.py:

(main):

  • web-platform-tests/fetch/api/resources/redirect.py:

(main):

  • web-platform-tests/fetch/api/resources/stash-put.py:

(main):

  • web-platform-tests/fetch/api/resources/trickle.py:

Source/WebCore:

Implement step 11 of HTTP-redirect fetch [1] to redirect to GET
method, remove body and strip certain headers for 301, 302 and 303 redirects.

Tests: imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.html

imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • platform/network/HTTPHeaderNames.in:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::shouldUseGet):
(WebCore::ResourceRequestBase::redirectAsGETIfNeeded):
(WebCore::ResourceRequestBase::redirectedRequest const):

  • platform/network/ResourceRequestBase.h:

LayoutTests:

Add platform expectations for redirect-method.any.html and
redirect-method.any.worker.html. Remove expectations for
already removed tests redirect-method.html and
redirect-method.worker.html.

  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-expected.txt.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Added.
  • platform/mac-mojave-wk1/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Added.
  • platform/mac-mojave/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Added.
  • platform/mac-mojave/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Added.
  • platform/mac/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt.
10:50 AM Changeset in webkit [261820] by Antti Koivisto
  • 11 edits
    2 adds in trunk

[Wheel event region] Invalidation for root style
https://bugs.webkit.org/show_bug.cgi?id=212029

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/mac/wheel-event-listener-region-root-invalidation.html

Invalidate the region when event listeners change on Document or Window.

  • dom/Document.cpp:

(WebCore::Document::invalidateEventListenerRegions):

  • dom/Document.h:

(isType):

  • dom/Element.cpp:

(WebCore::Element::invalidateEventListenerRegions):

  • dom/Element.h:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::removeAllEventListeners):
(WebCore::EventTarget::invalidateEventListenerRegions):

  • dom/EventTarget.h:
  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustEventListenerRegionTypesForRootStyle):

  • style/StyleAdjuster.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

LayoutTests:

  • fast/scrolling/mac/wheel-event-listener-region-root-invalidation-expected.txt: Added.
  • fast/scrolling/mac/wheel-event-listener-region-root-invalidation.html: Added.
10:47 AM Changeset in webkit [261819] by Simon Fraser
  • 8 edits
    2 adds in trunk

Find doesn't always scroll search results into view
https://bugs.webkit.org/show_bug.cgi?id=212007
<rdar://problem/36333321>

Reviewed by Wenson Hsieh.

Source/WebCore:

HighlightData::collectBounds() could produce overly large bounds, causing the selection
to fail to scroll into view.

This happened when multiple block ancestors were added to 'renderers', with empty
rects. The process of mapping that empty rect to a quad via localToAbsoluteQuad()
could produce an empty quad at a fractional offset, then calling enclosingBoundingBox()
on the quad would create a 1x1 rectangle, which got unioned with selectionRect.

Fix by skipping entries with empty rects.

Add a Selection log channel and some logging that makes this trivial to see.

Test: editing/selection/selection-bounds-fractional-containing-blocks.html

  • platform/Logging.h:
  • rendering/HighlightData.cpp:

(WebCore::HighlightData::collectBounds const):

LayoutTests:

  • editing/selection/selection-bounds-fractional-containing-blocks-expected.txt: Added.
  • editing/selection/selection-bounds-fractional-containing-blocks.html: Added.
10:16 AM Changeset in webkit [261818] by Darin Adler
  • 9 edits in trunk

Add iterator checking to ListHashSet
https://bugs.webkit.org/show_bug.cgi?id=211669

Reviewed by Anders Carlsson.

Source/WebCore:

  • page/ios/ContentChangeObserver.h: Added an include of Element.h, needed to call

makeWeakPtr in an inline function. This is due to a change in the way makeWeakPtr
now checks the type of the argument. It's possible we could refine it further to
relax this requirement, but it seems OK to include Element.h here.

Source/WTF:

HashSet and HashMap have iterator checking in debug builds.
Add similar checking to ListHashSet, controlled by the same
macro, CHECK_HASHTABLE_ITERATORS. Use WeakPtr to make the
implementation simple.

  • wtf/Forward.h: Update to add a second parameter to WeakPtr.

Also rearranged and tweaked the file a bug.

  • wtf/ListHashSet.h: Make ListHashSet and ListHashSetNode derive

from CanMakeWeakPtr. Add m_weakSet and m_weakPosition members to
ListHashSetConstIterator, and assert their values at the appropriate
times so we will get a breakpoint or crash.

  • wtf/WeakHashSet.h: Updated to add a Counter argument for testing.
  • wtf/WeakPtr.h: Removed the DID_CREATE_WEAK_PTR_IMPL and

WILL_DESTROY_WEAK_PTR_IMPL macros, which didn't really work because
using them violated the C++ one-definition rule. Replaced with
a Counter argument, which defaults to EmptyCounter, which is inlines
that do nothing. This required some updates to the classes and
functions to make them work with a second argument.

Tools:

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp: Removed use of the DID_CREATE_WEAK_PTR_IMPL

and WILL_DESTROY_WEAK_PTR_IMPL, which didn't work consistently because of the
one-definition rule. Instead, this file parameterizes the WeakPtr family of
class templates with a counter class. To avoid having to rewrite test code, used
alias templates to insert these class template into the TestWebKitAPI namespace,
hiding the class templates from the WTF namespace.

10:08 AM Changeset in webkit [261817] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/hidpi/filters-and-image-buffer-resolution.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208543

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Remove flaky expectation.
9:41 AM Changeset in webkit [261816] by Peng Liu
  • 3 edits in trunk/Tools

[iPad Simulator] TestWebKitAPI.WebKitLegacy.ScrollingDoesNotPauseMedia is timing out
https://bugs.webkit.org/show_bug.cgi?id=211792

Reviewed by Daniel Bates.

Fix deadlocks in two API tests (only reproducible on iPad simulators).

  • TestWebKitAPI/Tests/WebKitLegacy/ios/PreemptVideoFullscreen.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollingDoesNotPauseMedia.mm:

(TestWebKitAPI::TEST):

9:23 AM Changeset in webkit [261815] by Wenson Hsieh
  • 16 edits
    2 adds in trunk

Single selection <select> with <optgroups> shows multiple selected options
https://bugs.webkit.org/show_bug.cgi?id=199485
<rdar://problem/52757531>

Reviewed by Megan Gardner.

Source/WebKit:

Fixes a long-standing bug in WKMultipleSelectPicker. Prior to this patch, we rely on the delegate method
-pickerView:row:column:checked: to be called twice whenever an item is selected: one time for the item that is
no longer checked, and another for the newly checked item. This method is responsible for updating the cached
FocusedElementInformation that determines the data model for the select menu, with the expectation that the
unchecked item would be updated to have isSelected = false;, and the new checked item would have isSelected
= true;.

However, -pickerView:row:column:checked: is only called for visible item cells. This means that if the user
checks an item, scrolls the select menu items down so that the checked item is offscreen, and then checks a
different item, we only get notified that the new item is checked, and as a result, fail to uncheck the previous
item.

To address this, tweak our logic for handling a single select so that when an item is checked, we additionally
update the previously checked item to not be selected. Also, fix what seems to be a bug in the logic for
updating _singleSelectionIndex, which is currently updated even when the item is unchecked. It seems to work
out at the moment, because -pickerView:row:column:checked: seems to be called with checked := YES after the
previous item was unchecked (assuming that it was visible).

Test: fast/forms/ios/no-stale-checked-items-in-select-picker.html

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView selectFormAccessoryHasCheckedItemAtRow:]):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView selectFormAccessoryHasCheckedItemAtRow:]):

Add plumbing for a new testing hook.

  • UIProcess/ios/forms/WKFormSelectControl.h:
  • UIProcess/ios/forms/WKFormSelectControl.mm:

(-[WKFormSelectControl selectFormAccessoryHasCheckedItemAtRow:]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
(-[WKMultipleSelectPicker pickerView:row:column:checked:]):
(-[WKMultipleSelectPicker selectRow:inComponent:extendingSelection:]):

Also, fix an existing bug in this testing helper method that crashed the test runner due to calling an
unimplemented selector. Instead of trying to invoke -pickerView:didSelectRow:inComponent:, we should be using
-pickerView:row:column:checked: instead for multiple select pickers (which, somewhat confusingly, are still
used for single select elements that have optgroups.)

(-[WKMultipleSelectPicker selectFormAccessoryHasCheckedItemAtRow:]):

Tools:

Add a new helper method to check whether the currently presented form accessory is a select menu, and has a
checked menu item at the given row.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::selectFormAccessoryHasCheckedItemAtRow const):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::selectFormAccessoryHasCheckedItemAtRow const):

LayoutTests:

Add a layout test to verify that we don't leave behind a checked select item after scrolling it offscreen and
then checking a different item.

  • fast/forms/ios/no-stale-checked-items-in-select-picker-expected.txt: Added.
  • fast/forms/ios/no-stale-checked-items-in-select-picker.html: Added.
  • platform/ipad/TestExpectations:
  • resources/ui-helper.js:

(window.UIHelper.selectFormAccessoryPickerRow):
(window.UIHelper.selectFormAccessoryHasCheckedItemAtRow):

9:20 AM Changeset in webkit [261814] by commit-queue@webkit.org
  • 2 edits in trunk

[GTK] Allow gtk-doc and introspection in cross builds
https://bugs.webkit.org/show_bug.cgi?id=212026

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-18
Reviewed by Adrian Perez de Castro.

Stop disabling these options in cross builds.

  • Source/cmake/OptionsGTK.cmake:
9:04 AM Changeset in webkit [261813] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

webrtc/datachannel/bufferedAmountLowThreshold.html is failing flakily
https://bugs.webkit.org/show_bug.cgi?id=211953

Reviewed by Eric Carlson.

  • webrtc/datachannel/bufferedAmountLowThreshold-default.html:

Update test to make it more readable and robust, following changes made to webrtc/datachannel/bufferedAmountLowThreshold.html.

  • webrtc/datachannel/bufferedAmountLowThreshold.html:

Split the tests in two parts to more easily debug which part (connection setup or sending lots of data) might time out.
Make sure to not send too much data by sending only one burst of data.

8:23 AM Changeset in webkit [261812] by Wenson Hsieh
  • 13 edits
    2 adds in trunk

[iOS] Unexpected capitalization of next word after repositioning caret
https://bugs.webkit.org/show_bug.cgi?id=211969
<rdar://problem/62605526>

Reviewed by Alex Christensen.

Source/WebKit:

The changes in r242551 refactored synchronous autocorrection context request logic such that it uses
waitForAndDispatchImmediately instead of sendSync, in order to make it interruptible by unbounded sync IPC
sent from the web process. If the UI process receives sync IPC, it will immediately cancel the autocorrection
context request (returning an empty context), before proceeding to handle the incoming sync IPC.

In a more recent version of iOS, other changes around spellchecking have caused the synchronous message
WebPageProxy::checkTextOfParagraph to be sent from the web process in such a way that it now frequently
coincides with the synchronous autocorrection context request being sent from the UI process. The result is that
we now frequently end up cancelling autocorrection requests early by responding with empty contexts. This
manifests in the keyboard sometimes losing information about its autocapitalization context and believing that
it is in an empty text field, which reverts to default autocorrection suggestions and autocapitalizes the
software keyboard.

To fix this, instead of using the InterruptWaitingIfSyncMessageArrives option when waiting for the IPC
response, add and use a new flag that allows us to process an incoming sync IPC message if we're waiting for
the sync message response. We use this new IPC flag when waiting synchronously for HandleAutocorrectionContext.

Test: editing/selection/ios/changing-selection-does-not-trigger-autocapitalization.html

  • Platform/IPC/Connection.cpp:

(IPC::Connection::processIncomingMessage):

If the new IPC flag is set and the incoming message is synchronous, allow it to immediately dispatch the sync
message by enqueueing it and then waking up m_waitForMessageCondition so that it can process the message.

  • Platform/IPC/Connection.h:
  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

Use DispatchIncomingSyncMessagesWhileWaiting instead of InterruptWaitingIfSyncMessageArrives.

Tools:

Add a new UIScriptController hook to query whether or not the software keyboard is in shifted state.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::keyboardIsAutomaticallyShifted const):

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

Adjust a couple of API tests that copy and paste back-to-back, so that they wait for the copy to finish before
attempting to paste.

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::keyboardIsAutomaticallyShifted const):

LayoutTests:

Add a new layout test to verify that the keyboard does not automatically shift (i.e. autocapitalize) when
changing selection quickly inside a text field.

  • editing/selection/ios/changing-selection-does-not-trigger-autocapitalization-expected.txt: Added.
  • editing/selection/ios/changing-selection-does-not-trigger-autocapitalization.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.keyboardIsAutomaticallyShifted):

8:00 AM Changeset in webkit [261811] by Lauro Moura
  • 5 edits in trunk/Source/WebKit

webkitpy: Update test data after r261776
https://bugs.webkit.org/show_bug.cgi?id=212008

Reviewed by Alex Christensen.

Covered by existing tests.

  • Scripts/test-legacyMessageReceiver.cpp:
  • Scripts/test-legacyMessages.h:

(Messages::WebPage::DidCreateWebProcessConnection::DidCreateWebProcessConnection):

  • Scripts/webkit/messages_unittest.py:
  • Scripts/webkit/test-legacy.messages.in:
7:01 AM Changeset in webkit [261810] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][TFC] Add support for computing the collapsed table border
https://bugs.webkit.org/show_bug.cgi?id=212003

Reviewed by Antti Koivisto.

UAs must compute an initial left and right border width for the table by examining
the first and last cells in the first row of the table.
The left border width of the table is half of the first cell's collapsed left border,
and the right border width of the table is half of the last cell's collapsed right border.
The top border width of the table is computed by examining all cells who collapse their top
borders with the top border of the table. The top border width of the table is equal to half of the
maximum collapsed top border. The bottom border width is computed by examining all cells whose bottom borders collapse
with the bottom of the table. The bottom border width is equal to half of the maximum collapsed bottom border.

https://www.w3.org/TR/CSS22/tables.html#collapsing-borders

This patch implements the table box part of the border collapsing. Inner table elements need to implement collapsing as well.

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::ensureTableFormattingState):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::layoutTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeBorderAndPaddingForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableFormattingState.cpp:

(WebCore::Layout::TableFormattingState::TableFormattingState):

  • layout/tableformatting/TableFormattingState.h:
5:07 AM Changeset in webkit [261809] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Gardening, update test expectations after r261779
https://bugs.webkit.org/show_bug.cgi?id=212021

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
4:37 AM Changeset in webkit [261808] by Paulo Matos
  • 4 edits in trunk

JSTests:
Skip stress test array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js on MIPS

Unreviewed Gardening.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:

LayoutTests:
Skip layout test stack-overflow-regexp.js on MIPS

Unreviewed Gardening.

  • js/script-tests/stack-overflow-regexp.js:
4:25 AM Changeset in webkit [261807] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.1

WebKitGTK 2.29.1

4:24 AM Changeset in webkit [261806] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.1 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.1.
3:29 AM Changeset in webkit [261805] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Clean up media controls content for Apple platforms
https://bugs.webkit.org/show_bug.cgi?id=212011
<rdar://problem/63298588>

Patch by Antoine Quint <Antoine Quint> on 2020-05-18
Reviewed by Dean Jackson.

We strip Copyright and other comments from the CSS and JS media controls files.

  • WebCore.xcodeproj/project.pbxproj:
3:03 AM Changeset in webkit [261804] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Move iOS files from Source/WebKit/Sources.txt to Source/WebKit/SourcesCocoa.txt
https://bugs.webkit.org/show_bug.cgi?id=212014

Unreviewed. Move platform specific files to the platform sources file.

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-05-18

  • Sources.txt:
  • SourcesCocoa.txt:
2:09 AM Changeset in webkit [261803] by aboya@igalia.com
  • 4 edits in trunk

Source/WebCore:
[GStreamer][MediaSource] Remove orphaned tracks in updateTracks()
https://bugs.webkit.org/show_bug.cgi?id=211980

Reviewed by Xabier Rodriguez-Calvar.

This patch ensures tracks missing from a subsequent updateTracks()
calls are removed from the player.

This fixes regressions on the following tests caused on r261683.

imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html
imported/w3c/web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::hashSetFromHashMapKeys):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):

LayoutTests:
[GStreamer] Remove orphaned tracks in updateTracks()
https://bugs.webkit.org/show_bug.cgi?id=211980

Reviewed by Xabier Rodriguez-Calvar.

Updated test expectations.

  • platform/gtk/TestExpectations:
1:37 AM Changeset in webkit [261802] by Carlos Garcia Campos
  • 33 edits
    2 deletes in trunk/Source

[GTK] "ASSERTION FAILED: !m_adoptionIsRequired" when double clicking on a word
https://bugs.webkit.org/show_bug.cgi?id=211957

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Make SelectionData non-refcounted. We can just move in most of the cases to avoid copies.

  • platform/Pasteboard.h:
  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::selectionData const):

  • platform/gtk/SelectionData.h:

Source/WebKit:

Remove WebSelectionData wrapper since we can just encode/decode WebCore::SelectionData.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::ArgumentCoder<SelectionData>::decode): Use modern decoder.

  • Shared/gtk/ArgumentCodersGtk.h:
  • Shared/gtk/WebSelectionData.cpp: Removed.
  • Shared/gtk/WebSelectionData.h: Removed.
  • SourcesGTK.txt:
  • UIProcess/API/gtk/DragSource.h:
  • UIProcess/API/gtk/DragSourceGtk3.cpp:

(WebKit::DragSource::DragSource):
(WebKit::DragSource::begin):

  • UIProcess/API/gtk/DragSourceGtk4.cpp:

(WebKit::DragSource::begin):

  • UIProcess/API/gtk/DropTarget.h:
  • UIProcess/API/gtk/DropTargetGtk3.cpp:

(WebKit::DropTarget::accept):
(WebKit::DropTarget::enter):
(WebKit::DropTarget::update):
(WebKit::DropTarget::leaveTimerFired):
(WebKit::DropTarget::drop):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::startDrag):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseStartDrag):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::startDrag):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/gtk/Clipboard.h:
  • UIProcess/gtk/ClipboardGtk3.cpp:

(WebKit::WriteAsyncData::WriteAsyncData):
(WebKit::Clipboard::write):

  • UIProcess/gtk/ClipboardGtk4.cpp:

(WebKit::Clipboard::write):

  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::writeToClipboard):
(WebKit::WebPasteboardProxy::writeCustomData):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::writeToClipboard):

  • WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:

(WebKit::WebDragClient::startDrag):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performDragControllerAction):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
1:14 AM Changeset in webkit [261801] by zandobersek@gmail.com
  • 1 edit
    19 adds in trunk/LayoutTests

Unreviewed WPE gardening. Providing custom baselines for tests
that require them.

  • platform/wpe/crypto: Added.
  • platform/wpe/crypto/subtle: Added.
  • platform/wpe/crypto/subtle/ecdh-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey-expected.txt: Added.
  • platform/wpe/crypto/subtle/ecdsa-import-pkcs8-key-p521-validate-ecprivatekey-parameters-publickey-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext: Added.
  • platform/wpe/fast/layoutformattingcontext/flow-integration-basic-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-basic-row-baseline-align-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-basic-row-baseline-with-nested-table-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-basic-row-vertical-align-baseline-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-fixed-width-colspans-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-fixed-width-with-max-distribution-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-flex-width-border-collapse-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-flex-width-colspans-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content-expected.txt: Added.
  • platform/wpe/fast/layoutformattingcontext/table-with-column-spanner-first-row-expected.txt: Added.
  • platform/wpe/webgl/1.0.3: Added.
  • platform/wpe/webgl/1.0.3/conformance: Added.
  • platform/wpe/webgl/1.0.3/conformance/context: Added.
  • platform/wpe/webgl/1.0.3/conformance/context/methods-expected.txt: Added.
12:37 AM Changeset in webkit [261800] by commit-queue@webkit.org
  • 11 edits in trunk

[GTK] Add WebKitContextMenuItemType for paste as plaintext
https://bugs.webkit.org/show_bug.cgi?id=177638

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-05-18
Reviewed by Michael Catanzaro.

Source/WebCore:

Add paste as plain text context menu item for rich editable content.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.h:
  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::contextMenuItemTagPasteAsPlainText):

Source/WebKit:

Add WEBKIT_CONTEXT_MENU_ACTION_PASTE_AS_PLAIN_TEXT.

  • Shared/API/glib/WebKitContextMenuActions.cpp:

(webkitContextMenuActionGetActionTag):
(webkitContextMenuActionGetForContextMenuItem):
(webkitContextMenuActionGetLabel):

  • UIProcess/API/gtk/WebKitContextMenuActions.h:
  • UIProcess/gtk/KeyBindingTranslator.cpp:

Tools:

Update default context menu test case to also test the context menu for rich editable content.

  • TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:

(prepareContextMenuTestView):
(testContextMenuDefaultMenu):

12:24 AM Changeset in webkit [261799] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening.

  • platform/wpe/TestExpectations:

Remove the imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements
flaky-crash expectation. The reported crashes are not occurring anymore. Furthermore,
the whole subdirectory is skipped globally, so this expectation is re-enabling all
the tests that in majority time out, prolonging the testing.

May 17, 2020:

10:37 PM Changeset in webkit [261798] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, link fix for our internal Debug build

  • heap/AlignedMemoryAllocator.cpp:
10:15 PM Changeset in webkit [261797] by Lauro Moura
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Silence unused-but-set-parameter warnings for older compilers
https://bugs.webkit.org/show_bug.cgi?id=212006

Reviewed by Mark Lam.

GCC up to 9.x will emit unused-but-set-parameter for the sources
parameter when NumberOfRegisters is zero (the if block is eliminated)
and for destinations when also ASSERT_ENABLED is false.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupStubArgs):

9:14 PM Changeset in webkit [261796] by dbates@webkit.org
  • 4 edits in trunk/LayoutTests

Make editing-word-with-marker-1.html work on iOS
https://bugs.webkit.org/show_bug.cgi?id=211814

Reviewed by Simon Fraser and David Kilzer.

Minimal changes needed to make the test work on iOS + rebase the results. I was tempted to go
full js-test.js conversion, but I didn't do so to reduce the risk I introduce a bug and I think
is good enough.

To make the test work on iOS I enable internals.setContinuousSpellCheckingEnabled() + use UIHelper
to activate the textarea + blur the textarea on reset (for maximal code reuse). I didn't enable this
via the WKTR option spellCheckingDots because this test should be capable of running in DumpRenderTree
though we don't actually run DumpRenderTree for iOS on any bots. So, I did this largely for just for me.

  • editing/mac/spelling/editing-word-with-marker-1-expected.txt:
  • editing/mac/spelling/editing-word-with-marker-1.html:
  • platform/ios/TestExpectations: Temporarily mark this test as PASS here so that iOS runs it even

though its in a Mac-specific directory. I will remove this entry when I move the test to editing/spelling
in the fix for <https://webkit.org/b/211802>.

12:42 PM Changeset in webkit [261795] by aestes@apple.com
  • 2 edits in trunk/LayoutTests

http/tests/ssl/applepay/ApplePayInstallmentConfiguration.https.html fails in public SDK builds
https://bugs.webkit.org/show_bug.cgi?id=212000

  • platform/mac-wk2/TestExpectations: Skipped test on Catalina.
12:28 PM Changeset in webkit [261794] by Simon Fraser
  • 9 edits in trunk

Fix operator== and hash() for ExtendedColor
https://bugs.webkit.org/show_bug.cgi?id=211993

Reviewed by Sam Weinig.

Source/WebCore:

Color::operator== and hash() were wrong for extended color. Fix operator==
to compare extended colors. Extended and non-extended colors have to always
conpare as non-equal to preserve computed style behavior, currently.

Fix hash() to hash the color components and colorspace for ExtendedColor.

Add some API tests for these code paths.

  • platform/graphics/Color.cpp:

(WebCore::extendedColorsEqual):

  • platform/graphics/Color.h:

(WebCore::operator==):
(WebCore::Color::hash const):

  • platform/graphics/ColorUtilities.cpp:

(WebCore::areEssentiallyEqual):

  • platform/graphics/ColorUtilities.h:

(WebCore::operator==):
(WebCore::operator!=):

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::hash const):

  • platform/graphics/ExtendedColor.h:

(WebCore::operator==):
(WebCore::operator!=):

Tools:

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):

9:17 AM Changeset in webkit [261793] by Alan Bujtas
  • 9 edits
    3 adds in trunk/Source/WebCore

[LFC][BFC] Introduce TableWrapperBlockFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=211996

Reviewed by Antti Koivisto.

Table wrapper box establishes a special BFC with only captions and the actual table box in it.
It mostly behaves like a normal BFC but the table box requires some special handing when it comes
to padding/border and width/height computation.
This patch moves the table box specific code from generic BFC to this new subclass.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/FormattingContext.h:
  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::createFormattingContext):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:

(): Deleted.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp: Added.

(WebCore::Layout::TableWrapperBlockFormattingContext::TableWrapperBlockFormattingContext):
(WebCore::Layout::TableWrapperBlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableWrapperBlockFormattingContext::layoutTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.h: Added.
1:35 AM Changeset in webkit [261792] by Carlos Garcia Campos
  • 19 edits
    1 add in trunk

[GTK] Move to new Pasteboard API
https://bugs.webkit.org/show_bug.cgi?id=177633

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add support for custom data and remove the support for unknown data types that is currently unused.

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard): Set the contentOrigin.

  • editing/gtk/WebContentReaderGtk.cpp:

(WebCore::shouldReplaceSubresourceURL): Helper to decide whether to replace the subresource URL.
(WebCore::WebContentMarkupReader::readHTML): Create a fragment for HTML sanitizing it if needed.

  • platform/Pasteboard.h:
  • platform/PasteboardCustomData.h:

(WebCore::PasteboardCustomData::gtkType): Mime type name for GTK custom pasteboard data.

  • platform/SharedBuffer.h:
  • platform/glib/SharedBufferGlib.cpp:

(WebCore::SharedBuffer::createGBytes const): Create a GBytes wrapping the SharedBuffer data.

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::writeString):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::hasData):
(WebCore::Pasteboard::typesSafeForBindings):
(WebCore::Pasteboard::typesForLegacyUnsafeBindings):
(WebCore::Pasteboard::readOrigin):
(WebCore::Pasteboard::readString):
(WebCore::Pasteboard::readStringInCustomData):
(WebCore::Pasteboard::fileContentState):
(WebCore::Pasteboard::writeCustomData):

  • platform/gtk/SelectionData.cpp:

(WebCore::SelectionData::clearAllExceptFilenames):

  • platform/gtk/SelectionData.h:

(WebCore::SelectionData::setCustomData):
(WebCore::SelectionData::customData const):
(WebCore::SelectionData::hasCustomData const):
(WebCore::SelectionData::clearCustomData):

Source/WebKit:

Enable custom pasteboard data.

  • Shared/WebPreferencesDefaultValues.h:
  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::ArgumentCoder<SelectionData>::encode):
(IPC::ArgumentCoder<SelectionData>::decode):

  • UIProcess/WebPasteboardProxy.cpp:
  • UIProcess/gtk/ClipboardGtk3.cpp:

(WebKit::Clipboard::write): Add support for writing URI list and custom data.

  • UIProcess/gtk/ClipboardGtk4.cpp:

(WebKit::Clipboard::write): Ditto.

  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):

LayoutTests:

Update text expectations.

  • platform/gtk/TestExpectations:
  • platform/gtk/editing/pasteboard/data-transfer-get-data-on-paste-rich-text-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.