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

Timeline



Mar 25, 2021:

11:57 PM Changeset in webkit [275081] by Cameron McCormack
  • 2 edits in trunk/Tools

Avoid calling xcodebuild -showsdks where possible.
https://bugs.webkit.org/show_bug.cgi?id=223727

Reviewed by Sam Weinig.

run-minibrowser needs to know what port it's running on, since that
affects the build directory to look in to find the MiniBrowser binary.
On macOS, webkitdirs.pm's determinePortName ends up running
xcodebuild -showsdks to see if the current SDK has an internal
variant available, but this is slow. But we don't need to know the
exact SDK name here, just the SDK platform name, to determine the
port name.

So we shuffle some code around to avoid calling xcodebuild -showsdks
where we can. This reduces the time spent in run-minibrowser before
MiniBrowser is launched (crudely measured with `time run-minibrowser
--help`) from 2s to 0.6s on this machine.

  • Scripts/webkitdirs.pm:

(readXcodeUserDefault):
(determineArchitecture):
(argumentsForConfiguration):
(availableXcodeSDKs):
(isValidXcodeSDKPlatformName):
(determineXcodeSDKPlatformName):
(determineXcodeSDK):
(xcodeSDKPlatformName):
(determinePortName):

11:34 PM Changeset in webkit [275080] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
10:25 PM Changeset in webkit [275079] by sbarati@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

validate untagArrayPtr
https://bugs.webkit.org/show_bug.cgi?id=214953
<rdar://problem/66391434>

Reviewed by Mark Lam.

This patch adds validation to untagArrayPtr along paths where we don't
immediately store/load from the result.

This patch also changes the removeArrayPtrTag macro assembler function to
use a bitwise and instead of xpacd to strip the tag, because it's faster.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::untagArrayPtr):
(JSC::MacroAssemblerARM64E::removeArrayPtrTag):

  • assembler/testmasm.cpp:

(JSC::testCagePreservesPACFailureBit):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::untagArrayPtr):
(JSC::FTL::DFG::LowerDFGToB3::caged):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::cageWithoutUntagging):
(JSC::AssemblyHelpers::cageConditionallyAndUntag):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::cageWithoutUntagging): Deleted.
(JSC::AssemblyHelpers::cageConditionally): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCallIndirect):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

10:24 PM Changeset in webkit [275078] by achristensen@apple.com
  • 17 edits in trunk

Allow WKContentRuleList to block only in frames or only in main frame
https://bugs.webkit.org/show_bug.cgi?id=219001
Source/WebCore:

<rdar://problem/71382045>

Reviewed by Ben Poulain.

This adds load-context to the trigger, which can have an array containing main-frame or iframe.
This makes the trigger only happen in such loading contexts.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::populateConditionCacheIfNeeded):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::getTypeFlags):
(WebCore::ContentExtensions::loadTrigger):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):

  • loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::toResourceType):
(WebCore::ContentExtensions::readResourceType):
(WebCore::ContentExtensions::readLoadType):
(WebCore::ContentExtensions::readLoadContext):
(WebCore::ContentExtensions::ResourceLoadInfo::getResourceFlags const):

  • loader/ResourceLoadInfo.h:

Source/WebKit:

Reviewed by Ben Poulain.

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::getContentRuleListSource):

  • UIProcess/API/APIContentRuleListStore.h:

Tools:

Reviewed by Ben Poulain.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

10:09 PM Changeset in webkit [275077] by Megan Gardner
  • 13 edits in trunk/Source

Have App Highlights be a Configuration Setting instead of an internal Preference setting.
https://bugs.webkit.org/show_bug.cgi?id=223720
rdar://75196085

Reviewed by Wenson Hsieh.

Source/WebKit:

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultAppHighlightsEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setAppHighlightsEnabled:]):
(-[WKWebViewConfiguration _appHighlightsEnabled]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.h:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
  • Scripts/Preferences/WebPreferencesInternal.yaml:
8:27 PM Changeset in webkit [275076] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

Don't add -webkit-user-select: none; on image elements with draggable=true
https://bugs.webkit.org/show_bug.cgi?id=223774
<rdar://problem/75860124>

Reviewed by Tim Horton.

Source/WebCore:

Avoid adding this presentational CSS style property for image elements marked with draggable=true. Since
image elements are already draggable by default and mouse drags over image elements do not trigger text
selection, it's not necessary for the user agent to add this style property. See below for more details.

Test: fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::collectStyleForPresentationAttribute):

If the element is already draggable (barring HTML attributes), don't additionally disable text selection inside
the element when we additionally have draggable=true set on the element.

(WebCore::HTMLElement::draggable const):

Refactor this to consult isDraggableIgnoringAttributes() when determining whether to check if the draggable
attribute value is not "false" vs. equal to "true". In the case where the element is already draggable, we
only return false here if draggable=false is explicitly set.

  • html/HTMLElement.h:

(WebCore::HTMLElement::isDraggableIgnoringAttributes const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::draggable const): Deleted.

  • html/HTMLImageElement.h:

Override isDraggableIgnoringAttributes and return true.

LayoutTests:

  • fast/images/image-extraction/mac/select-word-in-draggable-image-overlay-expected-mismatch.html: Added.
  • fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html: Added.
8:20 PM Changeset in webkit [275075] by dino@apple.com
  • 2 edits in trunk/LayoutTests

[Metal ANGLE] fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays.html causes GPURestarts on some machines
https://bugs.webkit.org/show_bug.cgi?id=223767

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Darin Adler.

Avoid GPURestarts on Intel machines by reducing test workload. The
core of this test, using default generic attributes, is still in
place.

  • fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays.html:
8:13 PM Changeset in webkit [275074] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

ANGLE Metal crash ASAN webgl/1.0.3/conformance/misc/object-deletion-behaviour.html
https://bugs.webkit.org/show_bug.cgi?id=223739

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Dean Jackson.

Previously, ANGLE would try to read color attachments off of the
cached render targets. However, since validation happens before
state sync, the cached render targets may be out of date.

For non-surface backed render targets, we instead get a fresh copy
of the render target when determening the native pixel format.

  • src/libANGLE/renderer/metal/FrameBufferMtl.h:
  • src/libANGLE/renderer/metal/FrameBufferMtl.mm:

(rx::FramebufferMtl::getImplementationColorReadFormat const):
(rx::FramebufferMtl::getColorReadRenderTargetNoCache const):

8:09 PM Changeset in webkit [275073] by dino@apple.com
  • 5 edits in trunk/Source/ThirdParty/ANGLE

[Metal ANGLE] Add CPU mipmap generation for workaround on Intel devices.
https://bugs.webkit.org/show_bug.cgi?id=223778

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-25
Reviewed by Dean Jackson.

Mipmap generation on Intel does not reliably work for textures with
width less than four. To reliably pass webGL conformance, we need
to switch to CPU mipmap generation when generating mipmaps in this
specific circumstance.

This patch fixes the following four tests on Intel
webgl/1.0.3/conformance/limits/gl-max-texture-dimensions.html
webgl/1.0.3/conformance/textures/texture-size.html
webgl/2.0.0/conformance/limits/gl-max-texture-dimensions.html
webgl/2.0.0/conformance/textures/misc/texture-size.html

  • include/platform/Feature.h:

(angle::FeatureCategoryToString):

  • include/platform/FeaturesMtl.h:
  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::initializeFeatures):

  • src/libANGLE/renderer/metal/TextureMtl.mm:

(rx::TextureMtl::generateMipmap):

7:27 PM Changeset in webkit [275072] by Wenson Hsieh
  • 14 edits
    1 add in trunk

It should be possible to drag images with overlay content
https://bugs.webkit.org/show_bug.cgi?id=223766
<rdar://problem/75856030>

Reviewed by Tim Horton.

Source/WebCore:

Make a few minor adjustments to make drag and drop play well with images with overlay content. See below for
more details.

Test: DragAndDropTests.DragElementWithImageOverlay

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::isInsideImageOverlay):

Add a helper method to return whether an individual DOM node is inside an image overlay. Use this in the
existing version of this method that takes a SimpleRange.

  • html/HTMLElement.h:
  • page/DragController.cpp:

(WebCore::DragController::draggableElement const):

Skip all drag source actions except for Selection in the case where we're hit-testing to text inside of an
image overlay.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):

Make isMouseDownOnLinkOrImage false in the case where we're over image overlay text.

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::nodeForImageData const):
(WebCore::HitTestResult::image const):
(WebCore::HitTestResult::imageRect const):
(WebCore::HitTestResult::absoluteImageURL const):

Teach HitTestResult to skip out of image overlay content and find the actual image element when determining
the image URL, image, or image rect.

  • rendering/HitTestResult.h:

Tools:

Add an API test to verify that the top part of the image (with an overlay) doesn't trigger a dragstart when
dragged, but the bottom part of the image does.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/simple-image-overlay.html: Added.

Add a test page that installs an image overlay for testing purposes (assuming that the web view injects the
global internals object).

  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
  • TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
  • TestWebKitAPI/cocoa/DragAndDropSimulator.h:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator containsDraggedType:]):

Add a helper method to return whether or not the simulated drag resulted in the given type being written to the
"drag pasteboard" (in the case of iOS, this just means any of the source item providers).

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):

Make a minor adjustment to ensure that the drag pasteboard is cleared out before starting a simulated drag.

(-[DragAndDropSimulator containsDraggedType:]):

6:29 PM Changeset in webkit [275071] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur Debug ] http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-redirect.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223759

Unreviewed test gardening.

  • platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
6:29 PM Changeset in webkit [275070] by commit-queue@webkit.org
  • 38 edits in trunk/Source

Remove 10.13 DEPLOYMENT_TARGETs and SYSTEM_VERSION_PREFIXs
https://bugs.webkit.org/show_bug.cgi?id=223765

Patch by Jessie Berlin <jberlin@webkit.org> on 2021-03-25
Reviewed by Tim Horton.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Version.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Version.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Version.xcconfig:

Source/WebCore:

  • Configurations/Version.xcconfig:

Source/WebCore/PAL:

  • Configurations/Version.xcconfig:

Source/WebInspectorUI:

  • Configurations/Version.xcconfig:

Source/WebKit:

  • Configurations/Version.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Version.xcconfig:
6:08 PM Changeset in webkit [275069] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS ] media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=223761

Unreviewed test gardening.

  • platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
5:22 PM Changeset in webkit [275068] by Said Abou-Hallawa
  • 5 edits in trunk/Source/WebKit

[GPU Process] Turn GPU process rendering for 2D canvas on by default
https://bugs.webkit.org/show_bug.cgi?id=223772
<rdar://75799739>

Reviewed by Tim Horton.

Enable the 'gpu_process_canvas_rendering' feature flag.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
5:09 PM Changeset in webkit [275067] by Alan Bujtas
  • 7 edits
    2 adds in trunk

Source/WebCore:
[RenderTreeBuilder] Do not try to normalize the tree while destroying the multicolumn flow
https://bugs.webkit.org/show_bug.cgi?id=223722
<rdar://75731256>

Reviewed by Simon Fraser.

Test: fast/multicol/crash-while-destroying-the-column-context.html

This patch ensures that we don't start moving around parts of the fragmented flow subtree (e.g. collapsing anonymous blocks) while
trying place the spanner renderers back to their original positions as part of the "we don't need multicolumn context anymore".
(e.g spanner placeholder is removed -> triggers anon block collapsing -> moves subtrees around inside the multicolumn subtree -> insertion happens -> spanner placeholder gets re-validated)

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroy):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::detach):

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::handleSpannerRemoval):
(WebCore::RenderTreeBuilder::MultiColumn::multiColumnRelativeWillBeRemoved):

  • rendering/updating/RenderTreeBuilderMultiColumn.h:

LayoutTests:
[RenederTreeBuilder] Do not try to normalize the tree while destroying the multicolumn flow
https://bugs.webkit.org/show_bug.cgi?id=223722
<rdar://75731256>

Reviewed by Simon Fraser.

  • fast/multicol/crash-while-destroying-the-column-context-expected.txt: Added.
  • fast/multicol/crash-while-destroying-the-column-context.html: Added.
4:35 PM Changeset in webkit [275066] by Andres Gonzalez
  • 10 edits
    4 adds in trunk

AX: Consider implementing @aria-details.
https://bugs.webkit.org/show_bug.cgi?id=165842
rdar://30725491

Reviewed by Chris Fleizach.

Source/WebCore:

Tests: accessibility/ios-simulator/aria-details.html

accessibility/mac/aria-details.html

  • Added [WebAccessibilityObjectWrapper accessibilityDetailsElements] on iOS.
  • Added helper function accessibleElementsForObjects to retrieve platform-

specific accessible elements given a collection of AXCoreObjects.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(accessibleElementsForObjects):
(-[WebAccessibilityObjectWrapper accessibilityDetailsElements]):
(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]):

Tools:

Added AccessibilityUIElement::detailsElements.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::detailsElements const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::detailsElements const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::detailsElements const):

LayoutTests:

  • accessibility/ios-simulator/aria-details-expected.txt: Added.
  • accessibility/ios-simulator/aria-details.html: Added.
  • accessibility/mac/aria-details-expected.txt: Added.
  • accessibility/mac/aria-details.html: Added.
  • platform/mac-wk1/TestExpectations:
4:10 PM Changeset in webkit [275065] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebDriver

[CMake] Use WebDriver_DERIVED_SOURCES value
https://bugs.webkit.org/show_bug.cgi?id=223760

Reviewed by Ross Kirsling.

Replace DERIVED_SOURCES_WEBDRIVER_DIR with WebDriver_DERIVED_SOURCES.

  • CMakeLists.txt:
3:47 PM Changeset in webkit [275064] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk/Source

Unreviewed, reverting r275057.
https://bugs.webkit.org/show_bug.cgi?id=223768

Caused build failure

Reverted changeset:

"Enforce notifyd message filtering"
https://bugs.webkit.org/show_bug.cgi?id=223601
https://trac.webkit.org/changeset/275057

2:51 PM Changeset in webkit [275063] by Truitt Savell
  • 2 edits in trunk/JSTests

Unreviewed, reverting r275056.

This is no longer needed

Reverted changeset:

"stress/early-return-from-builtin.js.default is failing on iOS
JSC testers"
https://commits.webkit.org/r275056

2:49 PM Changeset in webkit [275062] by Kate Cheney
  • 2 edits in trunk/Source/WTF

Some calls in AuthenticatorPresenterCoordinator::selectAssertionResponse are not yet available for mac
https://bugs.webkit.org/show_bug.cgi?id=223752
<rdar://problem/75808515>

Reviewed by Jiewen Tan.

  • wtf/PlatformHave.h:
2:48 PM Changeset in webkit [275061] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.161.1

Tag Safari-611.1.21.161.1.

2:45 PM Changeset in webkit [275060] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.161-branch/Source

Versioning.

WebKit-7611.1.21.161.1

2:45 PM Changeset in webkit [275059] by Cameron McCormack
  • 5 edits
    2 adds in trunk

Collapse newly adjacent anonymous table cells when a table cell is detached from between them.
https://bugs.webkit.org/show_bug.cgi?id=220934

Reviewed by Zalan Bujtas.

Source/WebCore:

We already had support for collapsing newly adjacent table row cells when a
table row cell is detached from between them. We need to do this for anonymous
table cells too.

Test: fast/table/table-anonymous-cell-collapse.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers): Call
into the RenderTreeBuilder::Table to collapse anonymous table cells when
needed.

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblings):
Factor out the existing collapseAndDestroyAnonymousSiblingRows into
something re-usable.
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingCells):
Added.
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
Factored out to collapseAndDestroyAnonymousSiblings.

  • rendering/updating/RenderTreeBuilderTable.h:

LayoutTests:

  • fast/table/table-anonymous-cell-collapse-expected.html: Added.
  • fast/table/table-anonymous-cell-collapse.html: Added.
2:34 PM Changeset in webkit [275058] by Russell Epstein
  • 1 copy in branches/safari-611.1.21.161-branch

New branch.

2:23 PM Changeset in webkit [275057] by pvollan@apple.com
  • 6 edits
    1 add in trunk/Source

Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Add Notify SPI file.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/NotifySPI.h: Added.

Source/WebKit:

Enable Notify filtering by setting Notify options before entering sandbox.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::compileAndApplySandboxSlowCase):

Source/WTF:

Add ENABLE define for Notify filtering.

  • wtf/PlatformEnableCocoa.h:
1:53 PM Changeset in webkit [275056] by Truitt Savell
  • 2 edits in trunk/JSTests

stress/early-return-from-builtin.js.default is failing on iOS JSC testers
rdar://75597901

Unreviewed test gardening.

  • stress/early-return-from-builtin.js:
1:46 PM Changeset in webkit [275055] by commit-queue@webkit.org
  • 5 edits in trunk

Source/WebCore:
Fix edge cases in normalization of conic-gradient color stops
https://bugs.webkit.org/show_bug.cgi?id=221294
<rdar://problem/74157218>

Patch by Tim Nguyen <ntim@apple.com> on 2021-03-25
Reviewed by Darin Adler.

lastOneOrLessIndex had an off-by-one error, so it did not go through the
branch handling clamping all the stop offsets when they're all above 1.

Also made normalizeStopsAndEndpointsOutsideRange logic easier to follow using
Optional<size_t> instead of placeholder values.

Test: web-platform-tests/css/css-images/normalization-conic-2.html

  • css/CSSGradientValue.cpp:

(WebCore::ConicGradientAdapter::normalizeStopsAndEndpointsOutsideRange):

LayoutTests:
Enable normalization-conic-2.html WPT now that underlying bug is fixed.
Also skip some conic-gradient tests only on Windows instead of all platforms.
https://bugs.webkit.org/show_bug.cgi?id=221294
<rdar://problem/74157218>

Patch by Tim Nguyen <ntim@apple.com> on 2021-03-25
Reviewed by Darin Adler.

  • TestExpectations: enabled imported/w3c/web-platform-tests/css/css-images/normalization-conic-2.html.
1:22 PM Changeset in webkit [275054] by Aditya Keerthi
  • 8 edits in trunk/Source/WebKit

[iOS] Date picker view jumps to center when switching between MobileSafari and another app
https://bugs.webkit.org/show_bug.cgi?id=223662
<rdar://problem/74748727>

Reviewed by Tim Horton.

Tapping on a date input presents a UIDatePicker inside of a
UIContextMenuInteraction. The presentation of context menus is
dependent on the _positionInformation in WKContentViewInteraction being
up-to-date.

To ensure the value is up-to-date, a position information request is
made prior to presenting the date picker. However, the location used
for the request is the current FocusedElementInformation's
lastInteractionLocation. This is fine in most cases, since the date
picker is usually present immediately after tapping on the date input.
However, the date picker can be closed and presented again when
switching between MobileSafari and another app, as the input is focused
again when MobileSafari is reopened. If the switch is performed using a
gesture, the last interaction location is modified. Consequently, the
last interaction location does not always correspond to the position
of the date input, and the position information request gives us
incorrect information, leading to incorrect presentation of the picker.

To fix, add a new way of presenting context menus that is not dependent
on position information. Instead, form controls can use the information
they already have in FocusedElementInformation to present their
peripherals.

No new tests, since this bug only reproduces when swiping to switch apps.
Other touches in the web view immediately dismiss the date picker, making
the bug difficult to reproduce in a test.

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/FocusedElementInformation.h:

Added a member to inform FocusedElementInformation whether the focused
element is in a subscrollable region.

See r248447 for more details on why this information is needed when
creating a UITargetedPreview.

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

(-[WKContentView overridePositionTrackingViewForTargetedPreviewIfNecessary:containerScrollingNodeID:]):

Factored out the logic that overrides the targeted preview's position
tracking view when the element is in a subscrollable region.

(-[WKContentView _createTargetedContextMenuHintPreviewForFocusedElement]):

Create a targeted preview using the current FocusedElementInformation.

(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]):

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker controlBeginEditing]):

Displaying the context menu no longer needs to be done asynchronously
since the FocusedElementInformation is already available during
controlBeginEditing.

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

Adopt the new logic for <select> elements, since the presented context
menu is an input peripheral, and can run into the same issues as the
date picker.

(-[WKSelectPicker controlBeginEditing]):
(-[WKSelectPicker contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::completeSyntheticClick):

Remove a redundant call to elementDidRefocus following r258333. The
FocusController already calls elementDidRefocus before this point, when
the mousepress event is dispatched.

The redundant call was uncovered when making the context menu
presentation synchronous, and causes problems with the presentation.
Specifically, the first call to elementDidRefocus causes the context
menu to be presented. The second call then results in an attempt
to scroll the web view, since the context menu can obscure the
assisted node. The additional scrolling is unwanted behavior, since it
does not occur when focusing the node for the first time.

This issue was previously unobserved, since the asynchronous presentation
of the context menu (after obtaining new position information) resulted
in both calls to elementDidRefocus occuring before presentation.

(WebKit::WebPage::getFocusedElementInformation):

Forward the scrolling node information to the UIProcess, so that the
position tracking view of the UITargetedPreview can be overridden
if necessary.

1:20 PM Changeset in webkit [275053] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WTF

Embiggen maximum HashTable size when not using ANGLE
https://bugs.webkit.org/show_bug.cgi?id=223757

Reviewed by Alex Christensen.

This is a partial revert of r274603 which cut the maximum size HashTable from 400 to 250.
When not using ANGLE directly for an OpenGL ES implementation there's some code hashing its
sh::ShaderVariable from the shader compiler ANGLE ships with. This type is too big and
triggers the static_assert.

The eventual goal is for ANGLE to be the OpenGL ES implementation for WebKit when enabling
WebGL. On PlayStation we already have a system OpenGL ES and any use of WebGL is in legacy
applications. The WebGL compliance features in ANGLE aren't needed in this case so ideally
we wouldn't even compile out ANGLE.

This patch punts on fixing the actual problem and just resolves this build issue.

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup):

12:57 PM Changeset in webkit [275052] by sbarati@apple.com
  • 2 edits in trunk/JSTests

early-return-from-builtin.js should try/catch in case of OOM
https://bugs.webkit.org/show_bug.cgi?id=223756

Reviewed by Yusuke Suzuki.

It's throwing an OOM on iOS.

  • stress/early-return-from-builtin.js:
12:16 PM Changeset in webkit [275051] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[ Debug wk2 ] ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
https://bugs.webkit.org/show_bug.cgi?id=223750

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Added test expectation to Pass Crash while test is reviewed.
  • platform/mac-wk2/TestExpectations: Updated test expectation to Pass Crash while test is reviewed.
11:54 AM Changeset in webkit [275050] by BJ Burg
  • 3 edits in trunk/Source/WebKit

SendKeys on Input of type=file returns element not found in some cases
https://bugs.webkit.org/show_bug.cgi?id=223028
<rdar://problem/75526126>

Reviewed by Devin Rousso.

This bizarre behavior is triggered by removing the <input type=file> element inside an onclick() handler
for the input element. This confuses safaridriver, which expects to be able to query the file input's .value
via JavaScript after setting the files.

As part of the fix, provide the list of selected filenames in the Automation.fileChooserDismissed event.
On the safaridriver side, just use the list of filenames provided in this event to avoid an extra JS evaluation
that may race with page content.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::handleRunOpenPanel):

11:47 AM Changeset in webkit [275049] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Address some alignment issues found by UBSan in contentextensions code
https://bugs.webkit.org/show_bug.cgi?id=223748

Reviewed by Darin Adler.

Address some alignment issues found by UBSan in contentextensions code:

  • contentextensions/SerializedNFA.h:55:20: runtime error: reference binding to misaligned address 0xnnnnnnnnn for type 'const unsigned long long', which requires 8 byte alignment
  • contentextensions/NFAToDFA.cpp:254:29: runtime error: reference binding to misaligned address 0xnnnnnnnnn for type 'const unsigned long long', which requires 8 byte alignment
  • contentextensions/DFABytecodeCompiler.cpp:43:5: runtime error: store to misaligned address 0xnnnnnnnnn for type 'unsigned short', which requires 2 byte alignment

Use memcpy() to store/load to/from misaligned address.

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::append):

  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::epsilonClosureExcludingSelf):
(WebCore::ContentExtensions::NodeIdSetToUniqueNodeIdSetTranslator::translate):

  • contentextensions/SerializedNFA.h:

(WebCore::ContentExtensions::SerializedNFA::Range::pointerAt const):
(WebCore::ContentExtensions::SerializedNFA::Range::valueAt const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator* const):
(WebCore::ContentExtensions::SerializedNFA::ConstTargetIterator::operator-> const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::first const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::last const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::data const):
(WebCore::ContentExtensions::SerializedNFA::ConstRangeIterator::range const):
(WebCore::ContentExtensions::SerializedNFA::transitionsForNode const):
(WebCore::ContentExtensions::SerializedNFA::Range::operator[] const): Deleted.

11:20 AM Changeset in webkit [275048] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Source/WebCore/xml/parser/CharacterReferenceParserInlines.h:107:33: runtime error: signed integer overflow: 268435455 * 16 cannot be represented in type 'int'
https://bugs.webkit.org/show_bug.cgi?id=223718

Reviewed by Darin Adler.

Use Checked<> for the result in consumeCharacterReference() to deal with overflows
in a well-defined manner.

  • xml/parser/CharacterReferenceParserInlines.h:

(WebCore::consumeCharacterReference):

10:36 AM Changeset in webkit [275047] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit
REGRESSION (r272376): [iOS] ASSERTION FAILED: sessionID.isEphemeral()
!path.isEmpty() in WebKit::NetworkProcess::swServerForSession

https://bugs.webkit.org/show_bug.cgi?id=222713

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by Geoff Garen.

Because NetworkProcess::CreateNetworkConnectionToWebProcess is sent with SendOption::DispatchMessageEvenWhenWaitingForSyncReply, it is possible
for two messages of type NetworkProcess::AddWebsiteDataStore and two messages of type NetworkProcess::CreateNetworkConnectionToWebProcess to be in the queue,
but the second NetworkProcess::CreateNetworkConnectionToWebProcess jumps to the front of the line while the UI process is waiting for the reply to the first.
Then, when calling NetworkProcess::swServerForSession we expect the session's parameters to have been initialized in the network process already, but we cut
ahead of the parameter initialization message. This is a realistically rare condition that can only be hit when using SPI, but it is hit in the
ResourceLoadStatistics.StoreSuspension API test. To fix this, we send the WebsiteDataStoreParameters from each WebsiteDataStore in the NetworkProcessCreationParameters.
To avoid doing extra work, we introduce an early return in NetworkProcessProxy::addSession if we have already added parameters from this session to the network process.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addSessionStorageQuotaManager):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):
(WebKit::NetworkProcessProxy::addSession):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parametersFromEachWebsiteDataStore):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
10:34 AM Changeset in webkit [275046] by wilander@apple.com
  • 60 edits in trunk

PCM: Rename attributeOn to attributionDestination and change the IDL data type of attributionSourceId to unsigned long
https://bugs.webkit.org/show_bug.cgi?id=223661
<rdar://problem/75762075>

Reviewed by Brent Fulgham.

The PR review of the update of the PCM spec lead WebKit, Mozilla, and Google to decide on two changes:

  1. Rename attributeOn to attributionDestination
  2. Change the IDL data type of attributionSourceId from DOMString to unsigned long

The spec change can be seen in this commit:
https://github.com/privacycg/private-click-measurement/pull/75/commits/8623b5df5e899e6652bc5b00313585f7eeafa797

Source/WebCore:

This patch makes those changes, plus changes names of SPIs, functions, and variables accordingly.

Existing tests were updated.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parsePrivateClickMeasurement const):

  • html/HTMLAnchorElement.idl:
  • html/HTMLAttributeNames.in:
  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::isValid const):
(WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL const):
(WebCore::PrivateClickMeasurement::attributionReportJSON const):

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::AttributionDestinationSite::AttributionDestinationSite):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::operator== const):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::deletedValue):
(WebCore::PrivateClickMeasurement::AttributionDestinationSite::constructDeletedValue):
(WebCore::PrivateClickMeasurement::AttributionDestinationSiteHash::hash):
(WebCore::PrivateClickMeasurement::AttributionDestinationSiteHash::equal):
(WebCore::PrivateClickMeasurement::PrivateClickMeasurement):
(WebCore::PrivateClickMeasurement::destinationSite const):
(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::emptyValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::constructDeletedValue):
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributionDestinationSite>::isDeletedValue):
(WebCore::PrivateClickMeasurement::AttributeOnSite::AttributeOnSite): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::operator== const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::matches const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::isHashTableDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::deletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::constructDeletedValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::deleteValue): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSite::isDeletedValue const): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::hash): Deleted.
(WebCore::PrivateClickMeasurement::AttributeOnSiteHash::equal): Deleted.
(WebCore::PrivateClickMeasurement::attributeOnSite const): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::emptyValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::constructDeletedValue): Deleted.
(WTF::HashTraits<WebCore::PrivateClickMeasurement::AttributeOnSite>::isDeletedValue): Deleted.

Source/WebKit:

This patch makes those changes, plus changes names of SPIs, functions, and variables accordingly.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::findPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::removeUnattributed):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributePrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::attributePrivateClickMeasurement):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::handleAttribution):
(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::setAttributionReportURLsForTesting):

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPrivateClickMeasurementAttributionReportURLsForTesting):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _setPrivateClickMeasurementAttributionReportURLsForTesting:destinationURL:completionHandler:]):
(-[WKWebView _setPrivateClickMeasurementAttributionReportURLsForTesting:attributeOnURL:completionHandler:]): Deleted.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setUIEventAttribution:]):
(-[WKWebView _uiEventAttribution]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPrivateClickMeasurementAttributionReportURLsForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Test cases were updated accordingly.

  • http/tests/contentextensions/block-private-click-measurement.html:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect-expected.txt:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-reflect.html:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation-expected.txt:
  • http/tests/privateClickMeasurement/anchor-tag-attributes-validation.html:

Since attributionSourceId is now an unsigned long, tests that checked invalid
string values are no longer relevant. It should be noted that a set
attributionSourceId with an invalid value becomes 0 which is a valid value.

  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-in-new-window.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html:
  • http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
  • http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attributions-removed.html:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
  • http/tests/privateClickMeasurement/store-disabled-in-ephemeral-session.html:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
  • http/tests/privateClickMeasurement/store-private-click-measurement.html:
10:16 AM Changeset in webkit [275045] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unnecessary Settings pre-warming in ProcessWarming::prewarmGlobally()
https://bugs.webkit.org/show_bug.cgi?id=223749

Reviewed by Antti Koivisto.

Drop unnecessary Settings pre-warming in ProcessWarming::prewarmGlobally(). Based on the comment,
it looks like the intention was to prewarm some font families. However, looking at the code, nothing
that gets populated is global and survives the destruction of the Settings object on the next line.
We don't even make any calls to CTFont.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

10:06 AM Changeset in webkit [275044] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.32

Merge r274641 - [WPE] Bump API version when building with libsoup3
https://bugs.webkit.org/show_bug.cgi?id=223437

Reviewed by Adrian Perez de Castro.

.:

Use 1.1 as the API version when building with soup3.

  • Source/PlatformWPE.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

  • PlatformWPE.cmake: Use WPE_API_DOC_VERSION instead of WPE_API_VERSION for gtkdoc config files.
  • wpe/wpe-web-extension-uninstalled.pc.in: Add variable for libsoup version.
  • wpe/wpe-web-extension.pc.in: Ditto.
  • wpe/wpe-webkit-uninstalled.pc.in: Ditto.
  • wpe/wpe-webkit.pc.in: Ditto.

Tools:

Use WPE_API_DOC_VERSION instead of WPE_API_VERSION.

  • wpe/manifest.txt.in:
10:06 AM Changeset in webkit [275043] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274640 - [SOUP] SOUP3 crashes inside soup_message_set_request_body
https://bugs.webkit.org/show_bug.cgi?id=223236

Reviewed by Adrian Perez de Castro.

Make WebKitFormDataInputStream implement GPollableInputStream.

  • platform/network/soup/WebKitFormDataInputStream.cpp:

(webkitFormDataInputStreamNew):
(webkitFormDataInputStreamCanPoll):
(webkitFormDataInputStreamIsReadable):
(webkitFormDataInputStreamCreateSource):
(webkitFormDataInputStreamPollableInterfaceInit):

10:06 AM Changeset in webkit [275042] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r274479 - [GTK][WPE] Stop using g_memdup
https://bugs.webkit.org/show_bug.cgi?id=223189

Reviewed by Philippe Normand.

Source/WebCore:

Add gstBufferNewWrappedFast() to create a GstBuffer wrapping data allocated with fast malloc and use it when
possible in combination with fastMemDup() instead of g_memdup().

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::gstBufferNewWrappedFast):

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived):

  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:

Source/WebKit:

  • UIProcess/API/glib/WebKitWebResource.cpp:

(webkit_web_resource_get_data_finish): Use g_malloc + memcpy instead of g_memdup.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_save_finish): Use fastMemDup instead g_memdup.

Source/WTF:

Add fastMemDup() to replace g_memdup() that is now deprecated in GLib because of the possibility of overflow
when converting from size_t to unsigned int. There's a replacement in GLib already, but we would need to depend
on very new GLib version, so better use fastMemDup() when possible. In cases where we still need to use GLib
allocator, we can simply call g_malloc() + memcpy().

  • wtf/FastMalloc.cpp:

(WTF::fastMemDup):

  • wtf/FastMalloc.h:
10:06 AM Changeset in webkit [275041] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r274354 - [GTK] GTK4 crashes with XVFB: GLXBadWindow
https://bugs.webkit.org/show_bug.cgi?id=223108

Reviewed by Žan Doberšek.

Source/WebCore:

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsGLX const): Check if GLX extension is supported and return the base error code.

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

Handle GLXBadWindow errors in AcceleratedBackingStoreX11.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::checkRequirements):
(WebKit::glxErrorCode):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):

10:06 AM Changeset in webkit [275040] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore/platform/gtk/po

Merge r274624 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.32
https://bugs.webkit.org/show_bug.cgi?id=223149

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2021-03-18
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
10:06 AM Changeset in webkit [275039] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.32

Merge r275031 - [GTK][WPE] JSC crashes if a function expects a parameter but doesn't receive any
https://bugs.webkit.org/show_bug.cgi?id=223646

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Handle the case of receiving fewer argumens than expected in function calls and constructors. We pass undefined
for the expected arguments that are missing. We were not correctly handling the case of converting undefined and
null values to JSCValue, so this patch fixes that case too.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):

  • API/glib/JSCContext.cpp:

(jscContextJSValueToWrappedObject):
(jscContextJSValueToGValue):

Tools:

Add test cases.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(valueToString):
(testJSCFunction):
(testJSCClass):

9:49 AM Changeset in webkit [275038] by Chris Dumez
  • 4 edits in trunk/Source

Do not do process pre-warming when the system is under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=223717
<rdar://problem/75810423>

Reviewed by Antti Koivisto.

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prewarmGlobally):
Only do prewarming if we're not under memory pressure as this would make
the situation worse.

Source/WTF:

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::install):

  • Listen to the same memory pressure notifications on macOS and iOS. Previously, macOS would not respond to non-critical memory pressure notifications for example. Also, since macOS would not listen for the notification that happens when the memory usage goes back to normal, MemoruPressureHandler::isUnderMemoryPressure() would start returning true after a critical memory pressure notification and it would never go back to false.
9:33 AM Changeset in webkit [275037] by youenn@apple.com
  • 16 edits in trunk

Switch from PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION to filtering interfaces in Network process
https://bugs.webkit.org/show_bug.cgi?id=223679

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Covered by webrtc/datachannel/filter-ice-candidate.html.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Use set_allow_tcp_listen instead of PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION.

Source/WebKit:

When starting to monitor, pass whether to enumerate all interfaces from WebProcess to NetworkProcess as a boolean.
In NetworkProcess, do network interface enumeration as usual, but use the boolean to decide whether to send the full list or the list that is related to the default IP addresses to WebProcess.

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkManagerWrapper::addListener):
(WebKit::NetworkManagerWrapper::onNetworksChanged):
(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):
(WebKit::NetworkRTCMonitor::onNetworksChanged):

  • NetworkProcess/webrtc/NetworkRTCMonitor.h:
  • NetworkProcess/webrtc/NetworkRTCMonitor.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createPeerConnection):

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::setEnumeratingAllNetworkInterfacesEnabled):
(WebKit::WebRTCMonitor::StartUpdating):

  • WebProcess/Network/webrtc/WebRTCMonitor.h:
9:19 AM Changeset in webkit [275036] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Only preheat MTLCopyAllDevices on Mac
https://bugs.webkit.org/show_bug.cgi?id=223747

Patch by Ben Nham <Ben Nham> on 2021-03-25
Reviewed by Chris Dumez.

We should use adoptNS to avoid leaking the array returned by MTLCopyAllDevices. We should
also only do this on Mac because this is only a public API on the Mac, and the issue of
graphics drivers falling out of the dyld shared cache doesn't exist on iOS.

  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::prewarm):

8:30 AM Changeset in webkit [275035] by commit-queue@webkit.org
  • 4 edits in trunk

WKContentRuleList first-party should include other subdomains of the current registrable domain
https://bugs.webkit.org/show_bug.cgi?id=223728
Source/WebCore:

<rdar://71912579>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by John Wilander.

Covered by API tests.

  • loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::ResourceLoadInfo::isThirdParty const):

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-25
Reviewed by John Wilander.

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(TEST):

8:28 AM Changeset in webkit [275034] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Align RemoteVideoDecoder destruction strategy with RemoteVideoEncoder
https://bugs.webkit.org/show_bug.cgi?id=223745

Reviewed by Eric Carlson.

When decoder is released, we make sure to nullify the decoder callback.
We wait to release WebKit decoder at RemoteVideoDecoder destruction time.

  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::RemoteVideoDecoder::~RemoteVideoDecoder):
(webrtc::RemoteVideoDecoder::Release):

8:28 AM Changeset in webkit [275033] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Improve RealtimeIncomingVideoSourceCocoa::OnFrame logging to include rotation and size information
https://bugs.webkit.org/show_bug.cgi?id=223741

Reviewed by Eric Carlson.

No change of behavior.

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

8:03 AM Changeset in webkit [275032] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Update to GStreamer 1.18.4
https://bugs.webkit.org/show_bug.cgi?id=223644

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-25
Reviewed by Adrian Perez de Castro.

  • elements/sdk/gst-libav.bst:
  • elements/sdk/gst-plugins-bad.bst:
  • elements/sdk/gst-plugins-base.bst:
  • elements/sdk/gst-plugins-good.bst:
  • elements/sdk/gst-plugins-ugly.bst:
  • elements/sdk/gstreamer.bst:
  • patches/gst-plugins-base-0001-videodecoder-Fix-racy-critical-when-pool-negotiation.patch: Removed.
7:34 AM Changeset in webkit [275031] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][WPE] JSC crashes if a function expects a parameter but doesn't receive any
https://bugs.webkit.org/show_bug.cgi?id=223646

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Handle the case of receiving fewer argumens than expected in function calls and constructors. We pass undefined
for the expected arguments that are missing. We were not correctly handling the case of converting undefined and
null values to JSCValue, so this patch fixes that case too.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):

  • API/glib/JSCContext.cpp:

(jscContextJSValueToWrappedObject):
(jscContextJSValueToGValue):

Tools:

Add test cases.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(valueToString):
(testJSCFunction):
(testJSCClass):

7:07 AM Changeset in webkit [275030] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WTF

Merge r275014 - REGRESSION(r271560): [Linux] release assert in Thread::initializePlatformThreading
https://bugs.webkit.org/show_bug.cgi?id=223069

Reviewed by Carlos Garcia Campos.

Replace an existing signal handler instead of aborting.

  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::initializePlatformThreading):

7:07 AM Changeset in webkit [275029] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274943 - [GStreamer] Use imxvideoconvert_g2d element inside the sink when available
https://bugs.webkit.org/show_bug.cgi?id=223693

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-03-24
Reviewed by Philippe Normand.

On some iMX platforms we require the use of imxvideoconvert_g2d element
in order to properly convert the visual buffers before they can be
rendered through our pipeline. We expect to require this buffer if it's
present in the GStreamer plugin registry on the system.

We search for this element and, if found, add it to the sink and
position it at the beginning, before the glupload element.

Based on an approach outlined by Gabriel Valcazar.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):

7:07 AM Changeset in webkit [275028] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.32

Merge r274976 - REGRESSION(r274870) fast/canvas/webgl/texImage2D-mse-flipY-true.html and fast/canvas/webgl/texImage2D-mse-flipY-false.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=223674

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-24
Reviewed by Kenneth Russell.

Source/WebCore:

When the srcObject is directly set on a media element, the corresponding URL might still be
empty, so we need to ensure the URI corresponding to the MediaSource blob is not empty,
otherwise uridecodebin would fail to create the right source element.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):

LayoutTests:

  • platform/glib/TestExpectations:
7:07 AM Changeset in webkit [275027] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.32

Merge r274870 - [MSE][GStreamer] SIGSEV in webKitMediaSrcFreeStream
https://bugs.webkit.org/show_bug.cgi?id=220091

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-23
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The pipeline used by the MSE player is now able reload the MediaSource from the beginning if
a seek to 0 was requested. The problem was that uridecodebin was creating a new source
element and notifying the player which was then trying to dispose underlying platform track
informations, and also related appsrc elements. The latter was specially problematic because
the appsrc elements ownership was badly handled (elements added to a bin should not be
reused, unless an extra ref is added), leading to racy crashes.

So now when uridecodebin creates a new source element, the player detects this is a new
source and transfers track-related informations to the new element. Additionally, new appsrc
elements are created for the new element and track signals emitted so that the player is
still fully aware of the MSE tracks topology.

No new tests but two existing tests are now passing.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::open):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::addSourceBuffer):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:

(webKitMediaSrcFinalize):
(webKitMediaSrcChangeState):
(webKitMediaSrcFreeStream):
(webKitMediaSrcRestoreTracks):
(webKitMediaSrcSignalTracks):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:

LayoutTests:

  • platform/gtk/TestExpectations: Unflag now-passing tests.
7:07 AM WebKitGTK/2.32.x edited by Carlos Garcia Campos
(diff)
7:07 AM Changeset in webkit [275026] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r274937 - [WPE] Build error in ARMv7 invalid 'static_cast' for GLNativeWindowType
https://bugs.webkit.org/show_bug.cgi?id=223684

Fixes this error:

error: invalid 'static_cast' from type 'uintptr_t' {aka 'unsigned
int'} to type 'GLNativeWindowType' {aka 'void*'}

; an invalid 'static_cast' from type error for ARMv7 (rpi3 and mesa driver)
by using the same solution chosen in
https://bugs.webkit.org/show_bug.cgi?id=179511:

EGLNativeWindowType can be aliased to a different type depending (at least) on the EGL
implementation, its build options, and the libepoxy build options. Using "static_cast"
works when it is a numeric value and the width of the value needs to be optionally
extended to 64 bits (e.g. the EGL type is "int" in a 32-bit CPU) but not for pointers,
and using "reinterpret_cast" works when the size of a pointer is 64 bits but not in other
cases. Therefore it seems reasonable to use a plain C cast expression to solve this
particular situation.

https://trac.webkit.org/changeset/274869/webkit

Reviewed by Philippe Normand.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext):

7:07 AM Changeset in webkit [275025] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.32/Source

Merge r274869 - [GTK] X11 build fixes
https://bugs.webkit.org/show_bug.cgi?id=223577

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-23
Reviewed by Adrian Perez de Castro.

Source/WebCore:

X11 headers define a bunch of macros with common terms, interfering with WebCore and WTF
enum values. As a workaround, we explicitly undef them.

  • platform/graphics/GLContext.h:
  • platform/graphics/GraphicsContext.h:

Source/WebKit:

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext): GLNativeWindowType might be a long unsigned
int, which can't be reinterpret casted to uin64_t on 32-bit platforms.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp: Use

WebCore::Region to prevent clashes with X11's Region.
(WebKit::DrawingAreaCoordinatedGraphics::scroll):
(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaCoordinatedGraphics::display):

7:06 AM Changeset in webkit [275024] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.32

Merge r274476 - [CMake] Build fails on RISC-V with GCC 11
https://bugs.webkit.org/show_bug.cgi?id=222959

Patch by Khem Raj <raj.khem@gmail.com> on 2021-03-16
Reviewed by Carlos Alberto Lopez Perez.

.:

Check for 1 byte atomic operations along with 64bit ones, some
architevtures (e.g. RISCV) operations on less than 4 bytes are not lock-free

  • Source/cmake/WebKitCompilerFlags.cmake:

Source/JavaScriptCore:

Use renamed variable ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC

  • CMakeLists.txt:

Source/WebKit:

Use renamed ATOMICS_REQUIRE_LIBATOMIC instead of ATOMIC_INT64_REQUIRES_LIBATOMIC.

  • CMakeLists.txt:

Source/WTF:

Link with libatomic if ATOMICS_REQUIRE_LIBATOMIC is set.

  • wtf/CMakeLists.txt:
7:06 AM Changeset in webkit [275023] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/JavaScriptCore

Merge r274428 - postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34
https://bugs.webkit.org/show_bug.cgi?id=223136

Reviewed by Michael Catanzaro.

When parsing .file assembler directives (for the purpose of
deduplicating the file slots), also accept

.file "path/to/CWD" "path/to/include"

that seems to be emitted by GCC in some configurations. This also
uses Pathname.cleanpath on the resulting path to canonicalize the
paths. We could use .realpath, but since we only run this on the
paths in a single compilation unit and the first component is
supposed to be the CWD, this both seems unnecessary and would
complicate our selftests.

  • Scripts/resolve-asm-file-conflicts.rb:
7:06 AM Changeset in webkit [275022] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebKit

Merge r274423 - REGRESSION(r233845): EME Keysystem permission when MediaStream is disabled
https://bugs.webkit.org/show_bug.cgi?id=223185

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-15
Reviewed by Eric Carlson.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame): This method is required for
EME build configurations, not MediaStream...

7:06 AM Changeset in webkit [275021] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.32

Merge r274375 - REGRESSION(r274270): [WPE][GTK] Broke Epiphany test /embed/ephy-web-view/error-pages-not-stored-in-history
https://bugs.webkit.org/show_bug.cgi?id=223140

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-03-12
Reviewed by Alex Christensen.

Source/WebCore:

If the SecurityOriginData has no protocol or host, return an empty string instead of ":"

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toString const):

Source/WebKit:

Convert empty strings to NULL.

  • UIProcess/API/glib/WebKitSecurityOrigin.cpp:

(webkit_security_origin_to_string):

Tools:

Improve WebKitSecurityOrigin tests a bit.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSecurityOrigin.cpp:

(testCustomProtocolOrigin): Drive-by improvement: check webkit_security_origin_to_string().
(testBogusURI): Added, tests for this bug.
(beforeAll):

7:06 AM Changeset in webkit [275020] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r274358 - [GStreamer] Crashes deep in GStreamer under gst_element_add_pad
https://bugs.webkit.org/show_bug.cgi?id=222763

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-12
Reviewed by Xabier Rodriguez-Calvar.

Rely on select-streams event to configure only the first video stream of the collection
received on the bus. The select-stream decodebin3 signal is not recommended, and seems
broken anyway, because no selecting audio streams was still leading to audio decode pads
being added, leading to crashes.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::handleMessage):
(WebCore::ImageDecoderGStreamer::InnerDecoder::preparePipeline):
(WebCore::ImageDecoderGStreamer::InnerDecoder::selectStream): Deleted.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
7:06 AM Changeset in webkit [275019] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.32/Source/WebCore

Merge r273558 - Unreviewed, address post-landing review feedback for r273542.

Update a comment and fix a check that was reversed.

  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::createOutputBufferForJS const):
(WebCore::ScriptProcessorNode::process):

6:44 AM Changeset in webkit [275018] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Add unit-test to ensure that config.json doesn't have tab characters
https://bugs.webkit.org/show_bug.cgi?id=223440

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/loadConfig_unittest.py:

(ConfigDotJSONTest.test_tab_character): Unit-test to ensure that there are no tab characters.

  • CISupport/ews-build/config.json:
  • CISupport/ews-build/loadConfig_unittest.py:

(ConfigDotJSONTest.test_tab_character):

6:42 AM Changeset in webkit [275017] by commit-queue@webkit.org
  • 10 edits
    2 deletes in trunk

Unreviewed, reverting r274826 and r274968.
https://bugs.webkit.org/show_bug.cgi?id=223746

Added broken layout test

Reverted changesets:

"AX: textRectsFromMarkers always fails"
https://bugs.webkit.org/show_bug.cgi?id=223556
https://trac.webkit.org/changeset/274826

"AX: Add functions rectsForTextMarkerRange for testing"
https://bugs.webkit.org/show_bug.cgi?id=223705
https://trac.webkit.org/changeset/274968

6:41 AM Changeset in webkit [275016] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r270134) Web Inspector: Audit: Results are stacked on top of each other.
https://bugs.webkit.org/show_bug.cgi?id=223381
<rdar://problem/75528374>

Reviewed by Devin Rousso.

Ensure pre-existing ContentViews are removed when navigating back/forward
even when the incoming ContentView is already attached.

For example, AuditTestContentView instances for individual tests are already attached
when shown as part of a test group AuditTestGroupContentView.
Navigating from the group to the individual test view must remove the group view.

  • UserInterface/Views/ContentViewContainer.js:

(WI.ContentViewContainer.prototype.showBackForwardEntryForIndex):

5:22 AM Changeset in webkit [275015] by graouts@webkit.org
  • 6 edits in trunk

Improve interpolation of the shape-outside CSS property
https://bugs.webkit.org/show_bug.cgi?id=223738

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Add another 29 PASS results for shape-outside interpolation.

  • web-platform-tests/css/css-shapes/animation/shape-outside-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-outside-interpolation-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:

Source/WebCore:

While we had logic to deal with cases where ShapeValue objects could not be interpolated, we did not make
use of it in the animation wrapper. We now move this logic from the blendFunc() to the canInterpolate()
override method on the wrapper to correctly interpolate only when possible.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

5:10 AM Changeset in webkit [275014] by berto@igalia.com
  • 2 edits in trunk/Source/WTF

REGRESSION(r271560): [Linux] release assert in Thread::initializePlatformThreading
https://bugs.webkit.org/show_bug.cgi?id=223069

Reviewed by Carlos Garcia Campos.

Replace an existing signal handler instead of aborting.

  • wtf/posix/ThreadingPOSIX.cpp:

(WTF::Thread::initializePlatformThreading):

3:14 AM Changeset in webkit [275013] by timothy_horton@apple.com
  • 27 edits in trunk/Source

All Books quirks are flakily not applied in modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=157101
<rdar://problem/25965028>

Reviewed by Darin Adler.

Source/WebCore:

No new tests; I haven't found a way to write a test that doesn't involve
adding a new parameter to the process bootstrap message, which seems
out of the realm of reason for a test.

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow):
(WebCore::globalConstRedeclarationShouldThrow): Deleted.
Stop hardcoding globalConstRedeclarationShouldThrow based on the UI process identity.

  • platform/RuntimeApplicationChecks.cpp:

(WebCore::isInAuxiliaryProcess):

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::applicationBundleIdentifier):
(WebCore::setApplicationBundleIdentifierOverride):
Add an assertion to catch any future case where a bundle check is queried
in a auxiliary process before the hosting application bundle identifier is set.

Source/WebKit:

In r200121, a quirk was introduced that queried the isIBooks()
RuntimeApplicationChecks method from inside commonVM().

RuntimeApplicationChecks bundle checks cache the result of the bundle
check, and, as such, must not be called until the bundle identifer of
the UI application is known. In legacy WebKit, this is not a problem,
because the check is running in the application process; in modern WebKit,
there is a short window between process launch and the InitializeWebProcess
message being received where we won't know the bundle identifier, and if
isIBooks() (or any other bundle check) is called during this time, it will
cache the wrong result.

It is possible for commonVM() to be called in this window; one possible path
to this is by triggering an os_log_fault during this time, which WebKit
observes (via os_state_add_handler()) in order to dump memory usage
(which happens to call commonVM() and results in isIBooks getting called
and caching the wrong value).

Add an assertion, and move the quirk to live as a setting on the process
pool configuration, to be set via SPI by Books, instead of as a bundle check.

Also, ensure that client bundle identifier and SDK version are set in
all WebKit subprocesses, so that bundle/SDK checks work everywhere
(previously, the GPU process was using SDK checks without having pushed
the values from the UI process, resulting in incorrect results, and
running afoul of the assertion added above).

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):
(API::defaultShouldThrowExceptionForGlobalConstantRedeclaration):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration shouldThrowExceptionForGlobalConstantRedeclaration]):
(-[_WKProcessPoolConfiguration setShouldThrowExceptionForGlobalConstantRedeclaration:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
Plumb a new _WKProcessPoolConfiguration parameter to the Web Content process,
and set the bit on the commonVM when launched.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):
(WebKit::AuxiliaryProcess::platformInitialize):

  • Shared/AuxiliaryProcess.h:
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::initializeTimerCoalescingPolicy):
(WebKit::AuxiliaryProcess::platformInitialize):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getClientSDKVersion):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:

Remove an extra unused member.

  • Shared/ios/AuxiliaryProcessIOS.mm:

(WebKit::AuxiliaryProcess::platformInitialize): Deleted.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::initializeTimerCoalescingPolicy): Deleted.
(WebKit::AuxiliaryProcess::platformInitialize): Deleted.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
Plumb the client bundle identifer and SDK version to all auxiliary processes
at process initialization time instead of InitializeWebProcess/NetworkProcess
message receipt time, closing the window in which it is invalid to use
bundle checks, and ensuring that bundle checks work in all processes.

Mar 24, 2021:

11:10 PM Changeset in webkit [275012] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Metal ANGLE non-blockers: Fix webgl/1.0.3/conformance/uniforms/uniform-default-values.html, Stencil debug layer assertions
https://bugs.webkit.org/show_bug.cgi?id=223667

https://bugs.webkit.org/show_bug.cgi?id=223667

On Release, uniformDefaultValues was resetting program memory
either early, or oddly. Since program reflection should be constant
per Shader anyway, drop the 'reset' after assigning reflection data.

In addition, clamp stencil rectangle to always be within framebuffer bounds. Code taken from upstream ANGLE.

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-24
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/ProgramMtl.mm:

(rx::ProgramMtl::linkImplDirect):

  • src/libANGLE/renderer/metal/mtl_command_buffer.mm:

(rx::mtl::RenderCommandEncoder::initAttachmentWriteDependencyAndScissorRect):
(rx::mtl::RenderCommandEncoder::restart):
(rx::mtl::RenderCommandEncoder::setScissorRect):

  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm:

(rx::mtl::TranslatedShaderInfo::reset):
(rx::mtl::GlslangGetMSL):

10:46 PM Changeset in webkit [275011] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Crash in TextChecker::updateSpellingUIWithGrammarString()
https://bugs.webkit.org/show_bug.cgi?id=223716

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-24
Reviewed by Ryosuke Niwa.

Prevent a crash by checking the GrammarDetail's range.

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::updateSpellingUIWithGrammarString):

10:38 PM Changeset in webkit [275010] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Re-skip modern-media-controls tests after r274810

Unreviewed test gardening.

  • platform/gtk/TestExpectations: Skipping them again until proper

support is added.

10:28 PM Changeset in webkit [275009] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GLIB] Gardening already closed bug and a WPE flaky

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
8:23 PM Changeset in webkit [275008] by Russell Epstein
  • 2 edits in branches/safari-612.1.8-branch/Source/WTF

Cherry-pick r275003. rdar://problem/75819285

WTF::setPermissionsOfConfigPage() should allow its VM_FLAGS_PERMANENT workaround unconditionally.
https://bugs.webkit.org/show_bug.cgi?id=223725
rdar://75813316

Reviewed by Saam Barati.

If the OS does not support the flag, then we should not require it.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

8:23 PM Changeset in webkit [275007] by Russell Epstein
  • 2 edits in branches/safari-612.1.8-branch/Source/WTF

Cherry-pick r274898. rdar://problem/75819592

Don't require VM_FLAGS_PERMANENT on the simulator builds
https://bugs.webkit.org/show_bug.cgi?id=223649
<rdar://problem/75747788>

Reviewed by Alexey Proskuryakov.

Since VM_FLAGS_PERMANENT must be supported by the kernel, let's make
it so that the vm_map that passes this flag in can fail when running
on the simulator. This is to support the use case of running a newer
simulator on an older OS. When the call to vm_map fails when running
on the simulator, we try again without the VM_FLAGS_PERMANENT flag.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274898 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:58 PM Changeset in webkit [275006] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.9

Tag Safari-612.1.7.9.

7:58 PM Changeset in webkit [275005] by Russell Epstein
  • 1 delete in tags/Safari-612.1.7.9

Delete tag.

7:57 PM Changeset in webkit [275004] by Russell Epstein
  • 2 edits in branches/safari-612.1.7-branch/Source/WTF

Cherry-pick r275003. rdar://problem/75813316

WTF::setPermissionsOfConfigPage() should allow its VM_FLAGS_PERMANENT workaround unconditionally.
https://bugs.webkit.org/show_bug.cgi?id=223725
rdar://75813316

Reviewed by Saam Barati.

If the OS does not support the flag, then we should not require it.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275003 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:53 PM Changeset in webkit [275003] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

WTF::setPermissionsOfConfigPage() should allow its VM_FLAGS_PERMANENT workaround unconditionally.
https://bugs.webkit.org/show_bug.cgi?id=223725
rdar://75813316

Reviewed by Saam Barati.

If the OS does not support the flag, then we should not require it.

  • wtf/WTFConfig.cpp:

(WTF::setPermissionsOfConfigPage):

7:31 PM Changeset in webkit [275002] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

Use StaticStringImpl instead of StringImpl::createStaticStringImpl if it is not dynamic string content
https://bugs.webkit.org/show_bug.cgi?id=223714

Reviewed by Saam Barati.

We should just use StaticStringImpl instead of StringImpl::createStaticStringImpl if the string content is
not dynamically allocated one. Keep in mind that this URL code is strongly assuming that internal StringImpl
is static so that this string (and URL) can be used in multiple threads. And StaticStringImpl meets this requirement.

  • wtf/URL.cpp:

(WTF::aboutBlankURL):
(WTF::aboutSrcDocURL):

7:20 PM Changeset in webkit [275001] by Robert Jenner
  • 3 edits in trunk/LayoutTests

[ Debug ] http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html and one other test are flakey timeouts
https://bugs.webkit.org/show_bug.cgi?id=223724

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
  • platform/mac/TestExpectations: Updated test expectations to Pass Timeout while test is reviewed.
7:10 PM Changeset in webkit [275000] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.2.5

Tag Safari-611.1.21.2.5.

7:08 PM Changeset in webkit [274999] by Russell Epstein
  • 2 edits in branches/safari-611.1.21.2-branch/Source/WebCore

Cherry-pick r273868. rdar://problem/75764823

Crash in removeSymbolElementsFromSubtree()
https://bugs.webkit.org/show_bug.cgi?id=222397

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-03
Reviewed by Ryosuke Niwa.

Skip children in removeSymbolElementsFromSubtree(), so that
we don't see nodes that have been removed in disassociateAndRemoveClones.

Thanks to Darin Adler for the initial version of this patch
and Ryosuke Niwa for refinements.

  • svg/SVGUseElement.cpp: (WebCore::removeSymbolElementsFromSubtree):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@273868 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:07 PM Changeset in webkit [274998] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.5

6:55 PM Changeset in webkit [274997] by ysuzuki@apple.com
  • 16 edits in trunk

All string resources from UserAgentStyleSheets / UserAgentScripts should be used as non-copying StringImpl
https://bugs.webkit.org/show_bug.cgi?id=223685

Reviewed by Saam Barati.

Source/WebCore:

We use StringImpl::createWithoutCopying for string resources from UserAgentStyleSheets / UserAgentScripts to make sure that
these resources do not allocate heap strings.

This patch also fixes HTMLMeterElement's bug (and imageOverlayUserAgentStyleSheet's bug). Previously, we are using String::ConstructFromLiteral,
but this only accepts string literal as it says. As a result, we are dropping the last character since UserAgentStyleSheets's last character is not \0.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::quickTimePluginReplacementScript):

  • WebCoreMacros.cmake:
  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::updateWithImageExtractionResult):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):

  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::extraDefaultStyleSheet):
(WebCore::RenderThemeAdwaita::extraMediaControlsStyleSheet):
(WebCore::RenderThemeAdwaita::mediaControlsScripts):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsStyleSheet):
(WebCore::RenderThemeCocoa::mediaControlsScripts):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::extraDefaultStyleSheet):
(WebCore::RenderThemeWin::extraQuirksStyleSheet):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::initDefaultStyleSheet):
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

Source/WebDriver:

  • Session.cpp:

(WebDriver::Session::fullscreenWindow):
(WebDriver::Session::findElements):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::isElementEnabled):
(WebDriver::Session::isElementDisplayed):
(WebDriver::Session::getElementAttribute):
(WebDriver::Session::elementClear):

Source/WTF:

Add StringImpl::createWithoutCopying for const char*.

  • wtf/text/StringImpl.h:

(WTF::StringImpl::createWithoutCopying):

LayoutTests:

  • fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:
6:50 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
6:48 PM Changeset in webkit [274996] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

bindings/js/JSEventListener.cpp:281:91: runtime error: reference binding to null pointer of type 'WebCore::ScriptExecutionContext'
https://bugs.webkit.org/show_bug.cgi?id=223719

Reviewed by Darin Adler.

Make sure we null check the scriptExecutionContext before we dereference it.

  • bindings/js/JSEventListener.cpp:

(WebCore::eventHandlerAttribute):
(WebCore::windowEventHandlerAttribute):

6:42 PM Changeset in webkit [274995] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ]inspector/indexeddb/clearObjectStore.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=222140

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating test expectations to include Pass Failure Timeout.
6:36 PM Changeset in webkit [274994] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.9

Tag Safari-612.1.7.9.

6:33 PM Changeset in webkit [274993] by Russell Epstein
  • 2 edits in branches/safari-612.1.7-branch/Source/WTF

Cherry-pick r274898. rdar://problem/75815633

Don't require VM_FLAGS_PERMANENT on the simulator builds
https://bugs.webkit.org/show_bug.cgi?id=223649
<rdar://problem/75747788>

Reviewed by Alexey Proskuryakov.

Since VM_FLAGS_PERMANENT must be supported by the kernel, let's make
it so that the vm_map that passes this flag in can fail when running
on the simulator. This is to support the use case of running a newer
simulator on an older OS. When the call to vm_map fails when running
on the simulator, we try again without the VM_FLAGS_PERMANENT flag.

  • wtf/WTFConfig.cpp: (WTF::setPermissionsOfConfigPage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274898 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:28 PM Changeset in webkit [274992] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Port FontDescriptionKey::computeHash() from legacy IntegerHasher to Hasher
https://bugs.webkit.org/show_bug.cgi?id=223701

Reviewed by Darin Adler.

Port FontDescriptionKey::computeHash() from legacy IntegerHasher to Hasher. Hasher
has the benefit of having add() overloads that take in signed integer types.

  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionKey::computeHash const):

6:24 PM Changeset in webkit [274991] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.9

6:06 PM Changeset in webkit [274990] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Metal ANGLE crashes LayoutTests/inspector/canvas/updateShader-webgl.html

Rather than rely on an instance variable in a C++ class, just query the dictionary constant when needed.

https://bugs.webkit.org/show_bug.cgi?id=223695

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-24
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/ProgramMtl.h:
  • src/libANGLE/renderer/metal/ProgramMtl.mm:

(rx::ProgramMtl::ProgramMtl):
(rx::ProgramMtl::linkImplSpirv):
(rx::ProgramMtl::linkImplDirect):
(rx::ProgramMtl::linkTranslatedShaders):

5:46 PM Changeset in webkit [274989] by Chris Dumez
  • 20 edits in trunk/Source

Extend WebAudio heap allocation assertions to cover the pre & post-rendering phases
https://bugs.webkit.org/show_bug.cgi?id=223640

Reviewed by Sam Weinig.

Extend WebAudio heap allocation assertions to cover the pre & post-rendering phases. I had to add
exceptions for some heap allocations that are currently happening during this phase but I
will work to reduce the number of exceptions in follow-ups.

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::updateInternalBus):

  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::updateInternalBus):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::addAutomaticPullNode):
(WebCore::BaseAudioContext::updateAutomaticPullNodes):

  • platform/audio/AudioDSPKernelProcessor.cpp:

(WebCore::AudioDSPKernelProcessor::initialize):

5:33 PM Changeset in webkit [274988] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r274983.

  • Modules/mediasession/MediaSession.h:
5:30 PM Changeset in webkit [274987] by Russell Epstein
  • 1 copy in tags/Safari-611.1.21.0.11

Tag Safari-611.1.21.0.11.

5:24 PM Changeset in webkit [274986] by Jonathan Bedard
  • 4 edits in trunk/Tools

Autoinstalling keyring-7.3.1 is failing with Python 2
https://bugs.webkit.org/show_bug.cgi?id=223677
<rdar://problem/75800504>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version, add setuptools_scm.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.install): Always install setuptools_scm.

5:05 PM Changeset in webkit [274985] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Move TelephoneNumberDetector preloading off the main thread
https://bugs.webkit.org/show_bug.cgi?id=223715

Reviewed by Geoffrey Garen.

Move TelephoneNumberDetector preloading off the main thread. We have evidence that prewarmGlobally() can be slow and hang the main
thread for too long (rdar://75279383). As a result, it is a good idea to prewarm things off the main thread whenever possible.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • platform/TelephoneNumberDetector.h:
  • platform/cocoa/TelephoneNumberDetectorCocoa.cpp:

(WebCore::TelephoneNumberDetector::phoneNumbersScanner):
(WebCore::TelephoneNumberDetector::prewarm):

5:04 PM Changeset in webkit [274984] by Lauro Moura
  • 2 edits
    1 delete in trunk/LayoutTests

REGRESSION(r274919) [ATK] accessibility/set-selected-text-range-contenteditable.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=223710

Reviewed by Adrian Perez de Castro.

r274919 clamped the values passed to the accessibility elements,
making the {-1,0} text range to be collapsed to {0,0} as text ranges
are composed of unsigned ints.

This commit updates the test to remove the ATK-specific case of
passing -1 to point to the final offset of a text range.

  • accessibility/set-selected-text-range-contenteditable.html: Remove

ATK-specific quirk.

  • platform/glib/accessibility/set-selected-text-range-contenteditable-expected.txt: Removed.
4:14 PM Changeset in webkit [274983] by eric.carlson@apple.com
  • 34 edits
    7 copies
    7 adds in trunk

[Cocoa] Add Experimental MediaSession coordinator
https://bugs.webkit.org/show_bug.cgi?id=222158
<rdar://problem/74508862>

Reviewed by Jer Noble.

Source/WebCore:

Add an experimental MediaSession coordinator, an object that provides an interface
that allows script to coordinate changes to MediaSession with the User Agent. Also
add an experimental MediaSession playlist interface.

The changes are behind new experimental feature flags,
MediaSessionCoordinatorEnabled and MediaSessionPlaylistEnabled.

Test: media/media-session/mock-coordinator.html

  • DerivedSources-input.xcfilelist: Add new IDL files.
  • DerivedSources-output.xcfilelist: Add new derived sources.
  • DerivedSources.make: Add new IDL.
  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::MediaMetadata::create): Set trackIdentifier from init data.
(WebCore::MediaMetadata::setTrackIdentifier): trackIdentifier setter.

  • Modules/mediasession/MediaMetadata.h:

(WebCore::MediaMetadata::trackIdentifier const):

  • Modules/mediasession/MediaMetadata.idl:
  • Modules/mediasession/MediaMetadataInit.h: Add trackIdentifier.

(WebCore::MediaMetadataInit::encode const):
(WebCore::MediaMetadataInit::decode):

  • Modules/mediasession/MediaMetadataInit.idl:
  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::MediaSession): Initialize MainThreadGenericEventQueue.
(WebCore::MediaSession::setMetadata): metadataUpdated -> notifyMetadataObservers.
(WebCore::MediaSession::setReadyState): Session readyState setter.
(WebCore::MediaSession::setCoordinator): Coordinator setter. Post 'coordinatorchange'
event after change.
(WebCore::MediaSession::setPlaylist): Playlist setter.
(WebCore::MediaSession::setActionHandler): Call notifyActionHandlerObservers.
(WebCore::MediaSession::setPositionState): Call notifyPositionStateObservers.
(WebCore::MediaSession::metadataUpdated): Call notifyMetadataObservers.
(WebCore::MediaSession::addObserver): New.
(WebCore::MediaSession::removeObserver): New.
(WebCore::MediaSession::forEachObserver): New.
(WebCore::MediaSession::notifyMetadataObservers): New.
(WebCore::MediaSession::notifyPositionStateObservers): New.
(WebCore::MediaSession::notifyPlaybackStateObservers): New.
(WebCore::MediaSession::notifyActionHandlerObservers): New.
(WebCore::MediaSession::notifyReadyStateObservers): New.

  • Modules/mediasession/MediaSession.h:

(WebCore::MediaSession::coordinator const):
(WebCore::MediaSession::playlist const):
(WebCore::MediaSession::logger const):

  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasession/MediaSessionAction.h:
  • Modules/mediasession/MediaSessionAction.idl:
  • Modules/mediasession/MediaSessionActionDetails.h:
  • Modules/mediasession/MediaSessionActionDetails.idl:

MediaSessionCoordinator proxies calls through the PlatformMediaSessionCoordinator,
and then calls the equivalent MediaSession methode if the platform coordinator
is successful.

  • Modules/mediasession/MediaSessionCoordinator.cpp: Added.

(WebCore::nextCoordinatorLogIdentifier):
(WebCore::MediaSessionCoordinator::create):
(WebCore::MediaSessionCoordinator::MediaSessionCoordinator):
(WebCore::MediaSessionCoordinator::seekTo):
(WebCore::MediaSessionCoordinator::play):
(WebCore::MediaSessionCoordinator::pause):
(WebCore::MediaSessionCoordinator::setTrack):
(WebCore::MediaSessionCoordinator::setMediaSession):
(WebCore::MediaSessionCoordinator::logChannel):

  • Modules/mediasession/MediaSessionCoordinator.h: New.

(WebCore::MediaSessionCoordinator::logger const):
(WebCore::MediaSessionCoordinator::logIdentifier const):
(WebCore::MediaSessionCoordinator::logClassName):

  • Modules/mediasession/MediaSessionCoordinator.idl: New.
  • Modules/mediasession/NavigatorMediaSession.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/EventNames.h:
  • dom/EventTargetFactory.in:
  • platform/graphics/PlatformMediaSessionCoordinator.h: Added.

(WebCore::PlatformMediaSessionCoordinator::setLogger):
(WebCore::PlatformMediaSessionCoordinator::loggerPtr const):
(WebCore::PlatformMediaSessionCoordinator::logIdentifier const):
(WebCore::PlatformMediaSessionCoordinator::logClassName const):
(WebCore::PlatformMediaSessionCoordinator::logChannel const):

  • testing/Internals.cpp:

(WebCore::Internals::registerMockMediaSessionCoordinator): Register the mock
media session coordinator for testing.

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockMediaSessionCoordinator.cpp: Added.

(WebCore::MockMediaSessionCoordinator::create):
(WebCore::MockMediaSessionCoordinator::MockMediaSessionCoordinator):
(WebCore::MockMediaSessionCoordinator::seekTo):
(WebCore::MockMediaSessionCoordinator::play):
(WebCore::MockMediaSessionCoordinator::pause):
(WebCore::MockMediaSessionCoordinator::setTrack):

  • testing/MockMediaSessionCoordinator.h: New.

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • platform/TestExpectations:
  • media/media-session/mock-coordinator-expected.txt: Added.
  • media/media-session/mock-coordinator.html: Added.
4:02 PM Changeset in webkit [274982] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Preload graphics drivers on a background thread instead of the main thread
https://bugs.webkit.org/show_bug.cgi?id=223713

Reviewed by Simon Fraser.

Preload graphics drivers on a background thread instead of the main thread. We have evidence of prewarmGlobally() hanging
the main thread (rdar://75279383) so we should do pre-warming off the main thread whenever possible.

r265418 introduced this graphics loader preloading and an earlier version of this patch was simply calling MTLCopyAllDevices()
on a background queue. However, that patch was updated before landing to do the work on the main thread. I think we should go
back to the earlier iteration.

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::prewarmGlobally):

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::prewarm):

  • platform/graphics/gpu/dawn/GPUDeviceDawn.cpp:

(WebCore::GPUDevice::prewarm):

4:01 PM Changeset in webkit [274981] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7612.1.9

3:49 PM Changeset in webkit [274980] by Russell Epstein
  • 3 edits in branches/safari-612.1.8-branch/Source/WebKit

Cherry-pick r274955. rdar://problem/75802809

The media accessibility service is not an XPC service
https://bugs.webkit.org/show_bug.cgi?id=223699
<rdar://75750989>

Reviewed by Brent Fulgham.

The media accessibility service is not an XPC service, but is listed as such in the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:26 PM Changeset in webkit [274979] by Alan Coon
  • 1 copy in tags/Safari-611.1.21.1.16

Tag Safari-611.1.21.1.16.

3:25 PM Changeset in webkit [274978] by graouts@webkit.org
  • 3 edits
    4 adds in trunk

Fix interpolation of the border-spacing property
https://bugs.webkit.org/show_bug.cgi?id=223702

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Import the border-spacing interpolation test with its 120 tests passing.

  • web-platform-tests/css/css-tables/animations/border-spacing-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-tables/animations/border-spacing-interpolation.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-tables/animations/border-spacing-interpolation.html

While we already supported animation of border-spacing, we did not correctly clip the interpolated
value to 0.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

3:07 PM Changeset in webkit [274977] by Simon Fraser
  • 7 edits in trunk/Source

Add DisplayLink log channels in WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=223669

Reviewed by Tim Horton.
Source/WebCore:

DisplayRefreshMonitor code involves some non-trivial object
fan-out and WebProcess/UI Process interaction, and it deserves
a log channel.

  • platform/Logging.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::displayDidRefresh):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::monitorForClient):
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh):

Source/WebKit:

DisplayRefreshMonitor code involves some non-trivial object
fan-out and WebProcess/UI Process interaction, and it deserves
a log channel.

  • Platform/Logging.h:
  • WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:

(WebKit::DisplayRefreshMonitorMac::displayLinkFired):

2:57 PM Changeset in webkit [274976] by commit-queue@webkit.org
  • 4 edits in trunk

REGRESSION(r274870) fast/canvas/webgl/texImage2D-mse-flipY-true.html and fast/canvas/webgl/texImage2D-mse-flipY-false.html are crashing
https://bugs.webkit.org/show_bug.cgi?id=223674

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-24
Reviewed by Kenneth Russell.

Source/WebCore:

When the srcObject is directly set on a media element, the corresponding URL might still be
empty, so we need to ensure the URI corresponding to the MediaSource blob is not empty,
otherwise uridecodebin would fail to create the right source element.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::load):

LayoutTests:

  • platform/glib/TestExpectations:
2:32 PM Changeset in webkit [274975] by Chris Gambrell
  • 42 edits
    2 moves
    8 adds
    8 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/resourceLoadStatistics convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223541
<rdar://problem/75639142>

Reviewed by Jonathan Bedard.

  • http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
  • http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.html:
  • http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-expected.txt:
  • http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-1p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-3p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-matching-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-cname-sub-no-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-1p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-3p-cname.html:
  • http/tests/resourceLoadStatistics/cname-cloaking-top-no-cname-sub-no-cname.html:
  • http/tests/resourceLoadStatistics/cookie-deletion.html:
  • http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction.html:
  • http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html:
  • http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect.html:
  • http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.php: Removed.
  • http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.py: Added.
  • http/tests/resourceLoadStatistics/exemptDomains/app-bound-domains-exempt-from-cookie-blocking-between-each-other.html:
  • http/tests/resourceLoadStatistics/grandfathering.html:
  • http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html:
  • http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
  • http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html:
  • http/tests/resourceLoadStatistics/resources/cached-permanent-redirect.php:
  • http/tests/resourceLoadStatistics/resources/echo-query.php: Removed.
  • http/tests/resourceLoadStatistics/resources/echo-query.py: Added.
  • http/tests/resourceLoadStatistics/resources/echo-referrer.php: Removed.
  • http/tests/resourceLoadStatistics/resources/echo-referrer.py: Added.
  • http/tests/resourceLoadStatistics/resources/get-cookies.php: Removed.
  • http/tests/resourceLoadStatistics/resources/get-cookies.py: Added.
  • http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/resources/redirect.php: Removed.
  • http/tests/resourceLoadStatistics/resources/redirect.py: Added.
  • http/tests/resourceLoadStatistics/resources/script-revealing-cookies.php: Removed.
  • http/tests/resourceLoadStatistics/resources/script-revealing-cookies.py: Added.
  • http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php: Removed.
  • http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.py: Added.
  • http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.php: Removed.
  • http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.py: Added.
  • http/tests/resourceLoadStatistics/resources/set-cookie.php: Removed.
  • http/tests/resourceLoadStatistics/resources/set-cookie.py: Added.
  • http/tests/resourceLoadStatistics/resources/worker-importing-localhost-script.js:

(onmessage):

  • http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
  • http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
  • http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html:
  • http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-redirects.html:
  • http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-third-party-requests.html:
  • http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.php: Removed.
  • http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.py: Added.
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral.html:
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html:
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking.html:
  • http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
2:17 PM Changeset in webkit [274974] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.8

Tag Safari-612.1.7.8.

1:56 PM Changeset in webkit [274973] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.8

1:49 PM Changeset in webkit [274972] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.7

Tag Safari-612.1.7.7.

1:45 PM Changeset in webkit [274971] by Russell Epstein
  • 3 edits in branches/safari-612.1.7-branch/Source/WebKit

Cherry-pick r274955. rdar://problem/75750989

The media accessibility service is not an XPC service
https://bugs.webkit.org/show_bug.cgi?id=223699
<rdar://75750989>

Reviewed by Brent Fulgham.

The media accessibility service is not an XPC service, but is listed as such in the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274955 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:44 PM Changeset in webkit [274970] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.7

1:40 PM Changeset in webkit [274969] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Remove deprecated WKMediaPlayback APIs
https://bugs.webkit.org/show_bug.cgi?id=223704
<rdar://problem/74611683>

Reviewed by Tim Horton.

We kept these API around after updating the names to give clients
time to adopt the new versions. We can remove them now.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView pauseAllMediaPlayback:]): Deleted.
(-[WKWebView suspendAllMediaPlayback:]): Deleted.
(-[WKWebView resumeAllMediaPlayback:]): Deleted.
(-[WKWebView closeAllMediaPresentations:]): Deleted.
(-[WKWebView requestMediaPlaybackState:]): Deleted.

1:37 PM Changeset in webkit [274968] by Chris Fleizach
  • 7 edits in trunk/Tools

AX: Add functions rectsForTextMarkerRange for testing
https://bugs.webkit.org/show_bug.cgi?id=223705
<rdar://problem/75797361>

Reviewed by Zalan Bujtas.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::rectsForTextMarkerRange):

1:11 PM Changeset in webkit [274967] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Call InitializeWebKit2 when initializing a _WKUserInitiatedAction
https://bugs.webkit.org/show_bug.cgi?id=223708
<rdar://75788877>

Reviewed by Chris Dumez.

There is a test that deallocates a _WKUserInitiatedAction before anything calls InitializeWebKit2.
Calling constructInWrapper calls InitializeWebKit2.
Since r274227 it has been asserting s_mainRunLoop in RunLoop::isMain. This fixes it.
We don't have test infrastructure to test this in WebKit because TestWebKitAPI initializes the main thread for us before doing anything.

  • UIProcess/API/APIUserInitiatedAction.h:
  • UIProcess/API/Cocoa/_WKUserInitiatedAction.mm:

(-[_WKUserInitiatedAction init]):

1:01 PM Changeset in webkit [274966] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7.6

Tag Safari-612.1.7.6.

12:57 PM Changeset in webkit [274965] by Aditya Keerthi
  • 4 edits in trunk/Source/WebCore

REGRESSION (r273154): [iOS] Two magnifier symbols on google.com
https://bugs.webkit.org/show_bug.cgi?id=223700
<rdar://problem/75357965>

Reviewed by Tim Horton.

The iOS form control refresh added a magnifier symbol to
the default appearance of <input type="search">. On iPhone, google.com
uses <input type="search"> for their search field, while drawing their
own magnifier symbol. As a result, two magnifier symbols appear.

Note that on macOS and iPadOS, google.com uses an <input type="text">,
which means this problem is only observed on iPhone. Ideally, google.com
should adopt <input type="text"> on the iPhone version of the site,
matching the other platforms. However, in the meantime, we can hide our
symbol using a quirk.

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):

Hide the symbol if the quirk applies.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldHideSearchFieldResultsButton const):

Add a quirk to hide the magnifier symbol on google.com and other country
domains.

  • page/Quirks.h:
12:50 PM Changeset in webkit [274964] by Chris Gambrell
  • 3 edits
    2 adds
    2 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/performance convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223599
<rdar://problem/75707991>

Reviewed by Jonathan Bedard.

  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars.html:
  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style.html:
  • http/tests/performance/paint-timing/resources/slowscript.php: Removed.
  • http/tests/performance/paint-timing/resources/slowscript.py: Added.
  • http/tests/performance/paint-timing/resources/slowstyle.php: Removed.
  • http/tests/performance/paint-timing/resources/slowstyle.py: Added.
12:48 PM Changeset in webkit [274963] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add logging to check whether RealtimeOutgoingVideoSource is applying rotation or not
https://bugs.webkit.org/show_bug.cgi?id=223691

Reviewed by Eric Carlson.

No change of behavior.

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::rotatePixelBuffer):

12:42 PM Changeset in webkit [274962] by Chris Gambrell
  • 7 edits
    4 moves
    2 adds
    2 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/preload convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223602
<rdar://problem/75709989>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/preload/download_resources_from_header_iframe.html:
  • http/tests/preload/link-header-on-subresource-expected.txt:
  • http/tests/preload/link-header-on-subresource.html:
  • http/tests/preload/preload-encoding.php: Removed.
  • http/tests/preload/preload-encoding.py: Added.
  • http/tests/preload/resources/download_resources_from_header.php: Removed.
  • http/tests/preload/resources/download_resources_from_header.py: Added.
  • http/tests/preload/resources/dummy-preloads-subresource.css.php: Removed.
  • http/tests/preload/resources/dummy-preloads-subresource.css.py: Added.
  • http/tests/preload/single_download_preload_headers.php: Removed.
  • http/tests/preload/single_download_preload_headers.py: Added.
  • http/tests/preload/single_download_preload_headers_charset.php: Removed.
  • http/tests/preload/single_download_preload_headers_charset.py: Added.
  • http/tests/preload/viewport/meta-viewport-link-headers.php: Removed.
  • http/tests/preload/viewport/meta-viewport-link-headers.py: Added.
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
12:35 PM Changeset in webkit [274961] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Update GPUProcess sandbox to support camera access
https://bugs.webkit.org/show_bug.cgi?id=223681

Reviewed by Eric Carlson.

Give access to com.apple.appleh13camerad in GPUProcess.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
12:31 PM Changeset in webkit [274960] by Razvan Caliman
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r269359): Timelines: TypeError: this.deselect is not a function
https://bugs.webkit.org/show_bug.cgi?id=223698
<rdar://problem/75790983>

Reviewed by BJ Burg.

Ensure individual timeline views can be closed to return to the Timelines overview.

  • UserInterface/Views/TimelineTreeElement.js:

(WI.TimelineTreeElement.prototype._showCloseButton):

12:30 PM Changeset in webkit [274959] by Chris Dumez
  • 4 edits in trunk

Address undefined behavior found by UBSan in StringToIntegerConversion.h
https://bugs.webkit.org/show_bug.cgi?id=223694

Reviewed by Geoffrey Garen.

Source/WTF:

Update StringToIntegerConversion to deal with overflows in a well-defined manner,
by relying on CheckedArithmetics. This addresses undefined behavior reborted by
UBSan:

  • wtf/text/StringToIntegerConversion.h:94:30: runtime error: signed integer overflow: 2147483640 + 8 cannot be represented in type 'int'
  • wtf/text/StringToIntegerConversion.h:104:17: runtime error: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
  • wtf/text/StringToIntegerConversion.h:

(WTF::toIntegralType):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

12:30 PM Changeset in webkit [274958] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 65537 * 65537 cannot be represented in type 'int'
https://bugs.webkit.org/show_bug.cgi?id=223697

Reviewed by Darin Adler.

Make sure FrameView::incrementVisuallyNonEmptyPixelCount() deals with overflows in a well-defined
manner. This fixes the following reports from UBSan:

  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 65537 * 65537 cannot be represented in type 'int'
  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 65536 * 65536 cannot be represented in type 'int'
  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: 1116300 * 558150 cannot be represented in type 'int'
  • Source/WebCore/page/FrameView.h:990:50: runtime error: signed integer overflow: -33554432 * -33554432 cannot be represented in type 'int'
  • page/FrameView.h:

(WebCore::FrameView::incrementVisuallyNonEmptyPixelCount):

12:10 PM Changeset in webkit [274957] by commit-queue@webkit.org
  • 10 edits in trunk

[css-contain] Parse CSS contain property
https://bugs.webkit.org/show_bug.cgi?id=223252

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-24
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Update test results because of not supporting style in contain property.

  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:

Source/WebCore:

Address post land review comments.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContain):

  • rendering/style/RenderStyleConstants.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueContain):

12:02 PM Changeset in webkit [274956] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.11

11:59 AM Changeset in webkit [274955] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

The media accessibility service is not an XPC service
https://bugs.webkit.org/show_bug.cgi?id=223699
<rdar://75750989>

Reviewed by Brent Fulgham.

The media accessibility service is not an XPC service, but is listed as such in the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
11:57 AM Changeset in webkit [274954] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Apply patch. rdar://problem/75744524

Aply patch. rdar://75744524

11:57 AM Changeset in webkit [274953] by Ruben Turcios
  • 2 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Cherry-pick r274766. rdar://problem/75762455

Add an early return in UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList
https://bugs.webkit.org/show_bug.cgi?id=223571

Reviewed by Eric Carlson.

Update code to early return as soon as possible.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp: (WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274766 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:24 AM Changeset in webkit [274952] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Enforce notifyd message filtering
https://bugs.webkit.org/show_bug.cgi?id=223601
<rdar://75098580>

Reviewed by Per Arne Vollan.

Enforce notifyd message filtering on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
11:18 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
11:17 AM Changeset in webkit [274951] by Robert Jenner
  • 2 edits in trunk/LayoutTests

Remove unused JS and CSS files of media controls
https://bugs.webkit.org/show_bug.cgi?id=214955

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Test expectation was removed in a webkit patch, casuing a slowdown on EWS. Re-adding test expectation to Failure.
11:03 AM Changeset in webkit [274950] by Ruben Turcios
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.6

10:50 AM Changeset in webkit [274949] by Kate Cheney
  • 2 edits in trunk/Tools

Followup to https://trac.webkit.org/changeset/274928/webkit

Unreviewed build fix.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
10:40 AM Changeset in webkit [274948] by Truitt Savell
  • 12 edits
    1 add in trunk

Unreviewed, reverting r274927.

Broke many tests in WebGL

Reverted changeset:

"Enable Metal ANGLE backend for WebGL"
https://bugs.webkit.org/show_bug.cgi?id=220076
https://commits.webkit.org/r274927

10:34 AM Changeset in webkit [274947] by weinig@apple.com
  • 9 edits in trunk

Update CSS Color 5 color-mix() implementation to match the latest draft spec
https://bugs.webkit.org/show_bug.cgi?id=223665

Reviewed by Simon Fraser.

Source/WebCore:

Update to the latest draft spec, which dramatically reduces the complexity of color-mix()
by remove per-component adjusters.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::normalizeWhitenessBlackness):
(WebCore::CSSPropertyParserHelpers::consumeColorMixColorSpaceAndComma):
(WebCore::CSSPropertyParserHelpers::consumeColorMixComponent):
(WebCore::CSSPropertyParserHelpers::normalizedMixPercentages):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HWBA<float>>):
(WebCore::CSSPropertyParserHelpers::makeColorTypeByNormalizingComponentsAfterMix<HSLA<float>>):
(WebCore::CSSPropertyParserHelpers::fixupHueComponentsPriorToMix):
(WebCore::CSSPropertyParserHelpers::mixColorComponentsInColorSpace):
(WebCore::CSSPropertyParserHelpers::mixColorComponents):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParameters):
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::fixupAnglesForInterpolation): Deleted.
(WebCore::CSSPropertyParserHelpers::HueColorAdjuster::HueColorAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::ColorAdjuster::ColorAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjusterAtIndex): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAndUpdateAdjuster): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAdjusters): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeMixComponents): Deleted.
(WebCore::CSSPropertyParserHelpers::normalizeAdjusterValues): Deleted.
(WebCore::CSSPropertyParserHelpers::remainingAdjustment): Deleted.
(WebCore::CSSPropertyParserHelpers::mixComponent): Deleted.
(WebCore::CSSPropertyParserHelpers::mixComponentAtIndex): Deleted.
(WebCore::CSSPropertyParserHelpers::mix): Deleted.
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParametersUsingAdjusters): Deleted.
Update to the new syntax and remove component adjusters. They may come back for color-adjust()
in the future.

  • platform/graphics/ColorModels.h:
  • platform/graphics/ColorTypes.h:

(WebCore::clampedComponent):
(WebCore::assertInRange):

  • platform/graphics/ColorUtilities.h:

(WebCore::invertedColorWithOverriddenAlpha):
Add support in the color models for annotating more about each component, now including
the type (angle, number or percentage). This allows algorithms generic algorithms to
operate on abstract color type components without specializing for each color type.

LayoutTests:

  • fast/css/parsing-color-mix-expected.txt:
  • fast/css/parsing-color-mix.html:

Update test and results for vastly simplified color-mix().

10:31 AM Changeset in webkit [274946] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Address undefined behavior found by UBSan in DateMath.h
https://bugs.webkit.org/show_bug.cgi?id=223663

Reviewed by Darin Adler.

Address undefined behavior found by UBSan in DateMath.h
Release/usr/local/include/wtf/DateMath.h:247:39: runtime error: nan is outside the range of representable values of type 'int'
Release/usr/local/include/wtf/DateMath.h:221:29: runtime error: nan is outside the range of representable values of type 'int'
Release/usr/local/include/wtf/DateMath.h:165:38: runtime error: signed integer overflow: -2147483648 - 1 cannot be represented in type 'int'

  • wtf/DateMath.h:

(WTF::daysFrom1970ToYear):
Cast year to a double *before* substracting 1 instead of *after*. This works around the fact that INT_MIN-1 would not
fit in an int and would be undefined behavior.

(WTF::dayInYear):
(WTF::msToYear):
Deal with the double potentially being NaN before casting to an int, since
casting NaN to an int type has undefined behavior.

10:29 AM Changeset in webkit [274945] by msaboff@apple.com
  • 4 edits in trunk

[YARR] Interpreter incorrectly matches non-BMP characters with multiple . w/dotAll flag
https://bugs.webkit.org/show_bug.cgi?id=223666

Reviewed by Mark Lam.

JSTests:

Added tests for dotAll. Also made sure that we test both JIT and non-JIT execution.

  • stress/regexp-dot-match-nonBMP.js:

Source/JavaScriptCore:

In checkCharacterClassDontAdvanceInputForNonBMP(), we need to check for input.readChecked() returning -1
and return that the character class didn't match.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::checkCharacterClassDontAdvanceInputForNonBMP):

10:03 AM Changeset in webkit [274944] by Brent Fulgham
  • 5 edits in trunk

[Cocoa] Revise loadSimulatedRequest API with final review comments (223657)
https://bugs.webkit.org/show_bug.cgi?id=223657
<rdar://75757727>

Reviewed by Alex Christensen.

Source/WebKit:

Tested by TestWebKitAPI.

Update the WKWebView API to match final review comments. Deprecate the prior draft API so that we
can smoothly transition away from the original methods.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadSimulatedRequest:response:responseData:]):
(-[WKWebView loadSimulatedRequest:withResponse:responseData:]):
(-[WKWebView loadSimulatedRequest:responseHTMLString:]):
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]):

Tools:

Update tests to use the final API, while still exercising the existing API.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:

(TEST):

9:59 AM Changeset in webkit [274943] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Use imxvideoconvert_g2d element inside the sink when available
https://bugs.webkit.org/show_bug.cgi?id=223693

Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-03-24
Reviewed by Philippe Normand.

On some iMX platforms we require the use of imxvideoconvert_g2d element
in order to properly convert the visual buffers before they can be
rendered through our pipeline. We expect to require this buffer if it's
present in the GStreamer plugin registry on the system.

We search for this element and, if found, add it to the sink and
position it at the beginning, before the glupload element.

Based on an approach outlined by Gabriel Valcazar.

  • platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:

(webKitGLVideoSinkConstructed):

9:56 AM Changeset in webkit [274942] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

r271034 added code in constant folding phase that's unreachable given current invariants of our ICs and PutByIdStatus
https://bugs.webkit.org/show_bug.cgi?id=223625

Reviewed by Yusuke Suzuki.

The code was doing a lot of wrong things by making bad assumptions about the
invariants of PutByIdVariants. Replace PutByIdVariants never have object
property condition sets, since we always replace on the self object (and don't
look at the prototype chain). This patch clears up the code to make it
clearer what the invariants are.

With respect to the original fix about not emitting a PutByOffset for a
Replace on a Structure that has an unfired replacement watchpoint set,
that was already handled by the PutByIdStatus::computeFor variant we're
calling inside of constant folding. It will return TakesSlowPathif it
encounters a Replace where the Structure still has an unfired watchpoint.

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):

9:45 AM Changeset in webkit [274941] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Ignore middle commits during animated resize
https://bugs.webkit.org/show_bug.cgi?id=223530

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-03-24
Reviewed by Tim Horton.

For animated resize, UI process sets layer transform to fit new size until web process picks up size change and
paints. It is possible that UI process receives a commit during animated resize and the commit is not for the
animated resize (web process commits before animated resize). In this case, our current implementation is: if
SPI client species there will be no other update (!_waitingForEndAnimatedResize), we change layer transform to
reflect change of the middle commit.

However, that commit does not mean web process issues new paint, so the adjustment can be wrong. We find the
handling of middle commits causes issues in SPI client's use case (rdar://47623140). Also by manual testing,
it's not clear how the code can benefit current SPI clients. It seems to cause the same trouble sometimes. So
let's just remove it.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]):

9:01 AM Changeset in webkit [274940] by Ruben Turcios
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.16

8:14 AM Changeset in webkit [274939] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

Support animation of the tab-size CSS property
https://bugs.webkit.org/show_bug.cgi?id=223688

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Import the tab-size interpolation test with its 196 tests passing.

  • web-platform-tests/css/css-text/animations/tab-size-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-text/animations/tab-size-interpolation.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/css/css-text/animations/tab-size-interpolation.html

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • platform/graphics/TabSize.h:

(WebCore::TabSize::value const):
(WebCore::TabSize::operator bool const):

7:28 AM Changeset in webkit [274938] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Add IOKit method filter telemetry
https://bugs.webkit.org/show_bug.cgi?id=223652
<rdar://problem/75751391>

Reviewed by Brent Fulgham.

Add IOKit method filter telemetry in the WebContent sandbox on macOS and iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
6:12 AM WebKitGTK/2.32.x edited by Michael Catanzaro
(diff)
4:02 AM Changeset in webkit [274937] by Pablo Saavedra
  • 2 edits in trunk/Source/WebKit

[WPE] Build error in ARMv7 invalid 'static_cast' for GLNativeWindowType
https://bugs.webkit.org/show_bug.cgi?id=223684

Fixes this error:

error: invalid 'static_cast' from type 'uintptr_t' {aka 'unsigned
int'} to type 'GLNativeWindowType' {aka 'void*'}

; an invalid 'static_cast' from type error for ARMv7 (rpi3 and mesa driver)
by using the same solution chosen in
https://bugs.webkit.org/show_bug.cgi?id=179511:

EGLNativeWindowType can be aliased to a different type depending (at least) on the EGL
implementation, its build options, and the libepoxy build options. Using "static_cast"
works when it is a numeric value and the width of the value needs to be optionally
extended to 64 bits (e.g. the EGL type is "int" in a 32-bit CPU) but not for pointers,
and using "reinterpret_cast" works when the size of a pointer is 64 bits but not in other
cases. Therefore it seems reasonable to use a plain C cast expression to solve this
particular situation.

https://trac.webkit.org/changeset/274869/webkit

Reviewed by Philippe Normand.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::createGLContext):

3:51 AM Changeset in webkit [274936] by Chris Lord
  • 4 edits in trunk/LayoutTests

[GLIB] imported/w3c/web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=223671

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/html/canvas/offscreen/manual/draw-generic-family/2d.text.draw.generic.family.w-expected.txt:

LayoutTests:

  • platform/glib/TestExpectations:
2:55 AM Changeset in webkit [274935] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Rope string equal operation should first check length
https://bugs.webkit.org/show_bug.cgi?id=223678

Reviewed by Mark Lam.

JSTests:

  • stress/redefine-property-same-value-exception-check.js:

(shouldThrow):

Source/JavaScriptCore:

This can avoid eagerly resolving rope strings if it is not necessary.

  • runtime/JSString.cpp:

(JSC::JSString::equalSlowCase const):

1:38 AM Changeset in webkit [274934] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools/buildstream

[Flatpak SDK] Add nghttp2 client library
https://bugs.webkit.org/show_bug.cgi?id=223585

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-24
Reviewed by Carlos Garcia Campos.

  • elements/sdk-platform.bst:
  • elements/sdk/nghttp2.bst: Added.
12:44 AM Changeset in webkit [274933] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

[css-grid] Do not allow negative heights
https://bugs.webkit.org/show_bug.cgi?id=221439

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-24
Reviewed by Javier Fernandez.

Source/WebCore:

Do not allow negative heights in calculations.

Test: fast/css-grid-layout/zero-height-crash.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::setup):

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDefiniteSize):
(WebCore::RenderGrid::gridGap const):
(WebCore::RenderGrid::computeTrackSizesForIndefiniteSize const):
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching const):

LayoutTests:

Add test for this.

  • fast/css-grid-layout/zero-height-crash-expected.txt: Added.
  • fast/css-grid-layout/zero-height-crash.html: Added.
Note: See TracTimeline for information about the timeline view.